aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Wakely <jwakely@redhat.com>2021-08-12 19:56:14 +0100
committerJonathan Wakely <jwakely@redhat.com>2021-08-16 17:51:42 +0100
commitdb853ff78a34fef25bc16133e0367a64526f9f4e (patch)
treeefc33ee3625dd9cbf0abd076ec1e08b7a2879ab3
parent8cdcea51c0fd753e6a652c9b236e91b3a6e0911c (diff)
downloadgcc-db853ff78a34fef25bc16133e0367a64526f9f4e.zip
gcc-db853ff78a34fef25bc16133e0367a64526f9f4e.tar.gz
gcc-db853ff78a34fef25bc16133e0367a64526f9f4e.tar.bz2
libstdc++: Install GDB pretty printers for debug library
The additional libraries installed by --enable-libstdcxx-debug are built without optimization to aid debugging, but the Python pretty printers are not installed alongside them. This means that you can step through the unoptimized library code, but at the expense of pretty printing the library types. This remedies the situation by installing another copy of the GDB hooks alongside the debug version of libstdc++.so. Signed-off-by: Jonathan Wakely <jwakely@redhat.com> libstdc++-v3/ChangeLog: * python/Makefile.am [GLIBCXX_BUILD_DEBUG] (install-data-local): Install another copy of the GDB hook. * python/Makefile.in: Regenerate.
-rw-r--r--libstdc++-v3/python/Makefile.am12
-rw-r--r--libstdc++-v3/python/Makefile.in8
2 files changed, 18 insertions, 2 deletions
diff --git a/libstdc++-v3/python/Makefile.am b/libstdc++-v3/python/Makefile.am
index 8efefa5..bc4a266 100644
--- a/libstdc++-v3/python/Makefile.am
+++ b/libstdc++-v3/python/Makefile.am
@@ -29,6 +29,12 @@ else
pythondir = $(datadir)/gcc-$(gcc_version)/python
endif
+if GLIBCXX_BUILD_DEBUG
+debug_gdb_py = YES
+else
+debug_gdb_py =
+endif
+
all-local: gdb.py
nobase_python_DATA = \
@@ -53,4 +59,8 @@ install-data-local: gdb.py
$(DESTDIR)$(toolexeclibdir)/libstdc++.la`; \
fi; \
echo " $(INSTALL_DATA) gdb.py $(DESTDIR)$(toolexeclibdir)/$$libname-gdb.py"; \
- $(INSTALL_DATA) gdb.py $(DESTDIR)$(toolexeclibdir)/$$libname-gdb.py
+ $(INSTALL_DATA) gdb.py $(DESTDIR)$(toolexeclibdir)/$$libname-gdb.py ; \
+ if [ -n "$(debug_gdb_py)" ]; then \
+ sed "/^libdir = /s;'$$;/debug';" gdb.py > debug-gdb.py ; \
+ $(INSTALL_DATA) debug-gdb.py $(DESTDIR)$(toolexeclibdir)/debug/$$libname-gdb.py ; \
+ fi
diff --git a/libstdc++-v3/python/Makefile.in b/libstdc++-v3/python/Makefile.in
index 9904a91..b3b56c4 100644
--- a/libstdc++-v3/python/Makefile.in
+++ b/libstdc++-v3/python/Makefile.in
@@ -403,6 +403,8 @@ WARN_CXXFLAGS = \
AM_CPPFLAGS = $(GLIBCXX_INCLUDES) $(CPPFLAGS)
@ENABLE_PYTHONDIR_FALSE@pythondir = $(datadir)/gcc-$(gcc_version)/python
@ENABLE_PYTHONDIR_TRUE@pythondir = $(prefix)/$(python_mod_dir)
+@GLIBCXX_BUILD_DEBUG_FALSE@debug_gdb_py =
+@GLIBCXX_BUILD_DEBUG_TRUE@debug_gdb_py = YES
nobase_python_DATA = \
libstdcxx/v6/printers.py \
libstdcxx/v6/xmethods.py \
@@ -614,7 +616,11 @@ install-data-local: gdb.py
$(DESTDIR)$(toolexeclibdir)/libstdc++.la`; \
fi; \
echo " $(INSTALL_DATA) gdb.py $(DESTDIR)$(toolexeclibdir)/$$libname-gdb.py"; \
- $(INSTALL_DATA) gdb.py $(DESTDIR)$(toolexeclibdir)/$$libname-gdb.py
+ $(INSTALL_DATA) gdb.py $(DESTDIR)$(toolexeclibdir)/$$libname-gdb.py ; \
+ if [ -n "$(debug_gdb_py)" ]; then \
+ sed "/^libdir = /s;'$$;/debug';" gdb.py > debug-gdb.py ; \
+ $(INSTALL_DATA) debug-gdb.py $(DESTDIR)$(toolexeclibdir)/debug/$$libname-gdb.py ; \
+ fi
# 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.