From: Siva Chandra Reddy Date: Mon, 1 Apr 2019 18:26:29 +0000 (-0700) Subject: Un-nest an include in dl-reloc-static-pie.c. X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=0337af1396cca76149ab4b406d0dbeddcc0d5dca;p=thirdparty%2Fglibc.git Un-nest an include in dl-reloc-static-pie.c. A corresponding adjustment in sysdeps/x86_64/dl-machine.h has also been made. --- diff --git a/elf/dl-reloc-static-pie.c b/elf/dl-reloc-static-pie.c index bd2d516e5d7..42d15290948 100644 --- a/elf/dl-reloc-static-pie.c +++ b/elf/dl-reloc-static-pie.c @@ -19,7 +19,13 @@ #if ENABLE_STATIC_PIE #include #include -#include "dynamic-link.h" + +#ifndef NESTING +# define STATIC_PIE_BOOTSTRAP +# define BOOTSTRAP_MAP (main_map) +# define RESOLVE_MAP(sym, version, flags) BOOTSTRAP_MAP +# include "dynamic-link.h" +#endif /* n NESTING */ /* Relocate static executable with PIE. */ @@ -28,10 +34,12 @@ _dl_relocate_static_pie (void) { struct link_map *main_map = _dl_get_dl_main_map (); +#ifdef NESTING # define STATIC_PIE_BOOTSTRAP # define BOOTSTRAP_MAP (main_map) # define RESOLVE_MAP(sym, version, flags) BOOTSTRAP_MAP # include "dynamic-link.h" +#endif /* NESTING */ /* Figure out the run-time load address of static PIE. */ main_map->l_addr = elf_machine_load_address (); @@ -46,7 +54,11 @@ _dl_relocate_static_pie (void) /* Relocate ourselves so we can do normal function calls and data access using the global offset table. */ - ELF_DYNAMIC_RELOCATE (main_map, 0, 0, 0); + ELF_DYNAMIC_RELOCATE (main_map, 0, 0, 0 +#ifndef NESTING + , main_map +#endif + ); main_map->l_relocated = 1; } #endif diff --git a/sysdeps/x86_64/dl-machine.h b/sysdeps/x86_64/dl-machine.h index ea9a2366b2c..f2b80df619f 100644 --- a/sysdeps/x86_64/dl-machine.h +++ b/sysdeps/x86_64/dl-machine.h @@ -309,7 +309,7 @@ elf_machine_rela (struct link_map *map, const ElfW(Rela) *reloc, # ifndef RTLD_BOOTSTRAP const ElfW(Sym) *const refsym = sym; # endif -#if !defined NESTING && defined RTLD_BOOTSTRAP +#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);