On Mon, May 29, 2017 at 08:18:08PM +0000, Miod Vallat wrote:
> 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.
Doesn't build for arm64, probably because BUILD_GCC4 is transparently
set by the host and not reset to NO.
===> ../usr.bin/cc/libobjc
`/usr/cross/arm64/usr/aarch64-unknown-openbsd6.1/bin/cc
--print-prog-name=cc1obj` -print-objc-runtime-info < /dev/null > runtime-info.h
make -f /usr/src/gnu/usr.bin/cc/libobjc/../cc_tools/Makefile
MFILE=/usr/src/gnu/usr.bin/cc/libobjc/../cc_tools/Makefile
GCCDIR=/usr/src/gnu/usr.bin/cc/libobjc/../../../gcc/gcc unwind.h
ln -sf /usr/src/gnu/usr.bin/cc/libobjc/../../../gcc/gcc/unwind-generic.h
unwind.h
/bin/sh: cc1obj: not found
*** Error 127 in target 'runtime-info.h'
*** Error 127 in /usr/src/gnu/usr.bin/cc/libobjc (Makefile:34 'runtime-info.h')
>
> 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}\" \
>