aboutsummaryrefslogtreecommitdiff
path: root/sys/conf
diff options
context:
space:
mode:
authorWarner Losh <imp@FreeBSD.org>2017-10-05 23:01:33 +0000
committerWarner Losh <imp@FreeBSD.org>2017-10-05 23:01:33 +0000
commit0b972ac92efa281a92d2c774008c23e38373b413 (patch)
tree51bbbca0ac650b8a0f5465e9c5861a9d9eb9db99 /sys/conf
parentb1bad39103f190d5fb8bc8f41f38f43e7787519a (diff)
downloadsrc-0b972ac92efa281a92d2c774008c23e38373b413.tar.gz
src-0b972ac92efa281a92d2c774008c23e38373b413.zip
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
Notes
Notes: svn path=/head/; revision=324340
Diffstat (limited to 'sys/conf')
-rw-r--r--sys/conf/Makefile.arm2
-rw-r--r--sys/conf/kern.mk1
-rw-r--r--sys/conf/kern.opts.mk2
-rw-r--r--sys/conf/kern.pre.mk1
4 files changed, 4 insertions, 2 deletions
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