svn commit: r319473 - head/lib/clang
Dimitry Andric
dim at FreeBSD.org
Thu Jun 1 21:05:58 UTC 2017
Author: dim
Date: Thu Jun 1 21:05:56 2017
New Revision: 319473
URL: https://svnweb.freebsd.org/changeset/base/319473
Log:
For arm targets, place ABI at the end of the target triple
For some reason, we have been inserting the ABI specification into the
middle of the target triple, when building LLVM, like so:
armv6-gnueabi-freebsd12.0
This is the wrong way around. LLVM even auto-canonicalizes it to:
armv6--freebsd12.0-gnueabi
Let's do this the right way in llvm.build.mk instead. While here,
define a proper VENDOR macro which can be overridden easily.
Reviewed by: emaste
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D10846
Modified:
head/lib/clang/llvm.build.mk
Modified: head/lib/clang/llvm.build.mk
==============================================================================
--- head/lib/clang/llvm.build.mk Thu Jun 1 20:59:33 2017 (r319472)
+++ head/lib/clang/llvm.build.mk Thu Jun 1 21:05:56 2017 (r319473)
@@ -25,16 +25,17 @@ BUILD_ARCH?= ${MACHINE_ARCH}
# arm (for armv4 and armv5 CPUs) always uses the soft float ABI.
# For all other targets, we stick with 'unknown'.
.if ${TARGET_ARCH:Marmv6*} && (!defined(CPUTYPE) || ${CPUTYPE:M*soft*} == "")
-TARGET_ABI= gnueabihf
+TARGET_ABI= -gnueabihf
.elif ${TARGET_ARCH:Marm*}
-TARGET_ABI= gnueabi
+TARGET_ABI= -gnueabi
.else
-TARGET_ABI= unknown
+TARGET_ABI=
.endif
+VENDOR= unknown
OS_VERSION= freebsd12.0
-TARGET_TRIPLE?= ${TARGET_ARCH:C/amd64/x86_64/:C/arm64/aarch64/}-${TARGET_ABI}-${OS_VERSION}
-BUILD_TRIPLE?= ${BUILD_ARCH:C/amd64/x86_64/:C/arm64/aarch64/}-unknown-${OS_VERSION}
+TARGET_TRIPLE?= ${TARGET_ARCH:C/amd64/x86_64/:C/arm64/aarch64/}-${VENDOR}-${OS_VERSION}${TARGET_ABI}
+BUILD_TRIPLE?= ${BUILD_ARCH:C/amd64/x86_64/:C/arm64/aarch64/}-${VENDOR}-${OS_VERSION}
CFLAGS+= -DLLVM_DEFAULT_TARGET_TRIPLE=\"${TARGET_TRIPLE}\"
CFLAGS+= -DLLVM_HOST_TRIPLE=\"${BUILD_TRIPLE}\"
More information about the svn-src-all
mailing list