summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLeno Hou <lenohou@gmail.com>2016-04-23 18:15:05 +0000
committerMike Frysinger <vapier@gentoo.org>2017-02-21 17:50:47 -0500
commit9beda193cf71f2ca84aef6797d77e8ed6e8c16eb (patch)
treefc36689a1a92f139e673e9c521831c379d625d62
parentsys-devel/libtool: fix target linkage for ppc64le systems #581314 (diff)
downloadgentoo-9beda193cf71f2ca84aef6797d77e8ed6e8c16eb.tar.gz
gentoo-9beda193cf71f2ca84aef6797d77e8ed6e8c16eb.tar.bz2
gentoo-9beda193cf71f2ca84aef6797d77e8ed6e8c16eb.zip
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
-rw-r--r--eclass/ELT-patches/ppc64le/2.4.232
-rw-r--r--eclass/ELT-patches/ppc64le/2.4.421
-rw-r--r--eclass/libtool.eclass6
3 files changed, 58 insertions, 1 deletions
diff --git a/eclass/ELT-patches/ppc64le/2.4.2 b/eclass/ELT-patches/ppc64le/2.4.2
new file mode 100644
index 000000000000..8d3b116a3dec
--- /dev/null
+++ b/eclass/ELT-patches/ppc64le/2.4.2
@@ -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"
+ ;;
diff --git a/eclass/ELT-patches/ppc64le/2.4.4 b/eclass/ELT-patches/ppc64le/2.4.4
new file mode 100644
index 000000000000..0d86521653aa
--- /dev/null
+++ b/eclass/ELT-patches/ppc64le/2.4.4
@@ -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*)
diff --git a/eclass/libtool.eclass b/eclass/libtool.eclass
index 47ef8128defa..9f56c202ffc2 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
;;