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
This commit is contained in:
parent
730bb3b249
commit
6fbb928f93
@ -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}\"
|
||||
|
Loading…
Reference in New Issue
Block a user