Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 23 Aug 2023 17:01:27 GMT
From:      Jessica Clarke <jrtc27@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: ecf01a8ebc44 - main - Makefile: Support universe-toolchain on non-FreeBSD
Message-ID:  <202308231701.37NH1RTT070100@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by jrtc27:

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

commit ecf01a8ebc443d1b33c7b61a22f28145f41c25a9
Author:     Jessica Clarke <jrtc27@FreeBSD.org>
AuthorDate: 2023-08-23 17:00:16 +0000
Commit:     Jessica Clarke <jrtc27@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 \



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202308231701.37NH1RTT070100>