* sysdeps/mach/hurd/i386/init-first.c (init): Initialize __environ before calling the cthreads initialization code.

2001-08-18  Mark Kettenis  <kettenis@gnu.org>

	* sysdeps/mach/hurd/i386/init-first.c (init): Initialize __environ
	before calling the cthreads initialization code.
This commit is contained in:
Mark Kettenis 2001-08-20 21:44:01 +00:00
parent 29f0517d46
commit 16195d2026
2 changed files with 16 additions and 3 deletions

View File

@ -1,3 +1,8 @@
2001-08-18 Mark Kettenis <kettenis@gnu.org>
* sysdeps/mach/hurd/i386/init-first.c (init): Initialize __environ
before calling the cthreads initialization code.
2001-08-20 Ulrich Drepper <drepper@redhat.com>
* argp/argp-help.c: Fix two problems introduced in last change.

View File

@ -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;