I'm trying to use OpenEmbedded to build a x86_64 system (hosted on x86),
and am running into many errors getting gcc-cross to build properly
here.

GCC 4.1.x seems to automatically add /usr/include to the header search
path on x86, and this fails to work with the no-local-headers patch.

GCC 4.2.x will mostly build, but will try to link 32-bit libraries
against the (only) 64-bit glibc. Adding --disable-multilib to the
configure flags also fails, because some parts of the GCC install seem
to be looking in lib64 still, and the build of gcc-cross fails:

> | /bin/sh 
> /oe/tmp/work/x86_64-linux/gcc-cross-4.2.2-r3/gcc-4.2.2/libiberty/../mkinstalldirs
>  
> /oe/tmp/cross/x86_64-linux/lib/`/oe/tmp/work/x86_64-linux/gcc-cross-4.2.2-r3/gcc-4.2.2/build.i686-linux.x86_64-linux/./gcc/xgcc
>  
> -B/oe/tmp/work/x86_64-linux/gcc-cross-4.2.2-r3/gcc-4.2.2/build.i686-linux.x86_64-linux/./gcc/
>  -isystem/oe/tmp/staging/i686-linux/include -B/oe/tmp/cross/x86_64-linux/bin/ 
> -B/oe/tmp/cross/x86_64-linux/lib/ -isystem /oe/tmp/cross/x86_64-linux/include 
> -isystem /oe/tmp/cross/x86_64-linux/sys-include -g -Os 
> -print-multi-os-directory`
> | /usr/bin/install -c -m 644 ./libiberty.a 
> /oe/tmp/cross/x86_64-linux/lib/`/oe/tmp/work/x86_64-linux/gcc-cross-4.2.2-r3/gcc-4.2.2/build.i686-linux.x86_64-linux/./gcc/xgcc
>  
> -B/oe/tmp/work/x86_64-linux/gcc-cross-4.2.2-r3/gcc-4.2.2/build.i686-linux.x86_64-linux/./gcc/
>  -isystem/oe/tmp/staging/i686-linux/include -B/oe/tmp/cross/x86_64-linux/bin/ 
> -B/oe/tmp/cross/x86_64-linux/lib/ -isystem /oe/tmp/cross/x86_64-linux/include 
> -isystem /oe/tmp/cross/x86_64-linux/sys-include -g -Os 
> -print-multi-os-directory`/./libiberty.an
> | ( cd 
> /oe/tmp/cross/x86_64-linux/lib/`/oe/tmp/work/x86_64-linux/gcc-cross-4.2.2-r3/gcc-4.2.2/build.i686-linux.x86_64-linux/./gcc/xgcc
>  
> -B/oe/tmp/work/x86_64-linux/gcc-cross-4.2.2-r3/gcc-4.2.2/build.i686-linux.x86_64-linux/./gcc/
>  -isystem/oe/tmp/staging/i686-linux/include -B/oe/tmp/cross/x86_64-linux/bin/ 
> -B/oe/tmp/cross/x86_64-linux/lib/ -isystem /oe/tmp/cross/x86_64-linux/include 
> -isystem /oe/tmp/cross/x86_64-linux/sys-include -g -Os 
> -print-multi-os-directory` ; chmod 644 ./libiberty.an; 
> /oe/tmp/cross/x86_64-linux/bin/ranlib ./libiberty.an )
> | /bin/sh: line 0: cd: /oe/tmp/cross/x86_64-linux/lib/../lib64: No such file 
> or directory
> | chmod: cannot access `./libiberty.an': No such file or directory
> | /oe/tmp/cross/x86_64-linux/bin/ranlib: './libiberty.an': No such file
> | make[2]: *** [install_to_tooldir] Error 1
> | make[2]: Leaving directory 
> `/oe/tmp/work/x86_64-linux/gcc-cross-4.2.2-r3/gcc-4.2.2/build.i686-linux.x86_64-linux/x86_64-linux/libiberty'
> | make[1]: *** [install-target-libiberty] Error 2
> | make[1]: Leaving directory 
> `/oe/tmp/work/x86_64-linux/gcc-cross-4.2.2-r3/gcc-4.2.2/build.i686-linux.x86_64-linux'
> | make: *** [install] Error 2
> | FATAL: oe_runmake failed

I *think* what I'd prefer doing is installing a multilib glibc, since it
will actually come in handy in the final system. Is there a
straightforward way to do that?

Thanks.

_______________________________________________
Openembedded-users mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-users

Reply via email to