X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=configure;h=248c45005eb0c3eeff2121a369572436c91aa67c;hb=10a17dfbad2c267d885817abc9c7589fc7ff630b;hp=5b97f719b0da622b81cdaf94ae0a2dbeabea332e;hpb=ce3e24eaae91e7a90f87eb7f1edea8df5942de11;p=musl diff --git a/configure b/configure index 5b97f719..248c4500 100755 --- a/configure +++ b/configure @@ -142,7 +142,7 @@ clang_wrapper=no for arg ; do case "$arg" in ---help) usage ;; +--help|-h) usage ;; --srcdir=*) srcdir=${arg#*=} ;; --prefix=*) prefix=${arg#*=} ;; --exec-prefix=*) exec_prefix=${arg#*=} ;; @@ -338,7 +338,7 @@ __attribute__((__may_alias__)) #endif x; EOF -if $CC $CFLAGS_C99FSE -I$srcdir/arch/$ARCH -I$srcdir/include $CPPFLAGS $CFLAGS \ +if $CC $CFLAGS_C99FSE $CPPFLAGS $CFLAGS \ -c -o /dev/null "$tmpc" >/dev/null 2>&1 ; then printf "no\n" else @@ -532,6 +532,15 @@ CFLAGS_AUTO="$CFLAGS_AUTO -include vis.h" CFLAGS_AUTO="${CFLAGS_AUTO# }" fi +# Determine if the compiler produces position-independent code (PIC) +# by default. If so, we don't need to compile separate object files +# for libc.a and libc.so. +if trycppif __PIC__ "$CFLAGS_C99FSE $CPPFLAGS $CFLAGS" ; then +pic_default=yes +else +pic_default=no +fi + # Reduce space lost to padding for alignment purposes by sorting data # objects according to their alignment reqirements. This approximates # optimal packing. @@ -556,15 +565,10 @@ tryldflag LDFLAGS_AUTO -Wl,--no-undefined # versions built without shared library support and pcc are broken. tryldflag LDFLAGS_AUTO -Wl,--exclude-libs=ALL -test "$shared" = "no" || { -# Disable dynamic linking if ld is broken and can't do -Bsymbolic-functions -LDFLAGS_DUMMY= -tryldflag LDFLAGS_DUMMY -Wl,-Bsymbolic-functions || { -test "$shared" = "yes" && fail "$0: error: linker cannot build shared library" -printf "warning: disabling dynamic linking support\n" -shared=no -} -} +# Linking with -Bsymbolic-functions is no longer mandatory for +# the dynamic linker to work, but enable it if it works as +# a linking optimization. +tryldflag LDFLAGS_AUTO -Wl,-Bsymbolic-functions # Find compiler runtime library test -z "$LIBCC" && tryldflag LIBCC -lgcc && tryldflag LIBCC -lgcc_eh @@ -642,8 +646,9 @@ echo '#include ' > "$tmpc" echo '#if LDBL_MANT_DIG == 53' >> "$tmpc" echo 'typedef char ldcheck[9-(int)sizeof(long double)];' >> "$tmpc" echo '#endif' >> "$tmpc" -if $CC $CFLAGS_C99FSE -I$srcdir/arch/$ARCH -I$srcdir/include $CPPFLAGS $CFLAGS \ - -c -o /dev/null "$tmpc" >/dev/null 2>&1 ; then +if $CC $CFLAGS_C99FSE \ + -I$srcdir/arch/$ARCH -I$srcdir/arch/generic -I$srcdir/include \ + $CPPFLAGS $CFLAGS -c -o /dev/null "$tmpc" >/dev/null 2>&1 ; then printf "yes\n" else printf "no\n" @@ -692,6 +697,7 @@ test "x$static" = xno && echo "STATIC_LIBS =" test "x$shared" = xno && echo "SHARED_LIBS =" test "x$cc_family" = xgcc && echo 'WRAPCC_GCC = $(CC)' test "x$cc_family" = xclang && echo 'WRAPCC_CLANG = $(CC)' +test "x$pic_default" = xyes && echo 'AOBJS = $(LOBJS)' exec 1>&3 3>&- test "$srcdir" = "." || ln -sf $srcdir/Makefile .