* 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
+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,
sources = \
array_type_info.cc \
+ atexit_arm.cc \
bad_cast.cc \
bad_typeid.cc \
class_type_info.cc \
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 \
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 \
sources = \
array_type_info.cc \
+ atexit_arm.cc \
bad_cast.cc \
bad_typeid.cc \
class_type_info.cc \
--- /dev/null
+// 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__)
// DSO destruction.
int
- __cxa_atexit(void (*)(void*), void*, void*);
+ __cxa_atexit(void (*)(void*), void*, void*) throw ();
int
__cxa_finalize(void*);
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__)