From owner-freebsd-standards@FreeBSD.ORG Fri Dec 12 10:53:00 2003 Return-Path: Delivered-To: freebsd-standards@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id E16BC16A4CF; Fri, 12 Dec 2003 10:53:00 -0800 (PST) Received: from mailout01.sul.t-online.com (mailout01.sul.t-online.com [194.25.134.80]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4868543D31; Fri, 12 Dec 2003 10:52:58 -0800 (PST) (envelope-from Alexander@Leidinger.net) Received: from fwd01.aul.t-online.de by mailout01.sul.t-online.com with smtp id 1AUsPJ-00089W-03; Fri, 12 Dec 2003 19:52:57 +0100 Received: from Andro-Beta.Leidinger.net (rfv9UkZUreQDcT3uchpQ7rcvUZ1oSu02TMQideRshF5bC80NyaTMwL@[217.229.217.137]) by fmrl01.sul.t-online.com with esmtp id 1AUsP0-037aQi0; Fri, 12 Dec 2003 19:52:38 +0100 Received: from Magellan.Leidinger.net (Magellan.Leidinger.net [192.168.1.1]) hBCIqmYh052495; Fri, 12 Dec 2003 19:52:49 +0100 (CET) (envelope-from Alexander@Leidinger.net) Received: from Magellan.Leidinger.net (netchild@localhost [127.0.0.1]) hBCIqlx7093521; Fri, 12 Dec 2003 19:52:47 +0100 (CET) (envelope-from Alexander@Leidinger.net) Date: Fri, 12 Dec 2003 19:52:47 +0100 From: Alexander Leidinger To: arch@freebsd.org Message-Id: <20031212195247.4ff07669.Alexander@Leidinger.net> X-Mailer: Sylpheed version 0.9.6claws (GTK+ 1.2.10; i386-portbld-freebsd5.1) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Seen: false X-ID: rfv9UkZUreQDcT3uchpQ7rcvUZ1oSu02TMQideRshF5bC80NyaTMwL@t-dialin.net cc: bhughes@trolltech.com cc: freebsd-standards@FreeBSD.org Subject: Patch to support the C++ DSO Object Destruction API (PR 59552) X-BeenThere: freebsd-standards@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Standards compliance List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Dec 2003 18:53:01 -0000 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