2002-08-29 Roland McGrath <roland@redhat.com>
authorroland <roland>
Fri, 30 Aug 2002 01:50:09 +0000 (01:50 +0000)
committerroland <roland>
Fri, 30 Aug 2002 01:50:09 +0000 (01:50 +0000)
* sysdeps/mach/hurd/i386/init-first.c (_hurd_stack_setup: doinit):
Change argument type from int to intptr_t.
* locale/global-locale.c (__libc_tsd_LOCALE_data): Conditionalize the
initializer on [! _HURD_THREADVAR_H] (bad kludge).
* sysdeps/mach/hurd/i386/init-first.c (init): Initialize
_HURD_THREADVAR_LOCALE slot to &_nl_global_locale.
* hurd/hurdsig.c (_hurdsig_init): Likewise.  Zero other slots.

sysdeps/mach/hurd/i386/init-first.c

index 787a750..47edae5 100644 (file)
@@ -26,6 +26,7 @@
 #include <set-hooks.h>
 #include "hurdstartup.h"
 #include "hurdmalloc.h"                /* XXX */
+#include "../locale/localeinfo.h"
 
 extern void __mach_init (void);
 extern void __libc_init (int, char **, char **);
@@ -145,6 +146,7 @@ init (int *data)
      for malloc et al, or so we can use malloc below for the real
      threadvars array.  */
   memset (threadvars, 0, sizeof threadvars);
+  threadvars[_HURD_THREADVAR_LOCALE] = (unsigned long int) &_nl_global_locale;
   __hurd_threadvar_stack_offset = (unsigned long int) threadvars;
 
   /* Since the cthreads initialization code uses malloc, and the
@@ -319,7 +321,7 @@ strong_alias (posixland_init, __libc_init_first);
 void
 _hurd_stack_setup (volatile int argc, ...)
 {
-  void doinit (int *data)
+  void doinit (intptr_t *data)
     {
       /* This function gets called with the argument data at TOS.  */
       void doinit1 (volatile int argc, ...)