From a09ea2bbc3053d3b2afdb2f7444e5e57a96bb891 Mon Sep 17 00:00:00 2001 From: Brooks Davis Date: Mon, 13 Jun 2022 18:35:38 +0100 Subject: [PATCH] amd64: add an i386 include directory This directory will hold i386-specific headers that are needed for -m32 support on amd64 and where the amd64 and i386 cases have too little in common for combining them to make sense. Files to be installed will come in later commits. With the currently required set of files, this could be done with another INCGROUP in include/Makefile, but at least one file that might want -m32 support (ieeefp.h) conflicts with a files installed in /usr/include. Reviewed by: jhb, imp --- Makefile.inc1 | 15 +++++++++++++++ include/Makefile | 7 +++++++ include/i386/Makefile | 7 +++++++ 3 files changed, 29 insertions(+) create mode 100644 include/i386/Makefile diff --git a/Makefile.inc1 b/Makefile.inc1 index 5aaa9a414473..20c537512273 100644 --- a/Makefile.inc1 +++ b/Makefile.inc1 @@ -1062,6 +1062,9 @@ _bootstrap-tools: -p ${WORLDTMP}/usr >/dev/null ${WORLDTMP_MTREE} -f ${.CURDIR}/etc/mtree/BSD.include.dist \ -p ${WORLDTMP}/usr/include >/dev/null +.if ${TARGET_ARCH} == "amd64" + mkdir -p ${WORLDTMP}/usr/include/i386 +.endif ln -sf ${.CURDIR}/sys ${WORLDTMP} .if ${MK_DEBUG_FILES} != "no" ${WORLDTMP_MTREE} -f ${.CURDIR}/etc/mtree/BSD.debug.dist \ @@ -1395,6 +1398,9 @@ distributeworld installworld stageworld: _installcheck_world .PHONY -p ${DESTDIR}/${DISTDIR}/${dist}/usr >/dev/null ${DESTDIR_MTREE} -f ${.CURDIR}/etc/mtree/BSD.include.dist \ -p ${DESTDIR}/${DISTDIR}/${dist}/usr/include >/dev/null +.if ${TARGET_ARCH} == "amd64" + -mkdir ${DESTDIR}/${DISTDIR}/usr/include/i386 +.endif .if ${MK_DEBUG_FILES} != "no" ${DESTDIR_MTREE} -f ${.CURDIR}/etc/mtree/BSD.debug.dist \ -p ${DESTDIR}/${DISTDIR}/${dist}/usr/lib >/dev/null @@ -1423,6 +1429,9 @@ distributeworld installworld stageworld: _installcheck_world .PHONY sed -e 's#^\./#./${dist}/usr/#' >> ${METALOG} ${IMAKEENV} ${DISTR_MTREE} -C -f ${.CURDIR}/etc/mtree/BSD.include.dist | \ sed -e 's#^\./#./${dist}/usr/include/#' >> ${METALOG} +.if ${TARGET_ARCH} == "amd64" + echo "./${dist}/usr/include/i386 type=dir uname=root gname=wheel mode=0755" >> ${METALOG} +.endif .if defined(_LIBCOMPAT) ${IMAKEENV} ${DISTR_MTREE} -C -f ${.CURDIR}/etc/mtree/BSD.lib${libcompat}.dist | \ sed -e 's#^\./#./${dist}/usr/#' >> ${METALOG} @@ -2852,6 +2861,9 @@ native-xtools-install: .PHONY -p ${NXBDESTDIR}/usr >/dev/null ${DESTDIR_MTREE} -f ${.CURDIR}/etc/mtree/BSD.include.dist \ -p ${NXBDESTDIR}/usr/include >/dev/null +.if ${TARGET_ARCH} == "amd64" + mkdir -p ${NXBDESTDIR}/usr/include/i386 +.endif ${_+_}cd ${.CURDIR}; ${NXBMAKE} \ DESTDIR=${NXBDESTDIR} \ -DNO_ROOT \ @@ -3545,6 +3557,9 @@ _xi-mtree: .PHONY -p ${XDDESTDIR}/usr >/dev/null ${DESTDIR_MTREE} -f ${.CURDIR}/etc/mtree/BSD.include.dist \ -p ${XDDESTDIR}/usr/include >/dev/null +.if ${TARGET_ARCH} == "amd64" + mkdir -p ${XDDESTDIR}/usr/include/i386 +.endif .if defined(_LIBCOMPAT) ${DESTDIR_MTREE} -f ${.CURDIR}/etc/mtree/BSD.lib${libcompat}.dist \ -p ${XDDESTDIR}/usr >/dev/null diff --git a/include/Makefile b/include/Makefile index 42590b900442..8d847a3a8dd2 100644 --- a/include/Makefile +++ b/include/Makefile @@ -8,6 +8,9 @@ PACKAGE=runtime CLEANFILES= osreldate.h version SUBDIR= arpa protocols rpcsvc rpc xlocale +.if ${MACHINE_CPUARCH} == "amd64" +SUBDIR+= i386 +.endif SUBDIR_PARALLEL= INCS= a.out.h ar.h assert.h bitstring.h complex.h cpio.h _ctype.h ctype.h \ db.h \ @@ -338,6 +341,10 @@ compat: mtree -deU ${NO_ROOT:D-W} ${MTREE_FOLLOWS_SYMLINKS} \ -f ${SRCTOP}/etc/mtree/BSD.include.dist \ -p ${SDESTDIR}${INCLUDEDIR} > /dev/null +.if ${MACHINE_CPUARCH} == "amd64" + ${INSTALL} -d ${TAG_ARGS} -o ${BINOWN} -g ${BINGRP} -m 755 \ + ${SDESTDIR}${INCLUDEDIR}/i386 +.endif copies: .PHONY .META cd ${SDESTDIR}${INCLUDEDIR}; find ${LDIRS} ${LSUBDIRS} ${LSUBSUBDIRS} crypto \ diff --git a/include/i386/Makefile b/include/i386/Makefile new file mode 100644 index 000000000000..60f70d4756b2 --- /dev/null +++ b/include/i386/Makefile @@ -0,0 +1,7 @@ +# i386 headers installed on amd64 + +.PATH: ${SRCTOP}/sys/i386/include +INCS= +INCSDIR= ${INCLUDEDIR}/i386 + +.include