X-Git-Url: http://nsz.repo.hu/git/?p=musl;a=blobdiff_plain;f=configure;h=4e3931c1c2b49236340e9d31ed348dc88b7b8b9a;hp=69ca21f5b4acae5481c68cbf21a56b6431511110;hb=3d939be2e3bcd4bfaf5cba27c9122a77a9c67021;hpb=6315004f6102dca44c4ba50654a36967b8b9c2a6 diff --git a/configure b/configure index 69ca21f5..4e3931c1 100755 --- a/configure +++ b/configure @@ -33,6 +33,7 @@ Optional features: Some influential environment variables: CC C compiler command [detected] CFLAGS C compiler flags [-Os -pipe ...] + CROSS_COMPILE prefix for cross compiler and tools [none] Use these variables to override the choices made by configure. @@ -126,6 +127,7 @@ CC=*) CC=${arg#*=} ;; CFLAGS=*) CFLAGS=${arg#*=} ;; CPPFLAGS=*) CPPFLAGS=${arg#*=} ;; LDFLAGS=*) LDFLAGS=${arg#*=} ;; +CROSS_COMPILE=*) CROSS_COMPILE=${arg#*=} ;; *=*) ;; *) target=$arg ;; esac @@ -155,9 +157,9 @@ trap 'rm "$tmpc"' EXIT INT QUIT TERM HUP # Find a C compiler to use # printf "checking for C compiler... " -trycc gcc -trycc c99 -trycc cc +trycc ${CROSS_COMPILE}gcc +trycc ${CROSS_COMPILE}c99 +trycc ${CROSS_COMPILE}cc printf "%s\n" "$CC" test -n "$CC" || { echo "$0: cannot find a C compiler" ; exit 1 ; } @@ -197,7 +199,7 @@ case "$target" in arm*) ARCH=arm ;; i?86*) ARCH=i386 ;; x86_64*) ARCH=x86_64 ;; -mips-*) ARCH=mips ;; +mips-*|mipsel-*) ARCH=mips ;; unknown) fail "$0: unable to detect target arch; try $0 --target=..." ;; *) fail "$0: unknown or unsupported target \"$target\"" ;; esac @@ -224,15 +226,24 @@ test "x$debug" = xyes && CFLAGS_AUTO="-g" tryflag CFLAGS_AUTO -pipe # -# If debugging is disabled, omit bloated DWARF2 unwind tables & frame ptr +# If debugging is disabled, omit frame pointer. Modern GCC does this +# anyway on most archs even when debugging is enabled since the frame +# pointer is no longer needed for debugging. # if fnmatch '-g*|*\ -g*' "$CFLAGS_AUTO $CFLAGS" ; then : else -tryflag CFLAGS_AUTO -fno-unwind-tables -tryflag CFLAGS_AUTO -fno-asynchronous-unwind-tables tryflag CFLAGS_AUTO -fomit-frame-pointer fi +# +# Modern GCC wants to put DWARF tables (used for debugging and +# unwinding) in the loaded part of the program where they are +# unstrippable. These options force them back to debug sections (and +# cause them not to get generated at all if debugging is off). +# +tryflag CFLAGS_AUTO -fno-unwind-tables +tryflag CFLAGS_AUTO -fno-asynchronous-unwind-tables + # # Some optimization levels add bloated alignment that hurt performance # @@ -266,7 +277,7 @@ fi # Some patched GCC builds have these defaults messed up... tryflag CFLAGS_AUTO -fno-stack-protector -tryldflag LDFLAGS_AUTO -Wl,--hash-style=sysv +tryldflag LDFLAGS_AUTO -Wl,--hash-style=both # Disable dynamic linking if ld is broken and can't do -Bsymbolic-functions LDFLAGS_DUMMY= @@ -276,6 +287,7 @@ shared=no } + printf "creating config.mak... " exec 3>&1 1>config.mak @@ -296,6 +308,7 @@ CFLAGS= $CFLAGS_AUTO $CFLAGS CFLAGS_C99FSE = $CFLAGS_C99FSE CPPFLAGS = $CPPFLAGS LDFLAGS = $LDFLAGS_AUTO $LDFLAGS +CROSS_COMPILE = $CROSS_COMPILE EOF test "x$static" = xno && echo "STATIC_LIBS =" test "x$shared" = xno && echo "SHARED_LIBS ="