From 1c02497648bdf61a43dd271f6f9171a037046d8e Mon Sep 17 00:00:00 2001 From: John Baldwin Date: Tue, 1 Aug 2023 14:01:57 -0700 Subject: [PATCH] Makefile.inc1: Enable requesting the universe toolchain. make universe builds a cross toolchain under HOST_OBJTMP/tmp via the universe-toolchain target. However, doing a plain 'make buildworld' after a universe/tinderbox run (e.g. to reproduce a failure and test the fix for it), will try to build a new cross toolchain under OBJTMP/tmp which can be tedious. This commit adds a make variable (UNIVERSE_TOOLCHAIN) which can be used similar to CROSS_TOOLCHAIN to request an external toolchain. If this variable is set (value doesn't matter), the the universe toolchain is used as an external toolchain. Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D40777 --- Makefile.inc1 | 8 ++++++++ Makefile.libcompat | 1 + 2 files changed, 9 insertions(+) diff --git a/Makefile.inc1 b/Makefile.inc1 index 2e965b603d78..c102348baa6f 100644 --- a/Makefile.inc1 +++ b/Makefile.inc1 @@ -73,6 +73,12 @@ TIME_ENV ?= time env .error CROSS_TOOLCHAIN ${CROSS_TOOLCHAIN} not found .endif CROSSENV+=CROSS_TOOLCHAIN="${CROSS_TOOLCHAIN}" +.elif defined(UNIVERSE_TOOLCHAIN) +UNIVERSE_TOOLCHAIN_PATH?=${HOST_OBJTOP}/tmp/usr/bin +XCC?="${UNIVERSE_TOOLCHAIN_PATH}/cc" +XCXX?="${UNIVERSE_TOOLCHAIN_PATH}/c++" +XCPP?="${UNIVERSE_TOOLCHAIN_PATH}/cpp" +XLD?="${UNIVERSE_TOOLCHAIN_PATH}/ld" .endif .if defined(CROSS_TOOLCHAIN_PREFIX) CROSS_COMPILER_PREFIX?=${CROSS_TOOLCHAIN_PREFIX} @@ -718,6 +724,7 @@ BMAKEENV= INSTALL="sh ${.CURDIR}/tools/install.sh" \ BSARGS= DESTDIR= \ OBJTOP='${WORLDTMP}/obj-tools' \ OBJROOT='$${OBJTOP}/' \ + UNIVERSE_TOOLCHAIN_PATH=${UNIVERSE_TOOLCHAIN_PATH} \ MAKEOBJDIRPREFIX= \ BOOTSTRAPPING=${BOOTSTRAPPING_OSRELDATE} \ BWPHASE=${.TARGET:C,^_,,} \ @@ -789,6 +796,7 @@ KTMAKE= ${TIME_ENV} \ DESTDIR= \ OBJTOP='${WORLDTMP}/obj-kernel-tools' \ OBJROOT='$${OBJTOP}/' \ + UNIVERSE_TOOLCHAIN_PATH=${UNIVERSE_TOOLCHAIN_PATH} \ MAKEOBJDIRPREFIX= \ BOOTSTRAPPING=${BOOTSTRAPPING_OSRELDATE} \ -DNO_CPU_CFLAGS \ diff --git a/Makefile.libcompat b/Makefile.libcompat index f9fe28e1082b..da9c326756aa 100644 --- a/Makefile.libcompat +++ b/Makefile.libcompat @@ -37,6 +37,7 @@ LIB${_LIBCOMPAT}WMAKE+= ${TIME_ENV} ${LIB${_LIBCOMPAT}WMAKEENV} ${MAKE} \ ${LIB${_LIBCOMPAT}WMAKEFLAGS} \ OBJTOP=${LIB${_LIBCOMPAT}_OBJTOP} \ OBJROOT='$${OBJTOP}/' \ + UNIVERSE_TOOLCHAIN_PATH=${UNIVERSE_TOOLCHAIN_PATH} \ MAKEOBJDIRPREFIX= \ MK_INCLUDES=no \ MK_MAN=no MK_HTML=no