From 8d6468d0c8aa55b319ba70a83d3b092c292ef0b1 Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Wed, 12 Jun 1996 01:54:21 +0000 Subject: Tue Jun 11 19:13:04 1996 Richard Henderson * elf/dl-close.c: Include for memcpy. * elf/dl-lookup.c: Same. * elf/elf.h: Add Elfxx_Symndx for symbol indices. * elf/dl-lookup.c (_dl_lookup_symbol): Use it. (_dl_setup_hash): Use it. * elf/link.h (struct link_map): Use it. * elf/rtld.c (_dl_start): Don't rely on pointer-to-first-arg hack for getting the argc/argv/envp block. Instead, make it the argument. sysdeps/i386/dl-machine.h (RTLD_START): Do that. sysdeps/m68k/dl-machine.h (RTLD_START): Same. * shlib-versions: Add version numbers for alpha-linux. To avoid user confusion, make them the same as i386-linux. * sysdeps/alpha/Makefile [subdir elf]: Add -mno-fp-regs to sysdep-CFLAGS so that _dl_runtime_resolve doesn't have to save them. Add -mbuild-constants to CFLAGS-rtld.c to that we can bootstrap without using literal data. * sysdeps/generic/dl-sysdep.c: Include for memcpy. Finish Elf32 -> ElfW migration. --- sysdeps/generic/dl-sysdep.c | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) (limited to 'sysdeps/generic/dl-sysdep.c') diff --git a/sysdeps/generic/dl-sysdep.c b/sysdeps/generic/dl-sysdep.c index 41d9cc98f9..9fab0f0922 100644 --- a/sysdeps/generic/dl-sysdep.c +++ b/sysdeps/generic/dl-sysdep.c @@ -22,6 +22,9 @@ Cambridge, MA 02139, USA. */ #include #include #include +#include +#include + extern int _dl_argc; extern char **_dl_argv; @@ -29,21 +32,21 @@ extern char **_environ; extern void _start (void); extern int _dl_secure; -Elf32_Addr +ElfW(Addr) _dl_sysdep_start (void **start_argptr, - void (*dl_main) (const Elf32_Phdr *phdr, Elf32_Word phnum, - Elf32_Addr *user_entry)) + void (*dl_main) (const ElfW(Phdr) *phdr, ElfW(Word) phnum, + ElfW(Addr) *user_entry)) { - const Elf32_Phdr *phdr; - Elf32_Word phnum; - Elf32_Addr user_entry; - Elf32_auxv_t *av; + const ElfW(Phdr) *phdr; + ElfW(Word) phnum; + ElfW(Addr) user_entry; + ElfW(auxv_t) *av; uid_t uid, euid; gid_t gid, egid; unsigned int seen; - user_entry = (Elf32_Addr) &_start; - _dl_argc = *(int *) start_argptr; + user_entry = (ElfW(Addr)) &_start; + _dl_argc = *(long *) start_argptr; _dl_argv = (char **) start_argptr + 1; _environ = &_dl_argv[_dl_argc + 1]; start_argptr = (void **) _environ; @@ -112,8 +115,6 @@ _dl_sysdep_open_zero_fill (void) return __open ("/dev/zero", O_RDONLY); } -#include - void _dl_sysdep_fatal (const char *msg, ...) { -- cgit 1.4.1