0032-configure.ac-fixup-CC-print-multiarch-output-for-mus.patch 1.8 KB

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