From: Shu-Chun Weng Date: Fri, 19 Apr 2019 21:50:50 +0000 (-0700) Subject: Makes it compile for AArch64 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=e1c6d2b0f4f3b934346856efa1ba0aecfb5c5e36;p=thirdparty%2Fglibc.git Makes it compile for AArch64 De-nesting fix in 83c02e85 changed function signature but AArch64 was untested. --- diff --git a/sysdeps/aarch64/dl-machine.h b/sysdeps/aarch64/dl-machine.h index 7ce3c8eb8bd..db673013330 100644 --- a/sysdeps/aarch64/dl-machine.h +++ b/sysdeps/aarch64/dl-machine.h @@ -241,7 +241,11 @@ auto inline void __attribute__ ((always_inline)) elf_machine_rela (struct link_map *map, const ElfW(Rela) *reloc, const ElfW(Sym) *sym, const struct r_found_version *version, - void *const reloc_addr_arg, int skip_ifunc) + void *const reloc_addr_arg, int skip_ifunc +#ifndef NESTING + , struct link_map *boot_map +#endif + ) { ElfW(Addr) *const reloc_addr = reloc_addr_arg; const unsigned int r_type = ELFW (R_TYPE) (reloc->r_info); @@ -253,7 +257,11 @@ elf_machine_rela (struct link_map *map, const ElfW(Rela) *reloc, else { const ElfW(Sym) *const refsym = sym; +#if !defined(NESTING) && (defined RTLD_BOOTSTRAP || defined STATIC_PIE_BOOTSTRAP) + struct link_map *sym_map = boot_map; +#else struct link_map *sym_map = RESOLVE_MAP (&sym, version, r_type); +#endif ElfW(Addr) value = sym_map == NULL ? 0 : sym_map->l_addr + sym->st_value; if (sym != NULL @@ -409,7 +417,11 @@ elf_machine_lazy_rel (struct link_map *map, /* Always initialize TLS descriptors completely, because lazy initialization requires synchronization at every TLS access. */ - elf_machine_rela (map, reloc, sym, version, reloc_addr, skip_ifunc); + elf_machine_rela (map, reloc, sym, version, reloc_addr, skip_ifunc +#ifndef NESTING + , NULL +#endif + ); } else if (__glibc_unlikely (r_type == AARCH64_R(IRELATIVE))) {