* 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.
This commit is contained in:
parent
a0f7b496ad
commit
5f9316981a
@ -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>
|
Wed Jul 12 00:01:03 2000 Christopher Faylor <cgf@cygnus.com>
|
||||||
|
|
||||||
* lib/_cygwin_crt0_common.cc (_cygwin_crt0_common): Don't reset
|
* lib/_cygwin_crt0_common.cc (_cygwin_crt0_common): Don't reset
|
||||||
|
@ -87,7 +87,7 @@ thread_stub (VOID *arg)
|
|||||||
SIGSEGV or SIGFPE. */
|
SIGSEGV or SIGFPE. */
|
||||||
init_exceptions (&except_entry);
|
init_exceptions (&except_entry);
|
||||||
|
|
||||||
set_reent (&reent_data);
|
set_reent (user_data->impure_ptr);
|
||||||
ExitThread (threadfunc (threadarg));
|
ExitThread (threadfunc (threadarg));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -138,8 +138,6 @@ add (HMODULE h, char *name, per_process *p, dllType type)
|
|||||||
static int
|
static int
|
||||||
initOneDll (per_process *p)
|
initOneDll (per_process *p)
|
||||||
{
|
{
|
||||||
/* global variable user_data must be initialized */
|
|
||||||
|
|
||||||
/* FIXME: init environment (useful?) */
|
/* FIXME: init environment (useful?) */
|
||||||
*(p->envptr) = *(user_data->envptr);
|
*(p->envptr) = *(user_data->envptr);
|
||||||
|
|
||||||
@ -439,26 +437,13 @@ LoadedDllIterator::~LoadedDllIterator ()
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
extern "C" int
|
||||||
//-----------------------------------------------------------------------------
|
|
||||||
// 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
|
|
||||||
dll_dllcrt0 (HMODULE h, per_process *p)
|
dll_dllcrt0 (HMODULE h, per_process *p)
|
||||||
{
|
{
|
||||||
struct _reent reent_data;
|
|
||||||
if (p == NULL)
|
if (p == NULL)
|
||||||
p = &__cygwin_user_data;
|
p = &__cygwin_user_data;
|
||||||
else
|
else
|
||||||
*(p->impure_ptr_ptr) = &reent_data;
|
*(p->impure_ptr_ptr) = __cygwin_user_data.impure_ptr;
|
||||||
|
|
||||||
/* Partially initialize Cygwin guts for non-cygwin apps. */
|
/* Partially initialize Cygwin guts for non-cygwin apps. */
|
||||||
if (dynamically_loaded && user_data->magic_biscuit == 0)
|
if (dynamically_loaded && user_data->magic_biscuit == 0)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user