Page MenuHomeFreeBSD

D55923.diff
No OneTemporary

D55923.diff

diff --git a/Makefile.inc1 b/Makefile.inc1
--- a/Makefile.inc1
+++ b/Makefile.inc1
@@ -239,6 +239,12 @@
MK_LLD_BOOTSTRAP= no
.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.
_WANT_TOOLCHAIN_CROSS_VARS= t
.include "share/mk/bsd.linker.mk"
@@ -2701,7 +2707,8 @@
# llvm-tblgen is also needed for various llvm binutils (e.g. objcopy).
.if ${MK_CLANG_BOOTSTRAP} != "no" || ${MK_CLANG} != "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= \
lib/clang/libllvmminimal \
usr.bin/clang/llvm-min-tblgen \
@@ -3061,9 +3068,16 @@
.if ${MK_LLD_BOOTSTRAP} != "no"
_lld= usr.bin/clang/lld
.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
.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"
_usb_tools= stand/usb/tools
.endif
@@ -3079,6 +3093,7 @@
${_clang_libs} \
${_clang} \
${_lld} \
+ ${_llvm_binutils} \
${_elftctools} \
${_dtrace_tools} \
${_btxld} \
diff --git a/share/man/man5/src.conf.5 b/share/man/man5/src.conf.5
--- a/share/man/man5/src.conf.5
+++ b/share/man/man5/src.conf.5
@@ -989,6 +989,19 @@
.Xr objdump 1 .
.Xr strings 1
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
Do not build the
.Xr llvm-cov 1
diff --git a/share/mk/src.opts.mk b/share/mk/src.opts.mk
--- a/share/mk/src.opts.mk
+++ b/share/mk/src.opts.mk
@@ -124,6 +124,7 @@
LLD_BOOTSTRAP \
LLVM_ASSERTIONS \
LLVM_BINUTILS \
+ LLVM_BINUTILS_BOOTSTRAP \
LLVM_COV \
LOADER_BIOS_TEXTONLY \
LOADER_GELI \
diff --git a/tools/build/options/WITHOUT_LLVM_BINUTILS_BOOTSTRAP b/tools/build/options/WITHOUT_LLVM_BINUTILS_BOOTSTRAP
new file mode 100644
--- /dev/null
+++ b/tools/build/options/WITHOUT_LLVM_BINUTILS_BOOTSTRAP
@@ -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 .
+

File Metadata

Mime Type
text/plain
Expires
Tue, Mar 24, 10:44 PM (5 h, 16 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
30277759
Default Alt Text
D55923.diff (2 KB)

Event Timeline