diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 67e5b893f24d8486d87080438648f90881b9ddb7..923708f8a38b99faf2ce203ff67ea7539c6ae28d 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,13 @@ +2012-01-27 Benjamin Kosnik <bkoz@redhat.com> + Matthias Klose <doko@ubuntu.com> + + * configure.ac (GLIBCXX_ENABLE_DEBUG_FLAGS): Use -gdwarf-4 -g3 -O0. + * configure.in: Regenerated. + * src/Makefile.am (all-once, install-data-once): New rules. + (all-local, install-data-local): Use them. + (build-debug, install-debug): Tweak. + * src/Makefile.in: Regenerate. + 2012-01-27 Richard Henderson <rth@redhat.com> * include/bits/atomic_base.h (__atomic_flag_base): Define _M_i diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure index 51ecfd6536fa26c9efd20d56672108997483a3dd..5c1c4bbe639788c7add585a47bee7aedc18c9aa6 100755 --- a/libstdc++-v3/configure +++ b/libstdc++-v3/configure @@ -1534,7 +1534,7 @@ Optional Features: --enable-concept-checks use Boost-derived template checks [default=no] --enable-libstdcxx-debug-flags=FLAGS pass compiler FLAGS when building debug library - [default="-g3 -O0"] + [default="-gdwarf-4 -g3 -O0"] --enable-libstdcxx-debug build extra debug library [default=no] --enable-cxx-flags=FLAGS @@ -17096,7 +17096,7 @@ if test "${enable_libstdcxx_debug_flags+set}" = set; then : *) as_fn_error "--enable-libstdcxx-debug-flags needs compiler flags as arguments" "$LINENO" 5 ;; esac else - enable_libstdcxx_debug_flags="-g3 -O0" + enable_libstdcxx_debug_flags="-gdwarf-4 -g3 -O0" fi diff --git a/libstdc++-v3/configure.ac b/libstdc++-v3/configure.ac index c5f79011f1c54284051f992f080c30e379e4069a..7607e5b732e7f352584fe5c9c4ea0faf7c5cbe12 100644 --- a/libstdc++-v3/configure.ac +++ b/libstdc++-v3/configure.ac @@ -124,7 +124,7 @@ GLIBCXX_ENABLE_LONG_LONG([yes]) GLIBCXX_ENABLE_WCHAR_T([yes]) GLIBCXX_ENABLE_C99([yes]) GLIBCXX_ENABLE_CONCEPT_CHECKS([no]) -GLIBCXX_ENABLE_DEBUG_FLAGS(["-g3 -O0"]) +GLIBCXX_ENABLE_DEBUG_FLAGS(["-gdwarf-4 -g3 -O0"]) GLIBCXX_ENABLE_DEBUG([no]) GLIBCXX_ENABLE_PARALLEL([yes]) GLIBCXX_ENABLE_CXX_FLAGS diff --git a/libstdc++-v3/src/Makefile.am b/libstdc++-v3/src/Makefile.am index 87b2a1682d73ccbdf2173a37b917dfcc3bab488b..2cd27749fa66579ce6f92489ee5b16e8d79d5385 100644 --- a/libstdc++-v3/src/Makefile.am +++ b/libstdc++-v3/src/Makefile.am @@ -168,16 +168,16 @@ version_arg = version_dep = endif -# Added rules. -# 1 debug library -# 2 supra-convenience library -if GLIBCXX_BUILD_DEBUG -all-local: libstdc++convenience.la build_debug -install-data-local: install_debug -else -all-local: libstdc++convenience.la -install-data-local: -endif + +# Control additional build primary rules. +# EXTRA_LTLIBRARIES = +all-once: libstdc++convenience.la $(STAMP_DEBUG) +install-data-once: $(STAMP_INSTALL_DEBUG) + +all-local: all-once +install-data-local: install-data-once +clean-local: + rm -rf libstdc++convenience.la stamp* $(CLEAN_DEBUG) # Make a non-installed convenience library, so that --disable-static # may work. @@ -188,13 +188,26 @@ libstdc++convenience.la: $(toolexeclib_LTLIBRARIES) fi; \ echo `date` > stamp-libstdc++convenience; -debugdir = debug +# Added rules. +# 1 debug library +# 2 supra-convenience library +if GLIBCXX_BUILD_DEBUG +STAMP_DEBUG = build-debug +STAMP_INSTALL_DEBUG = install-debug +CLEAN_DEBUG = debug +else +STAMP_DEBUG = +STAMP_INSTALL_DEBUG = +CLEAN_DEBUG = +endif -# Build a set of debug objects here. +# Build a debug variant. # Take care to fix all possibly-relative paths. +debugdir = ${glibcxx_builddir}/src/debug stamp-debug: if test ! -d ${debugdir}; then \ mkdir -p ${debugdir}; \ + for d in $(SUBDIRS); do mkdir -p ${debugdir}/$$d; done; \ (cd ${debugdir}; \ sed -e 's/top_builddir = \.\./top_builddir = ..\/../' \ -e 's/top_build_prefix = \.\./top_build_prefix = ..\/../' \ @@ -202,16 +215,30 @@ stamp-debug: -e 's/VPATH = \.\./VPATH = ..\/../' \ -e 's/glibcxx_basedir = \.\./glibcxx_basedir = ..\/../' \ -e 's/MKDIR_P = \.\./MKDIR_P = ..\/../' \ - -e 's/all-local: build_debug/all-local:/' \ - -e 's/install-data-local: install_debug/install-data-local:/' \ - < ../Makefile > Makefile) ; \ + < ../Makefile > Makefile ; \ + for d in . $(SUBDIRS); do \ + sed -e 's/top_builddir = \.\./top_builddir = ..\/../' \ + -e 's/top_build_prefix = \.\./top_build_prefix = ..\/../' \ + -e 's/srcdir = \.\./srcdir = ..\/../' \ + -e 's/VPATH = \.\./VPATH = ..\/../' \ + -e 's/glibcxx_basedir = \.\./glibcxx_basedir = ..\/../' \ + -e 's/MKDIR_P = \.\./MKDIR_P = ..\/../' \ + < ../$$d/Makefile > $$d/Makefile ; \ + done) ; \ fi; \ echo `date` > stamp-debug; -build_debug: stamp-debug - (cd ${debugdir} && $(MAKE) CXXFLAGS='$(DEBUG_FLAGS)' all) - -# Install debug library here. -install_debug: - (cd ${debugdir} && $(MAKE) \ - toolexeclibdir=$(glibcxx_toolexeclibdir)/debug install) +build-debug: stamp-debug + (cd ${debugdir}; \ + mv Makefile Makefile.tmp; \ + sed -e 's,all-local: all-once,all-local:,' \ + -e 's,install-data-local: install-data-once,install-data-local:,' \ + -e 's,src/c,src/debug/c,' \ + < Makefile.tmp > Makefile ; \ + $(MAKE) CXXFLAGS='$(DEBUG_FLAGS)' \ + toolexeclibdir=$(glibcxx_toolexeclibdir)/debug all) ; + +# Install debug library. +install-debug: build-debug + (cd ${debugdir} && $(MAKE) CXXFLAGS='$(DEBUG_FLAGS)' \ + toolexeclibdir=$(glibcxx_toolexeclibdir)/debug install) ; diff --git a/libstdc++-v3/src/Makefile.in b/libstdc++-v3/src/Makefile.in index 11ee8ba721eb12bca94a1e0b6cbe467f5e662297..79340a2c7fd6e6b22f1ccce7142d94bd17059a71 100644 --- a/libstdc++-v3/src/Makefile.in +++ b/libstdc++-v3/src/Makefile.in @@ -405,7 +405,20 @@ CXXLINK = $(LIBTOOL) --tag CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @ENABLE_SYMVERS_GNU_TRUE@@ENABLE_SYMVERS_SOL2_FALSE@@ENABLE_SYMVERS_TRUE@version_dep = libstdc++-symbols.ver @ENABLE_SYMVERS_GNU_TRUE@@ENABLE_SYMVERS_SOL2_TRUE@@ENABLE_SYMVERS_TRUE@version_dep = libstdc++-symbols.ver-sol2 @ENABLE_SYMVERS_SUN_TRUE@@ENABLE_SYMVERS_TRUE@version_dep = libstdc++-symbols.ver-sun -debugdir = debug +@GLIBCXX_BUILD_DEBUG_FALSE@STAMP_DEBUG = + +# Added rules. +# 1 debug library +# 2 supra-convenience library +@GLIBCXX_BUILD_DEBUG_TRUE@STAMP_DEBUG = build-debug +@GLIBCXX_BUILD_DEBUG_FALSE@STAMP_INSTALL_DEBUG = +@GLIBCXX_BUILD_DEBUG_TRUE@STAMP_INSTALL_DEBUG = install-debug +@GLIBCXX_BUILD_DEBUG_FALSE@CLEAN_DEBUG = +@GLIBCXX_BUILD_DEBUG_TRUE@CLEAN_DEBUG = debug + +# Build a debug variant. +# Take care to fix all possibly-relative paths. +debugdir = ${glibcxx_builddir}/src/debug all: all-recursive .SUFFIXES: @@ -655,8 +668,8 @@ maintainer-clean-generic: @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive -clean-am: clean-generic clean-libtool clean-toolexeclibLTLIBRARIES \ - mostlyclean-am +clean-am: clean-generic clean-libtool clean-local \ + clean-toolexeclibLTLIBRARIES mostlyclean-am distclean: distclean-recursive -rm -f Makefile @@ -727,7 +740,7 @@ uninstall-am: uninstall-toolexeclibLTLIBRARIES .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am all-local check check-am clean clean-generic \ - clean-libtool clean-toolexeclibLTLIBRARIES ctags \ + clean-libtool clean-local clean-toolexeclibLTLIBRARIES ctags \ ctags-recursive distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags dvi dvi-am html html-am info \ info-am install install-am install-data install-data-am \ @@ -785,13 +798,15 @@ vpath % $(top_srcdir) @ENABLE_SYMVERS_DARWIN_TRUE@@ENABLE_SYMVERS_TRUE@ sed 's,/\([^/.]*\)\.la,/.libs/\1.a,g'` \ @ENABLE_SYMVERS_DARWIN_TRUE@@ENABLE_SYMVERS_TRUE@ > $@ || (rm -f $@ ; exit 1) -# Added rules. -# 1 debug library -# 2 supra-convenience library -@GLIBCXX_BUILD_DEBUG_TRUE@all-local: libstdc++convenience.la build_debug -@GLIBCXX_BUILD_DEBUG_TRUE@install-data-local: install_debug -@GLIBCXX_BUILD_DEBUG_FALSE@all-local: libstdc++convenience.la -@GLIBCXX_BUILD_DEBUG_FALSE@install-data-local: +# Control additional build primary rules. +# EXTRA_LTLIBRARIES = +all-once: libstdc++convenience.la $(STAMP_DEBUG) +install-data-once: $(STAMP_INSTALL_DEBUG) + +all-local: all-once +install-data-local: install-data-once +clean-local: + rm -rf libstdc++convenience.la stamp* $(CLEAN_DEBUG) # Make a non-installed convenience library, so that --disable-static # may work. @@ -801,12 +816,10 @@ libstdc++convenience.la: $(toolexeclib_LTLIBRARIES) cp .libs/libstdc++convenience.a .libs/libstdc++.a; \ fi; \ echo `date` > stamp-libstdc++convenience; - -# Build a set of debug objects here. -# Take care to fix all possibly-relative paths. stamp-debug: if test ! -d ${debugdir}; then \ mkdir -p ${debugdir}; \ + for d in $(SUBDIRS); do mkdir -p ${debugdir}/$$d; done; \ (cd ${debugdir}; \ sed -e 's/top_builddir = \.\./top_builddir = ..\/../' \ -e 's/top_build_prefix = \.\./top_build_prefix = ..\/../' \ @@ -814,19 +827,33 @@ stamp-debug: -e 's/VPATH = \.\./VPATH = ..\/../' \ -e 's/glibcxx_basedir = \.\./glibcxx_basedir = ..\/../' \ -e 's/MKDIR_P = \.\./MKDIR_P = ..\/../' \ - -e 's/all-local: build_debug/all-local:/' \ - -e 's/install-data-local: install_debug/install-data-local:/' \ - < ../Makefile > Makefile) ; \ + < ../Makefile > Makefile ; \ + for d in . $(SUBDIRS); do \ + sed -e 's/top_builddir = \.\./top_builddir = ..\/../' \ + -e 's/top_build_prefix = \.\./top_build_prefix = ..\/../' \ + -e 's/srcdir = \.\./srcdir = ..\/../' \ + -e 's/VPATH = \.\./VPATH = ..\/../' \ + -e 's/glibcxx_basedir = \.\./glibcxx_basedir = ..\/../' \ + -e 's/MKDIR_P = \.\./MKDIR_P = ..\/../' \ + < ../$$d/Makefile > $$d/Makefile ; \ + done) ; \ fi; \ echo `date` > stamp-debug; -build_debug: stamp-debug - (cd ${debugdir} && $(MAKE) CXXFLAGS='$(DEBUG_FLAGS)' all) - -# Install debug library here. -install_debug: - (cd ${debugdir} && $(MAKE) \ - toolexeclibdir=$(glibcxx_toolexeclibdir)/debug install) +build-debug: stamp-debug + (cd ${debugdir}; \ + mv Makefile Makefile.tmp; \ + sed -e 's,all-local: all-once,all-local:,' \ + -e 's,install-data-local: install-data-once,install-data-local:,' \ + -e 's,src/c,src/debug/c,' \ + < Makefile.tmp > Makefile ; \ + $(MAKE) CXXFLAGS='$(DEBUG_FLAGS)' \ + toolexeclibdir=$(glibcxx_toolexeclibdir)/debug all) ; + +# Install debug library. +install-debug: build-debug + (cd ${debugdir} && $(MAKE) CXXFLAGS='$(DEBUG_FLAGS)' \ + toolexeclibdir=$(glibcxx_toolexeclibdir)/debug install) ; # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded.