commit:     0f03fe55907dbce2d0fcb65449146e01e4fe7a30
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Tue Jun  8 07:17:34 2021 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Tue Jun  8 07:19:28 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0f03fe55

sys-libs/glibc: backport ld.so symlink fix for ppc64 LE

>From https://sourceware.org/glibc/wiki/ABIList#powerpc glibc
supports two dynamic linker paths:

- 64-bit ELFv1 BE: /lib64/ld64.so.1 (ELFv2 BE is not supported)
- 64-bit ELFv2 LE: /lib64/ld64.so.2 (ELFv1 LE is not supported)

Bug: https://bugs.gentoo.org/755551
Signed-off-by: Alexei Colin <ac <AT> alexeicolin.com>
Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 sys-libs/glibc/glibc-2.19-r2.ebuild | 5 ++++-
 sys-libs/glibc/glibc-2.30-r9.ebuild | 5 ++++-
 sys-libs/glibc/glibc-2.31-r7.ebuild | 5 ++++-
 sys-libs/glibc/glibc-2.32-r6.ebuild | 5 ++++-
 sys-libs/glibc/glibc-2.32-r7.ebuild | 5 ++++-
 sys-libs/glibc/glibc-2.32-r8.ebuild | 5 ++++-
 6 files changed, 24 insertions(+), 6 deletions(-)

