diff options
Diffstat (limited to 'elf/dl-reloc.c')
-rw-r--r-- | elf/dl-reloc.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/elf/dl-reloc.c b/elf/dl-reloc.c index 14709f960d..053916eeae 100644 --- a/elf/dl-reloc.c +++ b/elf/dl-reloc.c @@ -1,5 +1,5 @@ /* Relocate a shared object and resolve its references to other loaded objects. - Copyright (C) 1995-2016 Free Software Foundation, Inc. + Copyright (C) 1995-2018 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 @@ -25,8 +25,8 @@ #include <sys/param.h> #include <sys/types.h> #include <_itoa.h> +#include <libc-pointer-arith.h> #include "dynamic-link.h" -#include <libc-internal.h> /* Statistics function. */ #ifdef SHARED @@ -45,7 +45,6 @@ directly, as static TLS should be rare and code handling it should not be inlined as much as possible. */ int -internal_function _dl_try_allocate_static_tls (struct link_map *map) { /* If we've already used the variable with dynamic access, or if the @@ -112,7 +111,7 @@ _dl_try_allocate_static_tls (struct link_map *map) } void -internal_function __attribute_noinline__ +__attribute_noinline__ _dl_allocate_static_tls (struct link_map *map) { if (map->l_tls_offset == FORCED_DYNAMIC_TLS_OFFSET @@ -233,7 +232,8 @@ _dl_relocate_object (struct link_map *l, struct r_scope_elem *scope[], /* This macro is used as a callback from the ELF_DYNAMIC_RELOCATE code. */ #define RESOLVE_MAP(ref, version, r_type) \ - (ELFW(ST_BIND) ((*ref)->st_info) != STB_LOCAL \ + ((ELFW(ST_BIND) ((*ref)->st_info) != STB_LOCAL \ + && __glibc_likely (!dl_symbol_visibility_binds_local_p (*ref))) \ ? ((__builtin_expect ((*ref) == l->l_lookup_cache.sym, 0) \ && elf_machine_type_class (r_type) == l->l_lookup_cache.type_class) \ ? (bump_num_cache_relocations (), \ @@ -307,7 +307,7 @@ _dl_relocate_object (struct link_map *l, struct r_scope_elem *scope[], } -void internal_function +void _dl_protect_relro (struct link_map *l) { ElfW(Addr) start = ALIGN_DOWN((l->l_addr @@ -327,7 +327,7 @@ cannot apply additional memory protection after relocation"); } void -internal_function __attribute_noinline__ +__attribute_noinline__ _dl_reloc_bad_type (struct link_map *map, unsigned int type, int plt) { #define DIGIT(b) _itoa_lower_digits[(b) & 0xf]; |