summaryrefslogtreecommitdiffstats
path: root/share
diff options
context:
space:
mode:
authorimp <imp@FreeBSD.org>2016-05-18 06:01:18 +0000
committerimp <imp@FreeBSD.org>2016-05-18 06:01:18 +0000
commit3b518c4dc10bf43b7ae4c1d618b3853c07293818 (patch)
tree6b3be8c1f55460e86fa3d3968f0fd655e0ebd2ba /share
parent28fe011e628781e5ebbde5d9dd55d81c88382819 (diff)
downloadFreeBSD-src-3b518c4dc10bf43b7ae4c1d618b3853c07293818.zip
FreeBSD-src-3b518c4dc10bf43b7ae4c1d618b3853c07293818.tar.gz
Make armv6 hard float abi by default. Kill armv6hf.
Allow CPUTYPE=soft to build the current soft-float abi libraries. Add UPDATING entry to announce this. Approved by: re@ (gjb)
Diffstat (limited to 'share')
-rw-r--r--share/mk/bsd.cpu.mk8
-rw-r--r--share/mk/local.meta.sys.mk2
-rw-r--r--share/mk/sys.mk2
3 files changed, 8 insertions, 4 deletions
diff --git a/share/mk/bsd.cpu.mk b/share/mk/bsd.cpu.mk
index 7081c9e..ff64d7d 100644
--- a/share/mk/bsd.cpu.mk
+++ b/share/mk/bsd.cpu.mk
@@ -309,14 +309,18 @@ MACHINE_CPU += arm
. if ${MACHINE_ARCH:Marmv6*} != ""
MACHINE_CPU += armv6
. endif
-# armv6 is a hybrid. It uses the softfp ABI, but doesn't emulate
+# armv6 is a hybrid. It can use the softfp ABI, but doesn't emulate
# floating point in the general case, so don't define softfp for
# it at this time. arm and armeb are pure softfp, so define it
# for them.
. if ${MACHINE_ARCH:Marmv6*} == ""
MACHINE_CPU += softfp
. endif
-.if ${MACHINE_ARCH} == "armv6"
+# Normally armv6 is hard float ABI from FreeBSD 11 onwards. However
+# when CPUTYPE has 'soft' in it, we use the soft-float ABI to allow
+# building of soft-float ABI libraries. In this case, we have to
+# add the -mfloat-abi=softfp to force that.
+.if ${MACHINE_ARCH:Marmv6*} && defined(CPUTYPE) && ${CPUTYPE:M*soft*} != ""
# Needs to be CFLAGS not _CPUCFLAGS because it's needed for the ABI
# not a nice optimization.
CFLAGS += -mfloat-abi=softfp
diff --git a/share/mk/local.meta.sys.mk b/share/mk/local.meta.sys.mk
index 6088c75..55febe0 100644
--- a/share/mk/local.meta.sys.mk
+++ b/share/mk/local.meta.sys.mk
@@ -43,7 +43,7 @@ OBJROOT:= ${OBJROOT:H:tA}/${OBJROOT:T}
.endif
# from src/Makefile (for universe)
-TARGET_ARCHES_arm?= arm armeb armv6 armv6hf
+TARGET_ARCHES_arm?= arm armeb armv6
TARGET_ARCHES_arm64?= aarch64
TARGET_ARCHES_mips?= mipsel mips mips64el mips64 mipsn32 mipsn32el
TARGET_ARCHES_powerpc?= powerpc powerpc64
diff --git a/share/mk/sys.mk b/share/mk/sys.mk
index 3b2d472a..7aea72f 100644
--- a/share/mk/sys.mk
+++ b/share/mk/sys.mk
@@ -13,7 +13,7 @@ unix ?= We run FreeBSD, not UNIX.
# and/or endian. This is called MACHINE_CPU in NetBSD, but that's used
# for something different in FreeBSD.
#
-MACHINE_CPUARCH=${MACHINE_ARCH:C/mips(n32|64)?(el)?/mips/:C/arm(v6)?(eb|hf)?/arm/:C/powerpc64/powerpc/:C/riscv64/riscv/}
+MACHINE_CPUARCH=${MACHINE_ARCH:C/mips(n32|64)?(el)?/mips/:C/arm(v6)?(eb)?/arm/:C/powerpc64/powerpc/:C/riscv64/riscv/}
.endif
OpenPOWER on IntegriCloud