The branch main has been updated by jrtc27:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=ecf01a8ebc443d1b33c7b61a22f28145f41c25a9

commit ecf01a8ebc443d1b33c7b61a22f28145f41c25a9
Author:     Jessica Clarke <jrt...@freebsd.org>
AuthorDate: 2023-08-23 17:00:16 +0000
Commit:     Jessica Clarke <jrt...@freebsd.org>
CommitDate: 2023-08-23 17:00:16 +0000

    Makefile: Support universe-toolchain on non-FreeBSD
    
    We currently pass MACHINE and MACHINE_ARCH as TARGET and TARGET_ARCH
    respectively for universe-toolchain, but on non-FreeBSD these may not
    have values that we understand (e.g. on Linux it will be x86_64 rather
    than amd64) for TARGET/TARGET_ARCH (note that we do support them for
    MACHINE/MACHINE_ARCH). Since the choice is a bit arbitrary and merely
    determines what LLVM's default triple will be, use amd64 on non-FreeBSD
    as a known-good default.
    
    Reviewed by:    jhb
    Differential Revision:  https://reviews.freebsd.org/D41545
---
 Makefile | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/Makefile b/Makefile
index 4b8d7c850bd6..b36e27e7f294 100644
--- a/Makefile
+++ b/Makefile
@@ -582,6 +582,17 @@ MAKE_PARAMS_${arch}?=      
CROSS_TOOLCHAIN=${TOOLCHAIN_${arch}}
 UNIVERSE_TARGET?=      buildworld
 KERNSRCDIR?=           ${.CURDIR}/sys
 
+.if ${.MAKE.OS} == "FreeBSD"
+UNIVERSE_TOOLCHAIN_TARGET?=            ${MACHINE}
+UNIVERSE_TOOLCHAIN_TARGET_ARCH?=       ${MACHINE_ARCH}
+.else
+# MACHINE/MACHINE_ARCH may not follow the same naming as us (e.g. x86_64 vs
+# amd64) on non-FreeBSD. Rather than attempt to sanitise it, arbitrarily use
+# amd64 as the default universe toolchain target.
+UNIVERSE_TOOLCHAIN_TARGET?=            amd64
+UNIVERSE_TOOLCHAIN_TARGET_ARCH?=       amd64
+.endif
+
 targets:       .PHONY
        @echo "Supported TARGET/TARGET_ARCH pairs for world and kernel targets"
 .for target in ${TARGETS}
@@ -613,7 +624,8 @@ universe-toolchain: .PHONY universe_prologue
        @echo "--------------------------------------------------------------"
        ${_+_}@cd ${.CURDIR}; \
            env PATH=${PATH:Q} ${SUB_MAKE} ${JFLAG} kernel-toolchain \
-           TARGET=${MACHINE} TARGET_ARCH=${MACHINE_ARCH} \
+           TARGET=${UNIVERSE_TOOLCHAIN_TARGET} \
+           TARGET_ARCH=${UNIVERSE_TOOLCHAIN_TARGET_ARCH} \
            OBJTOP="${HOST_OBJTOP}" \
            WITHOUT_SYSTEM_COMPILER=yes \
            WITHOUT_SYSTEM_LINKER=yes \

Reply via email to