libtool.eclass: elibtoolize: add ppc64le handling #580792

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

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.

URL: https://debbugs.gnu.org/23348
This commit is contained in:
Leno Hou
2016-04-23 18:15:05 +00:00
committed by Mike Frysinger
parent 80ed801a32
commit 9beda193cf
3 changed files with 58 additions and 1 deletions

View File

@@ -0,0 +1,32 @@
https://bugs.gentoo.org/580792
https://bugs.gentoo.org/581314
https://debbugs.gnu.org/23348
this adds support for ppc64le to older versions. most of this is upstream already.
--- a/m4/libtool.m4
+++ b/m4/libtool.m4
@@ -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*)
+ powerpc-*linux*|powerpc64-*linux*)
LD="${LD-ld} -m elf64ppc"
;;
+ powerpcle-*linux*|powerpc64le-*linux*)
+ LD="${LD-ld} -m elf64lppc"
+ ;;
s390*-*linux*|s390*-*tpf*)
LD="${LD-ld} -m elf64_s390"
;;

View File

@@ -0,0 +1,21 @@
https://bugs.gentoo.org/580792
https://bugs.gentoo.org/581314
https://debbugs.gnu.org/23348
this fixes ppc64le handling in newer libtool versions
--- a/m4/libtool.m4
+++ b/m4/libtool.m4
@@ -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*)

View File

@@ -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
;;