Patch to support the C++ DSO Object Destruction API (PR 59552)
Alexander Leidinger
Alexander at Leidinger.net
Fri Dec 12 10:53:01 PST 2003
Hi,
can someone please look at PR 59552 (author CCed)? I quote the
description of the PR here:
---snip---
Below is a test-case and patch to support the cross-vendor C++ DSO
Object Destruction API used by GCC 3.x and the Intel C/C++ compilers,
defined at http://www.codesourcery.com/cxx-abi/abi.html#dso-dtor
Here is a quote from the web-page, describing the motivation/rationale
behind this API:
The C++ Standard requires that destructors be called for
global objects when a program exits in the opposite order of
construction. Most implementations have handled this by
calling the C library atexit(3) routine to register the
destructors. This is problematic because the 1999 C Standard
only requires that the implementation support 32 register
function, although most implementations support many more.
More important, it does not deal at all with the ability in
most implementations to remove DSOs (dynamic shared objects)
from a running program image by calling dlclose(3) prior to
program termination.
The API specified below is intended to provide
standard-conforming treatment during normal program exit,
which includes executing atexit(3)-registered functions in the
correct sequence relative to constructor-registered
destructors, and reasonable treatment during early DSO unload
(e.g. dlclose(3)).
---snip---
I don't know which list is more appropriate, so please decide on your
own (I'm not subscribed to the standards list, so please CC me if you
follow up to it only).
I haven't tested it yet, but I will test it with icc as soon as I get
time.
Bye,
Alexander.
--
http://www.Leidinger.net Alexander @ Leidinger.net
GPG fingerprint = C518 BC70 E67F 143F BE91 3365 79E2 9C60 B006 3FE7
More information about the freebsd-standards
mailing list