Date: Fri, 30 Aug 2013 08:29:23 +0000 (UTC) From: Andrew Turner <andrew@FreeBSD.org> To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: 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 Message-ID: <201308300829.r7U8TNQ5078602@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
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}
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201308300829.r7U8TNQ5078602>