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

Reply via email to