From a19a673601b4b87986a4d8d6e1a59c50b97c87df Mon Sep 17 00:00:00 2001 From: Mika Lindqvist Date: Thu, 14 May 2015 15:13:18 +0300 Subject: [PATCH] Fix ARCH detection when default target of gcc doesn't match uname. --- .gitignore | 1 + configure | 17 +++++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/.gitignore b/.gitignore index 3f55a29d..0cfd4838 100644 --- a/.gitignore +++ b/.gitignore @@ -40,6 +40,7 @@ Testing zconf.h zconf.h.cmakein zconf.h.included +ztest* configure.log a.out diff --git a/configure b/configure index 336f630b..0b9ae30e 100755 --- a/configure +++ b/configure @@ -199,6 +199,18 @@ show $cc -c $test.c if test "$gcc" -eq 1 && ($cc -c $test.c) >> configure.log 2>&1; then echo ... using gcc >> configure.log CC="$cc" +# Re-check arch if gcc is a cross-compiler + GCC_ARCH=`$CC -dumpmachine | sed 's/-.*//g'` + case $GCC_ARCH in + i386 | i486 | i586 | i686) +# Honor user choice if gcc is multilib and 64-bit is requested + if test $build64 -eq 1; then + ARCH=x86_64 + else + ARCH=$GCC_ARCH + fi ;; + x86_64) ARCH=$GCC_ARCH ;; + esac CFLAGS="${CFLAGS--O3} ${ARCHS} -Wall" SFLAGS="${CFLAGS--O3} -fPIC" LDFLAGS="${LDFLAGS} ${ARCHS}" @@ -271,6 +283,11 @@ if test "$gcc" -eq 1 && ($cc -c $test.c) >> configure.log 2>&1; then DEFFILE='win32/zlib.def' RC='windres' RCFLAGS='--define GCC_WINDRES' + if [ "$CC" == "mingw32-gcc" ]; then + case $ARCH in + i386 | i486 | i586 | i686) RCFLAGS="${RCFLAGS} -F pe-i386";; + esac; + fi RCOBJS='zlibrc.o' STRIP='strip' EXE='.exe' ;; -- 2.47.2