aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3
diff options
context:
space:
mode:
authorPhil Edwards <pme@gcc.gnu.org>2002-04-01 21:56:42 +0000
committerPhil Edwards <pme@gcc.gnu.org>2002-04-01 21:56:42 +0000
commit60d261b84aa9c8ea66b0bc6f8e611fcbbe8560fa (patch)
treef085c59e0aeb3f090619e56d9f5c650f7e998c9c /libstdc++-v3
parent83a463e1be2a2e345f1e34bc1ef0ad59cc8826ed (diff)
2002-04-01 Phil Edwards <pme@gcc.gnu.org>
* config/linker-map.gnu: Export __verbose_terminate_handler. * libsupc++/Makefile.am (sources): Add cxa_demangle.c, dyn-string.c. Make new LTCOMPILE variable, use it in new special build rules. * libsupc++/Makefile.in: Rebuild. * src/vterminate.cc (__verbose_terminate_handler): Enable use of runtime __cxa_demangle. * docs/html/install.html: Update prereqs and instructions. * docs/html/19_diagnostics/howto.html: Bring naming for verbose_terminate_handler into line with reality. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@51709 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libstdc++-v3')
-rw-r--r--libstdc++-v3/ChangeLog13
-rw-r--r--libstdc++-v3/config/linker-map.gnu3
-rw-r--r--libstdc++-v3/docs/html/19_diagnostics/howto.html6
-rw-r--r--libstdc++-v3/docs/html/install.html16
-rw-r--r--libstdc++-v3/libsupc++/Makefile.am27
-rw-r--r--libstdc++-v3/libsupc++/Makefile.in54
-rw-r--r--libstdc++-v3/src/vterminate.cc2
7 files changed, 100 insertions, 21 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index c6af9eca645..ec0c5887b19 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,16 @@
+2002-04-01 Phil Edwards <pme@gcc.gnu.org>
+
+ * config/linker-map.gnu: Export __verbose_terminate_handler.
+ * libsupc++/Makefile.am (sources): Add cxa_demangle.c, dyn-string.c.
+ Make new LTCOMPILE variable, use it in new special build rules.
+ * libsupc++/Makefile.in: Rebuild.
+ * src/vterminate.cc (__verbose_terminate_handler): Enable use of
+ runtime __cxa_demangle.
+
+ * docs/html/install.html: Update prereqs and instructions.
+ * docs/html/19_diagnostics/howto.html: Bring naming for
+ verbose_terminate_handler into line with reality.
+
2002-04-01 Benjamin Kosnik <bkoz@redhat.com>
libstdc++/3129
diff --git a/libstdc++-v3/config/linker-map.gnu b/libstdc++-v3/config/linker-map.gnu
index 240ca0138ef..7e0c8679e14 100644
--- a/libstdc++-v3/config/linker-map.gnu
+++ b/libstdc++-v3/config/linker-map.gnu
@@ -100,6 +100,9 @@ CXXABI_1 {
__gxx_personality_v0;
__dynamic_cast;
+ # __gnu_cxx::_verbose_terminate_handler()
+ _ZN9__gnu_cxx27__verbose_terminate_handlerEv;
+
local:
*;
};
diff --git a/libstdc++-v3/docs/html/19_diagnostics/howto.html b/libstdc++-v3/docs/html/19_diagnostics/howto.html
index 1253244ea84..3d8bf6f8bbc 100644
--- a/libstdc++-v3/docs/html/19_diagnostics/howto.html
+++ b/libstdc++-v3/docs/html/19_diagnostics/howto.html
@@ -119,12 +119,12 @@
int main()
{
- std::set_terminate (__gnu_cxx::verbose_terminate_handler);
+ std::set_terminate (__gnu_cxx::__verbose_terminate_handler);
...
throw <em>anything</em>;
}</pre>
</p>
- <p>The <code> verbose_terminate_handler </code> function obtains the name
+ <p>The <code> __verbose_terminate_handler </code> function obtains the name
of the current exception, attempts to demangle it, and prints it to
stderr. If the exception is derived from <code> std::exception </code>
then the output from <code>what()</code> will be included.
@@ -145,7 +145,7 @@
int main (int argc)
{
- std::set_terminate (__gnu_cxx::verbose_terminate_handler);
+ std::set_terminate (__gnu_cxx::__verbose_terminate_handler);
if (argc &gt; 5)
throw BLARGH(&quot;argc is greater than 5!&quot;);
else
diff --git a/libstdc++-v3/docs/html/install.html b/libstdc++-v3/docs/html/install.html
index 38d1c1d5e94..dce85f02d69 100644
--- a/libstdc++-v3/docs/html/install.html
+++ b/libstdc++-v3/docs/html/install.html
@@ -75,6 +75,13 @@
well as releases) of binutils
<a href="ftp://sources.redhat.com/pub/binutils">here</a>.
</p>
+
+ <p>If you are using a 3.1-series libstdc++ snapshot, then the
+ requirements are slightly more stringent: the compiler sources must
+ also be 3.1 or later (for both technical and licensing reasons), and
+ your binutils must be 2.11.95 or later if you want to use symbol
+ versioning in shared libraries.
+ </p>
<!-- Commented until some system-specific requirements appear.
<p>Finally, a few system-specific requirements:
@@ -145,7 +152,8 @@
<h2><a name="config">Configuring</a></h2>
<p>If you have never done this before, you should read the basic
<a href="http://gcc.gnu.org/install/">GCC Installation
- Instructions</a> first. Read <em>all of them</em>. Twice.
+ Instructions</a> first. Read <em>all of them</em>.
+ <strong>Twice.</strong>
</p>
<p>When building libstdc++-v3 you'll have to configure
the entire <em>gccsrcdir</em> directory. The full list of libstdc++-v3
@@ -214,6 +222,10 @@
<em>cpu-vendor-os</em>/bits/
ext/</pre>
</p>
+ <p>If you used the version-specific-libs configure option, then most of
+ the headers and library files will be moved under
+ <code>lib/gcc-lib/</code> instead.
+ </p>
<p>You can check the status of the build without installing it using
<pre>
make check</pre>
@@ -254,7 +266,7 @@
<li>GNU ld (default on Linux):<code> -Wl,--rpath,<em>destdir</em>/lib</code>
<li>IRIX ld:<code> -Wl,-rpath,<em>destdir</em>/lib</code>
<li>Solaris ld:<code> -Wl,-R<em>destdir</em>/lib</code>
- <li>More...?
+ <li>More...? Let us know!
</ul>
</ul>
</p>
diff --git a/libstdc++-v3/libsupc++/Makefile.am b/libstdc++-v3/libsupc++/Makefile.am
index bdde27b17f3..e37613f1e8f 100644
--- a/libstdc++-v3/libsupc++/Makefile.am
+++ b/libstdc++-v3/libsupc++/Makefile.am
@@ -1,6 +1,6 @@
## Makefile for the GNU C++ Support library.
##
-## Copyright (C) 2000, 2001 Free Software Foundation, Inc.
+## Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
##
## Process this file with automake to produce Makefile.in.
##
@@ -27,6 +27,7 @@ MAINT_CHARSET = latin1
mkinstalldirs = $(SHELL) $(toplevel_srcdir)/mkinstalldirs
# Cross compiler and multilib support.
+CC = @CC@
CXX = @glibcpp_CXX@
toolexecdir = @glibcpp_toolexecdir@
toolexeclibdir = @glibcpp_toolexeclibdir@
@@ -66,10 +67,12 @@ headers = \
exception new typeinfo cxxabi.h exception_defines.h
sources = \
+ cxa_demangle.c \
del_op.cc \
del_opnt.cc \
del_opv.cc \
del_opvnt.cc \
+ dyn-string.c \
eh_alloc.cc \
eh_aux_runtime.cc \
eh_catch.cc \
@@ -97,6 +100,28 @@ glibcppinstall_HEADERS = $(headers)
LIBSUPCXX_CXXFLAGS = $(LIBSUPCXX_PICFLAGS)
+# Use special rules for pulling things out of libiberty.
+cxa_demangle.c:
+ rm -f $@
+ $(LN_S) $(toplevel_srcdir)/libiberty/cp-demangle.c $@
+cxa_demangle.lo: cxa_demangle.c
+ $(LTCOMPILE) -DIN_GLIBCPP_V3 -Wno-error -c $<
+cxa_demangle.o: cxa_demangle.c
+ $(COMPILE) -DIN_GLIBCPP_V3 -Wno-error -c $<
+dyn-string.c:
+ rm -f $@
+ $(LN_S) $(toplevel_srcdir)/libiberty/dyn-string.c $@
+dyn-string.lo: dyn-string.c
+ $(LTCOMPILE) -DIN_GLIBCPP_V3 -Wno-error -c $<
+dyn-string.o: dyn-string.c
+ $(COMPILE) -DIN_GLIBCPP_V3 -Wno-error -c $<
+
+# LTCOMPILE is copied from LTCXXCOMPILE below.
+LTCOMPILE = $(LIBTOOL) --tag CC --tag disable-shared \
+ --mode=compile $(CC) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(AM_CXXFLAGS)
+
+
# AM_CXXFLAGS needs to be in each subdirectory so that it can be
# modified in a per-library or per-sub-library way. Need to manually
# set this option because CONFIG_CXXFLAGS has to be after
diff --git a/libstdc++-v3/libsupc++/Makefile.in b/libstdc++-v3/libsupc++/Makefile.in
index fd3a50a58d0..e407bf10324 100644
--- a/libstdc++-v3/libsupc++/Makefile.in
+++ b/libstdc++-v3/libsupc++/Makefile.in
@@ -1,6 +1,6 @@
-# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
-# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -71,7 +71,6 @@ BASIC_FILE_H = @BASIC_FILE_H@
BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@
CATALOGS = @CATALOGS@
CATOBJEXT = @CATOBJEXT@
-CC = @CC@
CCODECVT_C = @CCODECVT_C@
CCODECVT_H = @CCODECVT_H@
CLOCALE_H = @CLOCALE_H@
@@ -154,6 +153,7 @@ MAINT_CHARSET = latin1
mkinstalldirs = $(SHELL) $(toplevel_srcdir)/mkinstalldirs
# Cross compiler and multilib support.
+CC = @CC@
CXX = @glibcpp_CXX@
toolexecdir = @glibcpp_toolexecdir@
toolexeclibdir = @glibcpp_toolexeclibdir@
@@ -195,10 +195,12 @@ headers = \
sources = \
+ cxa_demangle.c \
del_op.cc \
del_opnt.cc \
del_opv.cc \
del_opvnt.cc \
+ dyn-string.c \
eh_alloc.cc \
eh_aux_runtime.cc \
eh_catch.cc \
@@ -227,6 +229,12 @@ glibcppinstall_HEADERS = $(headers)
LIBSUPCXX_CXXFLAGS = $(LIBSUPCXX_PICFLAGS)
+# LTCOMPILE is copied from LTCXXCOMPILE below.
+LTCOMPILE = $(LIBTOOL) --tag CC --tag disable-shared \
+ --mode=compile $(CC) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(AM_CXXFLAGS)
+
+
# AM_CXXFLAGS needs to be in each subdirectory so that it can be
# modified in a per-library or per-sub-library way. Need to manually
# set this option because CONFIG_CXXFLAGS has to be after
@@ -287,21 +295,25 @@ LDFLAGS = @LDFLAGS@
LIBS = @LIBS@
libsupc__convenience_la_LDFLAGS =
libsupc__convenience_la_LIBADD =
-libsupc__convenience_la_OBJECTS = del_op.lo del_opnt.lo del_opv.lo \
-del_opvnt.lo eh_alloc.lo eh_aux_runtime.lo eh_catch.lo eh_exception.lo \
-eh_globals.lo eh_personality.lo eh_terminate.lo eh_throw.lo eh_type.lo \
-new_handler.lo new_op.lo new_opnt.lo new_opv.lo new_opvnt.lo pure.lo \
-tinfo.lo tinfo2.lo vec.lo
+libsupc__convenience_la_OBJECTS = cxa_demangle.lo del_op.lo del_opnt.lo \
+del_opv.lo del_opvnt.lo dyn-string.lo eh_alloc.lo eh_aux_runtime.lo \
+eh_catch.lo eh_exception.lo eh_globals.lo eh_personality.lo \
+eh_terminate.lo eh_throw.lo eh_type.lo new_handler.lo new_op.lo \
+new_opnt.lo new_opv.lo new_opvnt.lo pure.lo tinfo.lo tinfo2.lo vec.lo
libsupc___la_LDFLAGS =
libsupc___la_LIBADD =
-libsupc___la_OBJECTS = del_op.lo del_opnt.lo del_opv.lo del_opvnt.lo \
-eh_alloc.lo eh_aux_runtime.lo eh_catch.lo eh_exception.lo eh_globals.lo \
-eh_personality.lo eh_terminate.lo eh_throw.lo eh_type.lo new_handler.lo \
-new_op.lo new_opnt.lo new_opv.lo new_opvnt.lo pure.lo tinfo.lo \
-tinfo2.lo vec.lo
+libsupc___la_OBJECTS = cxa_demangle.lo del_op.lo del_opnt.lo del_opv.lo \
+del_opvnt.lo dyn-string.lo eh_alloc.lo eh_aux_runtime.lo eh_catch.lo \
+eh_exception.lo eh_globals.lo eh_personality.lo eh_terminate.lo \
+eh_throw.lo eh_type.lo new_handler.lo new_op.lo new_opnt.lo new_opv.lo \
+new_opvnt.lo pure.lo tinfo.lo tinfo2.lo vec.lo
CXXFLAGS = @CXXFLAGS@
CXXCOMPILE = $(CXX) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
CXXLD = $(CXX)
+CFLAGS = @CFLAGS@
+COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
HEADERS = $(glibcppinstall_HEADERS)
DIST_COMMON = Makefile.am Makefile.in
@@ -547,6 +559,22 @@ mostlyclean-generic distclean-generic clean-generic \
maintainer-clean-generic clean mostlyclean distclean maintainer-clean
+# Use special rules for pulling things out of libiberty.
+cxa_demangle.c:
+ rm -f $@
+ $(LN_S) $(toplevel_srcdir)/libiberty/cp-demangle.c $@
+cxa_demangle.lo: cxa_demangle.c
+ $(LTCOMPILE) -DIN_GLIBCPP_V3 -Wno-error -c $<
+cxa_demangle.o: cxa_demangle.c
+ $(COMPILE) -DIN_GLIBCPP_V3 -Wno-error -c $<
+dyn-string.c:
+ rm -f $@
+ $(LN_S) $(toplevel_srcdir)/libiberty/dyn-string.c $@
+dyn-string.lo: dyn-string.c
+ $(LTCOMPILE) -DIN_GLIBCPP_V3 -Wno-error -c $<
+dyn-string.o: dyn-string.c
+ $(COMPILE) -DIN_GLIBCPP_V3 -Wno-error -c $<
+
# We have to have rules modified from the default to counteract SUN make
# prepending each of $(glibcppinstall_HEADERS) with VPATH below.
install-glibcppinstallHEADERS: $(glibcppinstall_HEADERS)
diff --git a/libstdc++-v3/src/vterminate.cc b/libstdc++-v3/src/vterminate.cc
index 9475d1ad6fd..a3543c903c6 100644
--- a/libstdc++-v3/src/vterminate.cc
+++ b/libstdc++-v3/src/vterminate.cc
@@ -56,10 +56,8 @@ namespace __gnu_cxx
int status = -1;
char *dem = 0;
-#if 0
// Disabled until __cxa_demangle gets the runtime GPL exception.
dem = __cxa_demangle(name, 0, 0, &status);
-#endif
printf("terminate called after throwing a `%s'\n",
status == 0 ? dem : name);