From: Mark Kettenis Date: Mon, 20 Aug 2001 21:44:01 +0000 (+0000) Subject: * sysdeps/mach/hurd/i386/init-first.c (init): Initialize __environ before calling... X-Git-Tag: upstream/2.30~22610 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=16195d2026aac75c590699400b602581e977d0f6;p=external%2Fglibc.git * sysdeps/mach/hurd/i386/init-first.c (init): Initialize __environ before calling the cthreads initialization code. 2001-08-18 Mark Kettenis * sysdeps/mach/hurd/i386/init-first.c (init): Initialize __environ before calling the cthreads initialization code. --- diff --git a/ChangeLog b/ChangeLog index 9a0e538..bf801e2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2001-08-18 Mark Kettenis + + * sysdeps/mach/hurd/i386/init-first.c (init): Initialize __environ + before calling the cthreads initialization code. + 2001-08-20 Ulrich Drepper * argp/argp-help.c: Fix two problems introduced in last change. diff --git a/sysdeps/mach/hurd/i386/init-first.c b/sysdeps/mach/hurd/i386/init-first.c index 15c9dea..a50e418 100644 --- a/sysdeps/mach/hurd/i386/init-first.c +++ b/sysdeps/mach/hurd/i386/init-first.c @@ -132,12 +132,20 @@ init (int *data) struct hurd_startup_data *d; unsigned long int threadvars[_HURD_THREADVAR_MAX]; - /* Provide temporary storage for thread-specific variables on the startup - stack so the cthreads initialization code can use them for malloc et al, - or so we can use malloc below for the real threadvars array. */ + /* Provide temporary storage for thread-specific variables on the + startup stack so the cthreads initialization code can use them + for malloc et al, or so we can use malloc below for the real + threadvars array. */ memset (threadvars, 0, sizeof threadvars); __hurd_threadvar_stack_offset = (unsigned long int) threadvars; + /* Since the cthreads initialization code uses malloc, and the + malloc initialization code needs to get at the environment, make + sure we can find it. We'll need to do this again later on since + switching stacks changes the location where the environment is + stored. */ + __environ = envp; + while (*envp) ++envp; d = (void *) ++envp;