diff options
author | Jason Wessel <jason.wessel@windriver.com> | 2019-06-29 19:15:48 -0700 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2019-09-30 16:44:42 +0100 |
commit | e973b8d7e289e2b6f10d8e553fa6bb71cf5fd4f4 (patch) | |
tree | 3e101fbf09520999cf46089cff4b9aab897acde8 | |
parent | 556d54a9ae7cd35a075d89db05b0b89e1e81f9fe (diff) | |
download | poky-e973b8d7e289e2b6f10d8e553fa6bb71cf5fd4f4.tar.gz |
glibc: Fix multilibs + usrmerge builds
The build of glibc fails when you have multilibs enabled + the distro
feature usrmerge. Here is an example configuration:
===
MACHINE = "qemux86-64"
VIRTUAL-RUNTIME_init_manager = "systemd"
DISTRO_FEATURES_append = " systemd "
DISTRO_FEATURES_append += " usrmerge"
require conf/multilib.conf
MULTILIBS = "multilib:lib32"
DEFAULTTUNE_virtclass-multilib-lib32 = "x86"
===
This will fail with the following error:
NOTE: Executing SetScene Tasks
NOTE: Executing RunQueue Tasks
ERROR: glibc-2.28-r0 do_poststash_install_cleanup: Function failed: do_poststash_install_cleanup (log file is located at /poky/build/tmp/work/core2-64-poky-linux/glibc/2.28-r0/temp/log.do_poststash_install_cleanup.107893)
ERROR: Logfile of failure stored in: /poky/build/tmp/work/core2-64-poky-linux/glibc/2.28-r0/temp/log.do_poststash_install_cleanup.107893
The fix is to not perform the rmdir check when using the multilib + usr/merge, namely:
if [ "${libdir}" != "${exec_prefix}/lib" ] && [ "${root_prefix}/lib" != "${exec_prefix}/lib" ]; then
This will evaluate as follows (collecting the output from bitbake -e glibc)
* no multilibs no usrmerge
if [ "/usr/lib" != "/usr/lib" ] && [ "/lib" != "/usr/lib" ]; then
* no multilibs yes usrmerge
if [ "/usr/lib" != "/usr/lib" ] && [ "/usr/lib" != "/usr/lib" ]; then
* yes multilibs no usrmerge
if [ "/usr/lib64" != "/usr/lib" ] && [ "/lib" != "/usr/lib" ]; then
* yes multilibs yes user merge
if [ "/usr/lib64" != "/usr/lib" ] && [ "/usr/lib" != "/usr/lib" ]; then
(From OE-Core rev: 273571804567a4520f1e17f5f8a28b85325d0eb2)
Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r-- | meta/recipes-core/glibc/glibc-package.inc | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/meta/recipes-core/glibc/glibc-package.inc b/meta/recipes-core/glibc/glibc-package.inc index b7c64a0b2e..a1d79b3075 100644 --- a/meta/recipes-core/glibc/glibc-package.inc +++ b/meta/recipes-core/glibc/glibc-package.inc | |||
@@ -214,7 +214,7 @@ do_poststash_install_cleanup () { | |||
214 | rm -rf ${D}${libdir}/gconv | 214 | rm -rf ${D}${libdir}/gconv |
215 | rm -rf ${D}/${localedir} | 215 | rm -rf ${D}/${localedir} |
216 | rm -rf ${D}${datadir}/locale | 216 | rm -rf ${D}${datadir}/locale |
217 | if [ "${libdir}" != "${exec_prefix}/lib" ]; then | 217 | if [ "${libdir}" != "${exec_prefix}/lib" ] && [ "${root_prefix}/lib" != "${exec_prefix}/lib" ]; then |
218 | if [ -d "${D}${exec_prefix}/lib" ]; then | 218 | if [ -d "${D}${exec_prefix}/lib" ]; then |
219 | if [ -z "${ARCH_DYNAMIC_LOADER}" -o \ | 219 | if [ -z "${ARCH_DYNAMIC_LOADER}" -o \ |
220 | ! -e "${D}${exec_prefix}/lib/${ARCH_DYNAMIC_LOADER}" ]; then | 220 | ! -e "${D}${exec_prefix}/lib/${ARCH_DYNAMIC_LOADER}" ]; then |