Merge ~xnox/ubuntu/+source/glibc:focal-power10 into ~ubuntu-core-dev/ubuntu/+source/glibc:ubuntu/focal

Proposed by Dimitri John Ledkov
Status: Merged
Merged at revision: 94595c7061d99a99d8d36d21fc7cd7c8c7e00689
Proposed branch: ~xnox/ubuntu/+source/glibc:focal-power10
Merge into: ~ubuntu-core-dev/ubuntu/+source/glibc:ubuntu/focal
Diff against target: 470 lines (+425/-0)
6 files modified
debian/changelog (+4/-0)
debian/patches/powerpc/146fea07640387c78e334933de24b6353e1f0eba.patch (+161/-0)
debian/patches/powerpc/ae725e3f9cb4e1eb825ebe1d55241c98c2ea32f1.patch (+42/-0)
debian/patches/powerpc/d2ba3677da7a785556fcd708404d8e049b1c063b.patch (+183/-0)
debian/patches/powerpc/f6add169c89bbdd139a2eb845686127ead5799cd.patch (+31/-0)
debian/patches/series (+4/-0)
Reviewer Review Type Date Requested Status
Balint Reczey Pending
Review via email: mp+389404@code.launchpad.net

Commit message

debian/patches/powerpc: Cherrypick upstream patches to support POWER10 optimized library loading. LP: #1887989

To post a comment you must log in.
Revision history for this message
Balint Reczey (rbalint) wrote :

