patches/gcc/4.2.4/160-libstdc++-pic.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Tue Dec 13 23:32:39 2011 +0100 (2011-12-13)
branch1.13
changeset 2847 c0bf2319af08
parent 687 b2b6b1d46aa1
permissions -rw-r--r--
scripts: fix dumping execution backtrace

Dumping the backtrace has been broken since changeset #652e56d6d35a:
scripts: execute each steps in a subshell

We can spawn sub-sub-shells in some cases.

The way the fault handler works is to dump the backtrace, but to avoid
printing it once for every sub-shell (which could get quite confusing),
it simply exits when it detects that it is being run in a sub-shell,
leaving to the top-level shell the work to dump the backtrace.

Because each step is executed in its own sub-shell, the variable arrays
that contain the step name, the source file and line number, are lost
when exiting the per-step sub-shell.

Hence, the backtrace is currently limited to printing only the top-level
main procedure of the shell.

Fix this thus:
- when dumping the bckatraces for the steps & the functions, remember
it was dumped, and only dump it if it was not already dumped
- at the top-level shell, print the hints

Also, rename the top-level step label.

Reported-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
(transplanted from 4193d6e6a17430a177fa88c287879c2c35e319f3)
     1 diff -durN gcc-4.2.1.orig/libstdc++-v3/src/Makefile.am gcc-4.2.1/libstdc++-v3/src/Makefile.am
     2 --- gcc-4.2.1.orig/libstdc++-v3/src/Makefile.am	2006-07-28 06:57:34.000000000 +0200
     3 +++ gcc-4.2.1/libstdc++-v3/src/Makefile.am	2007-08-03 20:32:27.000000000 +0200
     4 @@ -257,6 +257,12 @@
     5  	  $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@
     6  
     7  
     8 +install-exec-local:
     9 +ifeq ($(enable_shared),yes)
    10 +	$(AR) cru libstdc++_pic.a .libs/*.o $(top_builddir)/libsupc++/*.o
    11 +	$(INSTALL_DATA) libstdc++_pic.a $(DESTDIR)$(toolexeclibdir)
    12 +endif
    13 +
    14  # Added bits to build debug library.
    15  if GLIBCXX_BUILD_DEBUG
    16  all-local: build_debug
    17 diff -durN gcc-4.2.1.orig/libstdc++-v3/src/Makefile.in gcc-4.2.1/libstdc++-v3/src/Makefile.in
    18 --- gcc-4.2.1.orig/libstdc++-v3/src/Makefile.in	2006-10-16 21:08:22.000000000 +0200
    19 +++ gcc-4.2.1/libstdc++-v3/src/Makefile.in	2007-08-03 20:32:27.000000000 +0200
    20 @@ -657,7 +657,7 @@
    21  
    22  install-data-am: install-data-local
    23  
    24 -install-exec-am: install-toolexeclibLTLIBRARIES
    25 +install-exec-am: install-toolexeclibLTLIBRARIES install-exec-local
    26  
    27  install-info: install-info-am
    28  
    29 @@ -690,6 +690,7 @@
    30  	distclean-libtool distclean-tags distdir dvi dvi-am html \
    31  	html-am info info-am install install-am install-data \
    32  	install-data-am install-data-local install-exec \
    33 +	install-exec-local \
    34  	install-exec-am install-info install-info-am install-man \
    35  	install-strip install-toolexeclibLTLIBRARIES installcheck \
    36  	installcheck-am installdirs maintainer-clean \
    37 @@ -799,6 +800,13 @@
    38  install_debug:
    39  	(cd ${debugdir} && $(MAKE) \
    40  	toolexeclibdir=$(glibcxx_toolexeclibdir)/debug install)
    41 +
    42 +install-exec-local:
    43 +ifeq ($(enable_shared),yes)
    44 +	$(AR) cru libstdc++_pic.a *.o $(top_builddir)/libsupc++/*.o
    45 +	$(INSTALL_DATA) libstdc++_pic.a $(DESTDIR)$(toolexeclibdir)
    46 +endif
    47 +
    48  # Tell versions [3.59,3.63) of GNU make to not export all variables.
    49  # Otherwise a system limit (for SysV at least) may be exceeded.
    50  .NOEXPORT: