Page MenuHomeFreeBSD

D19237.id59285.diff
No OneTemporary

D19237.id59285.diff

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 <arch><sub>-<vendor>-<sys>-<abi>
+# 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${OS_VERSION}
+.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${OS_VERSION}
+.ifdef TARGET_ABI
+TARGET_TRIPLE:=${TARGET_TRIPLE}-${TARGET_ABI}
+.endif
+.endif
+
KNOWN_ARCHES?= aarch64/arm64 \
amd64 \
arm \
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${OS_VERSION}
.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${OS_VERSION}
.else
-LIB32CPUFLAGS= -target mips-unknown-freebsd13.0
+LIB32CPUFLAGS= -target mips-unknown-freebsd${OS_VERSION}
.endif
.endif
LIB32CPUFLAGS+= -mabi=32
Index: lib/clang/llvm.build.mk
===================================================================
--- lib/clang/llvm.build.mk
+++ lib/clang/llvm.build.mk
@@ -10,6 +10,10 @@
.error Please define SRCDIR before including this file
.endif
+.ifndef OS_VERSION
+.error Please define OS_VERSION before including this file
+.endif
+
.PATH: ${LLVM_SRCS}/${SRCDIR}
CFLAGS+= -I${SRCTOP}/lib/clang/include
@@ -30,13 +34,16 @@
.elif ${TARGET_ARCH:Marm*}
TARGET_ABI= -gnueabi
.else
+.ifdef TARGET_ABI
+TARGET_ABI:= -${TARGET_ABI}
+.else
TARGET_ABI=
.endif
+.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${OS_VERSION}${TARGET_ABI}
+LLVM_BUILD_TRIPLE?= ${BUILD_ARCH:C/amd64/x86_64/:C/arm64/aarch64/}-${VENDOR}-freebsd${OS_VERSION}
CFLAGS+= -DLLVM_DEFAULT_TARGET_TRIPLE=\"${LLVM_TARGET_TRIPLE}\"
CFLAGS+= -DLLVM_HOST_TRIPLE=\"${LLVM_BUILD_TRIPLE}\"
Index: share/mk/sys.mk
===================================================================
--- share/mk/sys.mk
+++ share/mk/sys.mk
@@ -346,3 +346,10 @@
.endif
.endif # ! Posix
+
+# Parse FreeBSD version from /sys/sys/param.h and creates OS_VERSION
+# in the format used by clang's '-target' parameter (i.e. 13.0, 13.10)
+OS_VERSION!=grep '\#define __FreeBSD_version' $${SRCTOP}/sys/sys/param.h |\
+ awk '{ major=int(substr($$3,1,length($$3)-5)); \
+ minor=int(substr($$3,length($$3)-4,2)); \
+ print major "." minor }'

File Metadata

Mime Type
text/plain
Expires
Mon, Oct 13, 1:21 PM (2 h, 3 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
23677122
Default Alt Text
D19237.id59285.diff (3 KB)

Event Timeline