svn commit: r255062 - in projects/arm_eabi_vfp: . contrib/binutils/bfd gnu/usr.bin/binutils gnu/usr.bin/cc gnu/usr.bin/gdb gnu/usr.bin/gdb/libgdb lib/clang lib/libc share/mk usr.bin/xlint
Andrew Turner
andrew at FreeBSD.org
Fri Aug 30 08:29:26 UTC 2013
Author: andrew
Date: Fri Aug 30 08:29:23 2013
New Revision: 255062
URL: http://svnweb.freebsd.org/changeset/base/255062
Log:
Add a new TARGET_ARCH value for ARM hard-float, armv6hf. It is only
buildable with clang as gcc is too old to build this using the VFP
registers. Newer versions of gcc added this after it changed to GPLv3.
Modified:
projects/arm_eabi_vfp/Makefile
projects/arm_eabi_vfp/Makefile.inc1
projects/arm_eabi_vfp/contrib/binutils/bfd/config.bfd
projects/arm_eabi_vfp/gnu/usr.bin/binutils/Makefile.inc0
projects/arm_eabi_vfp/gnu/usr.bin/cc/Makefile.tgt
projects/arm_eabi_vfp/gnu/usr.bin/gdb/Makefile.inc
projects/arm_eabi_vfp/gnu/usr.bin/gdb/libgdb/Makefile
projects/arm_eabi_vfp/lib/clang/clang.build.mk
projects/arm_eabi_vfp/lib/libc/Makefile
projects/arm_eabi_vfp/share/mk/bsd.endian.mk
projects/arm_eabi_vfp/share/mk/bsd.own.mk
projects/arm_eabi_vfp/share/mk/sys.mk
projects/arm_eabi_vfp/usr.bin/xlint/Makefile.inc
Modified: projects/arm_eabi_vfp/Makefile
==============================================================================
--- projects/arm_eabi_vfp/Makefile Fri Aug 30 08:25:07 2013 (r255061)
+++ projects/arm_eabi_vfp/Makefile Fri Aug 30 08:29:23 2013 (r255062)
@@ -164,7 +164,7 @@ _MAKE= PATH=${PATH} ${SUB_MAKE} -f Makef
_TARGET_ARCH= ${TARGET:S/pc98/i386/}
.elif !defined(TARGET) && defined(TARGET_ARCH) && \
${TARGET_ARCH} != ${MACHINE_ARCH}
-_TARGET= ${TARGET_ARCH:C/mips(n32|64)?(el)?/mips/:C/arm(v6)?(eb)?/arm/}
+_TARGET= ${TARGET_ARCH:C/mips(n32|64)?(el)?/mips/:C/arm(v6)?(eb|hf)?/arm/}
.endif
# Legacy names, for another transition period mips:mips(n32|64)?eb -> mips:mips\1
.if defined(TARGET) && defined(TARGET_ARCH) && \
@@ -374,7 +374,7 @@ kernel-toolchains:
#
.if make(universe) || make(universe_kernels) || make(tinderbox) || make(targets)
TARGETS?=amd64 arm i386 ia64 mips pc98 powerpc sparc64
-TARGET_ARCHES_arm?= arm armeb armv6 armv6eb
+TARGET_ARCHES_arm?= arm armeb armv6 armv6eb armv6hf
TARGET_ARCHES_mips?= mipsel mips mips64el mips64 mipsn32
TARGET_ARCHES_powerpc?= powerpc powerpc64
TARGET_ARCHES_pc98?= i386
Modified: projects/arm_eabi_vfp/Makefile.inc1
==============================================================================
--- projects/arm_eabi_vfp/Makefile.inc1 Fri Aug 30 08:25:07 2013 (r255061)
+++ projects/arm_eabi_vfp/Makefile.inc1 Fri Aug 30 08:29:23 2013 (r255062)
@@ -132,7 +132,7 @@ VERSION!= uname -srp
VERSION+= ${OSRELDATE}
.endif
-KNOWN_ARCHES?= amd64 arm armeb/arm armv6/arm armv6eb/arm i386 i386/pc98 ia64 mips mipsel/mips mips64el/mips mips64/mips mipsn32el/mips mipsn32/mips powerpc powerpc64/powerpc sparc64
+KNOWN_ARCHES?= amd64 arm armeb/arm armv6/arm armv6eb/arm armv6hf/arm i386 i386/pc98 ia64 mips mipsel/mips mips64el/mips mips64/mips mipsn32el/mips mipsn32/mips powerpc powerpc64/powerpc sparc64
.if ${TARGET} == ${TARGET_ARCH}
_t= ${TARGET}
.else
@@ -326,6 +326,8 @@ XFLAGS+= -B${WORLDTMP}/usr/bin
.if (${TARGET_ARCH} == "arm" || ${TARGET_ARCH} == "armv6") && \
${MK_ARM_EABI} != "no"
TARGET_ABI= gnueabi
+.elif ${TARGET_ARCH} == "armv6hf"
+TARGET_ABI= gnueabihf
.else
TARGET_ABI= unknown
.endif
Modified: projects/arm_eabi_vfp/contrib/binutils/bfd/config.bfd
==============================================================================
--- projects/arm_eabi_vfp/contrib/binutils/bfd/config.bfd Fri Aug 30 08:25:07 2013 (r255061)
+++ projects/arm_eabi_vfp/contrib/binutils/bfd/config.bfd Fri Aug 30 08:29:23 2013 (r255062)
@@ -281,7 +281,7 @@ case "${targ}" in
targ_defvec=bfd_elf32_bigarm_vec
targ_selvecs=bfd_elf32_littlearm_vec
;;
- armv6-*-freebsd*)
+ armv6-*-freebsd* | armv6hf-*-freebsd*)
targ_defvec=bfd_elf32_littlearm_vec
targ_selvecs=bfd_elf32_bigarm_vec
;;
Modified: projects/arm_eabi_vfp/gnu/usr.bin/binutils/Makefile.inc0
==============================================================================
--- projects/arm_eabi_vfp/gnu/usr.bin/binutils/Makefile.inc0 Fri Aug 30 08:25:07 2013 (r255061)
+++ projects/arm_eabi_vfp/gnu/usr.bin/binutils/Makefile.inc0 Fri Aug 30 08:29:23 2013 (r255062)
@@ -7,7 +7,7 @@
VERSION= "2.17.50 [FreeBSD] 2007-07-03"
.if defined(TARGET_ARCH)
-TARGET_CPUARCH=${TARGET_ARCH:C/mips(n32|64)?(el)?/mips/:C/arm(v6)?(eb)?/arm/:C/powerpc64/powerpc/}
+TARGET_CPUARCH=${TARGET_ARCH:C/mips(n32|64)?(el)?/mips/:C/arm(v6)?(eb|hf)?/arm/:C/powerpc64/powerpc/}
.else
TARGET_CPUARCH=${MACHINE_CPUARCH}
.endif
Modified: projects/arm_eabi_vfp/gnu/usr.bin/cc/Makefile.tgt
==============================================================================
--- projects/arm_eabi_vfp/gnu/usr.bin/cc/Makefile.tgt Fri Aug 30 08:25:07 2013 (r255061)
+++ projects/arm_eabi_vfp/gnu/usr.bin/cc/Makefile.tgt Fri Aug 30 08:29:23 2013 (r255062)
@@ -4,7 +4,7 @@
# MACHINE_CPUARCH, but there's no easy way to export make functions...
.if defined(TARGET_ARCH)
-TARGET_CPUARCH=${TARGET_ARCH:C/mips(n32|64)?(el)?/mips/:C/arm(v6)?(eb)?/arm/:C/powerpc64/powerpc/}
+TARGET_CPUARCH=${TARGET_ARCH:C/mips(n32|64)?(el)?/mips/:C/arm(v6)?(eb|hf)?/arm/:C/powerpc64/powerpc/}
.else
TARGET_CPUARCH=${MACHINE_CPUARCH}
.endif
Modified: projects/arm_eabi_vfp/gnu/usr.bin/gdb/Makefile.inc
==============================================================================
--- projects/arm_eabi_vfp/gnu/usr.bin/gdb/Makefile.inc Fri Aug 30 08:25:07 2013 (r255061)
+++ projects/arm_eabi_vfp/gnu/usr.bin/gdb/Makefile.inc Fri Aug 30 08:29:23 2013 (r255062)
@@ -20,7 +20,7 @@ OBJ_GDB= ${OBJ_ROOT}/gdb
# MACHINE_CPUARCH, but there's no easy way to export make functions...
.if defined(TARGET_ARCH)
-TARGET_CPUARCH=${TARGET_ARCH:C/mips(n32|64)?(el)?/mips/:C/arm(v6)?(eb)?/arm/:C/powerpc64/powerpc/}
+TARGET_CPUARCH=${TARGET_ARCH:C/mips(n32|64)?(el)?/mips/:C/arm(v6)?(eb|hf)?/arm/:C/powerpc64/powerpc/}
.else
TARGET_CPUARCH=${MACHINE_CPUARCH}
.endif
Modified: projects/arm_eabi_vfp/gnu/usr.bin/gdb/libgdb/Makefile
==============================================================================
--- projects/arm_eabi_vfp/gnu/usr.bin/gdb/libgdb/Makefile Fri Aug 30 08:25:07 2013 (r255061)
+++ projects/arm_eabi_vfp/gnu/usr.bin/gdb/libgdb/Makefile Fri Aug 30 08:29:23 2013 (r255062)
@@ -4,7 +4,7 @@
# MACHINE_CPUARCH, but there's no easy way to export make functions...
.if defined(TARGET_ARCH)
-TARGET_CPUARCH=${TARGET_ARCH:C/mips(n32|64)?(el)?/mips/:C/arm(v6)?(eb)?/arm/:C/powerpc64/powerpc/}
+TARGET_CPUARCH=${TARGET_ARCH:C/mips(n32|64)?(el)?/mips/:C/arm(v6)?(eb|hf)?/arm/:C/powerpc64/powerpc/}
.else
TARGET_CPUARCH=${MACHINE_CPUARCH}
.endif
Modified: projects/arm_eabi_vfp/lib/clang/clang.build.mk
==============================================================================
--- projects/arm_eabi_vfp/lib/clang/clang.build.mk Fri Aug 30 08:25:07 2013 (r255061)
+++ projects/arm_eabi_vfp/lib/clang/clang.build.mk Fri Aug 30 08:29:23 2013 (r255062)
@@ -23,12 +23,14 @@ BUILD_ARCH?= ${MACHINE_ARCH}
.if (${TARGET_ARCH} == "arm" || ${TARGET_ARCH} == "armv6") && \
${MK_ARM_EABI} != "no"
TARGET_ABI= gnueabi
+.elif ${TARGET_ARCH} == "armv6hf"
+TARGET_ABI= gnueabihf
.else
TARGET_ABI= unknown
.endif
-TARGET_TRIPLE?= ${TARGET_ARCH:C/amd64/x86_64/}-${TARGET_ABI}-freebsd10.0
-BUILD_TRIPLE?= ${BUILD_ARCH:C/amd64/x86_64/}-unknown-freebsd10.0
+TARGET_TRIPLE?= ${TARGET_ARCH:C/amd64/x86_64/:C/armv6hf/armv6/}-${TARGET_ABI}-freebsd10.0
+BUILD_TRIPLE?= ${BUILD_ARCH:C/amd64/x86_64/:C/armv6hf/armv6/}-unknown-freebsd10.0
CFLAGS+= -DLLVM_DEFAULT_TARGET_TRIPLE=\"${TARGET_TRIPLE}\" \
-DLLVM_HOST_TRIPLE=\"${BUILD_TRIPLE}\" \
-DDEFAULT_SYSROOT=\"${TOOLS_PREFIX}\"
Modified: projects/arm_eabi_vfp/lib/libc/Makefile
==============================================================================
--- projects/arm_eabi_vfp/lib/libc/Makefile Fri Aug 30 08:25:07 2013 (r255061)
+++ projects/arm_eabi_vfp/lib/libc/Makefile Fri Aug 30 08:29:23 2013 (r255062)
@@ -93,7 +93,8 @@ NOASM=
.include "${.CURDIR}/rpc/Makefile.inc"
.include "${.CURDIR}/uuid/Makefile.inc"
.include "${.CURDIR}/xdr/Makefile.inc"
-.if ${LIBC_ARCH} == "arm" || ${LIBC_ARCH} == "mips"
+.if (${LIBC_ARCH} == "arm" && ${MACHINE_ARCH} != "armv6hf") ||\
+ ${LIBC_ARCH} == "mips"
.include "${.CURDIR}/softfloat/Makefile.inc"
.endif
.if ${MK_NIS} != "no"
Modified: projects/arm_eabi_vfp/share/mk/bsd.endian.mk
==============================================================================
--- projects/arm_eabi_vfp/share/mk/bsd.endian.mk Fri Aug 30 08:25:07 2013 (r255061)
+++ projects/arm_eabi_vfp/share/mk/bsd.endian.mk Fri Aug 30 08:29:23 2013 (r255062)
@@ -5,6 +5,7 @@
${MACHINE_ARCH} == "ia64" || \
${MACHINE_ARCH} == "arm" || \
${MACHINE_ARCH} == "armv6" || \
+ ${MACHINE_ARCH} == "armv6hf" || \
${MACHINE_ARCH:Mmips*el} != ""
TARGET_ENDIANNESS= 1234
.elif ${MACHINE_ARCH} == "powerpc" || \
Modified: projects/arm_eabi_vfp/share/mk/bsd.own.mk
==============================================================================
--- projects/arm_eabi_vfp/share/mk/bsd.own.mk Fri Aug 30 08:25:07 2013 (r255061)
+++ projects/arm_eabi_vfp/share/mk/bsd.own.mk Fri Aug 30 08:29:23 2013 (r255062)
@@ -284,7 +284,6 @@ __DEFAULT_YES_OPTIONS = \
FP_LIBC \
FREEBSD_UPDATE \
GAMES \
- GCC \
GCOV \
GDB \
GNU \
@@ -405,7 +404,7 @@ __T=${MACHINE_ARCH}
# Clang is only for x86, powerpc and little-endian arm right now, by default.
.if ${__T} == "amd64" || ${__T} == "i386" || ${__T:Mpowerpc*}
__DEFAULT_YES_OPTIONS+=CLANG CLANG_FULL
-.elif ${__T} == "arm" || ${__T} == "armv6"
+.elif ${__T} == "arm" || ${__T} == "armv6" || ${__T} == "armv6hf"
__DEFAULT_YES_OPTIONS+=CLANG
# GCC is unable to build the full clang on arm, disable it by default.
__DEFAULT_NO_OPTIONS+=CLANG_FULL
@@ -414,11 +413,17 @@ __DEFAULT_NO_OPTIONS+=CLANG CLANG_FULL
.endif
# Clang the default system compiler only on little-endian arm and x86.
.if ${__T} == "amd64" || ${__T} == "arm" || ${__T} == "armv6" || \
- ${__T} == "i386"
+ ${__T} == "armv6hf" || ${__T} == "i386"
__DEFAULT_YES_OPTIONS+=CLANG_IS_CC
.else
__DEFAULT_NO_OPTIONS+=CLANG_IS_CC
.endif
+# GCC has no support for armv6hf
+.if ${__T} == "armv6hf"
+__DEFAULT_NO_OPTIONS+=GCC
+.else
+__DEFAULT_YES_OPTIONS+=GCC
+.endif
# FDT is needed only for arm, mips and powerpc
.if ${__T:Marm*} || ${__T:Mpowerpc*} || ${__T:Mmips*}
__DEFAULT_YES_OPTIONS+=FDT
Modified: projects/arm_eabi_vfp/share/mk/sys.mk
==============================================================================
--- projects/arm_eabi_vfp/share/mk/sys.mk Fri Aug 30 08:25:07 2013 (r255061)
+++ projects/arm_eabi_vfp/share/mk/sys.mk Fri Aug 30 08:29:23 2013 (r255062)
@@ -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)?/arm/:C/powerpc64/powerpc/}
+MACHINE_CPUARCH=${MACHINE_ARCH:C/mips(n32|64)?(el)?/mips/:C/arm(v6)?(eb|hf)?/arm/:C/powerpc64/powerpc/}
.endif
# Set any local definitions first. Place this early, but it needs
Modified: projects/arm_eabi_vfp/usr.bin/xlint/Makefile.inc
==============================================================================
--- projects/arm_eabi_vfp/usr.bin/xlint/Makefile.inc Fri Aug 30 08:25:07 2013 (r255061)
+++ projects/arm_eabi_vfp/usr.bin/xlint/Makefile.inc Fri Aug 30 08:29:23 2013 (r255062)
@@ -8,7 +8,7 @@ WARNS?= 0
# These assignments duplicate much of the functionality of
# MACHINE_CPUARCH, but there's no easy way to export make functions...
.if defined(TARGET_ARCH)
-TARGET_CPUARCH= ${TARGET_ARCH:C/mips(n32|64)?(el)?/mips/:C/arm(v6)?(eb)?/arm/}
+TARGET_CPUARCH= ${TARGET_ARCH:C/mips(n32|64)?(el)?/mips/:C/arm(v6)?(eb|hf)?/arm/}
.else
TARGET_CPUARCH= ${MACHINE_CPUARCH}
TARGET_ARCH= ${MACHINE_ARCH}
More information about the svn-src-projects
mailing list