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}\" \

Reply via email to