summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2000-03-31 05:16:38 +0000
committerUlrich Drepper <drepper@redhat.com>2000-03-31 05:16:38 +0000
commitb86120ed685c140c3d19386d463d6efba436ab92 (patch)
treec5256a466929fb6063a33575164ca188c5aded9c
parent05c54d4c8e2e81c08a0fa220b299dade7c9a622e (diff)
downloadglibc-b86120ed685c140c3d19386d463d6efba436ab92.tar.gz
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.
-rw-r--r--ChangeLog46
-rw-r--r--sysdeps/alpha/dl-machine.h8
-rw-r--r--sysdeps/arm/dl-machine.h6
-rw-r--r--sysdeps/m68k/dl-machine.h6
-rw-r--r--sysdeps/powerpc/dl-machine.c8
-rw-r--r--sysdeps/sparc/sparc32/dl-machine.h4
-rw-r--r--sysdeps/sparc/sparc64/dl-machine.h4
7 files changed, 64 insertions, 18 deletions
diff --git a/ChangeLog b/ChangeLog
index 60bb8e10a0..0d63eb53f0 100644
--- a/ChangeLog
+++ b/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.
diff --git a/sysdeps/alpha/dl-machine.h b/sysdeps/alpha/dl-machine.h
index d0b5c485ea..ad79ef669c 100644
--- a/sysdeps/alpha/dl-machine.h
+++ b/sysdeps/alpha/dl-machine.h
@@ -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;
diff --git a/sysdeps/arm/dl-machine.h b/sysdeps/arm/dl-machine.h
index 78341fc49a..d95cb67f90 100644
--- a/sysdeps/arm/dl-machine.h
+++ b/sysdeps/arm/dl-machine.h
@@ -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, "
diff --git a/sysdeps/m68k/dl-machine.h b/sysdeps/m68k/dl-machine.h
index e3ebca5a9d..7a5dd351e6 100644
--- a/sysdeps/m68k/dl-machine.h
+++ b/sysdeps/m68k/dl-machine.h
@@ -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, "
diff --git a/sysdeps/powerpc/dl-machine.c b/sysdeps/powerpc/dl-machine.c
index fa1895bb35..82895d8b68 100644
--- a/sysdeps/powerpc/dl-machine.c
+++ b/sysdeps/powerpc/dl-machine.c
@@ -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)
diff --git a/sysdeps/sparc/sparc32/dl-machine.h b/sysdeps/sparc/sparc32/dl-machine.h
index b5bbec48c3..0b98002593 100644
--- a/sysdeps/sparc/sparc32/dl-machine.h
+++ b/sysdeps/sparc/sparc32/dl-machine.h
@@ -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, "
diff --git a/sysdeps/sparc/sparc64/dl-machine.h b/sysdeps/sparc/sparc64/dl-machine.h
index f982e88a60..1c02252d53 100644
--- a/sysdeps/sparc/sparc64/dl-machine.h
+++ b/sysdeps/sparc/sparc64/dl-machine.h
@@ -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)
{