hc
2025-02-14 bbb9540dc49f70f6b703d1c8d1b85fa5f602d86e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
From edc0757c56090364e0a95aabfa9f645a16a27569 Mon Sep 17 00:00:00 2001
From: Peter Korsgaard <peter@korsgaard.com>
Date: Fri, 2 Aug 2019 15:53:16 +0200
Subject: [PATCH] configure.ac: fixup $CC --print-multiarch output for
 musl/uclibc GCC 8+ toolchains
 
GCC commit 6834b83784dcf0364eb820e8 (multiarch support for non-glibc linux
systems), which is part of GCC 8+, changed the multiarch logic to use
$arch-linux-musl / $arch-linux-uclibc rather than $arch-linux-gnu.
 
This then causes the python3 configure script to error out:
 
checking for the platform triplet based on compiler characteristics... powerpc-linux-gnu
configure: error: internal configure error for the platform triplet, please file a bug report
 
http://autobuild.buildroot.net/results/cb4/cb49c539501342e45cbe5ade82e588fcdf51f05b
 
As it requires that the --print-multiarch output (if not empty) matches the
deduced triplet (which always uses -linux-gnu).
 
It isn't quite clear why --print-multiarch returns something for a
non-multiarch toolchain on some architectures (E.G.  PowerPC), but as a
workaround, rewrite the --print-multiarch output to match older GCC versions
to keep the configure script happy.
 
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
---
 configure.ac | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
 
diff --git a/configure.ac b/configure.ac
index 615c16aced..241298e6cf 100644
--- a/configure.ac
+++ b/configure.ac
@@ -727,7 +727,9 @@ then
 fi
 
 
-MULTIARCH=$($CC --print-multiarch 2>/dev/null)
+# GCC 8+ returns $arch-linux-{musl,uclibc} for musl/uClibc based
+# toolchains confusing python. Fix that up
+MULTIARCH=$($CC --print-multiarch 2>/dev/null | sed -E 's/-linux-(musl|uclibc)*$/-linux-gnu/')
 AC_SUBST(MULTIARCH)
 
 AC_MSG_CHECKING([for the platform triplet based on compiler characteristics])
-- 
2.25.1