[oe] [PATCH] glibc staging puts .a files in /lib

Khem Raj raj.khem at gmail.com
Mon May 26 05:47:04 UTC 2008


Hi 

I have been seeing this problem where link would fail for libgcc when
building libgcc with some weird messages like 

version node not found for symbol __longjmp@@GLIBC_2.3.4

also Leon was seeing same issue on eglibc. I tracked this problem to
this problem in eglibc that it was installing libc.a in $sysroot/lib 
where as all .a files should be in $sysroot/usr/lib then I saw that this
was being done in do_stage in glibc-stage.inc 

Anyway the problem was that in glibc we use install-lib and
install-headers targets which does not put the /usr/lib/libc.so
and /usr/lib/libpthread.so scripts. If we did use 'install' these
scripts would be installed correctly.

Anyway then do_stage tries to manually generate those files and I am
seeing that even in glibc these paths are not correct and .a files are
copied into $sysroot/lib

The attached patch fixes it for glibc. Eglibc also needs similar fix but
I decided to use make install in eglibc which makes it much easier.

OK ?

Thanks

-Khem

#
# old_revision [273d68b8b346bda4dde4800b40123921d50c6fc8]
#
# patch "packages/glibc/glibc-stage.inc"
#  from [c50ef9d6a30c9a54b38d3166f9c5c13a1535a9e6]
#    to [8abe1d7d9fd4c34d725a7f26db2110bb66ec3e16]
#
============================================================
--- packages/glibc/glibc-stage.inc	c50ef9d6a30c9a54b38d3166f9c5c13a1535a9e6
+++ packages/glibc/glibc-stage.inc	8abe1d7d9fd4c34d725a7f26db2110bb66ec3e16
@@ -16,8 +16,8 @@ do_stage() {
 		install -m 0644 ${S}/sunrpc/rpcsvc/$h ${STAGING_INCDIR}/rpcsvc/
 	done
 	for i in libc.a libc_pic.a libc_nonshared.a; do
-		install -m 0644 ${B}/$i ${STAGING_DIR_HOST}/${layout_base_libdir}/ || die "failed to install $i"
+		install -m 0644 ${B}/$i ${STAGING_DIR_HOST}/${layout_libdir}/ || die "failed to install $i"
 	done
-	echo 'GROUP ( libpthread.so.0 libpthread_nonshared.a )' > ${STAGING_DIR_HOST}/${layout_base_libdir}/libpthread.so
-	echo 'GROUP ( libc.so.6 libc_nonshared.a )' > ${STAGING_DIR_HOST}/${layout_base_libdir}/libc.so
+	echo 'GROUP ( ${layout_base_libdir}/libpthread.so.0 ${layout_libdir}/libpthread_nonshared.a )' > ${STAGING_DIR_HOST}/${layout_libdir}/libpthread.so
+	echo 'GROUP ( ${layout_base_libdir}/libc.so.6 ${layout_libdir}/libc_nonshared.a )' > ${STAGING_DIR_HOST}/${layout_libdir}/libc.so
 }

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
URL: <http://lists.openembedded.org/pipermail/openembedded-devel/attachments/20080525/05db71e5/attachment-0002.sig>


More information about the Openembedded-devel mailing list