atexit_arm.cc: New file.

* 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
This commit is contained in:
Mark Mitchell 2007-05-04 17:42:49 +00:00 committed by Mark Mitchell
parent 2420cc4d11
commit aa2bd2db03
6 changed files with 68 additions and 22 deletions

View 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,

View File

@ -42,6 +42,7 @@ endif
sources = \
array_type_info.cc \
atexit_arm.cc \
bad_cast.cc \
bad_typeid.cc \
class_type_info.cc \

View 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 \

View File

@ -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__)

View 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*);

View 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__)