Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F131962810
D19237.id59285.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
3 KB
Referenced Files
None
Subscribers
None
D19237.id59285.diff
View Options
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
Details
Attached
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)
Attached To
Mode
D19237: Fix TARGET_TRIPLE assembly and retrieve OS version automatically
Attached
Detach File
Event Timeline
Log In to Comment