Skip to contentSkip to conversation

glibc: Adapt do_install_append_aarch64() for usrmerge

PATCH In review Peter Kjellerstedt 2 participants 3 messages Jan 27, 2018 – Jan 29, 2018

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 glibc: Adapt do_install_append_aarch64() for usrmerge

Change hardcoded /lib to ${nonarch_base_libdir} to correctly adapt the code in do_install_append_aarch64() for when usrmerge is enabled in DISTRO_FEATURES.

---
 meta/recipes-core/glibc/glibc-package.inc | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)
meta/recipes-core/glibc/glibc-package.inc +6 -6
index 817d850358..4d3dc679b4 100644
@@ -114,15 +114,15 @@ do_install_append () {
 }
 
 do_install_append_aarch64 () {
-	if [ "${base_libdir}" != "/lib" ] ; then
+	if [ "${base_libdir}" != "${nonarch_base_libdir}" ]; then
 		# The aarch64 ABI says the dynamic linker -must- be /lib/ld-linux-aarch64[_be].so.1
-		install -d ${D}/lib
+		install -d ${D}${nonarch_base_libdir}
 		if [ -e ${D}${base_libdir}/ld-linux-aarch64.so.1 ]; then
-			ln -s ${@base_path_relative('/lib', '${base_libdir}')}/ld-linux-aarch64.so.1 \
-				${D}/lib/ld-linux-aarch64.so.1
+			ln -s ${@base_path_relative('${nonarch_base_libdir}', '${base_libdir}')}/ld-linux-aarch64.so.1 \
+				${D}${nonarch_base_libdir}/ld-linux-aarch64.so.1
 		elif [ -e ${D}${base_libdir}/ld-linux-aarch64_be.so.1 ]; then
-			ln -s ${@base_path_relative('/lib', '${base_libdir}')}/ld-linux-aarch64_be.so.1 \
-				${D}/lib/ld-linux-aarch64_be.so.1
+			ln -s ${@base_path_relative('${nonarch_base_libdir}', '${base_libdir}')}/ld-linux-aarch64_be.so.1 \
+				${D}${nonarch_base_libdir}/ld-linux-aarch64_be.so.1
 		fi
 	fi
 	do_install_armmultilib
Signature · 1 line
2.12.0
#1 lore raw

How does the patch relate to the comment which states the ABI says the path *must* be /lib/. Is that wrong? How does this interact with the merged symlink creation in image.bbclass? Please expand on the message so it's clear what is meant to be happening.

Ross

On 27 January 2018 at 03:53, Peter Kjellerstedt <[email protected]

Quoted 55 lines

wrote:

Change hardcoded /lib to ${nonarch_base_libdir} to correctly adapt the code in do_install_append_aarch64() for when usrmerge is enabled in DISTRO_FEATURES.

---
 meta/recipes-core/glibc/glibc-package.inc | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)
