From 16195d2026aac75c590699400b602581e977d0f6 Mon Sep 17 00:00:00 2001 From: Mark Kettenis Date: Mon, 20 Aug 2001 21:44:01 +0000 Subject: [PATCH] * 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. --- ChangeLog | 5 +++++ sysdeps/mach/hurd/i386/init-first.c | 14 +++++++++++--- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 9a0e538d03..bf801e215f 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 15c9deab55..a50e41892a 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; -- 2.43.5