From 0b972ac92efa281a92d2c774008c23e38373b413 Mon Sep 17 00:00:00 2001 From: Warner Losh Date: Thu, 5 Oct 2017 23:01:33 +0000 Subject: Support armv7 builds for userland Make armv7 as a new MACHINE_ARCH. Copy all the places we do armv6 and add armv7 as basically an alias. clang appears to generate code for armv7 by default. armv7 hard float isn't supported by the the in-tree gcc, so it hasn't been updated to have a new default. Support armv7 as a new valid MACHINE_ARCH (and by extension TARGET_ARCH). Add armv7 to the universe build. Differential Revision: https://reviews.freebsd.org/D12010 --- sys/conf/Makefile.arm | 2 +- sys/conf/kern.mk | 1 + sys/conf/kern.opts.mk | 2 +- sys/conf/kern.pre.mk | 1 + 4 files changed, 4 insertions(+), 2 deletions(-) (limited to 'sys/conf') diff --git a/sys/conf/Makefile.arm b/sys/conf/Makefile.arm index 01eebf6f1bcd..53ff25ab239f 100644 --- a/sys/conf/Makefile.arm +++ b/sys/conf/Makefile.arm @@ -75,7 +75,7 @@ FILES_CPU_FUNC = \ $S/$M/$M/cpufunc_asm_pj4b.S $S/$M/$M/cpufunc_asm_armv6.S \ $S/$M/$M/cpufunc_asm_armv7.S -.if ${MACHINE_ARCH} != "armv6" && defined(KERNPHYSADDR) +.if ${MACHINE_ARCH:Marmv[67]*} == "" && defined(KERNPHYSADDR) KERNEL_EXTRA=trampoline KERNEL_EXTRA_INSTALL=kernel.gz.tramp trampoline: ${KERNEL_KO}.tramp diff --git a/sys/conf/kern.mk b/sys/conf/kern.mk index 4ab39f7a3412..844510742cb6 100644 --- a/sys/conf/kern.mk +++ b/sys/conf/kern.mk @@ -259,6 +259,7 @@ LD_EMULATION_amd64=elf_x86_64_fbsd LD_EMULATION_arm=armelf_fbsd LD_EMULATION_armeb=armelfb_fbsd LD_EMULATION_armv6=armelf_fbsd +LD_EMULATION_armv7=armelf_fbsd LD_EMULATION_i386=elf_i386_fbsd LD_EMULATION_mips= elf32btsmip_fbsd LD_EMULATION_mips64= elf64btsmip_fbsd diff --git a/sys/conf/kern.opts.mk b/sys/conf/kern.opts.mk index 72420eebac19..ba271be28865 100644 --- a/sys/conf/kern.opts.mk +++ b/sys/conf/kern.opts.mk @@ -62,7 +62,7 @@ __DEFAULT_NO_OPTIONS = \ # Things that don't work based on the CPU .if ${MACHINE_CPUARCH} == "arm" -. if ${MACHINE_ARCH:Marmv6*} == "" +. if ${MACHINE_ARCH:Marmv[67]*} == "" BROKEN_OPTIONS+= CDDL ZFS . endif .endif diff --git a/sys/conf/kern.pre.mk b/sys/conf/kern.pre.mk index 9dd2c3d47384..cd525e5b4dea 100644 --- a/sys/conf/kern.pre.mk +++ b/sys/conf/kern.pre.mk @@ -255,6 +255,7 @@ EMBEDFS_ARCH.${MACHINE_ARCH}!= sed -n '/OUTPUT_ARCH/s/.*(\(.*\)).*/\1/p' ${LDSCR EMBEDFS_FORMAT.arm?= elf32-littlearm EMBEDFS_FORMAT.armv6?= elf32-littlearm +EMBEDFS_FORMAT.armv7?= elf32-littlearm EMBEDFS_FORMAT.aarch64?= elf64-littleaarch64 EMBEDFS_FORMAT.mips?= elf32-tradbigmips EMBEDFS_FORMAT.mipsel?= elf32-tradlittlemips -- cgit v1.2.3