summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--configure.in18
-rwxr-xr-xset_soenv.in1
-rw-r--r--solenv/gbuild/platform/WNT_INTEL_GCC.mk7
-rw-r--r--solenv/gbuild/platform/unxgcc.mk7
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