* dcrt0.cc (__cygwin_user_data): Initialize.
(dll_crt0_1): Eliminate user_data initialization. (dll_crt0): Set up impure_ptr_ptr for older executables. (cygwin_dll_init): Eliminate user_data initializations. (__api_fatal): Don't check for user_data initialization. * dll_init.cc (struct dll): Store entire contents of per_process rather than just a pointer. (add): Ditto. (initOneDll): Don't check for user_data initialization. (DllList::recordDll): Store contents of per_process argument. (DllList::detachDll): Pass address of per_process field. (DllList::initAll): Ditto. (DllList::doGlobalDestructorsOfDlls): Ditto. (DllListIterator::operator *): Ditto. (dll_dllcrt0): Default to __cygwin_user_data if arg is NULL. * include/sys/cygwin.h: Reorganize per_process to eliminate obsolete fields and accomodate new way of initializing. * lib/_cygwin_crt0_common: Initialize _impure_ptr from __cygwin_user_data.impure_ptr.
This commit is contained in:
@@ -48,7 +48,7 @@ _cygwin_crt0_common (MainFunc f)
|
||||
__cygwin_user_data.ctors = &__CTOR_LIST__;
|
||||
__cygwin_user_data.dtors = &__DTOR_LIST__;
|
||||
__cygwin_user_data.envptr = &environ;
|
||||
__cygwin_user_data.impure_ptr_ptr = &_impure_ptr;
|
||||
_impure_ptr = __cygwin_user_data.impure_ptr;
|
||||
__cygwin_user_data.main = f;
|
||||
__cygwin_user_data.premain[0] = cygwin_premain0;
|
||||
__cygwin_user_data.premain[1] = cygwin_premain1;
|
||||
|
Reference in New Issue
Block a user