1*4882a593SmuzhiyunFrom d009b0142f77881dd75ff760fec728dbc8581a03 Mon Sep 17 00:00:00 2001
2*4882a593SmuzhiyunFrom: Peter Korsgaard <peter@korsgaard.com>
3*4882a593SmuzhiyunDate: Fri, 2 Aug 2019 15:53:16 +0200
4*4882a593SmuzhiyunSubject: [PATCH] configure.ac: fixup $CC --print-multiarch output for
5*4882a593Smuzhiyun musl/uclibc GCC 8+ toolchains
6*4882a593Smuzhiyun
7*4882a593SmuzhiyunGCC commit 6834b83784dcf0364eb820e8 (multiarch support for non-glibc linux
8*4882a593Smuzhiyunsystems), which is part of GCC 8+, changed the multiarch logic to use
9*4882a593Smuzhiyun$arch-linux-musl / $arch-linux-uclibc rather than $arch-linux-gnu.
10*4882a593Smuzhiyun
11*4882a593SmuzhiyunThis then causes the python3 configure script to error out:
12*4882a593Smuzhiyun
13*4882a593Smuzhiyunchecking for the platform triplet based on compiler characteristics... powerpc-linux-gnu
14*4882a593Smuzhiyunconfigure: error: internal configure error for the platform triplet, please file a bug report
15*4882a593Smuzhiyun
16*4882a593Smuzhiyunhttp://autobuild.buildroot.net/results/cb4/cb49c539501342e45cbe5ade82e588fcdf51f05b
17*4882a593Smuzhiyun
18*4882a593SmuzhiyunAs it requires that the --print-multiarch output (if not empty) matches the
19*4882a593Smuzhiyundeduced triplet (which always uses -linux-gnu).
20*4882a593Smuzhiyun
21*4882a593SmuzhiyunIt isn't quite clear why --print-multiarch returns something for a
22*4882a593Smuzhiyunnon-multiarch toolchain on some architectures (E.G.  PowerPC), but as a
23*4882a593Smuzhiyunworkaround, rewrite the --print-multiarch output to match older GCC versions
24*4882a593Smuzhiyunto keep the configure script happy.
25*4882a593Smuzhiyun
26*4882a593SmuzhiyunSigned-off-by: Peter Korsgaard <peter@korsgaard.com>
27*4882a593Smuzhiyun[Peter: updated for 3.10.2]
28*4882a593Smuzhiyun---
29*4882a593Smuzhiyun configure.ac | 6 +++++-
30*4882a593Smuzhiyun 1 file changed, 5 insertions(+), 1 deletion(-)
31*4882a593Smuzhiyun
32*4882a593Smuzhiyundiff --git a/configure.ac b/configure.ac
33*4882a593Smuzhiyunindex 913051c276..aba03f3779 100644
34*4882a593Smuzhiyun--- a/configure.ac
35*4882a593Smuzhiyun+++ b/configure.ac
36*4882a593Smuzhiyun@@ -876,7 +876,11 @@ AC_MSG_CHECKING([for multiarch])
37*4882a593Smuzhiyun AS_CASE([$ac_sys_system],
38*4882a593Smuzhiyun   [Darwin*], [MULTIARCH=""],
39*4882a593Smuzhiyun   [FreeBSD*], [MULTIARCH=""],
40*4882a593Smuzhiyun-  [MULTIARCH=$($CC --print-multiarch 2>/dev/null)]
41*4882a593Smuzhiyun+  [
42*4882a593Smuzhiyun+  # GCC 8+ returns $arch-linux-{musl,uclibc} for musl/uClibc based
43*4882a593Smuzhiyun+  # toolchains confusing python. Fix that up
44*4882a593Smuzhiyun+  MULTIARCH=$($CC --print-multiarch 2>/dev/null | sed -E 's/-linux-(musl|uclibc)*$/-linux-gnu/')
45*4882a593Smuzhiyun+  ]
46*4882a593Smuzhiyun )
47*4882a593Smuzhiyun AC_SUBST([MULTIARCH])
48*4882a593Smuzhiyun AC_MSG_RESULT([$MULTIARCH])
49*4882a593Smuzhiyun--
50*4882a593Smuzhiyun2.20.1
51*4882a593Smuzhiyun
52