[OE-core] Different libdir in libstdc++.la for qemux86-64 causing issues

Martin Jansa martin.jansa at gmail.com
Wed Jan 18 07:05:27 UTC 2012


On Tue, Jan 17, 2012 at 02:29:46PM -0800, Khem Raj wrote:
> On Tue, Jan 17, 2012 at 5:09 AM, Martin Jansa <martin.jansa at gmail.com> wrote:
> > After fixing gnutls pulling system libs to every EFL build I ended with only
> > difference - libdir in libstdc++.la
> >
> > OE @ ~/shr-core/tmp-eglibc/sysroots $ grep libdir */usr/lib/libstdc*la
> > nokia900/usr/lib/libstdc++.la:libdir='/usr/lib'
> > om-gta02/usr/lib/libstdc++.la:libdir='/usr/lib'
> > qemux86-64/usr/lib/libstdc++.la:libdir='/usr/lib/../lib'
> > spitz/usr/lib/libstdc++.la:libdir='/usr/lib'
> >
> > Which results in added -Wl,-rpath -Wl,/usr/lib/../lib while building for
> > qemux86-64 (see logs below).
> >
> > Is there any reason to have different libdir (pointing to the same directory
> > actually)? Or is it bug in libtool or how it's used from eve? Can we change
> > it in gcc-runtime?
> >
> > smaller test-case:
> > OE @ ~/shr-core/tmp-eglibc $ sysroots/qemux86-64/usr/bin/crossscripts/x86_64-oe-linux-libtool -n --tag=CC --mode=link x86_64-oe-linux-gcc -m64 --sysroot=/OE/shr-core/tmp-eglibc/sysroots/qemux86-64 -o test -lstdc++
> > x86_64-oe-linux-libtool: link: x86_64-oe-linux-gcc -m64 --sysroot=/OE/shr-core/tmp-eglibc/sysroots/qemux86-64 -o test  /OE/shr-core/tmp-eglibc/sysroots/qemux86-64/usr/lib/../lib/libstdc++.so -lm -Wl,-rpath -Wl,/usr/lib/../lib
> >
> > OE @ ~/shr-core/tmp-eglibc $ sysroots/nokia900/usr/bin/crossscripts/arm-oe-linux-gnueabi-libtool -n --tag=CC --mode=link arm-oe-linux-gnueabi-gcc -march=armv7-a --sysroot=/OE/shr-core/tmp-eglibc/sysroots/nokia900 -o test -lstdc++
> > arm-oe-linux-gnueabi-libtool: link: arm-oe-linux-gnueabi-gcc -march=armv7-a --sysroot=/OE/shr-core/tmp-eglibc/sysroots/nokia900 -o test  /OE/shr-core/tmp-eglibc/sysroots/nokia900/usr/lib/libstdc++.so -lm
> >
> > I can confirm that manually changing /usr/lib/../lib to just /usr/lib
> > in libstdc++.la works for eve build - -rpath is gone (and IIRC I had
> > similar issue for openssh or openssl).
> 
> Can you confirm the converse ? i.e. change /usr/lib to /usr/lib/../lib
> in say for arm
> build and check what happens ?

Sure:
OE @ ~/shr-core/tmp-eglibc $ cat sysroots/nokia900/usr/lib/libstdc++.la | grep libdir
libdir='/usr/lib'
OE @ ~/shr-core/tmp-eglibc $ sysroots/nokia900/usr/bin/crossscripts/arm-oe-linux-gnueabi-libtool -n --tag=CC --mode=link arm-oe-linux-gnueabi-gcc -march=armv7-a --sysroot=/OE/shr-core/tmp-eglibc/sysroots/nokia900 -o test -lstdc++
arm-oe-linux-gnueabi-libtool: link: arm-oe-linux-gnueabi-gcc -march=armv7-a --sysroot=/OE/shr-core/tmp-eglibc/sysroots/nokia900 -o test  /OE/shr-core/tmp-eglibc/sysroots/nokia900/usr/lib/libstdc++.so -lm

OE @ ~/shr-core/tmp-eglibc $ sed -i "s#libdir='/usr/lib'#libdir='/usr/lib/../lib'#g" sysroots/nokia900/usr/lib/libstdc++.la
OE @ ~/shr-core/tmp-eglibc $ cat sysroots/nokia900/usr/lib/libstdc++.la | grep libdir
libdir='/usr/lib/../lib'
OE @ ~/shr-core/tmp-eglibc $ sysroots/nokia900/usr/bin/crossscripts/arm-oe-linux-gnueabi-libtool -n --tag=CC --mode=link arm-oe-linux-gnueabi-gcc -march=armv7-a --sysroot=/OE/shr-core/tmp-eglibc/sysroots/nokia900 -o test -lstdc++
arm-oe-linux-gnueabi-libtool: link: arm-oe-linux-gnueabi-gcc -march=armv7-a --sysroot=/OE/shr-core/tmp-eglibc/sysroots/nokia900 -o test  /OE/shr-core/tmp-eglibc/sysroots/nokia900/usr/lib/../lib/libstdc++.so -lm -Wl,-rpath -Wl,/usr/lib/../lib

