aboutsummaryrefslogtreecommitdiff
path: root/include/arm
diff options
context:
space:
mode:
authorMike Karels <karels@FreeBSD.org>2023-07-25 23:59:26 +0000
committerMike Karels <karels@FreeBSD.org>2023-07-25 23:59:26 +0000
commitd5d97bed4ab6bb63e97c8ff67b5b94ae37cd24fc (patch)
tree85e3dccc7d4d6719c866996135a58b5e238ba2da /include/arm
parentf1d5183124d3e18d410ded61e45adb9a23b23c83 (diff)
downloadsrc-d5d97bed4ab6bb63e97c8ff67b5b94ae37cd24fc.tar.gz
src-d5d97bed4ab6bb63e97c8ff67b5b94ae37cd24fc.zip
arm64 lib32: prepare arm64 headers to redirect to arm
In order to compile lib32 libraries and other 32-bit code on arm64, <machine/foo.h> needs to be redirected to an arm header rather than arm64 when building with -m32. Ifdef the arm64 headers that are installed in /usr/include/machine and used by user-level software (including references from /usr/include/*.h) so that if __arm__ is defined when including the arm64 version, <arm/foo.h> is included rather than using the rest of the file's contents. Some arm headers had no arm64 equivalent; headers were added just to do the redirection. These files use #error if __arm__ is not defined to guard against confusion. Also add an include/arm Makefile, and modify Makefiles as needed to install everything, including the arm files in /usr/include/arm. fenv.h comes from lib/msun/arm/fenv.h. The new arm64 headers are: acle-compat.h cpuinfo.h sysreg.h Reviewed by: jrtc27, imp Differential Revision: https://reviews.freebsd.org/D40944
Diffstat (limited to 'include/arm')
-rw-r--r--include/arm/Makefile60
1 files changed, 60 insertions, 0 deletions
diff --git a/include/arm/Makefile b/include/arm/Makefile
new file mode 100644
index 000000000000..1f596763df77
--- /dev/null
+++ b/include/arm/Makefile
@@ -0,0 +1,60 @@
+# arm headers installed on arm64
+
+.PATH: ${SRCTOP}/sys/arm/include ${SRCTOP}/lib/msun/arm
+
+INCS= _align.h \
+ _inttypes.h \
+ _limits.h \
+ _stdint.h \
+ _types.h \
+ acle-compat.h \
+ armreg.h \
+ asm.h \
+ atomic.h \
+ bus.h \
+ counter.h \
+ cpu.h \
+ cpufunc.h \
+ cpuinfo.h \
+ efi.h \
+ elf.h \
+ exec.h \
+ float.h \
+ frame.h \
+ ieeefp.h \
+ param.h \
+ pcb.h \
+ pcpu.h \
+ pmap.h \
+ proc.h \
+ profile.h \
+ pte.h \
+ reg.h \
+ reloc.h \
+ resource.h \
+ runq.h \
+ setjmp.h \
+ signal.h \
+ sysarch.h \
+ sysreg.h \
+ tls.h \
+ ucontext.h \
+ vdso.h \
+ vfp.h \
+ vmparam.h
+# These kernel-only headers are used by procstat's ZFS support.
+# This should be fixed.
+INCS+= pcpu_aux.h \
+ sf_buf.h
+# from lib/msun/arm
+INCS+= fenv.h
+INCSDIR= ${INCLUDEDIR}/arm
+
+beforeinstall: armdir
+META_TARGETS+= armdir
+
+armdir:
+ ${INSTALL} -d ${TAG_ARGS} -o ${BINOWN} -g ${BINGRP} -m 755 \
+ ${DESTDIR}${INCLUDEDIR}/arm
+
+.include <bsd.prog.mk>