[OE-core] uclibc SDK not including libpthread_nonshared.a

Mark Norman mpnorman at gmail.com
Sun Apr 22 11:47:27 UTC 2012


Hi,

I have experienced some issues building external code using an oe-core
built SDK.  I can get code to compile fine but when linking it
complains about missing libpthread_nonshared.a or uclibc_nonshared.a.
Neither library is included in the SDK directory.  I noticed that
uclibc.inc
attempts to include these two libraries into the -dev package (from
meta/recipes-core/uclibc/uclibc.inc):

FILES_${PN}-dev_append = "\
       ${libdir}/lib*.so \
       ${libdir}/*_nonshared.a \      <---- Note
       ${libdir}/[S]*crt[1in].o \
       ${libdir}/crtreloc*.o \
       ${includedir}/*.h ${includedir}/*/*.h \
      "

However, the two _nonshared.a libraries end up getting packaged in the
-staticdev package.  I think this is because the -staticdev package
gets processed before the -dev package (as defined in
meta/conf/bitbake.conf).  The eglibc-package.inc also tries to package
the _nonshared.a libraries into the -dev package but I did notice that
the eglibc PACKAGES argument explicitly lists the -dev package before
-staticdev.  I tried the same thing in uclibc.inc eg:

--- a/meta/recipes-core/uclibc/uclibc.inc
+++ b/meta/recipes-core/uclibc/uclibc.inc
@@ -48,9 +48,7 @@ RDEPENDS_${PN}-dev = "linux-libc-headers-dev"

 INHIBIT_DEFAULT_DEPS = "1"

-PACKAGES =+ "ldd uclibc-utils-dbg uclibc-utils uclibc-gconv
uclibc-thread-db uclibc-argp uclibc-backtrace"
-PACKAGES =+ "uclibc-libcrypt uclibc-libintl uclibc-libnsl
uclibc-libresolv uclibc-libm"
-PACKAGES =+ "uclibc-libdl uclibc-libutil uclibc-libpthread uclibc-librt"
+PACKAGES = "${PN}-dbg ${PN} ldd ${PN}-utils ${PN}-utils-dbg
uclibc-thread-db uclibc-gconv ${PN}-dev ${PN}-staticdev ${PN}-doc
uclibc-argp uclibc-backtrace uclibc-libcrypt uclibc-libintl
uclibc-libnsl uclibc-libresolv uclibc-libm uclibc-libdl uclibc-libutil
uclibc-libpthread uclibc-librt"


Doing this caused the _nonshared.a libraries to successfully get
packaged in the -dev package.

Is this the correct way to get this to work?  If so I am happy to
submit a proper patch, otherwise is there something else I am missing?

Kind Regards

Mark Norman




More information about the Openembedded-core mailing list