Typo in ABI document
Mark Mitchell
mark at codesourcery.com
Thu Apr 11 18:50:51 UTC 2002
I believe that there is a typo in 3.3.5.3, which says:
When linking any DSO containing a call to __cxa_atexit, the linker should
define a hidden symbol __dso_handle, with a value which is an address in
one of the object's segments. (It does not matter what address, as long
as
they are different in different DSOs.) It should also include a call to
the following function in the FINI list (to be executed first):
extern "C" void __cxa_finalize ( dso_handle d );
The parameter passed should be &__dso_handle.
The last line should read "The parameter passed should be __dso_handle."
This is what G++ does, and it is what makes sense: the value of
__dso_handle is NULL in the main object and is the address of some
object in the DSO otherwise. Passing the address of __dso_handle is
weird; then the runtime would have to dereference the pointer to
get the real value.
I will make this change in a week or so if there is no objection.
--
Mark Mitchell mark at codesourcery.com
CodeSourcery, LLC http://www.codesourcery.com
More information about the cxx-abi-dev
mailing list