meta/recipes-core/glibc/glibc-package.inc +1 -1
index 817d850358..4d3dc679b4 100644
@@ -114,15 +114,15 @@ do_install_append () {
 }
 
 do_install_append_aarch64 () {
-       if [ "${base_libdir}" != "/lib" ] ; then
+       if [ "${base_libdir}" != "${nonarch_base_libdir}" ]; then
                # The aarch64 ABI says the dynamic linker -must- be

/lib/ld-linux-aarch64[_be].so.1

meta/recipes-core/glibc/glibc-package.inc +1 -2
-               install -d ${D}/lib
+               install -d ${D}${nonarch_base_libdir}
                if [ -e ${D}${base_libdir}/ld-linux-aarch64.so.1 ]; then
-                       ln -s ${@base_path_relative('/lib',

'${base_libdir}')}/ld-linux-aarch64.so.1 \

meta/recipes-core/glibc/glibc-package.inc +1 -1
-                               ${D}/lib/ld-linux-aarch64.so.1
+                       ln -s ${@base_path_relative('${nonarch_base_libdir}',

'${base_libdir}')}/ld-linux-aarch64.so.1 \
+ ${D}${nonarch_base_libdir}/ld-
linux-aarch64.so.1

                elif [ -e ${D}${base_libdir}/ld-linux-aarch64_be.so.1 ];

then
- ln -s ${@base_path_relative('/lib',
'${base_libdir}')}/ld-linux-aarch64_be.so.1 \

meta/recipes-core/glibc/glibc-package.inc +1 -1
-                               ${D}/lib/ld-linux-aarch64_be.so.1
+                       ln -s ${@base_path_relative('${nonarch_base_libdir}',

'${base_libdir}')}/ld-linux-aarch64_be.so.1 \
+ ${D}${nonarch_base_libdir}/ld-
linux-aarch64_be.so.1
fi
fi
do_install_armmultilib
--
2.12.0

--
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core

#2 lore raw

Apparently this was already merged. However, the assumption is that ${nonarch_base_libdir} will evaluate to /lib, or something that will be accessible as /lib. I.e., the default definition of ${nonarch_base_libdir} is “/lib” unless usrmerge is in DISTRO_FEATURES, in which case it is “${root_prefix/lib” (which evaluates to “/usr/lib”), but then a symbolic link will be created from “/lib” to “/usr/lib”.

//Peter

From: Burton, Ross [mailto:[email protected]]
Sent: den 29 januari 2018 18:33
To: Peter Kjellerstedt <[email protected]>
Cc: OE-core <[email protected]>
Subject: Re: [OE-core] [PATCH] glibc: Adapt do_install_append_aarch64() for usrmerge

How does the patch relate to the comment which states the ABI says the path *must* be /lib/. Is that wrong? How does this interact with the merged symlink creation in image.bbclass? Please expand on the message so it's clear what is meant to be happening.

Ross

On 27 January 2018 at 03:53, Peter Kjellerstedt <[email protected]<mailto:[email protected]>> wrote:
Change hardcoded /lib to ${nonarch_base_libdir} to correctly adapt the
code in do_install_append_aarch64() for when usrmerge is enabled in
DISTRO_FEATURES.

---
 meta/recipes-core/glibc/glibc-package.inc | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)
meta/recipes-core/glibc/glibc-package.inc +6 -6
index 817d850358..4d3dc679b4 100644
@@ -114,15 +114,15 @@ do_install_append () {
 }
 
 do_install_append_aarch64 () {
-       if [ "${base_libdir}" != "/lib" ] ; then
+       if [ "${base_libdir}" != "${nonarch_base_libdir}" ]; then
                # The aarch64 ABI says the dynamic linker -must- be /lib/ld-linux-aarch64[_be].so.1
-               install -d ${D}/lib
+               install -d ${D}${nonarch_base_libdir}
                if [ -e ${D}${base_libdir}/ld-linux-aarch64.so.1 ]; then
-                       ln -s ${@base_path_relative('/lib', '${base_libdir}')}/ld-linux-aarch64.so.1 \
-                               ${D}/lib/ld-linux-aarch64.so.1
+                       ln -s ${@base_path_relative('${nonarch_base_libdir}', '${base_libdir}')}/ld-linux-aarch64.so.1 \
+                               ${D}${nonarch_base_libdir}/ld-linux-aarch64.so.1
                elif [ -e ${D}${base_libdir}/ld-linux-aarch64_be.so.1 ]; then
-                       ln -s ${@base_path_relative('/lib', '${base_libdir}')}/ld-linux-aarch64_be.so.1 \
-                               ${D}/lib/ld-linux-aarch64_be.so.1
+                       ln -s ${@base_path_relative('${nonarch_base_libdir}', '${base_libdir}')}/ld-linux-aarch64_be.so.1 \
+                               ${D}${nonarch_base_libdir}/ld-linux-aarch64_be.so.1
                fi
        fi
        do_install_armmultilib

--
2.12.0

--
_______________________________________________
Openembedded-core mailing list [email protected]<mailto:[email protected]>
http://lists.openembedded.org/mailman/listinfo/openembedded-core