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
61 lines
900 B
Makefile
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>
|