Looks good, I do a test build in https://launchpad.net/~ci-train-ppa-service/+archive/ubuntu/4017/+packages then merge it, thanks!

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/debian/changelog b/debian/changelog
2index e03e93b..4059246 100644
3--- a/debian/changelog
4+++ b/debian/changelog
5@@ -15,6 +15,10 @@ glibc (2.31-0ubuntu9.1) UNRELEASED; urgency=medium
6 * Fall back to calling nanosleep syscall when __clock_nanosleep returns EINVAL
7 (LP: #1871129)
8
9+ [ Dimitri John Ledkov ]
10+ * debian/patches/powerpc: Cherrypick upstream patches to support POWER10
11+ optimized library loading. LP: #1887989
12+
13 -- Balint Reczey <rbalint@ubuntu.com> Mon, 03 Aug 2020 19:44:44 +0200
14
15 glibc (2.31-0ubuntu9) focal; urgency=medium
16diff --git a/debian/patches/powerpc/146fea07640387c78e334933de24b6353e1f0eba.patch b/debian/patches/powerpc/146fea07640387c78e334933de24b6353e1f0eba.patch
17new file mode 100644
18index 0000000..7b7611f
19--- /dev/null
20+++ b/debian/patches/powerpc/146fea07640387c78e334933de24b6353e1f0eba.patch
21@@ -0,0 +1,161 @@
22+From 146fea07640387c78e334933de24b6353e1f0eba Mon Sep 17 00:00:00 2001
23+From: "Paul E. Murphy" <murphyp@linux.vnet.ibm.com>
24+Date: Fri, 8 May 2020 08:27:56 -0500
25+Subject: [PATCH] powerpc: Automatic CPU detection in preconfigure
26+
27+Added a check to detect the CPU value in preconfigure, so that glibc is
28+built with the correct --with-cpu value. And move existing checks into
29+preconfigure.ac.
30+
31+Co-Authored-By: Carlos Eduardo Seo <cseo@linux.vnet.ibm.com>
32+Co-Authored-By: Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com>
33+---
34+ sysdeps/powerpc/preconfigure | 62 +++++++++++++++++++++++++++++----
35+ sysdeps/powerpc/preconfigure.ac | 58 ++++++++++++++++++++++++++++++
36+ 2 files changed, 113 insertions(+), 7 deletions(-)
37+ create mode 100644 sysdeps/powerpc/preconfigure.ac
38+
39+diff --git a/sysdeps/powerpc/preconfigure b/sysdeps/powerpc/preconfigure
40+index a0ea745bb4..deac5a41e2 100644
41+--- a/sysdeps/powerpc/preconfigure
42++++ b/sysdeps/powerpc/preconfigure
43+@@ -1,4 +1,5 @@
44+-# preconfigure fragment for powerpc.
45++# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
46++ # Local preconfigure fragment for sysdeps/powerpc
47+
48+ case "$machine" in
49+ powerpc64le)
50+@@ -13,12 +14,59 @@ powerpc*)
51+ case "$host_os" in
52+ *gnuspe*)
53+ # SPE support was dropped in glibc 2.30.
54+- # We can't use AC_MSG_ERROR here.
55+- # The parent script is in the middle of printing the
56+- # "checking for sysdeps preconfigure fragments" line.
57+- echo >&2
58+- echo "Host system type $host is no longer supported." >&2
59+- exit 1
60++ as_fn_error $? "Host system type $host is no longer supported." "$LINENO" 5
61++ ;;
62++ esac
63++ ;;
64++esac
65++
66++# Lets ask the compiler which Power processor we've got, in case the user did
67++# not choose a --with-cpu value. Scan a trivial generated assembly program
68++# and scrape the first
69++# .machine <machine>
70++# or
71++# .ascii "-mcpu=<machine>"
72++# directive which shows up, and try using it.
73++case "${machine}:${submachine}" in
74++*powerpc*:)
75++ archcpu=`echo "int foo () { return 0; }" \
76++ | $CC $CFLAGS $CPPFLAGS -S -frecord-gcc-switches -xc -o - - \
77++ | grep -E "mcpu=|.machine" -m 1 \
78++ | sed -e "s/.*machine //" -e "s/.*mcpu=\(.*\)\"/\1/"`
79++ # Note if you add patterns here you must ensure that an appropriate
80++ # directory exists in sysdeps/powerpc. Likewise, if we find a
81++ # cpu, don't let the generic configure append extra compiler options.
82++ case "$archcpu" in
83++ 405fp|440fp|464fp|476fp)
84++ submachine=${archcpu%fp}
85++ if ${libc_cv_cc_submachine+:} false; then :
86++ $as_echo_n "(cached) " >&6
87++else
88++ libc_cv_cc_submachine=""
89++fi
90++
91++ ;;
92++ 405|440|464|476)
93++ submachine=${archcpu}
94++ if ${libc_cv_cc_submachine+:} false; then :
95++ $as_echo_n "(cached) " >&6
96++else
97++ libc_cv_cc_submachine=""
98++fi
99++
100++ ;;
101++
102++ a2|970|power[4-9]|power5x|power6+)
103++ submachine=${archcpu}
104++ if ${libc_cv_cc_submachine+:} false; then :
105++ $as_echo_n "(cached) " >&6
106++else
107++ libc_cv_cc_submachine=""
108++fi
109++
110++ ;;
111++ *)
112++ # We couldn't figure it out, assume none
113+ ;;
114+ esac
115+ ;;
116+diff --git a/sysdeps/powerpc/preconfigure.ac b/sysdeps/powerpc/preconfigure.ac
117+new file mode 100644
118+index 0000000000..e6a5ae93a5
119+--- /dev/null
120++++ b/sysdeps/powerpc/preconfigure.ac
121+@@ -0,0 +1,58 @@
122++GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
123++# Local preconfigure fragment for sysdeps/powerpc
124++
125++case "$machine" in
126++powerpc64le)
127++ base_machine=powerpc machine=powerpc/powerpc64/le
128++ ;;
129++powerpc64*)
130++ base_machine=powerpc machine=powerpc/powerpc64/be
131++ ;;
132++powerpc*)
133++ base_machine=powerpc machine=powerpc/powerpc32
134++ with_fp_cond="!defined __NO_FPRS__"
135++ case "$host_os" in
136++ *gnuspe*)
137++ # SPE support was dropped in glibc 2.30.
138++ AC_MSG_ERROR([Host system type $host is no longer supported.])
139++ ;;
140++ esac
141++ ;;
142++esac
143++
144++# Lets ask the compiler which Power processor we've got, in case the user did
145++# not choose a --with-cpu value. Scan a trivial generated assembly program
146++# and scrape the first
147++# .machine <machine>
148++# or
149++# .ascii "-mcpu=<machine>"
150++# directive which shows up, and try using it.
151++case "${machine}:${submachine}" in
152++*powerpc*:)
153++ archcpu=`echo "int foo () { return 0; }" \
154++ | $CC $CFLAGS $CPPFLAGS -S -frecord-gcc-switches -xc -o - - \
155++ | grep -E "mcpu=|[.]machine" -m 1 \
156++ | sed -e "s/.*machine //" -e "s/.*mcpu=\(.*\)\"/\1/"`
157++ # Note if you add patterns here you must ensure that an appropriate
158++ # directory exists in sysdeps/powerpc. Likewise, if we find a
159++ # cpu, don't let the generic configure append extra compiler options.
160++ case "$archcpu" in
161++ 405fp|440fp|464fp|476fp)
162++ submachine=${archcpu%fp}
163++ AC_CACHE_VAL(libc_cv_cc_submachine,libc_cv_cc_submachine="")
164++ ;;
165++ 405|440|464|476)
166++ submachine=${archcpu}
167++ AC_CACHE_VAL(libc_cv_cc_submachine,libc_cv_cc_submachine="")
168++ ;;
169++
170++ a2|970|power[[4-9]]|power5x|power6+)
171++ submachine=${archcpu}
172++ AC_CACHE_VAL(libc_cv_cc_submachine,libc_cv_cc_submachine="")
173++ ;;
174++ *)
175++ # We couldn't figure it out, assume none
176++ ;;
177++ esac
178++ ;;
179++esac
180+--
181+2.27.0
182+
183diff --git a/debian/patches/powerpc/ae725e3f9cb4e1eb825ebe1d55241c98c2ea32f1.patch b/debian/patches/powerpc/ae725e3f9cb4e1eb825ebe1d55241c98c2ea32f1.patch
184new file mode 100644
185index 0000000..55220e4
186--- /dev/null
187+++ b/debian/patches/powerpc/ae725e3f9cb4e1eb825ebe1d55241c98c2ea32f1.patch
188@@ -0,0 +1,42 @@
189+From ae725e3f9cb4e1eb825ebe1d55241c98c2ea32f1 Mon Sep 17 00:00:00 2001
190+From: Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
191+Date: Mon, 15 Jun 2020 11:15:57 -0300
192+Subject: [PATCH] powerpc: Add new hwcap values
193+
194+Linux commit ID ee988c11acf6f9464b7b44e9a091bf6afb3b3a49 reserved 2 new
195+bits in AT_HWCAP2:
196+ - PPC_FEATURE2_ARCH_3_1 indicates the availability of the POWER ISA
197+ 3.1;
198+ - PPC_FEATURE2_MMA indicates the availability of the Matrix-Multiply
199+ Assist facility.
200+---
201+ sysdeps/powerpc/bits/hwcap.h | 2 ++
202+ sysdeps/powerpc/dl-procinfo.c | 2 +-
203+ 2 files changed, 3 insertions(+), 1 deletion(-)
204+
205+diff --git a/sysdeps/powerpc/bits/hwcap.h b/sysdeps/powerpc/bits/hwcap.h
206+index 4a5a7bcded..e8f3fdea92 100644
207+--- a/sysdeps/powerpc/bits/hwcap.h
208++++ b/sysdeps/powerpc/bits/hwcap.h
209+@@ -74,3 +74,5 @@
210+ #define PPC_FEATURE2_SCV 0x00100000 /* scv syscall. */
211+ #define PPC_FEATURE2_HTM_NO_SUSPEND 0x00080000 /* TM without suspended
212+ state. */
213++#define PPC_FEATURE2_ARCH_3_1 0x00040000 /* ISA 3.1. */
214++#define PPC_FEATURE2_MMA 0x00020000 /* Matrix-Multiply Assist. */
215+diff --git a/sysdeps/powerpc/dl-procinfo.c b/sysdeps/powerpc/dl-procinfo.c
216+index 7a7d93dd0a..8dc07728f0 100644
217+--- a/sysdeps/powerpc/dl-procinfo.c
218++++ b/sysdeps/powerpc/dl-procinfo.c
219+@@ -77,7 +77,7 @@ PROCINFO_CLASS const char _dl_powerpc_cap_flags[64][15]
220+ "", "", "", "",
221+ "", "", "", "",
222+ "", "", "", "",
223+- "", "", "", "htm-no-suspend",
224++ "", "mma", "arch_3_1", "htm-no-suspend",
225+ "scv", "darn", "ieee128", "arch_3_00",
226+ "htm-nosc", "vcrypto", "tar", "isel",
227+ "ebb", "dscr", "htm", "arch_2_07",
228+--
229+2.27.0
230+
231diff --git a/debian/patches/powerpc/d2ba3677da7a785556fcd708404d8e049b1c063b.patch b/debian/patches/powerpc/d2ba3677da7a785556fcd708404d8e049b1c063b.patch
232new file mode 100644
233index 0000000..c052433
234--- /dev/null
235+++ b/debian/patches/powerpc/d2ba3677da7a785556fcd708404d8e049b1c063b.patch
236@@ -0,0 +1,183 @@
237+From d2ba3677da7a785556fcd708404d8e049b1c063b Mon Sep 17 00:00:00 2001
238+From: Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
239+Date: Wed, 24 Jun 2020 18:04:41 -0300
240+Subject: [PATCH] powerpc: Add support for POWER10
241+
242+1. Add the directories to hold POWER10 files.
243+
244+2. Add support to select POWER10 libraries based on AT_PLATFORM.
245+
246+3. Let submachine=power10 be set automatically.
247+---
248+ sysdeps/powerpc/dl-procinfo.h | 11 ++++++++++-
249+ sysdeps/powerpc/powerpc32/power10/Implies | 2 ++
250+ .../powerpc/powerpc32/power10/fpu/multiarch/Implies | 1 +
251+ sysdeps/powerpc/powerpc32/power10/multiarch/Implies | 1 +
252+ sysdeps/powerpc/powerpc64/be/power10/Implies | 2 ++
253+ sysdeps/powerpc/powerpc64/be/power10/fpu/Implies | 1 +
254+ .../powerpc64/be/power10/fpu/multiarch/Implies | 1 +
255+ .../powerpc/powerpc64/be/power10/multiarch/Implies | 1 +
256+ sysdeps/powerpc/powerpc64/le/power10/Implies | 2 ++
257+ sysdeps/powerpc/powerpc64/le/power10/fpu/Implies | 1 +
258+ .../powerpc64/le/power10/fpu/multiarch/Implies | 1 +
259+ .../powerpc/powerpc64/le/power10/multiarch/Implies | 1 +
260+ sysdeps/powerpc/preconfigure | 2 +-
261+ sysdeps/powerpc/preconfigure.ac | 2 +-
262+ 14 files changed, 26 insertions(+), 3 deletions(-)
263+ create mode 100644 sysdeps/powerpc/powerpc32/power10/Implies
264+ create mode 100644 sysdeps/powerpc/powerpc32/power10/fpu/multiarch/Implies
265+ create mode 100644 sysdeps/powerpc/powerpc32/power10/multiarch/Implies
266+ create mode 100644 sysdeps/powerpc/powerpc64/be/power10/Implies
267+ create mode 100644 sysdeps/powerpc/powerpc64/be/power10/fpu/Implies
268+ create mode 100644 sysdeps/powerpc/powerpc64/be/power10/fpu/multiarch/Implies
269+ create mode 100644 sysdeps/powerpc/powerpc64/be/power10/multiarch/Implies
270+ create mode 100644 sysdeps/powerpc/powerpc64/le/power10/Implies
271+ create mode 100644 sysdeps/powerpc/powerpc64/le/power10/fpu/Implies
272+ create mode 100644 sysdeps/powerpc/powerpc64/le/power10/fpu/multiarch/Implies
273+ create mode 100644 sysdeps/powerpc/powerpc64/le/power10/multiarch/Implies
274+
275+diff --git a/sysdeps/powerpc/dl-procinfo.h b/sysdeps/powerpc/dl-procinfo.h
276+index 9ae85f46ec..497dc568e9 100644
277+--- a/sysdeps/powerpc/dl-procinfo.h
278++++ b/sysdeps/powerpc/dl-procinfo.h
279+@@ -37,7 +37,7 @@
280+ #define HWCAP_IMPORTANT (PPC_FEATURE_HAS_ALTIVEC \
281+ + PPC_FEATURE_HAS_DFP)
282+
283+-#define _DL_PLATFORMS_COUNT 15
284++#define _DL_PLATFORMS_COUNT 16
285+
286+ #define _DL_FIRST_PLATFORM 32
287+ /* Mask to filter out platforms. */
288+@@ -60,6 +60,7 @@
289+ #define PPC_PLATFORM_PPC476 12
290+ #define PPC_PLATFORM_POWER8 13
291+ #define PPC_PLATFORM_POWER9 14
292++#define PPC_PLATFORM_POWER10 15
293+
294+ static inline const char *
295+ __attribute__ ((unused))
296+@@ -91,6 +92,14 @@ _dl_string_platform (const char *str)
297+ str += 5;
298+ switch (*str)
299+ {
300++ case '1':
301++ if (str[1] == '0')
302++ {
303++ ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER10;
304++ }
305++ else
306++ return -1;
307++ break;
308+ case '4':
309+ ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER4;
310+ break;
311+diff --git a/sysdeps/powerpc/powerpc32/power10/Implies b/sysdeps/powerpc/powerpc32/power10/Implies
312+new file mode 100644
313+index 0000000000..b298aca71f
314+--- /dev/null
315++++ b/sysdeps/powerpc/powerpc32/power10/Implies
316+@@ -0,0 +1,2 @@
317++powerpc/powerpc32/power9/fpu
318++powerpc/powerpc32/power9
319+diff --git a/sysdeps/powerpc/powerpc32/power10/fpu/multiarch/Implies b/sysdeps/powerpc/powerpc32/power10/fpu/multiarch/Implies
320+new file mode 100644
321+index 0000000000..1ffddd1cda
322+--- /dev/null
323++++ b/sysdeps/powerpc/powerpc32/power10/fpu/multiarch/Implies
324+@@ -0,0 +1 @@
325++powerpc/powerpc32/power9/fpu/multiarch
326+diff --git a/sysdeps/powerpc/powerpc32/power10/multiarch/Implies b/sysdeps/powerpc/powerpc32/power10/multiarch/Implies
327+new file mode 100644
328+index 0000000000..46363b5207
329+--- /dev/null
330++++ b/sysdeps/powerpc/powerpc32/power10/multiarch/Implies
331+@@ -0,0 +1 @@
332++powerpc/powerpc32/power9/multiarch
333+diff --git a/sysdeps/powerpc/powerpc64/be/power10/Implies b/sysdeps/powerpc/powerpc64/be/power10/Implies
334+new file mode 100644
335+index 0000000000..5aea9bc144
336+--- /dev/null
337++++ b/sysdeps/powerpc/powerpc64/be/power10/Implies
338+@@ -0,0 +1,2 @@
339++powerpc/powerpc64/be/power9/fpu
340++powerpc/powerpc64/be/power9
341+diff --git a/sysdeps/powerpc/powerpc64/be/power10/fpu/Implies b/sysdeps/powerpc/powerpc64/be/power10/fpu/Implies
342+new file mode 100644
343+index 0000000000..19b2a318e2
344+--- /dev/null
345++++ b/sysdeps/powerpc/powerpc64/be/power10/fpu/Implies
346+@@ -0,0 +1 @@
347++powerpc/powerpc64/be/power9/fpu
348+diff --git a/sysdeps/powerpc/powerpc64/be/power10/fpu/multiarch/Implies b/sysdeps/powerpc/powerpc64/be/power10/fpu/multiarch/Implies
349+new file mode 100644
350+index 0000000000..a336feb55b
351+--- /dev/null
352++++ b/sysdeps/powerpc/powerpc64/be/power10/fpu/multiarch/Implies
353+@@ -0,0 +1 @@
354++powerpc/powerpc64/be/power9/fpu/multiarch
355+diff --git a/sysdeps/powerpc/powerpc64/be/power10/multiarch/Implies b/sysdeps/powerpc/powerpc64/be/power10/multiarch/Implies
356+new file mode 100644
357+index 0000000000..b4c0f0a58a
358+--- /dev/null
359++++ b/sysdeps/powerpc/powerpc64/be/power10/multiarch/Implies
360+@@ -0,0 +1 @@
361++powerpc/powerpc64/be/power9/multiarch
362+diff --git a/sysdeps/powerpc/powerpc64/le/power10/Implies b/sysdeps/powerpc/powerpc64/le/power10/Implies
363+new file mode 100644
364+index 0000000000..9e1b787348
365+--- /dev/null
366++++ b/sysdeps/powerpc/powerpc64/le/power10/Implies
367+@@ -0,0 +1,2 @@
368++powerpc/powerpc64/le/power9/fpu
369++powerpc/powerpc64/le/power9
370+diff --git a/sysdeps/powerpc/powerpc64/le/power10/fpu/Implies b/sysdeps/powerpc/powerpc64/le/power10/fpu/Implies
371+new file mode 100644
372+index 0000000000..1b3525a0d7
373+--- /dev/null
374++++ b/sysdeps/powerpc/powerpc64/le/power10/fpu/Implies
375+@@ -0,0 +1 @@
376++powerpc/powerpc64/le/power9/fpu
377+diff --git a/sysdeps/powerpc/powerpc64/le/power10/fpu/multiarch/Implies b/sysdeps/powerpc/powerpc64/le/power10/fpu/multiarch/Implies
378+new file mode 100644
379+index 0000000000..189beb801d
380+--- /dev/null
381++++ b/sysdeps/powerpc/powerpc64/le/power10/fpu/multiarch/Implies
382+@@ -0,0 +1 @@
383++powerpc/powerpc64/le/power9/fpu/multiarch
384+diff --git a/sysdeps/powerpc/powerpc64/le/power10/multiarch/Implies b/sysdeps/powerpc/powerpc64/le/power10/multiarch/Implies
385+new file mode 100644
386+index 0000000000..e6e5fc887e
387+--- /dev/null
388++++ b/sysdeps/powerpc/powerpc64/le/power10/multiarch/Implies
389+@@ -0,0 +1 @@
390++powerpc/powerpc64/le/power9/multiarch
391+diff --git a/sysdeps/powerpc/preconfigure b/sysdeps/powerpc/preconfigure
392+index deac5a41e2..dfe8e20399 100644
393+--- a/sysdeps/powerpc/preconfigure
394++++ b/sysdeps/powerpc/preconfigure
395+@@ -56,7 +56,7 @@ fi
396+
397+ ;;
398+
399+- a2|970|power[4-9]|power5x|power6+)
400++ a2|970|power[4-9]|power5x|power6+|power10)
401+ submachine=${archcpu}
402+ if ${libc_cv_cc_submachine+:} false; then :
403+ $as_echo_n "(cached) " >&6
404+diff --git a/sysdeps/powerpc/preconfigure.ac b/sysdeps/powerpc/preconfigure.ac
405+index e6a5ae93a5..6c63bd8257 100644
406+--- a/sysdeps/powerpc/preconfigure.ac
407++++ b/sysdeps/powerpc/preconfigure.ac
408+@@ -46,7 +46,7 @@ case "${machine}:${submachine}" in
409+ AC_CACHE_VAL(libc_cv_cc_submachine,libc_cv_cc_submachine="")
410+ ;;
411+
412+- a2|970|power[[4-9]]|power5x|power6+)
413++ a2|970|power[[4-9]]|power5x|power6+|power10)
414+ submachine=${archcpu}
415+ AC_CACHE_VAL(libc_cv_cc_submachine,libc_cv_cc_submachine="")
416+ ;;
417+--
418+2.27.0
419+
420diff --git a/debian/patches/powerpc/f6add169c89bbdd139a2eb845686127ead5799cd.patch b/debian/patches/powerpc/f6add169c89bbdd139a2eb845686127ead5799cd.patch
421new file mode 100644
422index 0000000..308ec72
423--- /dev/null
424+++ b/debian/patches/powerpc/f6add169c89bbdd139a2eb845686127ead5799cd.patch
425@@ -0,0 +1,31 @@
426+From f6add169c89bbdd139a2eb845686127ead5799cd Mon Sep 17 00:00:00 2001
427+From: Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
428+Date: Tue, 21 Jul 2020 18:01:39 -0300
429+Subject: [PATCH] powerpc: Fix POWER10 selection
430+
431+Add a line that was missing from a previous commit.
432+Without increasing str, the null-byte is not validated, and
433+_dl_string_platform returns -1.
434+
435+Fixes: d2ba3677da7a ("powerpc: Add support for POWER10")
436+
437+Reviewed-by: Carlos O'Donell <carlos@redhat.com>
438+---
439+ sysdeps/powerpc/dl-procinfo.h | 1 +
440+ 1 file changed, 1 insertion(+)
441+
442+diff --git a/sysdeps/powerpc/dl-procinfo.h b/sysdeps/powerpc/dl-procinfo.h
443+index 497dc568e9..f07500619a 100644
444+--- a/sysdeps/powerpc/dl-procinfo.h
445++++ b/sysdeps/powerpc/dl-procinfo.h
446+@@ -96,6 +96,7 @@ _dl_string_platform (const char *str)
447+ if (str[1] == '0')
448+ {
449+ ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER10;
450++ str++;
451+ }
452+ else
453+ return -1;
454+--
455+2.27.0
456+
457diff --git a/debian/patches/series b/debian/patches/series
458index 2c9bfac..f38e388 100644
459--- a/debian/patches/series
460+++ b/debian/patches/series
461@@ -86,6 +86,10 @@ m68k/submitted-gcc34-seccomment.diff
462 mips/submitted-rld_map.diff
463
464 powerpc/local-powerpc8xx-dcbz.diff
465+powerpc/146fea07640387c78e334933de24b6353e1f0eba.patch
466+powerpc/ae725e3f9cb4e1eb825ebe1d55241c98c2ea32f1.patch
467+powerpc/d2ba3677da7a785556fcd708404d8e049b1c063b.patch
468+powerpc/f6add169c89bbdd139a2eb845686127ead5799cd.patch
469
470 sh4/local-fpscr_values.diff
471

Subscribers

People subscribed via source and target branches