Un-nest an include in dl-reloc-static-pie.c.

A corresponding adjustment in sysdeps/x86_64/dl-machine.h has also been
made.
This commit is contained in:
Siva Chandra Reddy 2019-04-01 11:26:29 -07:00 committed by Fangrui Song
parent 43afb70033
commit 0337af1396
2 changed files with 15 additions and 3 deletions

View File

@ -19,7 +19,13 @@
#if ENABLE_STATIC_PIE
#include <unistd.h>
#include <ldsodefs.h>
#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

View File

@ -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);