X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=configure;h=eb72a1e6c04d089f1fbf8228688c9972cb19b0bf;hb=6fbdeff0e51f6afc38fbb1476a4db81322779da4;hp=572ea6404b51f5e38642d4707fe987170049f32e;hpb=b1683a1d6a4391ffef6ce12be9aa172d0f4f59bc;p=musl diff --git a/configure b/configure index 572ea640..eb72a1e6 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-x32*|x32*|x86_64*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 @@ -408,6 +410,10 @@ printf "using compiler runtime libraries: %s\n" "$LIBCC" SUBARCH= t="$CFLAGS_C99FSE $CPPFLAGS $CFLAGS_AUTO $CFLAGS" +if test "$ARCH" = "x86_64" ; then +trycppif __ILP32__ "$t" && ARCH=x32 +fi + if test "$ARCH" = "arm" ; then trycppif __ARMEB__ "$t" && SUBARCH=${SUBARCH}eb trycppif __ARM_PCS_VFP "$t" && SUBARCH=${SUBARCH}hf @@ -423,12 +429,12 @@ test "$ARCH" = "microblaze" && trycppif __MICROBLAZEEL__ "$t" \ if test "$ARCH" = "sh" ; then trycppif __BIG_ENDIAN__ "$t" && SUBARCH=${SUBARCH}eb -if trycppif __SH_FPU_ANY__ ; then +if trycppif __SH_FPU_ANY__ "$t" ; then # Some sh configurations are broken and replace double with float # rather than using softfloat when the fpu is present but only # supports single precision. Reject them. printf "checking whether compiler's double type is IEEE double... " -echo 'typedef char dblcheck[(int)sizeof(double)-5];' >> "$tmpc" +echo 'typedef char dblcheck[(int)sizeof(double)-5];' > "$tmpc" if $CC $CFLAGS_C99FSE $CPPFLAGS $CFLAGS -c -o /dev/null "$tmpc" >/dev/null 2>&1 ; then printf "yes\n" else