Add WITH_/WITHOUT_LLD knobs to enable the lld linker

Use this to control inclusion of the libllvm functionality required
by lld. Enable by default on arm64 and amd64, the two platforms where
lld is most usable for testing.

Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D7713
This commit is contained in:
emaste 2016-08-31 21:18:38 +00:00
parent 698f1e9f8e
commit 26ebe61d5c
5 changed files with 33 additions and 19 deletions

View File

@ -468,12 +468,12 @@ SRCS_MIN+= IR/ValueSymbolTable.cpp
SRCS_MIN+= IR/ValueTypes.cpp
SRCS_MIN+= IR/Verifier.cpp
SRCS_MIN+= IRReader/IRReader.cpp
SRCS_EXT+= LTO/LTO.cpp
SRCS_EXT+= LTO/LTOCodeGenerator.cpp
SRCS_EXT+= LTO/LTOModule.cpp
SRCS_EXT+= LTO/ThinLTOCodeGenerator.cpp
SRCS_EXT+= LTO/UpdateCompilerUsed.cpp
SRCS_EXT+= LibDriver/LibDriver.cpp
SRCS_EXL+= LTO/LTO.cpp
SRCS_EXL+= LTO/LTOCodeGenerator.cpp
SRCS_EXL+= LTO/LTOModule.cpp
SRCS_EXL+= LTO/ThinLTOCodeGenerator.cpp
SRCS_EXL+= LTO/UpdateCompilerUsed.cpp
SRCS_EXL+= LibDriver/LibDriver.cpp
SRCS_MIN+= LineEditor/LineEditor.cpp
SRCS_MIN+= Linker/IRMover.cpp
SRCS_MIN+= Linker/LinkModules.cpp
@ -489,11 +489,11 @@ SRCS_MIN+= MC/MCAssembler.cpp
SRCS_MIN+= MC/MCCodeEmitter.cpp
SRCS_MIN+= MC/MCCodeView.cpp
SRCS_MIN+= MC/MCContext.cpp
SRCS_XDB+= MC/MCDisassembler/Disassembler.cpp
SRCS_XDB+= MC/MCDisassembler/MCDisassembler.cpp
SRCS_XDB+= MC/MCDisassembler/MCExternalSymbolizer.cpp
SRCS_XDL+= MC/MCDisassembler/Disassembler.cpp
SRCS_XDL+= MC/MCDisassembler/MCDisassembler.cpp
SRCS_XDL+= MC/MCDisassembler/MCExternalSymbolizer.cpp
SRCS_MIN+= MC/MCDisassembler/MCRelocationInfo.cpp
SRCS_XDB+= MC/MCDisassembler/MCSymbolizer.cpp
SRCS_XDL+= MC/MCDisassembler/MCSymbolizer.cpp
SRCS_MIN+= MC/MCDwarf.cpp
SRCS_MIN+= MC/MCELFObjectTargetWriter.cpp
SRCS_MIN+= MC/MCELFStreamer.cpp
@ -564,7 +564,7 @@ SRCS_MIN+= Option/Arg.cpp
SRCS_MIN+= Option/ArgList.cpp
SRCS_MIN+= Option/OptTable.cpp
SRCS_MIN+= Option/Option.cpp
SRCS_EXT+= Passes/PassBuilder.cpp
SRCS_EXL+= Passes/PassBuilder.cpp
SRCS_MIN+= ProfileData/Coverage/CoverageMapping.cpp
SRCS_MIN+= ProfileData/Coverage/CoverageMappingReader.cpp
SRCS_MIN+= ProfileData/Coverage/CoverageMappingWriter.cpp
@ -601,7 +601,7 @@ SRCS_MIN+= Support/DynamicLibrary.cpp
SRCS_MIN+= Support/Errno.cpp
SRCS_MIN+= Support/Error.cpp
SRCS_MIN+= Support/ErrorHandling.cpp
SRCS_EXT+= Support/FileOutputBuffer.cpp
SRCS_EXL+= Support/FileOutputBuffer.cpp
SRCS_EXT+= Support/FileUtilities.cpp
SRCS_MIN+= Support/FoldingSet.cpp
SRCS_MIN+= Support/FormattedStream.cpp
@ -651,7 +651,7 @@ SRCS_EXT+= Support/SystemUtils.cpp
SRCS_MIN+= Support/TargetParser.cpp
SRCS_MIN+= Support/TargetRegistry.cpp
SRCS_MIN+= Support/ThreadLocal.cpp
SRCS_EXT+= Support/ThreadPool.cpp
SRCS_EXL+= Support/ThreadPool.cpp
SRCS_MIN+= Support/Threading.cpp
SRCS_MIN+= Support/TimeValue.cpp
SRCS_MIN+= Support/Timer.cpp
@ -709,7 +709,7 @@ SRCS_MIN+= Target/AArch64/AArch64TargetMachine.cpp
SRCS_MIN+= Target/AArch64/AArch64TargetObjectFile.cpp
SRCS_MIN+= Target/AArch64/AArch64TargetTransformInfo.cpp
SRCS_MIN+= Target/AArch64/AsmParser/AArch64AsmParser.cpp
SRCS_XDB+= Target/AArch64/Disassembler/AArch64Disassembler.cpp
SRCS_XDL+= Target/AArch64/Disassembler/AArch64Disassembler.cpp
SRCS_MIN+= Target/AArch64/Disassembler/AArch64ExternalSymbolizer.cpp
SRCS_MIN+= Target/AArch64/InstPrinter/AArch64InstPrinter.cpp
SRCS_MIN+= Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp
@ -771,7 +771,7 @@ SRCS_MIN+= Target/ARM/Thumb2InstrInfo.cpp
SRCS_MIN+= Target/ARM/Thumb2SizeReduction.cpp
SRCS_MIN+= Target/ARM/ThumbRegisterInfo.cpp
SRCS_MIN+= Target/Mips/AsmParser/MipsAsmParser.cpp
SRCS_XDB+= Target/Mips/Disassembler/MipsDisassembler.cpp
SRCS_XDL+= Target/Mips/Disassembler/MipsDisassembler.cpp
SRCS_MIN+= Target/Mips/InstPrinter/MipsInstPrinter.cpp
SRCS_MIN+= Target/Mips/MCTargetDesc/MipsABIFlagsSection.cpp
SRCS_MIN+= Target/Mips/MCTargetDesc/MipsABIInfo.cpp
@ -860,7 +860,7 @@ SRCS_MIN+= Target/PowerPC/PPCVSXSwapRemoval.cpp
SRCS_MIN+= Target/PowerPC/TargetInfo/PowerPCTargetInfo.cpp
SRCS_MIN+= Target/Sparc/AsmParser/SparcAsmParser.cpp
SRCS_MIN+= Target/Sparc/DelaySlotFiller.cpp
SRCS_XDB+= Target/Sparc/Disassembler/SparcDisassembler.cpp
SRCS_XDL+= Target/Sparc/Disassembler/SparcDisassembler.cpp
SRCS_MIN+= Target/Sparc/InstPrinter/SparcInstPrinter.cpp
SRCS_MIN+= Target/Sparc/LeonPasses.cpp
SRCS_MIN+= Target/Sparc/MCTargetDesc/SparcAsmBackend.cpp
@ -891,8 +891,8 @@ SRCS_MIN+= Target/TargetRecip.cpp
SRCS_MIN+= Target/TargetSubtargetInfo.cpp
SRCS_MIN+= Target/X86/AsmParser/X86AsmInstrumentation.cpp
SRCS_MIN+= Target/X86/AsmParser/X86AsmParser.cpp
SRCS_XDB+= Target/X86/Disassembler/X86Disassembler.cpp
SRCS_XDB+= Target/X86/Disassembler/X86DisassemblerDecoder.cpp
SRCS_XDL+= Target/X86/Disassembler/X86Disassembler.cpp
SRCS_XDL+= Target/X86/Disassembler/X86DisassemblerDecoder.cpp
SRCS_MIN+= Target/X86/InstPrinter/X86ATTInstPrinter.cpp
SRCS_MIN+= Target/X86/InstPrinter/X86InstComments.cpp
SRCS_MIN+= Target/X86/InstPrinter/X86IntelInstPrinter.cpp
@ -1018,7 +1018,7 @@ SRCS_MIN+= Transforms/Scalar/LoopDataPrefetch.cpp
SRCS_MIN+= Transforms/Scalar/LoopDeletion.cpp
SRCS_MIN+= Transforms/Scalar/LoopDistribute.cpp
SRCS_MIN+= Transforms/Scalar/LoopIdiomRecognize.cpp
SRCS_EXT+= Transforms/Scalar/LoopInstSimplify.cpp
SRCS_EXL+= Transforms/Scalar/LoopInstSimplify.cpp
SRCS_MIN+= Transforms/Scalar/LoopInterchange.cpp
SRCS_MIN+= Transforms/Scalar/LoopLoadElimination.cpp
SRCS_MIN+= Transforms/Scalar/LoopRerollPass.cpp
@ -1108,9 +1108,15 @@ SRCS_ALL+= ${SRCS_EXT}
.if ${MK_CLANG_FULL} != "no"
SRCS_ALL+= ${SRCS_FUL}
.endif
.if ${MK_CLANG_EXTRAS} != "no" || ${MK_LLD} != "no"
SRCS_ALL+= ${SRCS_EXL}
.endif
.if ${MK_CLANG_EXTRAS} != "no" || ${MK_LLDB} != "no"
SRCS_ALL+= ${SRCS_XDB}
.endif
.if ${MK_CLANG_EXTRAS} != "no" || ${MK_LLDB} != "no" || ${MK_LLD} != "no"
SRCS_ALL+= ${SRCS_XDL}
.endif
SRCS+= ${SRCS_ALL:O}
llvm/IR/Attributes.inc: ${LLVM_SRCS}/include/llvm/IR/Attributes.td

View File

@ -184,6 +184,7 @@ __DEFAULT_NO_OPTIONS = \
EISA \
HESIOD \
LIBSOFT \
LLD \
NAND \
OFED \
OPENLDAP \

View File

@ -0,0 +1,2 @@
.\" $FreeBSD$
Set to not build LLVM's lld linker.

View File

@ -0,0 +1,2 @@
.\" $FreeBSD$
Set to build LLVM's lld linker.

View File

@ -33,6 +33,9 @@ SUBDIR+= llvm-symbolizer
SUBDIR+= opt
.endif
.if ${MK_LLD} != "no"
SUBDIR+= lld
.endif
.if ${MK_LLDB} != "no"
SUBDIR+= lldb
.endif # MK_LLDB