improve configure's target arch matching
authorRich Felker <dalias@aerifal.cx>
Fri, 28 Feb 2014 18:12:40 +0000 (13:12 -0500)
committerRich Felker <dalias@aerifal.cx>
Fri, 28 Feb 2014 18:12:40 +0000 (13:12 -0500)
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.

configure

index 434242b..89e1990 100755 (executable)
--- 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\"" ;;
 esac