diff options
| author | Warner Losh <imp@FreeBSD.org> | 2016-05-18 06:01:18 +0000 |
|---|---|---|
| committer | Warner Losh <imp@FreeBSD.org> | 2016-05-18 06:01:18 +0000 |
| commit | 2c0e9e2a0944d76a442e1b69ae5aa880301efc24 (patch) | |
| tree | 6b3be8c1f55460e86fa3d3968f0fd655e0ebd2ba /lib | |
| parent | c42a9b6a73ddbbbd4184d9448a9dd0c37c85fbe6 (diff) | |
Notes
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/clang/clang.build.mk | 11 | ||||
| -rw-r--r-- | lib/libc/Makefile | 3 | ||||
| -rw-r--r-- | lib/libc/arm/Makefile.inc | 2 | ||||
| -rw-r--r-- | lib/libc/arm/aeabi/Makefile.inc | 5 | ||||
| -rw-r--r-- | lib/libc/arm/gen/Makefile.inc | 2 | ||||
| -rw-r--r-- | lib/libcompiler_rt/Makefile | 5 | ||||
| -rw-r--r-- | lib/msun/arm/Makefile.inc | 2 | ||||
| -rw-r--r-- | lib/msun/arm/fenv-vfp.c | 4 |
8 files changed, 21 insertions, 13 deletions
diff --git a/lib/clang/clang.build.mk b/lib/clang/clang.build.mk index 6bc4cdff16b74..a2ee0a515b7c1 100644 --- a/lib/clang/clang.build.mk +++ b/lib/clang/clang.build.mk @@ -21,16 +21,19 @@ CFLAGS+= -fno-strict-aliasing TARGET_ARCH?= ${MACHINE_ARCH} BUILD_ARCH?= ${MACHINE_ARCH} -.if ${TARGET_ARCH:Marm*hf*} != "" +# Armv6 uses hard float abi, unless the CPUTYPE has soft in it. +# 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 -.elif ${TARGET_ARCH:Marm*} != "" +.elif ${TARGET_ARCH:Marm*} TARGET_ABI= gnueabi .else TARGET_ABI= unknown .endif -TARGET_TRIPLE?= ${TARGET_ARCH:C/amd64/x86_64/:C/armv6hf/armv6/:C/arm64/aarch64/}-${TARGET_ABI}-freebsd11.0 -BUILD_TRIPLE?= ${BUILD_ARCH:C/amd64/x86_64/:C/armv6hf/armv6/:C/arm64/aarch64/}-unknown-freebsd11.0 +TARGET_TRIPLE?= ${TARGET_ARCH:C/amd64/x86_64/:C/arm64/aarch64/}-${TARGET_ABI}-freebsd11.0 +BUILD_TRIPLE?= ${BUILD_ARCH:C/amd64/x86_64/:C/arm64/aarch64/}-unknown-freebsd11.0 CFLAGS+= -DLLVM_DEFAULT_TARGET_TRIPLE=\"${TARGET_TRIPLE}\" \ -DLLVM_HOST_TRIPLE=\"${BUILD_TRIPLE}\" \ -DDEFAULT_SYSROOT=\"${TOOLS_PREFIX}\" diff --git a/lib/libc/Makefile b/lib/libc/Makefile index 3b72a1bbf32fd..e511c9b48186f 100644 --- a/lib/libc/Makefile +++ b/lib/libc/Makefile @@ -105,7 +105,8 @@ NOASM= .include "${LIBC_SRCTOP}/rpc/Makefile.inc" .include "${LIBC_SRCTOP}/uuid/Makefile.inc" .include "${LIBC_SRCTOP}/xdr/Makefile.inc" -.if (${LIBC_ARCH} == "arm" && ${MACHINE_ARCH} != "armv6hf") ||\ +.if (${LIBC_ARCH} == "arm" && \ + (${MACHINE_ARCH:Marmv6*} == "" || (defined(CPUTYPE) && ${CPUTYPE:M*soft*}))) || \ ${LIBC_ARCH} == "mips" .include "${LIBC_SRCTOP}/softfloat/Makefile.inc" .endif diff --git a/lib/libc/arm/Makefile.inc b/lib/libc/arm/Makefile.inc index 418f54d1d51ad..c263ae715e294 100644 --- a/lib/libc/arm/Makefile.inc +++ b/lib/libc/arm/Makefile.inc @@ -11,7 +11,7 @@ SYM_MAPS+=${LIBC_SRCTOP}/arm/Symbol.map .include "${LIBC_SRCTOP}/arm/aeabi/Makefile.inc" -.if ${MACHINE_ARCH:Marm*hf*} != "" +.if ${MACHINE_ARCH:Marmv6*} && (!defined(CPUTYPE) || ${CPUTYPE:M*soft*} == "") SYM_MAPS+=${LIBC_SRCTOP}/arm/Symbol_vfp.map .endif diff --git a/lib/libc/arm/aeabi/Makefile.inc b/lib/libc/arm/aeabi/Makefile.inc index 612e47fb9d3a0..b036db88dfa6b 100644 --- a/lib/libc/arm/aeabi/Makefile.inc +++ b/lib/libc/arm/aeabi/Makefile.inc @@ -5,13 +5,14 @@ SRCS+= aeabi_atexit.c \ aeabi_unwind_cpp.c \ aeabi_unwind_exidx.c -.if ${MACHINE_ARCH:Marm*hf*} == "" +.if (${MACHINE_ARCH:Marmv6*} && defined(CPUTYPE) && ${CPUTYPE:M*soft*} != "") || \ + ${MACHINE_ARCH:Marmv6*} == "" SRCS+= aeabi_asm_double.S \ aeabi_asm_float.S \ aeabi_double.c \ aeabi_float.c .endif -.if ${MACHINE_ARCH:Marmv6*} +.if ${MACHINE_ARCH:Marmv6*} && (!defined(CPUTYPE) || ${CPUTYPE:M*soft*} == "") SRCS+= aeabi_vfp_double.S \ aeabi_vfp_float.S .endif diff --git a/lib/libc/arm/gen/Makefile.inc b/lib/libc/arm/gen/Makefile.inc index c0f53927bc817..615ee17dc4494 100644 --- a/lib/libc/arm/gen/Makefile.inc +++ b/lib/libc/arm/gen/Makefile.inc @@ -7,7 +7,7 @@ SRCS+= _ctx_start.S _setjmp.S _set_tp.c alloca.S fabs.c \ arm_initfini.c \ trivial-getcontextx.c -.if ${MACHINE_ARCH} == "armv6hf" +.if ${MACHINE_ARCH:Marmv6*} && (!defined(CPUTYPE) || ${CPUTYPE:M*soft*} == "") SRCS+= fpgetmask_vfp.c fpgetround_vfp.c fpgetsticky_vfp.c fpsetmask_vfp.c \ fpsetround_vfp.c fpsetsticky_vfp.c .endif diff --git a/lib/libcompiler_rt/Makefile b/lib/libcompiler_rt/Makefile index 8959225e409f2..011bead3995ff 100644 --- a/lib/libcompiler_rt/Makefile +++ b/lib/libcompiler_rt/Makefile @@ -199,9 +199,10 @@ SRCF+= stdatomic .endif .for file in ${SRCF} -. if ${MACHINE_ARCH:Marm*hf*} != "" && exists(${CRTSRC}/${CRTARCH}/${file}vfp.S) +.if ${MACHINE_ARCH:Marmv6*} && (!defined(CPUTYPE) || ${CPUTYPE:M*soft*} == "") && \ + exists(${CRTSRC}/${CRTARCH}/${file}vfp.S) SRCS+= ${file}vfp.S -. elif !(${MACHINE_CPUARCH} == "arm" && ${MACHINE_ARCH:Marm*hf*} == "") && exists(${CRTSRC}/${CRTARCH}/${file}.S) +. elif exists(${CRTSRC}/${CRTARCH}/${file}.S) SRCS+= ${file}.S . else SRCS+= ${file}.c diff --git a/lib/msun/arm/Makefile.inc b/lib/msun/arm/Makefile.inc index 535d5ea3f12f9..eb73e63b47cd9 100644 --- a/lib/msun/arm/Makefile.inc +++ b/lib/msun/arm/Makefile.inc @@ -3,7 +3,7 @@ LDBL_PREC = 53 SYM_MAPS += ${.CURDIR}/arm/Symbol.map -.if ${TARGET_ARCH} == "armv6" +.if ${MACHINE_ARCH:Marmv6*} && defined(CPUTYPE) && ${CPUTYPE:M*soft*} != "" ARCH_SRCS = fenv-softfp.c fenv-vfp.c .endif diff --git a/lib/msun/arm/fenv-vfp.c b/lib/msun/arm/fenv-vfp.c index fd615f3a96d5f..ee02ae8458ca0 100644 --- a/lib/msun/arm/fenv-vfp.c +++ b/lib/msun/arm/fenv-vfp.c @@ -28,6 +28,8 @@ #define FENV_MANGLE(x) __vfp_ ##x #include "fenv-mangle.h" -#define __ARM_PCS_VFP +#ifndef __ARM_PCS_VFP +#define __ARM_PCS_VFP 1 +#endif #include "fenv.c" |
