Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F148635492
D17779.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
2 KB
Referenced Files
None
Subscribers
None
D17779.diff
View Options
Index: Makefile
===================================================================
--- Makefile
+++ Makefile
@@ -626,17 +626,44 @@
.endfor
.endif # !make(targets)
-.if !defined(MAKE_JUST_KERNELS)
-universe_${target}_done: universe_${target}_worlds .PHONY
.for target_arch in ${TARGET_ARCHES_${target}}
-universe_${target}_worlds: universe_${target}_${target_arch} .PHONY
.if (defined(_need_clang_${target}_${target_arch}) && \
${_need_clang_${target}_${target_arch}} == "yes") || \
(defined(_need_lld_${target}_${target_arch}) && \
${_need_lld_${target}_${target_arch}} == "yes")
-universe_${target}_${target_arch}: universe-toolchain
universe_${target}_prologue: universe-toolchain
-.endif
+universe_${target}_kernel_toolchains: universe-toolchain
+.else
+.if defined(MAKE_JUST_KERNELS)
+# If we are skipping universe_${target}_worlds due to MAKE_JUST_KERNELS we have
+# to build kernel-toolchain for all non-clang targets first.
+# In addition to the compiler this will also ensure that config has been
+# bootstrapped and we don't fall back to using the one from /usr/sbin
+universe_${target}_kernel_toolchains: universe_${target}_${target_arch}_kernel_toolchain .PHONY
+universe_${target}_${target_arch}_kernel_toolchain: universe_${target}_prologue .MAKE .PHONY
+ @echo "> ${target}.${target_arch} kernel-toolchain started on `LC_ALL=C date`"
+ @(cd ${.CURDIR} && env __MAKE_CONF=/dev/null \
+ ${SUB_MAKE} ${JFLAG} kernel-toolchain \
+ TARGET=${target} \
+ TARGET_ARCH=${target_arch} \
+ ${MAKE_PARAMS_${target}} \
+ > _.${target}.${target_arch}.kernel-toolchain 2>&1 || \
+ (echo "${target}.${target_arch} kernel-toolchain failed," \
+ "check _.${target}.${target_arch}.kernel-toolchain for details" | \
+ ${MAKEFAIL}))
+ @echo "> ${target}.${target_arch} kernel-toolchain completed on `LC_ALL=C date`"
+.else
+# Otherwise the kernel toolchains for non-clang targets are built during buildworld
+universe_${target}_kernel_toolchains: universe_${target}_worlds .PHONY
+.endif # defined(MAKE_JUST_KERNELS)
+.endif # ${target}_${target_arch} needs clang
+.endfor
+
+
+.if !defined(MAKE_JUST_KERNELS)
+universe_${target}_done: universe_${target}_worlds .PHONY
+.for target_arch in ${TARGET_ARCHES_${target}}
+universe_${target}_worlds: universe_${target}_${target_arch} .PHONY
universe_${target}_${target_arch}: universe_${target}_prologue .MAKE .PHONY
@echo ">> ${target}.${target_arch} ${UNIVERSE_TARGET} started on `LC_ALL=C date`"
@(cd ${.CURDIR} && env __MAKE_CONF=/dev/null \
@@ -654,8 +681,7 @@
.if !defined(MAKE_JUST_WORLDS)
universe_${target}_done: universe_${target}_kernels .PHONY
-universe_${target}_kernels: universe_${target}_worlds .PHONY
-universe_${target}_kernels: universe_${target}_prologue .MAKE .PHONY
+universe_${target}_kernels: universe_${target}_kernel_toolchains .MAKE .PHONY
@if [ -e "${KERNSRCDIR}/${target}/conf/NOTES" ]; then \
(cd ${KERNSRCDIR}/${target}/conf && env __MAKE_CONF=/dev/null \
${SUB_MAKE} LINT \
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Fri, Mar 20, 6:58 AM (15 h, 51 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
30005500
Default Alt Text
D17779.diff (2 KB)
Attached To
Mode
D17779: Build kernel-toolchain before kernel during make universe
Attached
Detach File
Event Timeline
Log In to Comment