build: Boostrap LLVM_BINUTILS for cross-tools
Reported by: vexeduxr, jrtc27 Reviewed by: imp Sponsored by: The FreeBSD Foundation Pull request: https://github.com/freebsd/freebsd-src/pull/2084 Differential Revision: https://reviews.freebsd.org/D55923
This commit is contained in:
+17
-2
@@ -239,6 +239,12 @@ X${BINUTIL}?= ${${BINUTIL}}
|
|||||||
MK_LLD_BOOTSTRAP= no
|
MK_LLD_BOOTSTRAP= no
|
||||||
.endif
|
.endif
|
||||||
|
|
||||||
|
# If full paths to all standard bintuils are given, don't build LLVM binutils.
|
||||||
|
.if ${XAR:M/*} && ${XNM:M/*} && ${XOBJCOPY:M/*} && ${XRANLIB:M/*} && \
|
||||||
|
${XSIZE:M/*} && ${XSTRINGS:M/*} && ${XSTRIPBIN:M/*}
|
||||||
|
MK_LLVM_BINUTILS_BOOTSTRAP= no
|
||||||
|
.endif
|
||||||
|
|
||||||
# We also want the X_LINKER* variables if we are using an external toolchain.
|
# We also want the X_LINKER* variables if we are using an external toolchain.
|
||||||
_WANT_TOOLCHAIN_CROSS_VARS= t
|
_WANT_TOOLCHAIN_CROSS_VARS= t
|
||||||
.include "share/mk/bsd.linker.mk"
|
.include "share/mk/bsd.linker.mk"
|
||||||
@@ -2701,7 +2707,8 @@ _gensnmptree= usr.sbin/bsnmpd/gensnmptree
|
|||||||
# llvm-tblgen is also needed for various llvm binutils (e.g. objcopy).
|
# llvm-tblgen is also needed for various llvm binutils (e.g. objcopy).
|
||||||
.if ${MK_CLANG_BOOTSTRAP} != "no" || ${MK_CLANG} != "no" || \
|
.if ${MK_CLANG_BOOTSTRAP} != "no" || ${MK_CLANG} != "no" || \
|
||||||
${MK_LLD_BOOTSTRAP} != "no" || ${MK_LLD} != "no" || \
|
${MK_LLD_BOOTSTRAP} != "no" || ${MK_LLD} != "no" || \
|
||||||
${MK_LLDB} != "no" || ${MK_LLVM_BINUTILS} != "no"
|
${MK_LLDB} != "no" || \
|
||||||
|
${MK_LLVM_BINUTILS_BOOTSTRAP} != "no" || ${MK_LLVM_BINUTILS} != "no"
|
||||||
_clang_tblgen= \
|
_clang_tblgen= \
|
||||||
lib/clang/libllvmminimal \
|
lib/clang/libllvmminimal \
|
||||||
usr.bin/clang/llvm-min-tblgen \
|
usr.bin/clang/llvm-min-tblgen \
|
||||||
@@ -3061,9 +3068,16 @@ _clang= usr.bin/clang/clang
|
|||||||
.if ${MK_LLD_BOOTSTRAP} != "no"
|
.if ${MK_LLD_BOOTSTRAP} != "no"
|
||||||
_lld= usr.bin/clang/lld
|
_lld= usr.bin/clang/lld
|
||||||
.endif
|
.endif
|
||||||
.if ${MK_CLANG_BOOTSTRAP} != "no" || ${MK_LLD_BOOTSTRAP} != "no"
|
.if ${MK_CLANG_BOOTSTRAP} != "no" || ${MK_LLD_BOOTSTRAP} != "no" || \
|
||||||
|
${MK_LLVM_BINUTILS_BOOTSTRAP} != "no"
|
||||||
_clang_libs= lib/clang
|
_clang_libs= lib/clang
|
||||||
.endif
|
.endif
|
||||||
|
.if ${MK_LLVM_BINUTILS_BOOTSTRAP}} != "no"
|
||||||
|
_llvm_binutils= usr.bin/clang/llvm-ar \
|
||||||
|
usr.bin/clang/llvm-nm \
|
||||||
|
usr.bin/clang/llvm-objcopy \
|
||||||
|
usr.bin/clang/llvm-size
|
||||||
|
.endif
|
||||||
.if ${MK_USB} != "no"
|
.if ${MK_USB} != "no"
|
||||||
_usb_tools= stand/usb/tools
|
_usb_tools= stand/usb/tools
|
||||||
.endif
|
.endif
|
||||||
@@ -3079,6 +3093,7 @@ cross-tools: .MAKE .PHONY
|
|||||||
${_clang_libs} \
|
${_clang_libs} \
|
||||||
${_clang} \
|
${_clang} \
|
||||||
${_lld} \
|
${_lld} \
|
||||||
|
${_llvm_binutils} \
|
||||||
${_elftctools} \
|
${_elftctools} \
|
||||||
${_dtrace_tools} \
|
${_dtrace_tools} \
|
||||||
${_btxld} \
|
${_btxld} \
|
||||||
|
|||||||
@@ -989,6 +989,19 @@ and
|
|||||||
.Xr objdump 1 .
|
.Xr objdump 1 .
|
||||||
.Xr strings 1
|
.Xr strings 1
|
||||||
is always provided by ELF Tool Chain.
|
is always provided by ELF Tool Chain.
|
||||||
|
.It Va WITHOUT_LLVM_BINUTILS_BOOTSTRAP
|
||||||
|
Do not build LLVM binary utilities during the bootstrap phase of
|
||||||
|
the build.
|
||||||
|
To be able to build the system alternate binary utilities must be provided via
|
||||||
|
.Ev XAR ,
|
||||||
|
.Ev XNM ,
|
||||||
|
.Ev XOBJCOPY ,
|
||||||
|
.Ev XRANLIB ,
|
||||||
|
.Ev XSIZE ,
|
||||||
|
.Ev XSTRINGS ,
|
||||||
|
and
|
||||||
|
.Ev XSTRIPBIN .
|
||||||
|
|
||||||
.It Va WITHOUT_LLVM_COV
|
.It Va WITHOUT_LLVM_COV
|
||||||
Do not build the
|
Do not build the
|
||||||
.Xr llvm-cov 1
|
.Xr llvm-cov 1
|
||||||
|
|||||||
@@ -124,6 +124,7 @@ __DEFAULT_YES_OPTIONS = \
|
|||||||
LLD_BOOTSTRAP \
|
LLD_BOOTSTRAP \
|
||||||
LLVM_ASSERTIONS \
|
LLVM_ASSERTIONS \
|
||||||
LLVM_BINUTILS \
|
LLVM_BINUTILS \
|
||||||
|
LLVM_BINUTILS_BOOTSTRAP \
|
||||||
LLVM_COV \
|
LLVM_COV \
|
||||||
LOADER_BIOS_TEXTONLY \
|
LOADER_BIOS_TEXTONLY \
|
||||||
LOADER_GELI \
|
LOADER_GELI \
|
||||||
|
|||||||
@@ -0,0 +1,12 @@
|
|||||||
|
Do not build LLVM binary utilities during the bootstrap phase of
|
||||||
|
the build.
|
||||||
|
To be able to build the system alternate binary utilities must be provided via
|
||||||
|
.Ev XAR ,
|
||||||
|
.Ev XNM ,
|
||||||
|
.Ev XOBJCOPY ,
|
||||||
|
.Ev XRANLIB ,
|
||||||
|
.Ev XSIZE ,
|
||||||
|
.Ev XSTRINGS ,
|
||||||
|
and
|
||||||
|
.Ev XSTRIPBIN .
|
||||||
|
|
||||||
Reference in New Issue
Block a user