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:
Ed Maste 2016-08-31 21:18:38 +00:00
parent adbee1887f
commit 75bc38b916
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/projects/clang390-import/; revision=305158
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