From b439c051c7eee4eb4b93fc382f993aa6305ce530 Mon Sep 17 00:00:00 2001 From: Rich Felker Date: Wed, 29 Aug 2012 09:36:02 -0400 Subject: [PATCH] get rid of eh_frame bloat if needed for debugging, it will be output in the .debug_frame section instead, where it is not part of the loaded program and where the strip command is free to strip it. --- configure | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/configure b/configure index 11051800..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 # -- 2.20.1