diff options
author | Christopher Faylor <me@cgf.cx> | 2000-07-12 04:49:07 +0000 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2000-07-12 04:49:07 +0000 |
commit | 5f9316981a7df426730026dfd0eea55303133594 (patch) | |
tree | edcc1972736b7edb2b8cddb960ef04844edab911 | |
parent | a0f7b496ad87e70720c6a1bef0e31b0524444d21 (diff) | |
download | newlib-5f9316981a7df426730026dfd0eea55303133594.zip newlib-5f9316981a7df426730026dfd0eea55303133594.tar.gz newlib-5f9316981a7df426730026dfd0eea55303133594.tar.bz2 |
* debug.cc (thread_stub): Use impure_ptr in place of reent_data.
* dll_init.cc (dll_dllcrt0): Replace erroneous use of local symbol with correct
__cygwin_user_data->impure_ptr.
-rw-r--r-- | winsup/cygwin/ChangeLog | 6 | ||||
-rw-r--r-- | winsup/cygwin/debug.cc | 2 | ||||
-rw-r--r-- | winsup/cygwin/dll_init.cc | 19 |
3 files changed, 9 insertions, 18 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 05c2223..82d8411 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,9 @@ +Wed Jul 12 00:46:00 2000 Christopher Faylor <cgf@cygnus.com> + + * debug.cc (thread_stub): Use impure_ptr in place of reent_data. + * dll_init.cc (dll_dllcrt0): Replace erroneous use of local symbol with + correct __cygwin_user_data->impure_ptr. + Wed Jul 12 00:01:03 2000 Christopher Faylor <cgf@cygnus.com> * lib/_cygwin_crt0_common.cc (_cygwin_crt0_common): Don't reset diff --git a/winsup/cygwin/debug.cc b/winsup/cygwin/debug.cc index 509f98d..23cd83c 100644 --- a/winsup/cygwin/debug.cc +++ b/winsup/cygwin/debug.cc @@ -87,7 +87,7 @@ thread_stub (VOID *arg) SIGSEGV or SIGFPE. */ init_exceptions (&except_entry); - set_reent (&reent_data); + set_reent (user_data->impure_ptr); ExitThread (threadfunc (threadarg)); } diff --git a/winsup/cygwin/dll_init.cc b/winsup/cygwin/dll_init.cc index 38867e1..0bf405f 100644 --- a/winsup/cygwin/dll_init.cc +++ b/winsup/cygwin/dll_init.cc @@ -138,8 +138,6 @@ add (HMODULE h, char *name, per_process *p, dllType type) static int initOneDll (per_process *p) { - /* global variable user_data must be initialized */ - /* FIXME: init environment (useful?) */ *(p->envptr) = *(user_data->envptr); @@ -439,26 +437,13 @@ LoadedDllIterator::~LoadedDllIterator () { } -//----------------------------------------------------------------------------- -//----------------------------------------------------------------------------- -// the extern symbols - -extern "C" -{ - /* This is an exported copy of environ which can be used by DLLs - which use cygwin.dll. */ - extern struct _reent reent_data; -}; - -extern "C" -int +extern "C" int dll_dllcrt0 (HMODULE h, per_process *p) { - struct _reent reent_data; if (p == NULL) p = &__cygwin_user_data; else - *(p->impure_ptr_ptr) = &reent_data; + *(p->impure_ptr_ptr) = __cygwin_user_data.impure_ptr; /* Partially initialize Cygwin guts for non-cygwin apps. */ if (dynamically_loaded && user_data->magic_biscuit == 0) |