Index: Makefile.inc1 =================================================================== --- Makefile.inc1 +++ Makefile.inc1 @@ -132,10 +132,25 @@ TARGET_ABI= gnueabi .endif .endif -MACHINE_ABI?= unknown -MACHINE_TRIPLE?=${MACHINE_ARCH:S/amd64/x86_64/:C/[hs]f$//:S/mipsn32/mips64/}-${MACHINE_ABI}-freebsd13.0 -TARGET_ABI?= unknown -TARGET_TRIPLE?= ${TARGET_ARCH:S/amd64/x86_64/:C/[hs]f$//: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/[hs]f$//: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/[hs]f$//:S/mipsn32/mips64/}-${TARGET_VENDOR}-freebsd${FREEBSD_REVISION} +. ifdef TARGET_ABI +TARGET_TRIPLE:=${TARGET_TRIPLE}-${TARGET_ABI} +. endif +.endif + KNOWN_ARCHES?= aarch64/arm64 \ amd64 \ armv6/arm \ @@ -536,10 +551,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 @@ -550,7 +561,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 @@ -569,7 +580,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) @@ -1874,7 +1885,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 @@ -3496,5 +3507,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: lib/clang/llvm.build.mk =================================================================== --- lib/clang/llvm.build.mk +++ lib/clang/llvm.build.mk @@ -14,6 +14,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_BASE}/${SRCDIR} CFLAGS+= -I${SRCTOP}/lib/clang/include @@ -36,14 +40,15 @@ 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/[hs]f$//:S/mipsn32/mips64/}-${VENDOR}-${OS_VERSION}${TARGET_ABI} -LLVM_BUILD_TRIPLE?= ${BUILD_ARCH:C/amd64/x86_64/:C/[hs]f$//:S/mipsn32/mips64/}-${VENDOR}-${OS_VERSION} +LLVM_TARGET_TRIPLE?= ${TARGET_ARCH:C/amd64/x86_64/:C/[hs]f$//:S/mipsn32/mips64/}-${VENDOR}-freebsd${FREEBSD_REVISION}${TARGET_ABI} +LLVM_BUILD_TRIPLE?= ${BUILD_ARCH:C/amd64/x86_64/:C/[hs]f$//:S/mipsn32/mips64/}-${VENDOR}-freebsd${FREEBSD_REVISION} CFLAGS+= -DLLVM_DEFAULT_TARGET_TRIPLE=\"${LLVM_TARGET_TRIPLE}\" CFLAGS+= -DLLVM_HOST_TRIPLE=\"${LLVM_BUILD_TRIPLE}\" Index: share/mk/bsd.compat.mk =================================================================== --- share/mk/bsd.compat.mk +++ share/mk/bsd.compat.mk @@ -30,7 +30,7 @@ .endif .if ${COMPAT_COMPILER_TYPE} == gcc .else -LIB32CPUFLAGS+= -target x86_64-unknown-freebsd13.0 +LIB32CPUFLAGS+= -target x86_64-unknown-freebsd${FREEBSD_REVISION} .endif LIB32CPUFLAGS+= -m32 LIB32_MACHINE= i386 @@ -69,9 +69,9 @@ .endif .else .if ${COMPAT_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: share/mk/local.meta.sys.mk =================================================================== --- share/mk/local.meta.sys.mk +++ share/mk/local.meta.sys.mk @@ -244,10 +244,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.