diff options
-rw-r--r-- | configure.in | 18 | ||||
-rwxr-xr-x | set_soenv.in | 1 | ||||
-rw-r--r-- | solenv/gbuild/platform/WNT_INTEL_GCC.mk | 7 | ||||
-rw-r--r-- | solenv/gbuild/platform/unxgcc.mk | 7 |
4 files changed, 33 insertions, 0 deletions
diff --git a/configure.in b/configure.in index 4cfeae07ee24..0fe12fa14f25 100644 --- a/configure.in +++ b/configure.in @@ -3821,6 +3821,24 @@ AC_SUBST(HAVE_GCC_VISIBILITY_FEATURE) AC_SUBST(HAVE_GCC_VISIBILITY_BROKEN) dnl =================================================================== +dnl gcc DWARF-4 support (smaller debug info) +dnl =================================================================== +if test "$GCC" = "yes"; then + AC_MSG_CHECKING([whether $CC supports -gdwarf-4]) + save_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS -Werror -gdwarf-4" + AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[ return 0; ]])],[ HAVE_GCC_DWARF_4=TRUE ],[]) + CFLAGS=$save_CFLAGS + if test "$HAVE_GCC_DWARF_4" = "TRUE"; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi +fi + +AC_SUBST(HAVE_GCC_DWARF_4) + +dnl =================================================================== dnl allocator dnl =================================================================== AC_MSG_CHECKING([which memory allocator to use]) diff --git a/set_soenv.in b/set_soenv.in index bef940502c13..3bb806aec804 100755 --- a/set_soenv.in +++ b/set_soenv.in @@ -1779,6 +1779,7 @@ ToFile( "HAVE_GCC_VISIBILITY_FEATURE", "@HAVE_GCC_VISIBILITY_FEATURE@", "e" ); ToFile( "HAVE_GCC_VISIBILITY_BROKEN", "@HAVE_GCC_VISIBILITY_BROKEN@", "e" ); +ToFile( "HAVE_GCC_DWARF_4","@HAVE_GCC_DWARF_4@","e" ); ToFile( "HAVE_LD_HASH_STYLE","@HAVE_LD_HASH_STYLE@","e" ); ToFile( "WITH_LINKER_HASH_STYLE","@WITH_LINKER_HASH_STYLE@","e" ); ToFile( "HAVE_LD_BSYMBOLIC_FUNCTIONS", diff --git a/solenv/gbuild/platform/WNT_INTEL_GCC.mk b/solenv/gbuild/platform/WNT_INTEL_GCC.mk index c0739f4129d8..7363654d449e 100644 --- a/solenv/gbuild/platform/WNT_INTEL_GCC.mk +++ b/solenv/gbuild/platform/WNT_INTEL_GCC.mk @@ -99,6 +99,9 @@ gb_LinkTarget_LDFLAGS += -shared-libgcc endif gb_DEBUG_CFLAGS := -ggdb3 -finline-limit=0 -fno-inline -fno-default-inline +ifeq ($(HAVE_GCC_DWARF_4),TRUE) +gb_DEBUG_CFLAGS += -gdwarf-4 +endif gb_STDLIBS := \ mingwthrd \ @@ -152,6 +155,10 @@ gb_LinkTarget_CXXFLAGS := $(gb_CXXFLAGS) $(gb_CXXFLAGS_WERROR) ifeq ($(gb_SYMBOL),$(true)) gb_LinkTarget_CXXFLAGS += -ggdb2 gb_LinkTarget_CFLAGS += -ggdb2 +ifeq ($(HAVE_GCC_DWARF_4),TRUE) +gb_LinkTarget_CXXFLAGS += -gdwarf-4 +gb_LinkTarget_CFLAGS += -gdwarf-4 +endif endif gb_LinkTarget_INCLUDE +=\ diff --git a/solenv/gbuild/platform/unxgcc.mk b/solenv/gbuild/platform/unxgcc.mk index 74034881924a..37c203f32c81 100644 --- a/solenv/gbuild/platform/unxgcc.mk +++ b/solenv/gbuild/platform/unxgcc.mk @@ -162,6 +162,9 @@ gb_LINKEROPTFLAGS := -Wl,-O1 endif gb_DEBUG_CFLAGS := -ggdb3 -finline-limit=0 -fno-inline -fno-default-inline +ifeq ($(HAVE_GCC_DWARF_4),TRUE) +gb_DEBUG_CFLAGS += -gdwarf-4 +endif gb_COMPILERNOOPTFLAGS := -O0 @@ -206,6 +209,10 @@ gb_LinkTarget_CXXFLAGS := $(gb_CXXFLAGS) $(gb_CXXFLAGS_WERROR) ifeq ($(gb_SYMBOL),$(true)) gb_LinkTarget_CXXFLAGS += -ggdb2 gb_LinkTarget_CFLAGS += -ggdb2 +ifeq ($(HAVE_GCC_DWARF_4),TRUE) +gb_LinkTarget_CXXFLAGS += -gdwarf-4 +gb_LinkTarget_CFLAGS += -gdwarf-4 +endif endif # note that `cat $(extraobjectlist)` is needed to build with older gcc versions, e.g. 4.1.2 on SLED10 |