summaryrefslogtreecommitdiff
path: root/sysdeps/generic/dl-sysdep.c
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>1996-06-12 01:54:21 +0000
committerRoland McGrath <roland@gnu.org>1996-06-12 01:54:21 +0000
commit8d6468d0c8aa55b319ba70a83d3b092c292ef0b1 (patch)
treea1365de43a753ca0fbd6aeddb2adf1260816f31c /sysdeps/generic/dl-sysdep.c
parent6e86a7c21b25f271304238a0cff0dd638343a5c2 (diff)
Tue Jun 11 19:13:04 1996 Richard Henderson <rth@tamu.edu>
* elf/dl-close.c: Include <string.h> 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 <string.h> for memcpy. Finish Elf32 -> ElfW migration.
Diffstat (limited to 'sysdeps/generic/dl-sysdep.c')
-rw-r--r--sysdeps/generic/dl-sysdep.c23
1 files changed, 12 insertions, 11 deletions
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 <fcntl.h>
#include <link.h>
#include <unistd.h>
+#include <stdarg.h>
+#include <string.h>
+
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 <stdarg.h>
-
void
_dl_sysdep_fatal (const char *msg, ...)
{