path: root/configure
diff options
authorRich Felker <>2014-02-28 13:12:40 -0500
committerRich Felker <>2014-02-28 13:12:40 -0500
commit0b8f0c57c0ff78fc1af9c8f5831eb1c1fdd7d970 (patch)
tree3b6c4582fc2f0f79028598f694677d79e9b4b349 /configure
parent3d7f5c363e27426a3977bc6fa0436e92653eccf1 (diff)
improve configure's target arch matching
most notably, it was failing to match sh4-*, etc., but in general the explicit matching of hyphens for some archs was problematic because it failed to accept simply the musl-style arch name (without a gcc-style tuple) as an input. the original motivation of matching hyphens was to prevent incorrectly identifying a 64-bit arch as the corresponding 32-bit arch (e.g. mips* matching mips64) but this is easily fixed by simply checking (and for now, rejecting as unsupported) the relevant 64-bit archs.
Diffstat (limited to 'configure')
1 files changed, 6 insertions, 4 deletions
diff --git a/configure b/configure
index 434242b4..89e19909 100755
--- a/configure
+++ b/configure
@@ -222,14 +222,16 @@ printf "%s\n" "$target"
# Convert to just ARCH
case "$target" in
+# Catch these early to simplify matching for 32-bit archs
+mips64*|powerpc64*) fail "$0: unsupported target \"$target\"" ;;
arm*) ARCH=arm ;;
i?86*) ARCH=i386 ;;
x86_64-x32*|x32*) ARCH=x32 ;;
x86_64*) ARCH=x86_64 ;;
-mips-*|mipsel-*) ARCH=mips ;;
-microblaze-*) ARCH=microblaze ;;
-powerpc-*) ARCH=powerpc ;;
-sh-*) ARCH=sh ;;
+mips*) ARCH=mips ;;
+microblaze*) ARCH=microblaze ;;
+powerpc*) ARCH=powerpc ;;
+sh[1-9bel-]*|sh|superh*) ARCH=sh ;;
unknown) fail "$0: unable to detect target arch; try $0 --target=..." ;;
*) fail "$0: unknown or unsupported target \"$target\"" ;;