diff options
author | Mark Hatle <mark.hatle@windriver.com> | 2014-12-18 16:51:13 +0800 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2014-12-23 10:18:19 +0000 |
commit | a1d75c2cf8ddb6bb48220ffdc883e11b9c06c8d9 (patch) | |
tree | 55eb755c0f668e64f951115d6dba5d7df8715226 | |
parent | 3923f7ea0b581f7a0f283e512ae8e70f63841a42 (diff) | |
download | poky-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.inc | 16 |
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" | |||
32 | RPROVIDES_${PN}-pcprofile = "eglibc-pcprofile" | 32 | RPROVIDES_${PN}-pcprofile = "eglibc-pcprofile" |
33 | RPROVIDES_${PN}-dbg = "eglibc-dbg" | 33 | RPROVIDES_${PN}-dbg = "eglibc-dbg" |
34 | libc_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" | 34 | libc_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" |
35 | libc_baselibs_append_aarch64 = " /lib/ld-linux-aarch64*.so.1" | ||
36 | INSANE_SKIP_glibc_append_aarch64 = " libdir" | ||
35 | 37 | ||
36 | FILES_${PN} = "${libc_baselibs} ${libexecdir}/* ${@base_conditional('USE_LDCONFIG', '1', '${base_sbindir}/ldconfig ${sysconfdir}/ld.so.conf', '', d)}" | 38 | FILES_${PN} = "${libc_baselibs} ${libexecdir}/* ${@base_conditional('USE_LDCONFIG', '1', '${base_sbindir}/ldconfig ${sysconfdir}/ld.so.conf', '', d)}" |
37 | FILES_ldd = "${bindir}/ldd" | 39 | FILES_ldd = "${bindir}/ldd" |
@@ -103,6 +105,20 @@ do_install_append () { | |||
103 | fi | 105 | fi |
104 | } | 106 | } |
105 | 107 | ||
108 | do_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 | |||
106 | do_install_locale () { | 122 | do_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} |