commit:     59ad8840f2ded712964ba82afb1833946bd45a69
Author:     Alexei Colin <ac <AT> alexeicolin <DOT> com>
AuthorDate: Fri Jan 22 20:23:39 2021 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Mon Jun  7 22:16:46 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=59ad8840

sys-libs/glibc: fix ld.so symlink 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>

 eclass/toolchain-glibc.eclass    | 5 ++++-
 sys-libs/glibc/glibc-2.33.ebuild | 5 ++++-
 sys-libs/glibc/glibc-9999.ebuild | 5 ++++-
 3 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/eclass/toolchain-glibc.eclass b/eclass/toolchain-glibc.eclass
index f48f7050732..ffe7b9e1fd1 100644
--- a/eclass/toolchain-glibc.eclass
+++ b/eclass/toolchain-glibc.eclass
@@ -1240,7 +1240,6 @@ toolchain-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
@@ -1253,12 +1252,16 @@ toolchain-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.33.ebuild b/sys-libs/glibc/glibc-2.33.ebuild
index 083cfa41311..239334c0899 100644
--- a/sys-libs/glibc/glibc-2.33.ebuild
+++ b/sys-libs/glibc/glibc-2.33.ebuild
@@ -1248,7 +1248,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
@@ -1266,12 +1265,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-9999.ebuild b/sys-libs/glibc/glibc-9999.ebuild
index fd820a1d523..f6c0a1f83f5 100644
--- a/sys-libs/glibc/glibc-9999.ebuild
+++ b/sys-libs/glibc/glibc-9999.ebuild
@@ -1249,7 +1249,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
@@ -1267,12 +1266,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