Page MenuHomeFreeBSD

D17779.diff
No OneTemporary

D17779.diff

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

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)

Event Timeline