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
