X-Git-Url: http://nsz.repo.hu/git/?p=musl;a=blobdiff_plain;f=configure;h=4e3931c1c2b49236340e9d31ed348dc88b7b8b9a;hp=1e8b974194638e9265b9cad44b8c47ace8e79df7;hb=b9bb8f67bbac9bab5314fb00974ad469476e936e;hpb=94e920d0cd12d1ef7d82ba72d912771235710328 diff --git a/configure b/configure index 1e8b9741..4e3931c1 100755 --- a/configure +++ b/configure @@ -226,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 # @@ -268,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=