1) We faced unable read SONAME from ${lib} when emerge below pacakges
   platform                          pacakge
   ppc64le                           app-text/opensp
   ppc64le                           dev-libs/expat
   ppc64le                           net-firewall/iptables
   ppc64le                           net-libs/libmnl
   ppc64le                           sys-apps/acl
   ppc64le                           sys-apps/attr
   ppc64le                           sys-libs/gdbm
   ppc64le                           sys-process/procps

 2) The problem is due to the wrong $LD="ld -m elf64ppc" when link.
  This patch sets $LD="ld -m elf64lppc" in m4/libtool.m4 on ppc64le.

Signed-off-by: Leno Hou <leno...@gmail.com>
CC: Mike Frysinger <vap...@gentoo.org>
---
 eclass/ELT-patches/ppc64le/2.4.2 | 26 ++++++++++++++++++++++++++
 eclass/ELT-patches/ppc64le/2.4.4 | 15 +++++++++++++++
 eclass/ELT-patches/ppc64le/2.4.6 | 15 +++++++++++++++
 eclass/libtool.eclass            |  6 +++++-
 4 files changed, 61 insertions(+), 1 deletion(-)
 create mode 100644 eclass/ELT-patches/ppc64le/2.4.2
 create mode 100644 eclass/ELT-patches/ppc64le/2.4.4
 create mode 100644 eclass/ELT-patches/ppc64le/2.4.6

diff --git a/eclass/ELT-patches/ppc64le/2.4.2 b/eclass/ELT-patches/ppc64le/2.4.2
new file mode 100644
index 0000000..1a22432
--- /dev/null
+++ b/eclass/ELT-patches/ppc64le/2.4.2
@@ -0,0 +1,26 @@
+--- m4/libtool.m4.orig 2016-04-21 16:50:01.118444710 +0000
++++ m4/libtool.m4      2016-04-21 16:52:39.419906716 +0000
+@@ -1329,6 +1329,9 @@
+         ppc64-*linux*|powerpc64-*linux*)
+           LD="${LD-ld} -m elf32ppclinux"
+           ;;
++        ppc64le-*linux*|powerpc64le-*linux*)
++          LD="${LD-ld} -m elf32lppclinux"
++          ;;
+         s390x-*linux*)
+           LD="${LD-ld} -m elf_s390"
+           ;;
+@@ -1345,9 +1348,12 @@
+         x86_64-*linux*)
+           LD="${LD-ld} -m elf_x86_64"
+           ;;
+-        ppc*-*linux*|powerpc*-*linux*)
++        ppc64-*linux*|powerpc64-*linux*)
+           LD="${LD-ld} -m elf64ppc"
+           ;;
++        ppc64le-*linux*|powerpc64le-*linux*)
++          LD="${LD-ld} -m elf64lppc"
++          ;;
+         s390*-*linux*|s390*-*tpf*)
+           LD="${LD-ld} -m elf64_s390"
+           ;;
diff --git a/eclass/ELT-patches/ppc64le/2.4.4 b/eclass/ELT-patches/ppc64le/2.4.4
new file mode 100644
index 0000000..e3e4637
--- /dev/null
+++ b/eclass/ELT-patches/ppc64le/2.4.4
@@ -0,0 +1,15 @@
+--- m4/libtool.m4.orig 2016-04-21 16:59:06.039629474 +0000
++++ m4/libtool.m4      2016-04-21 17:00:10.564264157 +0000
+@@ -1386,10 +1386,10 @@
+         x86_64-*linux*)
+           LD="${LD-ld} -m elf_x86_64"
+           ;;
+-        powerpcle-*linux*)
++        powerpcle-*linux*|powerpc64le-*linux*)
+           LD="${LD-ld} -m elf64lppc"
+           ;;
+-        powerpc-*linux*)
++        powerpc-*linux*|powerpc64-*linux*)
+           LD="${LD-ld} -m elf64ppc"
+           ;;
+         s390*-*linux*|s390*-*tpf*)
diff --git a/eclass/ELT-patches/ppc64le/2.4.6 b/eclass/ELT-patches/ppc64le/2.4.6
new file mode 100644
index 0000000..711ceb2
--- /dev/null
+++ b/eclass/ELT-patches/ppc64le/2.4.6
@@ -0,0 +1,15 @@
+--- m4/libtool.m4.orig 2016-04-21 16:42:22.170586778 +0000
++++ m4/libtool.m4      2016-04-21 16:43:41.571195049 +0000
+@@ -1417,10 +1417,10 @@
+         x86_64-*linux*)
+           LD="${LD-ld} -m elf_x86_64"
+           ;;
+-        powerpcle-*linux*)
++        powerpcle-*linux*|powerpc64le-*linux*)
+           LD="${LD-ld} -m elf64lppc"
+           ;;
+-        powerpc-*linux*)
++        powerpc-*linux*|powerpc64-*linux*)
+           LD="${LD-ld} -m elf64ppc"
+           ;;
+         s390*-*linux*|s390*-*tpf*)
diff --git a/eclass/libtool.eclass b/eclass/libtool.eclass
index 47ef812..9f56c20 100644
--- a/eclass/libtool.eclass
+++ b/eclass/libtool.eclass
@@ -144,7 +144,7 @@ elibtoolize() {
        local deptoremove=
        local do_shallow="no"
        local force="false"
-       local elt_patches="install-sh ltmain portage relink max_cmd_len sed 
test tmp cross as-needed target-nm"
+       local elt_patches="install-sh ltmain portage relink max_cmd_len sed 
test tmp cross as-needed target-nm ppc64le"
 
        for x in "$@" ; do
                case ${x} in
@@ -417,6 +417,10 @@ elibtoolize() {
                                        ELT_walk_patches "${d}/configure" "${p}"
                                        ret=$?
                                        ;;
+                               ppc64le)
+                                       ELT_walk_patches "${d}/configure" "${p}"
+                                       ret=$?
+                                       ;;
                                *)
                                        # ltmain.sh patches are applied above
                                        ;;
-- 
2.7.3


Reply via email to