So -rpath is here now.. lets see eve build:

OE @ ~/shr-core/tmp-eglibc/work/armv7a-vfp-neon-oe-linux-gnueabi/eve-0.3.0.0+svnr67278-r2/eve/src/bin $ ../../arm-oe-linux-gnueabi-libtool --debug -v -n --tag=CC   --mode=link arm-oe-linux-gnueabi-gcc  -march=armv7-a -fno-tree-vectorize      -mthumb-interwork -mfloat-abi=softfp -mfpu=neon -mtune=cortex-a8 --sysroot=/OE/shr-core/tmp-eglibc/sysroots/nokia900 -std=gnu99  -O2 -pipe -g -feliminate-unused-debug-types  -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -o eve main.o view.o chrome.o eve_state.o -pthread -lelementary -lm -leet -lefreet -lefreet_mime -lefreet_trash -lethumb_client -lethumb -ledbus -ldbus-1 -lpthread -lrt -leina -lecore_evas -lecore_file -ledje -lemotion -lepdf -lexif -lpoppler -lecore -levas -lecore_imf -lecore_con   -lewebkit -lcairo -levas -lecore -lecore_file   -ledbus -ldbus-1 -lpthread -lrt   -lm 2> eve.link.libtool
arm-oe-linux-gnueabi-libtool: enabling shell trace mode
arm-oe-linux-gnueabi-libtool: link: arm-oe-linux-gnueabi-gcc -march=armv7-a -fno-tree-vectorize -mthumb-interwork -mfloat-abi=softfp -mfpu=neon -mtune=cortex-a8 --sysroot=/OE/shr-core/tmp-eglibc/sysroots/nokia900 -std=gnu99 -O2 -pipe -g -feliminate-unused-debug-types -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -o eve main.o view.o chrome.o eve_state.o -pthread  /OE/shr-core/tmp-eglibc/sysroots/nokia900/usr/lib/libelementary.so -L=/usr/lib -L=/usr/lib/..//lib /OE/shr-core/tmp-eglibc/sysroots/nokia900/usr/lib/libefreet_mime.so /OE/shr-core/tmp-eglibc/sysroots/nokia900/usr/lib/libefreet_trash.so /OE/shr-core/tmp-eglibc/sysroots/nokia900/usr/lib/libefreet.so /OE/shr-core/tmp-eglibc/sysroots/nokia900/usr/lib/libethumb_client.so /OE/shr-core/tmp-eglibc/sysroots/nokia900/usr/lib/libethumb.so /OE/shr-core/tmp-eglibc/sysroots/nokia900/usr/lib/libedje.so /OE/shr-core/tmp-eglibc/sysroots/nokia900/usr/lib/libecore_evas.so /OE/shr-core/tmp-eglibc/sysroots/nokia900/usr/lib/libecore_x.so /OE/shr-core/tmp-eglibc/sysroots/nokia900/usr/lib/libXcursor.so /OE/shr-core/tmp-eglibc/sysroots/nokia900/usr/lib/libXdamage.so /OE/shr-core/tmp-eglibc/sysroots/nokia900/usr/lib/libXcomposite.so /OE/shr-core/tmp-eglibc/sysroots/nokia900/usr/lib/libXfixes.so /OE/shr-core/tmp-eglibc/sysroots/nokia900/usr/lib/libXinerama.so /OE/shr-core/tmp-eglibc/sysroots/nokia900/usr/lib/libXp.so /OE/shr-core/tmp-eglibc/sysroots/nokia900/usr/lib/libXrandr.so /OE/shr-core/tmp-eglibc/sysroots/nokia900/usr/lib/libXss.so /OE/shr-core/tmp-eglibc/sysroots/nokia900/usr/lib/libXtst.so /OE/shr-core/tmp-eglibc/sysroots/nokia900/usr/lib/libXi.so /OE/shr-core/tmp-eglibc/sysroots/nokia900/usr/lib/libXext.so /OE/shr-core/tmp-eglibc/sysroots/nokia900/usr/lib/libecore_fb.so /OE/shr-core/tmp-eglibc/sysroots/nokia900/usr/lib/libts.so /OE/shr-core/tmp-eglibc/sysroots/nokia900/usr/lib/libecore_ipc.so /OE/shr-core/tmp-eglibc/sysroots/nokia900/usr/lib/libecore_input_evas.so /OE/shr-core/tmp-eglibc/sysroots/nokia900/usr/lib/libecore_input.so /OE/shr-core/tmp-eglibc/sysroots/nokia900/usr/lib/libembryo.so -llua /OE/shr-core/tmp-eglibc/sysroots/nokia900/usr/lib/libecore_imf_evas.so /OE/shr-core/tmp-eglibc/sysroots/nokia900/usr/lib/libsndfile.so /OE/shr-core/tmp-eglibc/sysroots/nokia900/usr/lib/libemotion.so /OE/shr-core/tmp-eglibc/sysroots/nokia900/usr/lib/libeeze.so /OE/shr-core/tmp-eglibc/sysroots/nokia900/usr/lib/libudev.so /OE/shr-core/tmp-eglibc/sysroots/nokia900/usr/lib/libmount.so /OE/shr-core/tmp-eglibc/sysroots/nokia900/usr/lib/libblkid.so /OE/shr-core/tmp-eglibc/sysroots/nokia900/usr/lib/libuuid.so /OE/shr-core/tmp-eglibc/sysroots/nokia900/usr/lib/libepdf.so /OE/shr-core/tmp-eglibc/sysroots/nokia900/usr/lib/libexif.so /OE/shr-core/tmp-eglibc/sysroots/nokia900/usr/lib/libpoppler.so /OE/shr-core/tmp-eglibc/sysroots/nokia900/usr/lib/liblcms.so /OE/shr-core/tmp-eglibc/sysroots/nokia900/usr/lib/../lib/libstdc++.so /OE/shr-core/tmp-eglibc/sysroots/nokia900/usr/lib/libecore_imf.so -lewebkit /OE/shr-core/tmp-eglibc/sysroots/nokia900/usr/lib/libcairo.so /OE/shr-core/tmp-eglibc/sysroots/nokia900/usr/lib/libpixman-1.so /OE/shr-core/tmp-eglibc/sysroots/nokia900/usr/lib/libpng12.so /OE/shr-core/tmp-eglibc/sysroots/nokia900/usr/lib/libXrender.so /OE/shr-core/tmp-eglibc/sysroots/nokia900/usr/lib/libX11.so /OE/shr-core/tmp-eglibc/sysroots/nokia900/usr/lib/libxcb.so /OE/shr-core/tmp-eglibc/sysroots/nokia900/usr/lib/libXau.so /OE/shr-core/tmp-eglibc/sysroots/nokia900/usr/lib/libXdmcp.so /OE/shr-core/tmp-eglibc/sysroots/nokia900/usr/lib/libevas.so /OE/shr-core/tmp-eglibc/sysroots/nokia900/usr/lib/libfribidi.so /OE/shr-core/tmp-eglibc/sysroots/nokia900/usr/lib/libfontconfig.so /OE/shr-core/tmp-eglibc/sysroots/nokia900/usr/lib/libfreetype.so /OE/shr-core/tmp-eglibc/sysroots/nokia900/usr/lib/libexpat.so /OE/shr-core/tmp-eglibc/sysroots/nokia900/usr/lib/libeet.so /OE/shr-core/tmp-eglibc/sysroots/nokia900/usr/lib/libjpeg.so /OE/shr-core/tmp-eglibc/sysroots/nokia900/usr/lib/libecore_file.so /OE/shr-core/tmp-eglibc/sysroots/nokia900/usr/lib/libecore_con.so /OE/shr-core/tmp-eglibc/sysroots/nokia900/usr/lib/libcurl.so /OE/shr-core/tmp-eglibc/sysroots/nokia900/usr/lib/libgnutls.so /OE/shr-core/tmp-eglibc/sysroots/nokia900/usr/lib/libtasn1.so /OE/shr-core/tmp-eglibc/sysroots/nokia900/usr/lib/libz.so /OE/shr-core/tmp-eglibc/sysroots/nokia900/usr/lib/libgcrypt.so -lcap /OE/shr-core/tmp-eglibc/sysroots/nokia900/usr/lib/libgpg-error.so /OE/shr-core/tmp-eglibc/sysroots/nokia900/usr/lib/libedbus.so /OE/shr-core/tmp-eglibc/sysroots/nokia900/usr/lib/libecore.so /OE/shr-core/tmp-eglibc/sysroots/nokia900/usr/lib/libglib-2.0.so /OE/shr-core/tmp-eglibc/sysroots/nokia900/usr/lib/libeina.so -ldl /OE/shr-core/tmp-eglibc/sysroots/nokia900/usr/lib/libdbus-1.so -lpthread -lrt -lm -pthread -Wl,-rpath -Wl,/usr/lib/../lib
OE @ ~/shr-core/tmp-eglibc/work/armv7a-vfp-neon-oe-linux-gnueabi/eve-0.3.0.0+svnr67278-r2/eve/src/bin $ ls -lah eve.link.libtool 
-rw-r--r-- 1 bitbake bitbake 57M Jan 18 08:03 eve.link.libtool

but doesn't fail like qemux86-64 does.

I'm uploading eve.link.libtool debug output to
http://build.shr-project.org/tests/jama/gcc-issue/eve.link.libtool
but it will take few more minutes..

Cheers,
-- 
Martin 'JaMa' Jansa     jabber: Martin.Jansa at gmail.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://lists.openembedded.org/pipermail/openembedded-core/attachments/20120118/e6dc689c/attachment-0002.sig>


More information about the Openembedded-core mailing list