HardenedBSD/include/arm/Makefile
Mike Karels d5d97bed4a 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
2023-07-25 18:59:26 -05:00

61 lines
900 B
Makefile

# 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>