X-Git-Url: http://nsz.repo.hu/git/?p=musl;a=blobdiff_plain;f=configure;h=6daa5b3686cb280ca48df4605873a82951143a40;hp=e3d97c2c9ba1f578a9b1a3b827e6b3d03e7580df;hb=7cb44cd3de59dc3acf5428c19a6a882aa896e6d0;hpb=278883d0e2fbf698370b8ddb16b79d5fff0febf3 diff --git a/configure b/configure index e3d97c2c..6daa5b36 100755 --- a/configure +++ b/configure @@ -67,10 +67,27 @@ return 1 fi } +tryldflag () { +printf "checking whether linker accepts %s... " "$2" +echo "typedef int x;" > "$tmpc" +if "$CC" -nostdlib -shared "$2" -o /dev/null "$tmpc" 2>/dev/null ; then +printf "yes\n" +eval "$1=\"\${$1} \$2\"" +eval "$1=\${$1# }" +return 0 +else +printf "no\n" +return 1 +fi +} + # Beginning of actual script +CFLAGS_C99FSE= +CFLAGS_AUTO= +LDFLAGS_AUTO= prefix= exec_prefix= bindir= @@ -180,6 +197,7 @@ case "$target" in arm*) ARCH=arm ;; i?86*) ARCH=i386 ;; x86_64*) ARCH=x86_64 ;; +mips-*) ARCH=mips ;; unknown) fail "$0: unable to detect target arch; try $0 --target=..." ;; *) fail "$0: unknown or unsupported target \"$target\"" ;; esac @@ -192,7 +210,7 @@ tryflag CFLAGS_C99FSE -nostdinc tryflag CFLAGS_C99FSE -ffreestanding \ || tryflag CFLAGS_C99FSE -fno-builtin tryflag CFLAGS_C99FSE -fexcess-precision=standard \ -|| tryflag CFLAGS_C99FSE -ffloat-store +|| { test "$ARCH" = i386 && tryflag CFLAGS_C99FSE -ffloat-store ; } tryflag CFLAGS_C99FSE -frounding-math # @@ -246,6 +264,22 @@ tryflag CFLAGS_AUTO -Wno-unused-but-set-variable tryflag CFLAGS_AUTO -Wno-unknown-pragmas fi +# Some patched GCC builds have these defaults messed up... +tryflag CFLAGS_AUTO -fno-stack-protector +tryldflag LDFLAGS_AUTO -Wl,--hash-style=sysv + +# Disable dynamic linking if ld is broken and can't do -Bsymbolic-functions +LDFLAGS_DUMMY= +tryldflag LDFLAGS_DUMMY -Wl,-Bsymbolic-functions || { +printf "warning: disabling dynamic linking support\n" +shared=no +} + +test "$ARCH" = "mips" && { +printf "warning: disabling dynamic linking support on mips (not yet supported)\n" +shared=no +} + printf "creating config.mak... " @@ -266,7 +300,7 @@ CC = $CC CFLAGS= $CFLAGS_AUTO $CFLAGS CFLAGS_C99FSE = $CFLAGS_C99FSE CPPFLAGS = $CPPFLAGS -LDFLAGS = $LDFLAGS +LDFLAGS = $LDFLAGS_AUTO $LDFLAGS EOF test "x$static" = xno && echo "STATIC_LIBS =" test "x$shared" = xno && echo "SHARED_LIBS ="