[OE-core] Issue of Yocto multilib sdk
Laurentiu Palcu
laurentiu.palcu at intel.com
Fri Jul 26 13:56:17 UTC 2013
On Fri, Jul 26, 2013 at 12:36:21PM +0000, Alexandru-Cezar Sardan wrote:
>
> > Hi experts,
> >
> > I use Yocto to generate multilib sdk, I append following content in my
> local.conf.
> >
> > require conf/multilib.conf
> > MULTILIBS = "multilib:lib64"
> > DEFAULTTUNE_virtclass-multilib-lib64 = "x86-64"
> >
> > IMAGE_INSTALL_append = " \
> > ${ <at> multilib_pkg_extend(d, "binutils")} \
> >
> >
> > ${ <at> multilib_pkg_extend(d, "eglibc")} \
> >
> > ${ <at> multilib_pkg_extend(d, "eglibc-dev")} \
> > ${ <at> multilib_pkg_extend(d, "eglibc-staticdev")} \
> >
> > ${ <at> multilib_pkg_extend(d, "gcc")} \
> >
> > ${ <at> multilib_pkg_extend(d, "glib-2.0")} \
> > ${ <at> multilib_pkg_extend(d, "glib-2.0-dev")} \
> >
> > ${ <at> multilib_pkg_extend(d, "libgcc-dev")} \
> > ${ <at> multilib_pkg_extend(d, "libstdc++")} \
> >
> > ${ <at> multilib_pkg_extend(d, "libstdc++-dev")} \
> > ${ <at> multilib_pkg_extend(d, "libstdc++-staticdev")} \
> > "
> >
> >
> >
> > The sdk is generated successfully, I installed poky-eglibc-x86_64-i586-
> toolchain-gmae-1.4+snapshot-20130619.sh in the default
> path(/opt/poky/1.4+snapshot/).
> >
> > 1. 32bit build for my test C program, it passed,
> > $ source /opt/poky/1.4+snapshot/environment-setup-i586-poky-linux
> > $ $CC mytest.c -o mytest.c
> > 2. 64bit build for the same test C program, it failed.
> > $ source /opt/poky/1.4+snapshot/environment-setup-x86_64-pokymllib64-
> linux
> > $ $CC mytest.c -o mytest
> > /opt/poky/1.4+snapshot/sysroots/x86_64-pokysdk-linux/usr/libexec/x86_64-
> pokymllib64-linux/gcc/x86_64-pokymllib64-linux/4.7.2/ld: cannot find
> crtbegin.o: No such file or directory
> > /opt/poky/1.4+snapshot/sysroots/x86_64-pokysdk-linux/usr/libexec/x86_64-
> pokymllib64-linux/gcc/x86_64-pokymllib64-linux/4.7.2/ld: cannot find -lgcc
> > /opt/poky/1.4+snapshot/sysroots/x86_64-pokysdk-linux/usr/libexec/x86_64-
> pokymllib64-linux/gcc/x86_64-pokymllib64-linux/4.7.2/ld: skipping
> incompatible /opt/poky/1.4+snapshot/sysroots/i586-poky-linux/lib/libgcc_s.so
> when searching for -lgcc_s
> > /opt/poky/1.4+snapshot/sysroots/x86_64-pokysdk-linux/usr/libexec/x86_64-
> pokymllib64-linux/gcc/x86_64-pokymllib64-linux/4.7.2/ld: skipping
> incompatible /opt/poky/1.4+snapshot/sysroots/i586-poky-linux/lib/libgcc_s.so
> when searching for -lgcc_s
> > /opt/poky/1.4+snapshot/sysroots/x86_64-pokysdk-linux/usr/libexec/x86_64-
> pokymllib64-linux/gcc/x86_64-pokymllib64-linux/4.7.2/ld: cannot find -lgcc_s
> > /opt/poky/1.4+snapshot/sysroots/x86_64-pokysdk-linux/usr/libexec/x86_64-
> pokymllib64-linux/gcc/x86_64-pokymllib64-linux/4.7.2/ld: skipping
> incompatible /opt/poky/1.4+snapshot/sysroots/i586-poky-linux/usr/lib/libc.so
> when searching for -lc
> > /opt/poky/1.4+snapshot/sysroots/x86_64-pokysdk-linux/usr/libexec/x86_64-
> pokymllib64-linux/gcc/x86_64-pokymllib64-linux/4.7.2/ld: skipping
> incompatible /opt/poky/1.4+snapshot/sysroots/i586-poky-linux/usr/lib/libc.so
> when searching for -lc
> > /opt/poky/1.4+snapshot/sysroots/x86_64-pokysdk-linux/usr/libexec/x86_64-
> pokymllib64-linux/gcc/x86_64-pokymllib64-linux/4.7.2/ld: cannot find -lc
> > /opt/poky/1.4+snapshot/sysroots/x86_64-pokysdk-linux/usr/libexec/x86_64-
> pokymllib64-linux/gcc/x86_64-pokymllib64-linux/4.7.2/ld: cannot find -lgcc
> > /opt/poky/1.4+snapshot/sysroots/x86_64-pokysdk-linux/usr/libexec/x86_64-
> pokymllib64-linux/gcc/x86_64-pokymllib64-linux/4.7.2/ld: skipping
> incompatible /opt/poky/1.4+snapshot/sysroots/i586-poky-linux/lib/libgcc_s.so
> when searching for -lgcc_s
> > /opt/poky/1.4+snapshot/sysroots/x86_64-pokysdk-linux/usr/libexec/x86_64-
> pokymllib64-linux/gcc/x86_64-pokymllib64-linux/4.7.2/ld: skipping
> incompatible /opt/poky/1.4+snapshot/sysroots/i586-poky-linux/lib/libgcc_s.so
> when searching for -lgcc_s
> > /opt/poky/1.4+snapshot/sysroots/x86_64-pokysdk-linux/usr/libexec/x86_64-
> pokymllib64-linux/gcc/x86_64-pokymllib64-linux/4.7.2/ld: cannot find -lgcc_s
> > /opt/poky/1.4+snapshot/sysroots/x86_64-pokysdk-linux/usr/libexec/x86_64-
> pokymllib64-linux/gcc/x86_64-pokymllib64-linux/4.7.2/ld: cannot find
> crtend.o: No such file or directory
> > collect2: error: ld returned 1 exit status
> >
> > Am I missing something?
There could be several issues here:
1. default library path for 64bit is wrong... You can inspect it by
looking at SEARCH_DIR in the linker script. Just run:
$CC -o mytest -Wl,-verbose mytest.c
Then you can try to set the library path explicitly with -L. See if it
works.
2. you don't have the 64bit libraries and it falls back to looking into
/lib or /usr/lib which contain the 32bit libraries...
Do you have any lib64/ usr/lib64/ in your target sysroot?
Thanks,
Laurentiu
> >
> >
> > Cheers,
> >
> > Bruce
> >
> >
> > _______________________________________________
> > Openembedded-core mailing list
> > Openembedded-core at ...
> > http://lists.openembedded.org/mailman/listinfo/openembedded-core
> >
>
> I am experiencing the same issue with poky-dylan-9.0.0.
> Can someone please help with this problem?
>
> Kind regards,
> Alex
>
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core at lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core
More information about the Openembedded-core
mailing list