diff --git a/sys-libs/glibc/glibc-2.19-r2.ebuild 
b/sys-libs/glibc/glibc-2.19-r2.ebuild
index 74facde0736..933241c8139 100644
--- a/sys-libs/glibc/glibc-2.19-r2.ebuild
+++ b/sys-libs/glibc/glibc-2.19-r2.ebuild
@@ -1078,7 +1078,6 @@ glibc_do_src_install() {
                n64     /lib64/ld.so.1
                # powerpc
                ppc     /lib/ld.so.1
-               ppc64   /lib64/ld64.so.1
                # s390
                s390    /lib/ld.so.1
                s390x   /lib/ld64.so.1
@@ -1091,12 +1090,16 @@ glibc_do_src_install() {
                ldso_abi_list+=(
                        # arm
                        arm64   /lib/ld-linux-aarch64.so.1
+                       # ELFv2 (glibc does not support ELFv1 on LE)
+                       ppc64   /lib64/ld64.so.2
                )
                ;;
        big)
                ldso_abi_list+=(
                        # arm
                        arm64   /lib/ld-linux-aarch64_be.so.1
+                       # ELFv1 (glibc does not support ELFv2 on BE)
+                       ppc64   /lib64/ld64.so.1
                )
                ;;
        esac

diff --git a/sys-libs/glibc/glibc-2.30-r9.ebuild 
b/sys-libs/glibc/glibc-2.30-r9.ebuild
index 6999aab3d92..c914722d46b 100644
--- a/sys-libs/glibc/glibc-2.30-r9.ebuild
+++ b/sys-libs/glibc/glibc-2.30-r9.ebuild
@@ -1215,7 +1215,6 @@ glibc_do_src_install() {
                n64     /lib64/ld.so.1
                # powerpc
                ppc     /lib/ld.so.1
-               ppc64   /lib64/ld64.so.1
                # riscv
                lp64d   /lib/ld-linux-riscv64-lp64d.so.1
                lp64    /lib/ld-linux-riscv64-lp64.so.1
@@ -1231,12 +1230,16 @@ glibc_do_src_install() {
                ldso_abi_list+=(
                        # arm
                        arm64   /lib/ld-linux-aarch64.so.1
+                       # ELFv2 (glibc does not support ELFv1 on LE)
+                       ppc64   /lib64/ld64.so.2
                )
                ;;
        big)
                ldso_abi_list+=(
                        # arm
                        arm64   /lib/ld-linux-aarch64_be.so.1
+                       # ELFv1 (glibc does not support ELFv2 on BE)
+                       ppc64   /lib64/ld64.so.1
                )
                ;;
        esac

diff --git a/sys-libs/glibc/glibc-2.31-r7.ebuild 
b/sys-libs/glibc/glibc-2.31-r7.ebuild
index c9d28dcd752..975a2dec59c 100644
--- a/sys-libs/glibc/glibc-2.31-r7.ebuild
+++ b/sys-libs/glibc/glibc-2.31-r7.ebuild
@@ -1242,7 +1242,6 @@ glibc_do_src_install() {
                n64     /lib64/ld.so.1
                # powerpc
                ppc     /lib/ld.so.1
-               ppc64   /lib64/ld64.so.1
                # riscv
                lp64d   /lib/ld-linux-riscv64-lp64d.so.1
                lp64    /lib/ld-linux-riscv64-lp64.so.1
@@ -1258,12 +1257,16 @@ glibc_do_src_install() {
                ldso_abi_list+=(
                        # arm
                        arm64   /lib/ld-linux-aarch64.so.1
+                       # ELFv2 (glibc does not support ELFv1 on LE)
+                       ppc64   /lib64/ld64.so.2
                )
                ;;
        big)
                ldso_abi_list+=(
                        # arm
                        arm64   /lib/ld-linux-aarch64_be.so.1
+                       # ELFv1 (glibc does not support ELFv2 on BE)
+                       ppc64   /lib64/ld64.so.1
                )
                ;;
        esac

diff --git a/sys-libs/glibc/glibc-2.32-r6.ebuild 
b/sys-libs/glibc/glibc-2.32-r6.ebuild
index b22bf22729e..8afea512b5a 100644
--- a/sys-libs/glibc/glibc-2.32-r6.ebuild
+++ b/sys-libs/glibc/glibc-2.32-r6.ebuild
@@ -1271,7 +1271,6 @@ glibc_do_src_install() {
                n64     /lib64/ld.so.1
                # powerpc
                ppc     /lib/ld.so.1
-               ppc64   /lib64/ld64.so.1
                # riscv
                ilp32d  /lib/ld-linux-riscv32-ilp32d.so.1
                ilp32   /lib/ld-linux-riscv32-ilp32.so.1
@@ -1289,12 +1288,16 @@ glibc_do_src_install() {
                ldso_abi_list+=(
                        # arm
                        arm64   /lib/ld-linux-aarch64.so.1
+                       # ELFv2 (glibc does not support ELFv1 on LE)
+                       ppc64   /lib64/ld64.so.2
                )
                ;;
        big)
                ldso_abi_list+=(
                        # arm
                        arm64   /lib/ld-linux-aarch64_be.so.1
+                       # ELFv1 (glibc does not support ELFv2 on BE)
+                       ppc64   /lib64/ld64.so.1
                )
                ;;
        esac

diff --git a/sys-libs/glibc/glibc-2.32-r7.ebuild 
b/sys-libs/glibc/glibc-2.32-r7.ebuild
index f8798e21fcf..4725b3e6a7f 100644
--- a/sys-libs/glibc/glibc-2.32-r7.ebuild
+++ b/sys-libs/glibc/glibc-2.32-r7.ebuild
@@ -1271,7 +1271,6 @@ glibc_do_src_install() {
                n64     /lib64/ld.so.1
                # powerpc
                ppc     /lib/ld.so.1
-               ppc64   /lib64/ld64.so.1
                # riscv
                ilp32d  /lib/ld-linux-riscv32-ilp32d.so.1
                ilp32   /lib/ld-linux-riscv32-ilp32.so.1
@@ -1289,12 +1288,16 @@ glibc_do_src_install() {
                ldso_abi_list+=(
                        # arm
                        arm64   /lib/ld-linux-aarch64.so.1
+                       # ELFv2 (glibc does not support ELFv1 on LE)
+                       ppc64   /lib64/ld64.so.2
                )
                ;;
        big)
                ldso_abi_list+=(
                        # arm
                        arm64   /lib/ld-linux-aarch64_be.so.1
+                       # ELFv1 (glibc does not support ELFv2 on BE)
+                       ppc64   /lib64/ld64.so.1
                )
                ;;
        esac

diff --git a/sys-libs/glibc/glibc-2.32-r8.ebuild 
b/sys-libs/glibc/glibc-2.32-r8.ebuild
index f02000d318d..101254fce5a 100644
--- a/sys-libs/glibc/glibc-2.32-r8.ebuild
+++ b/sys-libs/glibc/glibc-2.32-r8.ebuild
@@ -1271,7 +1271,6 @@ glibc_do_src_install() {
                n64     /lib64/ld.so.1
                # powerpc
                ppc     /lib/ld.so.1
-               ppc64   /lib64/ld64.so.1
                # riscv
                ilp32d  /lib/ld-linux-riscv32-ilp32d.so.1
                ilp32   /lib/ld-linux-riscv32-ilp32.so.1
@@ -1289,12 +1288,16 @@ glibc_do_src_install() {
                ldso_abi_list+=(
                        # arm
                        arm64   /lib/ld-linux-aarch64.so.1
+                       # ELFv2 (glibc does not support ELFv1 on LE)
+                       ppc64   /lib64/ld64.so.2
                )
                ;;
        big)
                ldso_abi_list+=(
                        # arm
                        arm64   /lib/ld-linux-aarch64_be.so.1
+                       # ELFv1 (glibc does not support ELFv2 on BE)
+                       ppc64   /lib64/ld64.so.1
                )
                ;;
        esac

Reply via email to