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