Gentoo Archives: gentoo-dev

From: Leno Hou <lenohou@×××××.com>
To: gentoo-dev@l.g.o, vapier@g.o
Cc: blueness@g.o, Leno Hou <lenohou@×××××.com>
Subject: [gentoo-dev][PATCH V3 ] libtool.eclass: elibtoolize: add ppc64le handling #580792
Date: Sat, 23 Apr 2016 18:15:32
Message-Id: 1461435305-1378-1-git-send-email-lenohou@gmail.com
1 1) We faced unable read SONAME from ${lib} when emerge below packages
2 platform pacakge elibtoolized
3 ppc64le app-text/opensp no
4 ppc64le dev-libs/expat yes
5 ppc64le net-firewall/iptables yes
6 ppc64le net-libs/libmnl no
7 ppc64le sys-apps/acl yes
8 ppc64le sys-apps/attr yes
9 ppc64le sys-libs/gdbm yes
10 ppc64le sys-process/procps no
11
12 2) The problem is due to the wrong $LD="ld -m elf64ppc" when link.
13 This patch sets $LD="ld -m elf64lppc" in m4/libtool.m4 on ppc64le.
14
15 3) Also patched m4/libtool.m4 in libtool-2.4.6. Reported the bug[1] in
16 libtool upstream, Once the upstream fixed the libtool problem for
17 ppc64le, we can pull back from the upstream.
18
19 [1] http://debbugs.gnu.org/cgi/bugreport.cgi?bug=23348
20
21 Signed-off-by: Leno Hou <lenohou@×××××.com>
22 CC: Mike Frysinger <vapier@g.o>
23 ---
24 eclass/ELT-patches/ppc64le/2.4.2 | 26 ++++++++++++++++++++++
25 eclass/ELT-patches/ppc64le/2.4.4 | 15 +++++++++++++
26 eclass/ELT-patches/ppc64le/2.4.6 | 15 +++++++++++++
27 eclass/libtool.eclass | 6 ++++-
28 .../files/libtool-2.4.6-link-with-ppc64le.patch | 15 +++++++++++++
29 sys-devel/libtool/libtool-2.4.6-r1.ebuild | 1 +
30 sys-devel/libtool/libtool-2.4.6-r2.ebuild | 1 +
31 sys-devel/libtool/libtool-2.4.6.ebuild | 1 +
32 8 files changed, 79 insertions(+), 1 deletion(-)
33 create mode 100644 eclass/ELT-patches/ppc64le/2.4.2
34 create mode 100644 eclass/ELT-patches/ppc64le/2.4.4
35 create mode 100644 eclass/ELT-patches/ppc64le/2.4.6
36 create mode 100644 sys-devel/libtool/files/libtool-2.4.6-link-with-ppc64le.patch
37
38 diff --git a/eclass/ELT-patches/ppc64le/2.4.2 b/eclass/ELT-patches/ppc64le/2.4.2
39 new file mode 100644
40 index 0000000..d61f6c3
41 --- /dev/null
42 +++ b/eclass/ELT-patches/ppc64le/2.4.2
43 @@ -0,0 +1,26 @@
44 +--- m4/libtool.m4.orig 2016-04-21 16:50:01.118444710 +0000
45 ++++ m4/libtool.m4 2016-04-21 16:52:39.419906716 +0000
46 +@@ -1329,6 +1329,9 @@
47 + ppc64-*linux*|powerpc64-*linux*)
48 + LD="${LD-ld} -m elf32ppclinux"
49 + ;;
50 ++ ppc64le-*linux*|powerpc64le-*linux*)
51 ++ LD="${LD-ld} -m elf32lppclinux"
52 ++ ;;
53 + s390x-*linux*)
54 + LD="${LD-ld} -m elf_s390"
55 + ;;
56 +@@ -1345,9 +1348,12 @@
57 + x86_64-*linux*)
58 + LD="${LD-ld} -m elf_x86_64"
59 + ;;
60 +- ppc*-*linux*|powerpc*-*linux*)
61 ++ powerpc-*linux*|powerpc64-*linux*)
62 + LD="${LD-ld} -m elf64ppc"
63 + ;;
64 ++ powerpcle-*linux*|powerpc64le-*linux*)
65 ++ LD="${LD-ld} -m elf64lppc"
66 ++ ;;
67 + s390*-*linux*|s390*-*tpf*)
68 + LD="${LD-ld} -m elf64_s390"
69 + ;;
70 diff --git a/eclass/ELT-patches/ppc64le/2.4.4 b/eclass/ELT-patches/ppc64le/2.4.4
71 new file mode 100644
72 index 0000000..e3e4637
73 --- /dev/null
74 +++ b/eclass/ELT-patches/ppc64le/2.4.4
75 @@ -0,0 +1,15 @@
76 +--- m4/libtool.m4.orig 2016-04-21 16:59:06.039629474 +0000
77 ++++ m4/libtool.m4 2016-04-21 17:00:10.564264157 +0000
78 +@@ -1386,10 +1386,10 @@
79 + x86_64-*linux*)
80 + LD="${LD-ld} -m elf_x86_64"
81 + ;;
82 +- powerpcle-*linux*)
83 ++ powerpcle-*linux*|powerpc64le-*linux*)
84 + LD="${LD-ld} -m elf64lppc"
85 + ;;
86 +- powerpc-*linux*)
87 ++ powerpc-*linux*|powerpc64-*linux*)
88 + LD="${LD-ld} -m elf64ppc"
89 + ;;
90 + s390*-*linux*|s390*-*tpf*)
91 diff --git a/eclass/ELT-patches/ppc64le/2.4.6 b/eclass/ELT-patches/ppc64le/2.4.6
92 new file mode 100644
93 index 0000000..711ceb2
94 --- /dev/null
95 +++ b/eclass/ELT-patches/ppc64le/2.4.6
96 @@ -0,0 +1,15 @@
97 +--- m4/libtool.m4.orig 2016-04-21 16:42:22.170586778 +0000
98 ++++ m4/libtool.m4 2016-04-21 16:43:41.571195049 +0000
99 +@@ -1417,10 +1417,10 @@
100 + x86_64-*linux*)
101 + LD="${LD-ld} -m elf_x86_64"
102 + ;;
103 +- powerpcle-*linux*)
104 ++ powerpcle-*linux*|powerpc64le-*linux*)
105 + LD="${LD-ld} -m elf64lppc"
106 + ;;
107 +- powerpc-*linux*)
108 ++ powerpc-*linux*|powerpc64-*linux*)
109 + LD="${LD-ld} -m elf64ppc"
110 + ;;
111 + s390*-*linux*|s390*-*tpf*)
112 diff --git a/eclass/libtool.eclass b/eclass/libtool.eclass
113 index 47ef812..9f56c20 100644
114 --- a/eclass/libtool.eclass
115 +++ b/eclass/libtool.eclass
116 @@ -144,7 +144,7 @@ elibtoolize() {
117 local deptoremove=
118 local do_shallow="no"
119 local force="false"
120 - local elt_patches="install-sh ltmain portage relink max_cmd_len sed test tmp cross as-needed target-nm"
121 + local elt_patches="install-sh ltmain portage relink max_cmd_len sed test tmp cross as-needed target-nm ppc64le"
122
123 for x in "$@" ; do
124 case ${x} in
125 @@ -417,6 +417,10 @@ elibtoolize() {
126 ELT_walk_patches "${d}/configure" "${p}"
127 ret=$?
128 ;;
129 + ppc64le)
130 + ELT_walk_patches "${d}/configure" "${p}"
131 + ret=$?
132 + ;;
133 *)
134 # ltmain.sh patches are applied above
135 ;;
136 diff --git a/sys-devel/libtool/files/libtool-2.4.6-link-with-ppc64le.patch b/sys-devel/libtool/files/libtool-2.4.6-link-with-ppc64le.patch
137 new file mode 100644
138 index 0000000..7cba5ba
139 --- /dev/null
140 +++ b/sys-devel/libtool/files/libtool-2.4.6-link-with-ppc64le.patch
141 @@ -0,0 +1,15 @@
142 +--- m4/libtool.m4.orig 2016-04-22 15:23:26.197427774 +0000
143 ++++ m4/libtool.m4 2016-04-22 15:24:36.977428596 +0000
144 +@@ -1417,10 +1417,10 @@
145 + x86_64-*linux*)
146 + LD="${LD-ld} -m elf_x86_64"
147 + ;;
148 +- powerpcle-*linux*)
149 ++ powerpcle-*linux*|powerpc64le-*linux*)
150 + LD="${LD-ld} -m elf64lppc"
151 + ;;
152 +- powerpc-*linux*)
153 ++ powerpc-*linux*|powerpc64-*linux*)
154 + LD="${LD-ld} -m elf64ppc"
155 + ;;
156 + s390*-*linux*|s390*-*tpf*)
157 diff --git a/sys-devel/libtool/libtool-2.4.6-r1.ebuild b/sys-devel/libtool/libtool-2.4.6-r1.ebuild
158 index 677db33..671a07d 100644
159 --- a/sys-devel/libtool/libtool-2.4.6-r1.ebuild
160 +++ b/sys-devel/libtool/libtool-2.4.6-r1.ebuild
161 @@ -48,6 +48,7 @@ src_prepare() {
162
163 epatch "${FILESDIR}"/${PN}-2.4.3-use-linux-version-in-fbsd.patch #109105
164 epatch "${FILESDIR}"/${P}-fuse-ld.patch
165 + epatch "${FILESDIR}"/${PN}-2.4.6-link-with-ppc64le.patch #580792
166 pushd libltdl >/dev/null
167 AT_NOELIBTOOLIZE=yes eautoreconf
168 popd >/dev/null
169 diff --git a/sys-devel/libtool/libtool-2.4.6-r2.ebuild b/sys-devel/libtool/libtool-2.4.6-r2.ebuild
170 index 7e8b7ef..e7cee2a 100644
171 --- a/sys-devel/libtool/libtool-2.4.6-r2.ebuild
172 +++ b/sys-devel/libtool/libtool-2.4.6-r2.ebuild
173 @@ -53,6 +53,7 @@ src_prepare() {
174 epatch "${FILESDIR}"/${P}-libtoolize-slow.patch
175 epatch "${FILESDIR}"/${P}-libtoolize-delay-help.patch
176 epatch "${FILESDIR}"/${P}-sed-quote-speedup.patch #542252
177 + epatch "${FILESDIR}"/${PN}-2.4.6-link-with-ppc64le.patch #580792
178 pushd libltdl >/dev/null
179 AT_NOELIBTOOLIZE=yes eautoreconf
180 popd >/dev/null
181 diff --git a/sys-devel/libtool/libtool-2.4.6.ebuild b/sys-devel/libtool/libtool-2.4.6.ebuild
182 index 71a9b47..ca0265e 100644
183 --- a/sys-devel/libtool/libtool-2.4.6.ebuild
184 +++ b/sys-devel/libtool/libtool-2.4.6.ebuild
185 @@ -47,6 +47,7 @@ src_prepare() {
186 use vanilla && return 0
187
188 epatch "${FILESDIR}"/${PN}-2.4.3-use-linux-version-in-fbsd.patch #109105
189 + epatch "${FILESDIR}"/${PN}-2.4.6-link-with-ppc64le.patch #580792
190 pushd libltdl >/dev/null
191 AT_NOELIBTOOLIZE=yes eautoreconf
192 popd >/dev/null
193 --
194 2.7.3