diff options
author | Mike Karels <karels@FreeBSD.org> | 2023-07-25 23:59:26 +0000 |
---|---|---|
committer | Mike Karels <karels@FreeBSD.org> | 2023-07-25 23:59:26 +0000 |
commit | d5d97bed4ab6bb63e97c8ff67b5b94ae37cd24fc (patch) | |
tree | 85e3dccc7d4d6719c866996135a58b5e238ba2da /include/arm | |
parent | f1d5183124d3e18d410ded61e45adb9a23b23c83 (diff) | |
download | src-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/Makefile | 60 |
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> |