The following diff attempts to cross-build more things, in particular
gnu/lib (except for libiberty). It also passes the proper optimization
flags so that libstdc++-v3 gets built with optimization.
Index: Makefile.cross
===================================================================
RCS file: /OpenBSD/src/Makefile.cross,v
retrieving revision 1.94
diff -u -p -r1.94 Makefile.cross
--- Makefile.cross 23 May 2017 14:57:30 -0000 1.94
+++ Makefile.cross 29 May 2017 20:15:01 -0000
@@ -43,8 +43,9 @@ MACHINE_IS_LP64 =
#CROSSCPPFLAGS?= -nostdinc -I${CROSSDIR}/usr/include
#CROSSLDFLAGS?= -nostdlib -L${CROSSDIR}/usr/lib -static
+DEBUG?= -g
CROSSCFLAGS?= ${CROSSCPPFLAGS} -O2 ${PIPE} ${DEBUG}
-CROSSCXXFLAGS?= ${CROSSCPPFLAGS}
+CROSSCXXFLAGS?= ${CROSSCPPFLAGS} -O2 ${PIPE} ${DEBUG}
#LDSTATIC?= -static
CROSSDIR= ${DESTDIR}/usr/cross/${TARGET}
@@ -75,7 +76,7 @@ CROSSOBJ= ${CROSSDIR}/.obj_done
CROSSINCLUDES= ${CROSSDIR}/.includes_done
CROSSBINUTILS= ${CROSSDIR}/.binutils_done
CROSSGCC= ${CROSSDIR}/.gcc_done
-#NO_CROSS= isakmpd keynote ssh
+NO_CROSS= libiberty
.include <bsd.own.mk>
@@ -307,6 +308,7 @@ ${CROSSGCC}: ${CROSSBINUTILS}
cp -f ${CROSSDIR}/usr/libexec/cpp
${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-libexeccpp
cp -f ${CROSSDIR}/usr/bin/gcc
${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cc
ln -sf ${TARGET_CANON}-cc ${CROSSDIR}/usr/${TARGET_CANON}/bin/cc
+ ln -sf ${TARGET_CANON}-c++ ${CROSSDIR}/usr/${TARGET_CANON}/bin/c++
cp -f ${CROSSDIR}/usr/bin/gcc
${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cc
rm -f ${CROSSDIR}/usr/bin/gcc ${CROSSDIR}/usr/bin/g++
${CROSSDIR}/usr/bin/cc ${CROSSDIR}/usr/libexec/cpp
@@ -343,6 +345,13 @@ cross-lib: ${CROSSGCC}
eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET}
DESTDIR=${CROSSDIR} \
SKIPDIR=\"${NO_CROSS}\" \
${MAKE} install)
+ (cd ${.CURDIR}/gnu/lib; \
+ eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
+ SKIPDIR=\"${NO_CROSS}\" \
+ ${MAKE} depend all ; \
+ eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET}
DESTDIR=${CROSSDIR} \
+ SKIPDIR=\"${NO_CROSS}\" \
+ ${MAKE} install)
cross-bin: ${CROSSOBJ}
MACHINE=${TARGET} \
@@ -351,10 +360,10 @@ cross-bin: ${CROSSOBJ}
for i in libexec bin sbin usr.bin usr.sbin; do \
(cd ${.CURDIR}/$$i; \
eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
- SKIPDIR=\"${BINUTILS} ${NO_CROSS}\" \
+ SKIPDIR=\"${NO_CROSS}\" \
${MAKE} depend all ; \
eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET}
DESTDIR=${CROSSDIR} \
- SKIPDIR=\"${BINUTILS} ${NO_CROSS}\" \
+ SKIPDIR=\"${NO_CROSS}\" \
${MAKE} install); \
done
@@ -362,7 +371,7 @@ cross-gnu: ${CROSSOBJ}
MACHINE=${TARGET} \
MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU}; \
export MACHINE MACHINE_ARCH MACHINE_CPU; \
- for i in gnu/lib gnu/usr.sbin gnu/usr.bin ; do \
+ for i in gnu/usr.sbin gnu/usr.bin ; do \
(cd ${.CURDIR}/$$i; \
eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
SKIPDIR=\"${NO_CROSS}\" \