diff options
Diffstat (limited to 'sysdeps/hppa')
-rw-r--r-- | sysdeps/hppa/dl-machine.h | 23 |
1 files changed, 11 insertions, 12 deletions
diff --git a/sysdeps/hppa/dl-machine.h b/sysdeps/hppa/dl-machine.h index ded9c193d6..e6a4575fce 100644 --- a/sysdeps/hppa/dl-machine.h +++ b/sysdeps/hppa/dl-machine.h @@ -68,8 +68,8 @@ __hppa_init_bootstrap_fdesc_table (struct link_map *map) map->l_mach.fptr_table = boot_table; } -#define ELF_MACHINE_BEFORE_RTLD_RELOC(dynamic_info) \ - __hppa_init_bootstrap_fdesc_table (BOOTSTRAP_MAP); \ +#define ELF_MACHINE_BEFORE_RTLD_RELOC(map, dynamic_info) \ + __hppa_init_bootstrap_fdesc_table (map); \ _dl_fptr_init(); /* Return nonzero iff ELF header is compatible with the running host. */ @@ -162,7 +162,8 @@ elf_machine_plt_value (struct link_map *map, const Elf32_Rela *reloc, entries will jump to the on-demand fixup code in dl-runtime.c. */ static inline int -elf_machine_runtime_setup (struct link_map *l, int lazy, int profile) +elf_machine_runtime_setup (struct link_map *l, struct r_scope_elem *scope[], + int lazy, int profile) { Elf32_Addr *got = NULL; Elf32_Addr l_addr, iplt, jmprel, end_jmprel, r_type, r_sym; @@ -548,8 +549,8 @@ dl_platform_init (void) ( (((as14) & 0x1fff) << 1) \ | (((as14) & 0x2000) >> 13)) -auto void __attribute__((always_inline)) -elf_machine_rela (struct link_map *map, +static void __attribute__((always_inline)) +elf_machine_rela (struct link_map *map, struct r_scope_elem *scope[], const Elf32_Rela *reloc, const Elf32_Sym *sym, const struct r_found_version *version, @@ -578,11 +579,9 @@ elf_machine_rela (struct link_map *map, zeros, and an all zero Elf32_Sym has a binding of STB_LOCAL.) See RESOLVE_MAP definition in elf/dl-reloc.c */ # ifdef RTLD_BOOTSTRAP - /* RESOLVE_MAP in rtld.c doesn't have the local sym test. */ - sym_map = (ELF32_ST_BIND (sym->st_info) != STB_LOCAL - ? RESOLVE_MAP (&sym, version, r_type) : map); + sym_map = map; # else - sym_map = RESOLVE_MAP (&sym, version, r_type); + sym_map = RESOLVE_MAP (map, scope, &sym, version, r_type); # endif if (sym_map) @@ -740,7 +739,7 @@ elf_machine_rela (struct link_map *map, /* hppa doesn't have an R_PARISC_RELATIVE reloc, but uses relocs with ELF32_R_SYM (info) == 0 for a similar purpose. */ -auto void __attribute__((always_inline)) +static void __attribute__((always_inline)) elf_machine_rela_relative (Elf32_Addr l_addr, const Elf32_Rela *reloc, void *const reloc_addr_arg) @@ -793,8 +792,8 @@ elf_machine_rela_relative (Elf32_Addr l_addr, *reloc_addr = value; } -auto void __attribute__((always_inline)) -elf_machine_lazy_rel (struct link_map *map, +static void __attribute__((always_inline)) +elf_machine_lazy_rel (struct link_map *map, struct r_scope_elem *scope[], Elf32_Addr l_addr, const Elf32_Rela *reloc, int skip_ifunc) { |