OSDN Git Service

2002-04-01 Phil Edwards <pme@gcc.gnu.org>
authorpme <pme@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 1 Apr 2002 21:56:42 +0000 (21:56 +0000)
committerpme <pme@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 1 Apr 2002 21:56:42 +0000 (21:56 +0000)
* 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: svn+ssh://gcc.gnu.org/svn/gcc/trunk@51709 138bc75d-0d04-0410-961f-82ee72b054a4

libstdc++-v3/ChangeLog
libstdc++-v3/config/linker-map.gnu
libstdc++-v3/docs/html/19_diagnostics/howto.html
libstdc++-v3/docs/html/install.html
libstdc++-v3/libsupc++/Makefile.am
libstdc++-v3/libsupc++/Makefile.in
libstdc++-v3/src/vterminate.cc

index c6af9ec..ec0c588 100644 (file)
@@ -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
index 240ca01..7e0c867 100644 (file)
@@ -100,6 +100,9 @@ CXXABI_1 {
     __gxx_personality_v0;
     __dynamic_cast;
 
+    # __gnu_cxx::_verbose_terminate_handler()
+    _ZN9__gnu_cxx27__verbose_terminate_handlerEv;
+
   local:
     *;
 };
index 1253244..3d8bf6f 100644 (file)
 
    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.
 
    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
index 38d1c1d..dce85f0 100644 (file)
       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:
 <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
       <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>
   <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>
index bdde27b..e37613f 100644 (file)
@@ -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
index fd3a50a..e407bf1 100644 (file)
@@ -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)
index 9475d1a..a3543c9 100644 (file)
@@ -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);