This is a step towards running pebuilt applications for glibc  on musl
There are many realworld applications which are not always built from
source, especially provided by third party

Package the glibc symlinks into new package musl-glibc-compat

Signed-off-by: Khem Raj <raj.k...@gmail.com>
---
V3: Inherit linuxloader for glibc ldso

 meta/recipes-core/musl/musl_git.bb | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/meta/recipes-core/musl/musl_git.bb 
b/meta/recipes-core/musl/musl_git.bb
index be31718e3a..f0556533b5 100644
--- a/meta/recipes-core/musl/musl_git.bb
+++ b/meta/recipes-core/musl/musl_git.bb
@@ -2,6 +2,7 @@
 # Released under the MIT license (see COPYING.MIT for the terms)
 
 require musl.inc
+inherit linuxloader
 
 SRCREV = "0fa1e638e87cf257e9f96b4019b2076afd674a19"
 
@@ -26,6 +27,7 @@ DEPENDS = "virtual/${TARGET_PREFIX}binutils \
            bsd-headers \
            libssp-nonshared \
           "
+GLIBC_LDSO = "${@get_glibc_loader(d)}"
 
 export CROSS_COMPILE="${TARGET_PREFIX}"
 
@@ -62,12 +64,26 @@ do_install() {
        install -d ${D}${bindir}
        rm -f ${D}${bindir}/ldd
        lnr ${D}${libdir}/libc.so ${D}${bindir}/ldd
+       lnr ${D}${libdir}/libc.so ${D}${GLIBC_LDSO}
        for l in crypt dl m pthread resolv rt util xnet
        do
                ln -sf libc.so ${D}${libdir}/lib$l.so
        done
+       for i in libc.so.6 libcrypt.so.1 libdl.so.2 libm.so.6 libpthread.so.0 
libresolv.so.2 librt.so.1 libutil.so.1; do
+               ln -sf libc.so ${D}${libdir}/$i
+       done
 }
 
+PACKAGES =+ "${PN}-glibc-compat"
+
+FILES_${PN}-glibc-compat += "\
+                ${libdir}/libc.so.6 ${libdir}/libcrypt.so.1 \
+                ${libdir}/libdl.so.2 ${libdir}/libm.so.6 \
+                ${libdir}/libpthread.so.0 ${libdir}/libresolv.so.2 \
+                ${libdir}/librt.so.1 ${libdir}/libutil.so.1 \
+                ${GLIBC_LDSO} \
+                "
+
 RDEPENDS_${PN}-dev += "linux-libc-headers-dev bsd-headers-dev 
libssp-nonshared-staticdev"
 RPROVIDES_${PN}-dev += "libc-dev virtual-libc-dev"
 RPROVIDES_${PN} += "ldd libsegfault rtld(GNU_HASH)"
-- 
2.19.0

-- 
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Reply via email to