Index: Makefile.inc1 =================================================================== --- Makefile.inc1 +++ Makefile.inc1 @@ -128,10 +128,25 @@ TARGET_ABI= gnueabi .endif .endif -MACHINE_ABI?= unknown -MACHINE_TRIPLE?=${MACHINE_ARCH:S/amd64/x86_64/:C/hf$//:S/mipsn32/mips64/}-${MACHINE_ABI}-freebsd13.0 -TARGET_ABI?= unknown -TARGET_TRIPLE?= ${TARGET_ARCH:S/amd64/x86_64/:C/hf$//:S/mipsn32/mips64/}-${TARGET_ABI}-freebsd13.0 +MACHINE_VENDOR?= unknown +TARGET_VENDOR?= unknown + +# The triple has the general format --- +# See https://clang.llvm.org/docs/CrossCompilation.html#target-triple +.ifndef MACHINE_TRIPLE +MACHINE_TRIPLE?=${MACHINE_ARCH:S/amd64/x86_64/:C/hf$//:S/mipsn32/mips64/}-${MACHINE_VENDOR}-freebsd${FREEBSD_REVISION} +.ifdef MACHINE_ABI +MACHINE_TRIPLE:=${MACHINE_TRIPLE}-${MACHINE_ABI} +.endif +.endif + +.ifndef TARGET_TRIPLE +TARGET_TRIPLE?= ${TARGET_ARCH:S/amd64/x86_64/:C/hf$//:S/mipsn32/mips64/}-${TARGET_VENDOR}-freebsd${FREEBSD_REVISION} +.ifdef TARGET_ABI +TARGET_TRIPLE:=${TARGET_TRIPLE}-${TARGET_ABI} +.endif +.endif + KNOWN_ARCHES?= aarch64/arm64 \ amd64 \ arm \ @@ -534,10 +549,6 @@ .endif # Set VERSION for CTFMERGE to use via the default CTFFLAGS=-L VERSION. -.if !defined(_REVISION) -_REVISION!= ${MAKE} -C ${SRCDIR}/release MK_AUTO_OBJ=no -V REVISION -.export _REVISION -.endif .if !defined(_BRANCH) _BRANCH!= ${MAKE} -C ${SRCDIR}/release MK_AUTO_OBJ=no -V BRANCH .export _BRANCH @@ -548,7 +559,7 @@ .export SRCRELDATE .endif .if !defined(VERSION) -VERSION= FreeBSD ${_REVISION}-${_BRANCH:C/-p[0-9]+$//} ${TARGET_ARCH} ${SRCRELDATE} +VERSION= FreeBSD ${FREEBSD_REVISION}-${_BRANCH:C/-p[0-9]+$//} ${TARGET_ARCH} ${SRCRELDATE} .export VERSION .endif @@ -567,7 +578,7 @@ .elif ${_BRANCH:M*-p*} EXTRA_REVISION= _${_BRANCH:C/.*-p([0-9]+$)/\1/} .endif -PKG_VERSION= ${_REVISION}${EXTRA_REVISION} +PKG_VERSION= ${FREEBSD_REVISION}${EXTRA_REVISION} .endif .endif # !defined(PKG_VERSION) @@ -1808,7 +1819,7 @@ package-pkg: .PHONY rm -rf /tmp/ports.${TARGET} || : - env ${WMAKEENV:Q} SRCDIR=${.CURDIR} PORTSDIR=${PORTSDIR} REVISION=${_REVISION} \ + env ${WMAKEENV:Q} SRCDIR=${.CURDIR} PORTSDIR=${PORTSDIR} REVISION=${FREEBSD_REVISION} \ PKG_CMD=${PKG_CMD} PKG_VERSION=${PKG_VERSION} REPODIR=${REPODIR} \ WSTAGEDIR=${WSTAGEDIR} \ sh ${.CURDIR}/release/scripts/make-pkg-package.sh @@ -3393,5 +3404,5 @@ ln -sf ../../${XDTP}/usr/bin/$$i \ ../../../../usr/bin/${XDDIR}-$$i; \ ln -sf ../../${XDTP}/usr/bin/$$i \ - ../../../../usr/bin/${XDDIR}${_REVISION}-$$i; \ + ../../../../usr/bin/${XDDIR}${FREEBSD_REVISION}-$$i; \ done Index: Makefile.libcompat =================================================================== --- Makefile.libcompat +++ Makefile.libcompat @@ -17,7 +17,7 @@ .if ${WANT_COMPILER_TYPE} == gcc || \ (defined(X_COMPILER_TYPE) && ${X_COMPILER_TYPE} == gcc) .else -LIB32CPUFLAGS+= -target x86_64-unknown-freebsd13.0 +LIB32CPUFLAGS+= -target x86_64-unknown-freebsd${FREEBSD_REVISION} .endif LIB32CPUFLAGS+= -m32 LIB32WMAKEENV= MACHINE=i386 MACHINE_ARCH=i386 \ @@ -49,9 +49,9 @@ .endif .else .if ${TARGET_ARCH:Mmips64el*} != "" -LIB32CPUFLAGS= -target mipsel-unknown-freebsd13.0 +LIB32CPUFLAGS= -target mipsel-unknown-freebsd${FREEBSD_REVISION} .else -LIB32CPUFLAGS= -target mips-unknown-freebsd13.0 +LIB32CPUFLAGS= -target mips-unknown-freebsd${FREEBSD_REVISION} .endif .endif LIB32CPUFLAGS+= -mabi=32 Index: lib/clang/llvm.build.mk =================================================================== --- lib/clang/llvm.build.mk +++ lib/clang/llvm.build.mk @@ -1,6 +1,7 @@ # $FreeBSD$ .include +.include .ifndef LLVM_SRCS .error Please define LLVM_SRCS before including this file @@ -10,6 +11,10 @@ .error Please define SRCDIR before including this file .endif +.ifndef FREEBSD_REVISION +.error Please define FREEBSD_REVISION before including this file +.endif + .PATH: ${LLVM_SRCS}/${SRCDIR} CFLAGS+= -I${SRCTOP}/lib/clang/include @@ -29,14 +34,16 @@ TARGET_ABI= -gnueabihf .elif ${TARGET_ARCH:Marm*} TARGET_ABI= -gnueabi +.elif defined(TARGET_ABI) +TARGET_ABI:= -${TARGET_ABI} .else TARGET_ABI= .endif + VENDOR= unknown -OS_VERSION= freebsd13.0 -LLVM_TARGET_TRIPLE?= ${TARGET_ARCH:C/amd64/x86_64/:C/arm64/aarch64/}-${VENDOR}-${OS_VERSION}${TARGET_ABI} -LLVM_BUILD_TRIPLE?= ${BUILD_ARCH:C/amd64/x86_64/:C/arm64/aarch64/}-${VENDOR}-${OS_VERSION} +LLVM_TARGET_TRIPLE?= ${TARGET_ARCH:C/amd64/x86_64/:C/arm64/aarch64/}-${VENDOR}-freebsd${FREEBSD_REVISION}${TARGET_ABI} +LLVM_BUILD_TRIPLE?= ${BUILD_ARCH:C/amd64/x86_64/:C/arm64/aarch64/}-${VENDOR}-freebsd${FREEBSD_REVISION} CFLAGS+= -DLLVM_DEFAULT_TARGET_TRIPLE=\"${LLVM_TARGET_TRIPLE}\" CFLAGS+= -DLLVM_HOST_TRIPLE=\"${LLVM_BUILD_TRIPLE}\" Index: share/mk/local.meta.sys.mk =================================================================== --- share/mk/local.meta.sys.mk +++ share/mk/local.meta.sys.mk @@ -242,10 +242,6 @@ .if ${MACHINE:Nhost:Ncommon} != "" && ${MACHINE} != ${HOST_MACHINE} # cross-building -.if !defined(FREEBSD_REVISION) -FREEBSD_REVISION!= sed -n '/^REVISION=/{s,.*=,,;s,",,g;p; }' ${SRCTOP}/sys/conf/newvers.sh -.export FREEBSD_REVISION -.endif CROSS_TARGET_FLAGS= -target ${MACHINE_ARCH}-unknown-freebsd${FREEBSD_REVISION} CFLAGS+= ${CROSS_TARGET_FLAGS} ACFLAGS+= ${CROSS_TARGET_FLAGS} Index: share/mk/src.sys.env.mk =================================================================== --- share/mk/src.sys.env.mk +++ share/mk/src.sys.env.mk @@ -23,6 +23,11 @@ RELOBJTOP?= ${RELTOP} RELSRCTOP?= ${RELTOP} +.if !defined(FREEBSD_REVISION) +FREEBSD_REVISION!= sed -n '/^REVISION=/{s,.*=,,;s,",,g;p; }' ${SRCTOP}/sys/conf/newvers.sh +.export FREEBSD_REVISION +.endif + # site customizations that do not depend on anything! # Save MAKEOBJDIRPREFIX and don't let src-env.conf modify it.