atexit_arm.cc: New file.
authorMark Mitchell <mark@codesourcery.com>
Fri, 4 May 2007 17:42:49 +0000 (17:42 +0000)
committerMark Mitchell <mmitchel@gcc.gnu.org>
Fri, 4 May 2007 17:42:49 +0000 (17:42 +0000)
* libsupc++/atexit_arm.cc: New file.
* libsupc++/vec.cc (__aeabi_atexit): Remove.
* libsupc++/cxxabi.h (__cxa_atexit): Add exception specification.
* libsupc++/Makefile.am: Add atexit_arm.cc.
* libsupc++/Makefile.in: Regenerated.

From-SVN: r124436

libstdc++-v3/ChangeLog
libstdc++-v3/libsupc++/Makefile.am
libstdc++-v3/libsupc++/Makefile.in
libstdc++-v3/libsupc++/atexit_arm.cc [new file with mode: 0644]
libstdc++-v3/libsupc++/cxxabi.h
libstdc++-v3/libsupc++/vec.cc

index 0f5b58b2afbcb52c425f46b874be7be8cd878042..a1e6e306cdb350f0d1b18bc3b501b5ae9ec37832 100644 (file)
@@ -1,3 +1,11 @@
+2007-05-04  Mark Mitchell  <mark@codesourcery.com>
+
+       * libsupc++/atexit_arm.cc: New file.
+       * libsupc++/vec.cc (__aeabi_atexit): Remove.
+       * libsupc++/cxxabi.h (__cxa_atexit): Add exception specification.
+       * libsupc++/Makefile.am: Add atexit_arm.cc.
+       * libsupc++/Makefile.in: Regenerated.
+
 2007-05-04  Paolo Carlini  <pcarlini@suse.de>
 
        * include/bits/stl_construct.h (_Destroy(_ForwardIterator,
index a30115e871317f7d15ef1181cb0b43ce028c815b..7bc48b7c9b4bf4e49be41cb1388ee2ae5b67e618 100644 (file)
@@ -42,6 +42,7 @@ endif
 
 sources = \
        array_type_info.cc \
+       atexit_arm.cc \
        bad_cast.cc \
        bad_typeid.cc \
        class_type_info.cc \
index 8a27bec7a4f5ff64835cac927175ec8579678bda..686312714030e1db271fa71089610e6fe2f93fcd 100644 (file)
@@ -69,21 +69,21 @@ am__installdirs = "$(DESTDIR)$(toolexeclibdir)" \
 toolexeclibLTLIBRARIES_INSTALL = $(INSTALL)
 LTLIBRARIES = $(noinst_LTLIBRARIES) $(toolexeclib_LTLIBRARIES)
 libsupc___la_LIBADD =
-am__libsupc___la_SOURCES_DIST = array_type_info.cc bad_cast.cc \
-       bad_typeid.cc class_type_info.cc del_op.cc del_opnt.cc \
-       del_opv.cc del_opvnt.cc dyncast.cc eh_alloc.cc eh_arm.cc \
-       eh_aux_runtime.cc eh_call.cc eh_catch.cc eh_exception.cc \
-       eh_globals.cc eh_personality.cc eh_term_handler.cc \
-       eh_terminate.cc eh_throw.cc eh_type.cc eh_unex_handler.cc \
-       enum_type_info.cc function_type_info.cc \
+am__libsupc___la_SOURCES_DIST = array_type_info.cc atexit_arm.cc \
+       bad_cast.cc bad_typeid.cc class_type_info.cc del_op.cc \
+       del_opnt.cc del_opv.cc del_opvnt.cc dyncast.cc eh_alloc.cc \
+       eh_arm.cc eh_aux_runtime.cc eh_call.cc eh_catch.cc \
+       eh_exception.cc eh_globals.cc eh_personality.cc \
+       eh_term_handler.cc eh_terminate.cc eh_throw.cc eh_type.cc \
+       eh_unex_handler.cc enum_type_info.cc function_type_info.cc \
        fundamental_type_info.cc guard.cc new_handler.cc new_op.cc \
        new_opnt.cc new_opv.cc new_opvnt.cc pbase_type_info.cc \
        pmem_type_info.cc pointer_type_info.cc pure.cc \
        si_class_type_info.cc tinfo.cc tinfo2.cc vec.cc \
        vmi_class_type_info.cc vterminate.cc cp-demangle.c
-am__objects_1 = array_type_info.lo bad_cast.lo bad_typeid.lo \
-       class_type_info.lo del_op.lo del_opnt.lo del_opv.lo \
-       del_opvnt.lo dyncast.lo eh_alloc.lo eh_arm.lo \
+am__objects_1 = array_type_info.lo atexit_arm.lo bad_cast.lo \
+       bad_typeid.lo class_type_info.lo del_op.lo del_opnt.lo \
+       del_opv.lo del_opvnt.lo dyncast.lo eh_alloc.lo eh_arm.lo \
        eh_aux_runtime.lo eh_call.lo eh_catch.lo eh_exception.lo \
        eh_globals.lo eh_personality.lo eh_term_handler.lo \
        eh_terminate.lo eh_throw.lo eh_type.lo eh_unex_handler.lo \
@@ -98,9 +98,9 @@ am_libsupc___la_OBJECTS = $(am__objects_1) $(am__objects_2)
 libsupc___la_OBJECTS = $(am_libsupc___la_OBJECTS)
 libsupc__convenience_la_LIBADD =
 am__libsupc__convenience_la_SOURCES_DIST = array_type_info.cc \
-       bad_cast.cc bad_typeid.cc class_type_info.cc del_op.cc \
-       del_opnt.cc del_opv.cc del_opvnt.cc dyncast.cc eh_alloc.cc \
-       eh_arm.cc eh_aux_runtime.cc eh_call.cc eh_catch.cc \
+       atexit_arm.cc bad_cast.cc bad_typeid.cc class_type_info.cc \
+       del_op.cc del_opnt.cc del_opv.cc del_opvnt.cc dyncast.cc \
+       eh_alloc.cc eh_arm.cc eh_aux_runtime.cc eh_call.cc eh_catch.cc \
        eh_exception.cc eh_globals.cc eh_personality.cc \
        eh_term_handler.cc eh_terminate.cc eh_throw.cc eh_type.cc \
        eh_unex_handler.cc enum_type_info.cc function_type_info.cc \
@@ -342,6 +342,7 @@ headers = \
 
 sources = \
        array_type_info.cc \
+       atexit_arm.cc \
        bad_cast.cc \
        bad_typeid.cc \
        class_type_info.cc \
diff --git a/libstdc++-v3/libsupc++/atexit_arm.cc b/libstdc++-v3/libsupc++/atexit_arm.cc
new file mode 100644 (file)
index 0000000..fe2143b
--- /dev/null
@@ -0,0 +1,44 @@
+// Copyright (C) 2007 Free Software Foundation, Inc.
+//  
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// GCC is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with GCC; see the file COPYING.  If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA. 
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#include <cxxabi.h>
+
+#if defined(__arm__) && defined(__ARM_EABI__)
+
+namespace __aeabiv1
+{
+  extern "C" int
+  __aeabi_atexit (void *object, 
+                 void (*destructor) (void *),
+                 void *dso_handle) throw ()
+  {
+    return abi::__cxa_atexit(destructor, object, dso_handle);
+  }
+} // namespace __aeabiv1
+
+#endif // defined(__arm__) && defined(__ARM_EABI__)
index c0418d825888f49f31a6a157852b439a17235824..fb082d32ac2d8809c22f8592f165f05af9c6f62e 100644 (file)
@@ -136,7 +136,7 @@ namespace __cxxabiv1
 
   // DSO destruction.
   int
-  __cxa_atexit(void (*)(void*), void*, void*);
+  __cxa_atexit(void (*)(void*), void*, void*) throw ();
 
   int
   __cxa_finalize(void*);
index 08a710718b09e657669a3def793b62c2aab2ef0e..67caec866274ebcde5ff53a6509d0243fbefc3c1 100644 (file)
@@ -499,14 +499,6 @@ namespace __aeabiv1
                            2 * sizeof (std::size_t),
                            /*destructor=*/NULL, dealloc);
   }
-  
-  extern "C" int
-  __aeabi_atexit (void *object, 
-                 void (*destructor) (void *),
-                 void *dso_handle)
-  {
-    return abi::__cxa_atexit(destructor, object, dso_handle);
-  }
 } // namespace __aeabiv1
 
 #endif // defined(__arm__) && defined(__ARM_EABI__)