mirror of
git://sourceware.org/git/glibc.git
synced 2025-03-31 14:01:18 +08:00
Update.
2000-03-29 Andreas Jaeger <aj@suse.de> * sysdeps/sparc/sparc64/dl-machine.h (elf_machine_runtime_setup): Use D_PTR to access relocated entries in l_info. (elf_machine_rela): Likewise. * sysdeps/sparc/sparc32/dl-machine.h (elf_machine_runtime_setup): Likewise. (elf_machine_rela): Likewise. * sysdeps/powerpc/dl-machine.c (__elf_machine_runtime_setup): Likewise. (__elf_machine_fixup_plt): Likewise. (__process_machine_rela): Likewise. * sysdeps/m68k/dl-machine.h (elf_machine_runtime_setup): Likewise. (elf_machine_rela): Likewise. * sysdeps/arm/dl-machine.h (elf_machine_runtime_setup): Likewise. (elf_machine_rel): Likewise. * sysdeps/alpha/dl-machine.h (elf_machine_runtime_setup): Likewise. (elf_machine_fixup_plt): Likewise. (elf_machine_rela): Likewise. 2000-03-29 Andreas Jaeger <aj@suse.de> * sysdeps/unix/sysv/linux/msgctl.c: Use shlib-compat macros. * sysdeps/unix/sysv/linux/semctl.c: Likewise. * sysdeps/unix/sysv/linux/shmctl.c: Likewise. * sysdeps/unix/sysv/linux/i386/getrlimit.c: Likewise. * sysdeps/unix/sysv/linux/i386/getrlimit64.c: Likewise. * sysdeps/unix/sysv/linux/i386/msgctl.c: Likewise. * sysdeps/unix/sysv/linux/i386/oldgetrlimit64.c: Likewise. * sysdeps/unix/sysv/linux/i386/semctl.c: Likewise. * sysdeps/unix/sysv/linux/i386/setrlimit.c: Likewise. * sysdeps/unix/sysv/linux/i386/shmctl.c: Likewise. * sysdeps/unix/sysv/linux/alpha/msgctl.c: Likewise. * sysdeps/unix/sysv/linux/alpha/semctl.c: Likewise. * sysdeps/unix/sysv/linux/alpha/shmctl.c: Likewise. * sysdeps/unix/sysv/linux/alpha/adjtime.c: Likewise. * sysdeps/unix/sysv/linux/powerpc/chown.c: Likewise. * sysdeps/unix/sysv/linux/alpha/oldglob.c: Use shlib-compat macros, remove K&R prototypes.
This commit is contained in:
parent
05c54d4c8e
commit
b86120ed68
46
ChangeLog
46
ChangeLog
@ -1,3 +1,49 @@
|
||||
2000-03-29 Andreas Jaeger <aj@suse.de>
|
||||
|
||||
* sysdeps/sparc/sparc64/dl-machine.h (elf_machine_runtime_setup):
|
||||
Use D_PTR to access relocated entries in l_info.
|
||||
(elf_machine_rela): Likewise.
|
||||
|
||||
* sysdeps/sparc/sparc32/dl-machine.h (elf_machine_runtime_setup):
|
||||
Likewise.
|
||||
(elf_machine_rela): Likewise.
|
||||
|
||||
* sysdeps/powerpc/dl-machine.c (__elf_machine_runtime_setup):
|
||||
Likewise.
|
||||
(__elf_machine_fixup_plt): Likewise.
|
||||
(__process_machine_rela): Likewise.
|
||||
|
||||
* sysdeps/m68k/dl-machine.h (elf_machine_runtime_setup): Likewise.
|
||||
(elf_machine_rela): Likewise.
|
||||
|
||||
* sysdeps/arm/dl-machine.h (elf_machine_runtime_setup): Likewise.
|
||||
(elf_machine_rel): Likewise.
|
||||
|
||||
* sysdeps/alpha/dl-machine.h (elf_machine_runtime_setup): Likewise.
|
||||
(elf_machine_fixup_plt): Likewise.
|
||||
(elf_machine_rela): Likewise.
|
||||
|
||||
2000-03-29 Andreas Jaeger <aj@suse.de>
|
||||
|
||||
* sysdeps/unix/sysv/linux/msgctl.c: Use shlib-compat macros.
|
||||
* sysdeps/unix/sysv/linux/semctl.c: Likewise.
|
||||
* sysdeps/unix/sysv/linux/shmctl.c: Likewise.
|
||||
* sysdeps/unix/sysv/linux/i386/getrlimit.c: Likewise.
|
||||
* sysdeps/unix/sysv/linux/i386/getrlimit64.c: Likewise.
|
||||
* sysdeps/unix/sysv/linux/i386/msgctl.c: Likewise.
|
||||
* sysdeps/unix/sysv/linux/i386/oldgetrlimit64.c: Likewise.
|
||||
* sysdeps/unix/sysv/linux/i386/semctl.c: Likewise.
|
||||
* sysdeps/unix/sysv/linux/i386/setrlimit.c: Likewise.
|
||||
* sysdeps/unix/sysv/linux/i386/shmctl.c: Likewise.
|
||||
* sysdeps/unix/sysv/linux/alpha/msgctl.c: Likewise.
|
||||
* sysdeps/unix/sysv/linux/alpha/semctl.c: Likewise.
|
||||
* sysdeps/unix/sysv/linux/alpha/shmctl.c: Likewise.
|
||||
* sysdeps/unix/sysv/linux/alpha/adjtime.c: Likewise.
|
||||
* sysdeps/unix/sysv/linux/powerpc/chown.c: Likewise.
|
||||
|
||||
* sysdeps/unix/sysv/linux/alpha/oldglob.c: Use shlib-compat
|
||||
macros, remove K&R prototypes.
|
||||
|
||||
2000-03-30 Ulrich Drepper <drepper@redhat.com>
|
||||
|
||||
* posix/getopt.c (_getopt_internal): Return -1 if argc < 1.
|
||||
|
@ -97,7 +97,7 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile)
|
||||
/* The GOT entries for the functions in the PLT have not been
|
||||
filled in yet. Their initial contents are directed to the
|
||||
PLT which arranges for the dynamic linker to be called. */
|
||||
plt = l->l_info[DT_PLTGOT]->d_un.d_ptr;
|
||||
plt = D_PTR (l, l_info[DT_PLTGOT]);
|
||||
|
||||
/* This function will be called to perform the relocation. */
|
||||
if (!profile)
|
||||
@ -349,8 +349,8 @@ elf_machine_fixup_plt(struct link_map *l, const Elf64_Rela *reloc,
|
||||
|
||||
/* Recover the PLT entry address by calculating reloc's index into the
|
||||
.rela.plt, and finding that entry in the .plt. */
|
||||
rela_plt = (void *) l->l_info[DT_JMPREL]->d_un.d_ptr;
|
||||
plte = (void *) (l->l_info[DT_PLTGOT]->d_un.d_ptr + 32);
|
||||
rela_plt = (void *) D_PTR (l, l_info[DT_JMPREL]);
|
||||
plte = (void *) (D_PTR (l, [DT_PLTGOT]) + 32);
|
||||
plte += 3 * (reloc - rela_plt);
|
||||
|
||||
/* Find the displacement from the plt entry to the function. */
|
||||
@ -480,7 +480,7 @@ elf_machine_rela (struct link_map *map,
|
||||
than the dynamic linker's built-in definitions used
|
||||
while loading those libraries. */
|
||||
const Elf64_Sym *const dlsymtab
|
||||
= (void *) map->l_info[DT_SYMTAB]->d_un.d_ptr;
|
||||
= (void *) D_PTR (map, l_info[DT_SYMTAB]);
|
||||
sym_value -= map->l_addr;
|
||||
sym_value -= dlsymtab[ELF64_R_SYM(reloc->r_info)].st_value;
|
||||
sym_value -= reloc->r_addend;
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* Machine-dependent ELF dynamic relocation inline functions. ARM version.
|
||||
Copyright (C) 1995, 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
|
||||
Copyright (C) 1995,96,97,98,99,2000 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
|
||||
@ -97,7 +97,7 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile)
|
||||
in. Their initial contents will arrange when called to push an
|
||||
index into the .got section, load ip with &_GLOBAL_OFFSET_TABLE_[3],
|
||||
and then jump to _GLOBAL_OFFSET_TABLE[2]. */
|
||||
got = (Elf32_Addr *) l->l_info[DT_PLTGOT]->d_un.d_ptr;
|
||||
got = (Elf32_Addr *) D_PTR (l, l_info[DT_PLTGOT]);
|
||||
got[1] = (Elf32_Addr) l; /* Identify this shared object. */
|
||||
|
||||
/* The got[2] entry contains the address of a function which gets
|
||||
@ -413,7 +413,7 @@ elf_machine_rel (struct link_map *map, const Elf32_Rel *reloc,
|
||||
{
|
||||
const char *strtab;
|
||||
|
||||
strtab = (const void *) map->l_info[DT_STRTAB]->d_un.d_ptr;
|
||||
strtab = (const void *) D_PTR (map, l_info[DT_STRTAB]);
|
||||
_dl_sysdep_error (_dl_argv[0] ?: "<program name unknown>",
|
||||
": Symbol `", strtab + refsym->st_name,
|
||||
"' has different size in shared object, "
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* Machine-dependent ELF dynamic relocation inline functions. m68k version.
|
||||
Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
|
||||
Copyright (C) 1996, 1997, 1998, 1999, 2000 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
|
||||
@ -78,7 +78,7 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile)
|
||||
to push an offset into the .rela.plt section, push
|
||||
_GLOBAL_OFFSET_TABLE_[1], and then jump to
|
||||
_GLOBAL_OFFSET_TABLE_[2]. */
|
||||
got = (Elf32_Addr *) l->l_info[DT_PLTGOT]->d_un.d_ptr;
|
||||
got = (Elf32_Addr *) D_PTR (l, l_info[DT_PLTGOT]);
|
||||
got[1] = (Elf32_Addr) l; /* Identify this shared object. */
|
||||
|
||||
/* The got[2] entry contains the address of a function which gets
|
||||
@ -289,7 +289,7 @@ elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc,
|
||||
extern char **_dl_argv;
|
||||
const char *strtab;
|
||||
|
||||
strtab = (const void *) map->l_info[DT_STRTAB]->d_un.d_ptr;
|
||||
strtab = (const void *) D_PTR (map, l_info[DT_STRTAB]);
|
||||
_dl_sysdep_error (_dl_argv[0] ?: "<program name unknown>",
|
||||
": Symbol `", strtab + refsym->st_name,
|
||||
"' has different size in shared object, "
|
||||
|
@ -203,7 +203,7 @@ __elf_machine_runtime_setup (struct link_map *map, int lazy, int profile)
|
||||
if (map->l_info[DT_JMPREL])
|
||||
{
|
||||
Elf32_Word i;
|
||||
Elf32_Word *plt = (Elf32_Word *) map->l_info[DT_PLTGOT]->d_un.d_val;
|
||||
Elf32_Word *plt = (Elf32_Word *) D_PTR (map, l_info[DT_PLTGOT]);
|
||||
Elf32_Word num_plt_entries = (map->l_info[DT_PLTRELSZ]->d_un.d_val
|
||||
/ sizeof (Elf32_Rela));
|
||||
Elf32_Word rel_offset_words = PLT_DATA_START_WORDS (num_plt_entries);
|
||||
@ -331,7 +331,7 @@ __elf_machine_fixup_plt(struct link_map *map, const Elf32_Rela *reloc,
|
||||
|
||||
num_plt_entries = (map->l_info[DT_PLTRELSZ]->d_un.d_val
|
||||
/ sizeof(Elf32_Rela));
|
||||
plt = (Elf32_Word *) map->l_info[DT_PLTGOT]->d_un.d_val;
|
||||
plt = (Elf32_Word *) D_PTR (map, l_info[DT_PLTGOT]);
|
||||
offset = reloc_addr - plt;
|
||||
index = (offset - PLT_INITIAL_ENTRY_WORDS)/2;
|
||||
data_words = plt + PLT_DATA_START_WORDS (num_plt_entries);
|
||||
@ -444,7 +444,7 @@ __process_machine_rela (struct link_map *map,
|
||||
{
|
||||
const char *strtab;
|
||||
|
||||
strtab = (const void *) map->l_info[DT_STRTAB]->d_un.d_ptr;
|
||||
strtab = (const void *) D_PTR (map, l_info[DT_STRTAB]);
|
||||
_dl_sysdep_error (_dl_argv[0] ?: "<program name unknown>",
|
||||
": Symbol `", strtab + refsym->st_name,
|
||||
"' has different size in shared object, "
|
||||
@ -474,7 +474,7 @@ __process_machine_rela (struct link_map *map,
|
||||
Elf32_Word *plt, *data_words;
|
||||
Elf32_Word index, offset, num_plt_entries;
|
||||
|
||||
plt = (Elf32_Word *) map->l_info[DT_PLTGOT]->d_un.d_val;
|
||||
plt = (Elf32_Word *) D_PTR (map, l_info[DT_PLTGOT]);
|
||||
offset = reloc_addr - plt;
|
||||
|
||||
if (offset < PLT_DOUBLE_SIZE*2 + PLT_INITIAL_ENTRY_WORDS)
|
||||
|
@ -112,7 +112,7 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile)
|
||||
Their initial contents will arrange when called to set the high 22
|
||||
bits of %g1 with an offset into the .rela.plt section and jump to
|
||||
the beginning of the PLT. */
|
||||
plt = (Elf32_Addr *) l->l_info[DT_PLTGOT]->d_un.d_ptr;
|
||||
plt = (Elf32_Addr *) D_PTR (l, l_info[DT_PLTGOT]);
|
||||
if (! profile)
|
||||
rfunc = (Elf32_Addr) &_dl_runtime_resolve;
|
||||
else
|
||||
@ -387,7 +387,7 @@ elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc,
|
||||
extern char **_dl_argv;
|
||||
const char *strtab;
|
||||
|
||||
strtab = (const void *) map->l_info[DT_STRTAB]->d_un.d_ptr;
|
||||
strtab = (const void *) D_PTR (map, l_info[DT_STRTAB]);
|
||||
_dl_sysdep_error (_dl_argv[0] ?: "<program name unknown>",
|
||||
": Symbol `", strtab + refsym->st_name,
|
||||
"' has different size in shared object, "
|
||||
|
@ -220,7 +220,7 @@ elf_machine_rela (struct link_map *map, const Elf64_Rela *reloc,
|
||||
extern char **_dl_argv;
|
||||
const char *strtab;
|
||||
|
||||
strtab = (const void *) map->l_info[DT_STRTAB]->d_un.d_ptr;
|
||||
strtab = (const void *) D_PTR (map, l_info[DT_STRTAB]);
|
||||
_dl_sysdep_error (_dl_argv[0] ?: "<program name unknown>",
|
||||
": Symbol `", strtab + refsym->st_name,
|
||||
"' has different size in shared object, "
|
||||
@ -368,7 +368,7 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile)
|
||||
extern void _dl_runtime_profile_0 (void);
|
||||
extern void _dl_runtime_profile_1 (void);
|
||||
Elf64_Addr res0_addr, res1_addr;
|
||||
unsigned int *plt = (void *) l->l_info[DT_PLTGOT]->d_un.d_ptr;
|
||||
unsigned int *plt = (void *) D_PTR (l, l_info[DT_PLTGOT]);
|
||||
|
||||
if (! profile)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user