mirror of
https://sourceware.org/git/glibc.git
synced 2025-12-24 17:51:17 +03:00
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.
This commit is contained in:
@@ -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, ...)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user