* common.din (__cxa_finalize): Export.

* dcrt0.cc (cygwin_atexit): Use d->handle with __cxa_atexit.
* dll_init.cc (dll_list::detach): Use d->handle with __cxa_finalize.
* include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Use 274 for
__cxa_finalize as well.
This commit is contained in:
Yaakov Selkowitz 2014-08-07 16:25:06 +00:00
parent 85a7b23a5c
commit f9c956a1ff
5 changed files with 14 additions and 5 deletions

View File

@ -1,3 +1,11 @@
2014-08-07 Yaakov Selkowitz <yselkowi@redhat.com>
* common.din (__cxa_finalize): Export.
* dcrt0.cc (cygwin_atexit): Use d->handle with __cxa_atexit.
* dll_init.cc (dll_list::detach): Use d->handle with __cxa_finalize.
* include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Use 274 for
__cxa_finalize as well.
2014-08-04 Anthony Heading <anthony@ajrh.net> 2014-08-04 Anthony Heading <anthony@ajrh.net>
* include/sys/file.h: Add extern "C". * include/sys/file.h: Add extern "C".

View File

@ -42,6 +42,7 @@ __assertfail NOSIGFE
__b64_ntop NOSIGFE __b64_ntop NOSIGFE
__b64_pton NOSIGFE __b64_pton NOSIGFE
__cxa_atexit SIGFE __cxa_atexit SIGFE
__cxa_finalize SIGFE
__dn_comp SIGFE __dn_comp SIGFE
__dn_expand SIGFE __dn_expand SIGFE
__dn_skipname SIGFE __dn_skipname SIGFE

View File

@ -1,7 +1,7 @@
/* dcrt0.cc -- essentially the main() for the Cygwin dll /* dcrt0.cc -- essentially the main() for the Cygwin dll
Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
2007, 2008, 2009, 2010, 2011, 2012, 2013 Red Hat, Inc. 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 Red Hat, Inc.
This file is part of Cygwin. This file is part of Cygwin.
@ -1240,7 +1240,7 @@ cygwin_atexit (void (*fn) (void))
{ {
int res; int res;
dll *d = dlls.find ((void *) _my_tls.retaddr ()); dll *d = dlls.find ((void *) _my_tls.retaddr ());
res = d ? __cxa_atexit ((void (*) (void *)) fn, NULL, d) : atexit (fn); res = d ? __cxa_atexit ((void (*) (void *)) fn, NULL, d->handle) : atexit (fn);
return res; return res;
} }

View File

@ -1,7 +1,7 @@
/* dll_init.cc /* dll_init.cc
Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
2009, 2010, 2011, 2012, 2013 Red Hat, Inc. 2009, 2010, 2011, 2012, 2013, 2014 Red Hat, Inc.
This software is a copyrighted work licensed under the terms of the This software is a copyrighted work licensed under the terms of the
Cygwin license. Please consult the file "CYGWIN_LICENSE" for Cygwin license. Please consult the file "CYGWIN_LICENSE" for
@ -401,7 +401,7 @@ dll_list::detach (void *retaddr)
exception protect; exception protect;
/* Call finalize function if we are not already exiting */ /* Call finalize function if we are not already exiting */
if (!exit_state) if (!exit_state)
__cxa_finalize (d); __cxa_finalize (d->handle);
d->run_dtors (); d->run_dtors ();
d->prev->next = d->next; d->prev->next = d->next;
if (d->next) if (d->next)

View File

@ -449,7 +449,7 @@ details. */
273: Introduce account mapping from Windows account DBs. Add CW_SETENT, 273: Introduce account mapping from Windows account DBs. Add CW_SETENT,
CW_GETENT, CW_ENDENT, CW_GETNSSSEP, CW_GETPWSID, CW_GETGRSID, CW_GETENT, CW_ENDENT, CW_GETNSSSEP, CW_GETPWSID, CW_GETGRSID,
CW_CYGNAME_FROM_WINNAME. CW_CYGNAME_FROM_WINNAME.
274: Export __cxa_atexit. 274: Export __cxa_atexit and __cxa_finalize.
*/ */
/* Note that we forgot to bump the api for ualarm, strtoll, strtoull */ /* Note that we forgot to bump the api for ualarm, strtoll, strtoull */