summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMark Hatle <mark.hatle@windriver.com>2014-12-18 16:51:13 +0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2014-12-23 10:18:19 +0000
commita1d75c2cf8ddb6bb48220ffdc883e11b9c06c8d9 (patch)
tree55eb755c0f668e64f951115d6dba5d7df8715226
parent3923f7ea0b581f7a0f283e512ae8e70f63841a42 (diff)
downloadpoky-a1d75c2cf8ddb6bb48220ffdc883e11b9c06c8d9.tar.gz
glibc-package: aarch64 enable symlink for ABI compliance
aarch64 requires the ld.so to be present in /lib, even if the rest of the libraries are installed into an alternative directory. See: https://sourceware.org/glibc/wiki/ABIList (From OE-Core rev: aeb6f53dd607ceb0d2265a05c27f751109c73752) Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/recipes-core/glibc/glibc-package.inc16
1 files changed, 16 insertions, 0 deletions
diff --git a/meta/recipes-core/glibc/glibc-package.inc b/meta/recipes-core/glibc/glibc-package.inc
index 6212e5b38e..984362e3ce 100644
--- a/meta/recipes-core/glibc/glibc-package.inc
+++ b/meta/recipes-core/glibc/glibc-package.inc
@@ -32,6 +32,8 @@ RPROVIDES_glibc-thread-db = "eglibc-thread-db"
32RPROVIDES_${PN}-pcprofile = "eglibc-pcprofile" 32RPROVIDES_${PN}-pcprofile = "eglibc-pcprofile"
33RPROVIDES_${PN}-dbg = "eglibc-dbg" 33RPROVIDES_${PN}-dbg = "eglibc-dbg"
34libc_baselibs = "${base_libdir}/libcrypt*.so.* ${base_libdir}/libcrypt-*.so ${base_libdir}/libc.so.* ${base_libdir}/libc-*.so ${base_libdir}/libm*.so.* ${base_libdir}/libm-*.so ${base_libdir}/ld*.so.* ${base_libdir}/ld-*.so ${base_libdir}/libpthread*.so.* ${base_libdir}/libpthread-*.so ${base_libdir}/libresolv*.so.* ${base_libdir}/libresolv-*.so ${base_libdir}/librt*.so.* ${base_libdir}/librt-*.so ${base_libdir}/libutil*.so.* ${base_libdir}/libutil-*.so ${base_libdir}/libnsl*.so.* ${base_libdir}/libnsl-*.so ${base_libdir}/libnss_files*.so.* ${base_libdir}/libnss_files-*.so ${base_libdir}/libnss_compat*.so.* ${base_libdir}/libnss_compat-*.so ${base_libdir}/libnss_dns*.so.* ${base_libdir}/libnss_dns-*.so ${base_libdir}/libdl*.so.* ${base_libdir}/libdl-*.so ${base_libdir}/libanl*.so.* ${base_libdir}/libanl-*.so ${base_libdir}/libBrokenLocale*.so.* ${base_libdir}/libBrokenLocale-*.so" 34libc_baselibs = "${base_libdir}/libcrypt*.so.* ${base_libdir}/libcrypt-*.so ${base_libdir}/libc.so.* ${base_libdir}/libc-*.so ${base_libdir}/libm*.so.* ${base_libdir}/libm-*.so ${base_libdir}/ld*.so.* ${base_libdir}/ld-*.so ${base_libdir}/libpthread*.so.* ${base_libdir}/libpthread-*.so ${base_libdir}/libresolv*.so.* ${base_libdir}/libresolv-*.so ${base_libdir}/librt*.so.* ${base_libdir}/librt-*.so ${base_libdir}/libutil*.so.* ${base_libdir}/libutil-*.so ${base_libdir}/libnsl*.so.* ${base_libdir}/libnsl-*.so ${base_libdir}/libnss_files*.so.* ${base_libdir}/libnss_files-*.so ${base_libdir}/libnss_compat*.so.* ${base_libdir}/libnss_compat-*.so ${base_libdir}/libnss_dns*.so.* ${base_libdir}/libnss_dns-*.so ${base_libdir}/libdl*.so.* ${base_libdir}/libdl-*.so ${base_libdir}/libanl*.so.* ${base_libdir}/libanl-*.so ${base_libdir}/libBrokenLocale*.so.* ${base_libdir}/libBrokenLocale-*.so"
35libc_baselibs_append_aarch64 = " /lib/ld-linux-aarch64*.so.1"
36INSANE_SKIP_glibc_append_aarch64 = " libdir"
35 37
36FILES_${PN} = "${libc_baselibs} ${libexecdir}/* ${@base_conditional('USE_LDCONFIG', '1', '${base_sbindir}/ldconfig ${sysconfdir}/ld.so.conf', '', d)}" 38FILES_${PN} = "${libc_baselibs} ${libexecdir}/* ${@base_conditional('USE_LDCONFIG', '1', '${base_sbindir}/ldconfig ${sysconfdir}/ld.so.conf', '', d)}"
37FILES_ldd = "${bindir}/ldd" 39FILES_ldd = "${bindir}/ldd"
@@ -103,6 +105,20 @@ do_install_append () {
103 fi 105 fi
104} 106}
105 107
108do_install_append_aarch64 () {
109 if [ "${base_libdir}" != "/lib" ] ; then
110 # The aarch64 ABI says the dynamic linker -must- be /lib/ld-linux-aarch64[_be].so.1
111 install -d ${D}/lib
112 if [ -e ${D}${base_libdir}/ld-linux-aarch64.so.1 ]; then
113 ln -s ${@base_path_relative('/lib', '${base_libdir}')}/ld-linux-aarch64.so.1 \
114 ${D}/lib/ld-linux-aarch64.so.1
115 elif [ -e ${D}${base_libdir}/ld-linux-aarch64_be.so.1 ]; then
116 ln -s ${@base_path_relative('/lib', '${base_libdir}')}/ld-linux-aarch64_be.so.1 \
117 ${D}/lib/ld-linux-aarch64_be.so.1
118 fi
119 fi
120}
121
106do_install_locale () { 122do_install_locale () {
107 dest=${D}/${includedir}/glibc-locale-internal-${MULTIMACH_TARGET_SYS} 123 dest=${D}/${includedir}/glibc-locale-internal-${MULTIMACH_TARGET_SYS}
108 install -d ${dest}${base_libdir} ${dest}${bindir} ${dest}${libdir} ${dest}${datadir} 124 install -d ${dest}${base_libdir} ${dest}${bindir} ${dest}${libdir} ${dest}${datadir}