diff options
-rw-r--r-- | hurd/hurdstartup.c | 12 | ||||
-rw-r--r-- | hurd/hurdstartup.h | 5 | ||||
-rw-r--r-- | sysdeps/mach/hurd/alpha/init-first.c | 8 |
3 files changed, 13 insertions, 12 deletions
diff --git a/hurd/hurdstartup.c b/hurd/hurdstartup.c index 090423a297..0c607ba3fb 100644 --- a/hurd/hurdstartup.c +++ b/hurd/hurdstartup.c @@ -1,5 +1,5 @@ /* Initial program startup for running under the GNU Hurd. - Copyright (C) 1991,92,93,94,95,96,97,98 Free Software Foundation, Inc. + Copyright (C) 1991,92,93,94,95,96,97,98,2002 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -55,7 +55,7 @@ extern void __mach_init (void); void -_hurd_startup (void **argptr, void (*main) (int *data)) +_hurd_startup (void **argptr, void (*main) (intptr_t *data)) { error_t err; mach_port_t in_bootstrap; @@ -64,7 +64,7 @@ _hurd_startup (void **argptr, void (*main) (int *data)) struct hurd_startup_data data; char **argv, **envp; int argc, envc; - int *argcptr; + intptr_t *argcptr; vm_address_t addr; /* Attempt to map page zero redzoned before we receive any RPC @@ -107,7 +107,7 @@ _hurd_startup (void **argptr, void (*main) (int *data)) Hopefully either they will be on the stack as expected, or the stack will be zeros so we don't crash. */ - argcptr = (int *) argptr; + argcptr = (intptr_t *) argptr; argc = argcptr[0]; argv = (char **) &argcptr[1]; envp = &argv[argc + 1]; @@ -129,7 +129,7 @@ _hurd_startup (void **argptr, void (*main) (int *data)) pointers and fill them in. We allocate the space for the environment pointers immediately after the argv pointers because the ELF ABI will expect it. */ - argcptr = __alloca (sizeof (int) + + argcptr = __alloca (sizeof (intptr_t) + (argc + 1 + envc + 1) * sizeof (char *) + sizeof (struct hurd_startup_data)); *argcptr = argc; @@ -163,7 +163,7 @@ _hurd_startup (void **argptr, void (*main) (int *data)) hurd_startup_data'. Move them. */ struct { - int count; + intptr_t count; char *argv[argc + 1]; char *envp[envc + 1]; struct hurd_startup_data data; diff --git a/hurd/hurdstartup.h b/hurd/hurdstartup.h index 5d40c9082b..e527668e25 100644 --- a/hurd/hurdstartup.h +++ b/hurd/hurdstartup.h @@ -1,5 +1,5 @@ /* Data from initial program startup for running under the GNU Hurd. - Copyright (C) 1995, 1997 Free Software Foundation, Inc. + Copyright (C) 1995,97,2002 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -20,6 +20,7 @@ #ifndef _HURDSTARTUP_H #define _HURDSTARTUP_H 1 +# include <stdint.h> /* Interesting data saved from the exec_startup reply. The DATA argument to *MAIN (see below) points to: @@ -57,7 +58,7 @@ struct hurd_startup_data of the entry point function that is called with the stack exactly as the exec server or kernel sets it. */ -extern void _hurd_startup (void **argptr, void (*main) (int *data)); +extern void _hurd_startup (void **argptr, void (*main) (intptr_t *data)); #endif /* hurdstartup.h */ diff --git a/sysdeps/mach/hurd/alpha/init-first.c b/sysdeps/mach/hurd/alpha/init-first.c index bb60cd07d2..e15e2cadef 100644 --- a/sysdeps/mach/hurd/alpha/init-first.c +++ b/sysdeps/mach/hurd/alpha/init-first.c @@ -89,7 +89,7 @@ static void init1 (intptr_t *data) { int argc = (intptr_t) *data; - char **argv = &data[1]; + char **argv = (char **) &data[1]; char **envp = &argv[argc + 1]; struct hurd_startup_data *d; @@ -136,7 +136,7 @@ init1 (intptr_t *data) static inline void -init (int *data) +init (intptr_t *data) { int argc = *data; char **argv = (void *) (data + 1); @@ -255,7 +255,7 @@ first_init (void) stack set up just as the user will see it, so it can switch stacks. */ void -_dl_init_first (int argc, ...) +_dl_init_first (intptr_t argc, ...) { first_init (); @@ -283,7 +283,7 @@ strong_alias (posixland_init, __libc_init_first); void -_hurd_stack_setup (volatile int argc, ...) +_hurd_stack_setup (volatile intptr_t argc, ...) { first_init (); |