1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-07-29 11:41:21 +03:00

elf: Remove internal_function attribute

This commit is contained in:
Florian Weimer
2017-08-31 16:59:37 +02:00
parent 8d2f9410d5
commit 17e00cc69e
44 changed files with 130 additions and 139 deletions

View File

@ -1,3 +1,78 @@
2017-08-31 Florian Weimer <fweimer@redhat.com>
* elf/dl-addr-obj.c (_dl_addr_inside_object): Remove
internal_function.
* elf/dl-cache.c (_dl_cache_libcmp, _dl_load_cache_lookup):
Likewise.
* elf/dl-debug.c (_dl_debug_initialize): Likewise.
* elf/dl-deps.c (_dl_build_local_scope, _dl_map_object_deps): Likewise.
* elf/dl-environ.c (_dl_next_ld_env_entry): Likewise.
* elf/dl-execstack.c (_dl_make_stack_executable): Likewise.
* elf/dl-fini.c (_dl_sort_fini): Likewise.
* elf/dl-hwcaps.c (_dl_important_hwcaps): Likewise.
* elf/dl-libc.c (dlerror_run): Likewise.
* elf/dl-load.c (add_name_to_object, decompose_rpath)
(_dl_init_paths, _dl_map_object, _dl_rtld_di_serinfo): Likewise.
* elf/dl-lookup.c (add_dependency, _dl_debug_bindings)
(_dl_lookup_symbol_x, _dl_setup_hash, _dl_debug_bindings):
Likewise.
* elf/dl-misc.c (_dl_sysdep_read_whole_file, _dl_name_match_p)
(_dl_higher_prime_number, _dl_strtoul): Likewise.
* elf/dl-object.c (_dl_add_to_namespace_list, _dl_new_object): Likewise.
* elf/dl-profile.c (_dl_start_profile): Likewise.
* elf/dl-reloc.c (_dl_try_allocate_static_tls)
(_dl_allocate_static_tls, _dl_protect_relro, _dl_reloc_bad_type):
Likewise.
* elf/dl-support.c (_dl_aux_init, _dl_non_dynamic_init): Likewise.
* elf/dl-sym.c (_dl_tls_symaddr, do_sym): Likewise.
* elf/dl-sysdep.c (_dl_sysdep_start_cleanup, _dl_show_auxv): Likewise.
* elf/dl-tls.c (_dl_next_tls_modid, _dl_count_modids)
(_dl_determine_tlsoffset, allocate_dtv, _dl_get_tls_static_info)
(_dl_allocate_tls_storage): Likewise.
* elf/dl-version.c (match_symbol, _dl_check_map_versions)
(_dl_check_all_versions): Likewise.
* elf/dynamic-link.h (_dl_try_allocate_static_tls): Likewise.
* elf/tlsdeschtab.h (_dl_make_tlsdesc_dynamic): Likewise.
* elf/tst-_dl_addr_inside_object.c (_dl_addr_inside_object): Likewise.
* sysdeps/aarch64/dl-tlsdesc.h (_dl_make_tlsdesc_dynamic): Likewise.
* sysdeps/aarch64/tlsdesc.c (_dl_unmap): Likewise.
* sysdeps/arm/dl-lookupcfg.h (_dl_unmap): Likewise.
* sysdeps/arm/dl-machine.h (elf_machine_load_address): Remove
internal_function from __dl_start.
* sysdeps/arm/dl-tlsdesc.h (_dl_unmap): Remove internal_function.
* sysdeps/generic/dl-cache.h (_dl_cache_libcmp): Likewise.
* sysdeps/generic/ldsodefs.h (_dl_name_match_p)
(_dl_higher_prime_number, _dl_strtoul, _dl_map_object)
(_dl_map_object_deps, _dl_setup_hash, _dl_rtld_di_serinfo)
(_dl_lookup_symbol_x, _dl_add_to_namespace_list, _dl_new_object)
(_dl_protect_relro, _dl_reloc_bad_type, _dl_check_all_versions)
(_dl_check_map_versions, _dl_sort_fini, _dl_debug_initialize)
(_dl_init_paths, _dl_start_profile, _dl_show_auxv)
(_dl_next_ld_env_entry, _dl_important_hwcaps)
(_dl_load_cache_lookup, _dl_sysdep_read_whole_file)
(_dl_sysdep_start_cleanup, _dl_next_tls_modid, _dl_count_modids)
(_dl_determine_tlsoffset, _dl_get_tls_static_info)
(_dl_allocate_static_tls, _dl_allocate_tls_storage)
(_dl_addr_inside_object, _dl_non_dynamic_init, _dl_aux_init):
Likewise.
(struct rtld_global_ro): Remove internal_function from the
_dl_lookup_symbol_x member.
(_dl_symbol_value): Remove. No longer defined anywhere.
* sysdeps/i386/dl-lookupcfg.h (_dl_unmap): Remove
internal_function.
* sysdeps/i386/dl-tlsdesc.h (_dl_make_tlsdesc_dynamic): Likewise.
* sysdeps/i386/tlsdesc.c (_dl_unmap): Likewise.
* sysdeps/mach/hurd/dl-sysdep.c (_dl_show_auxv): Likewise.
* sysdeps/nios2/dl-init.c (_dl_nios2_get_gp_value): Likewise.
* sysdeps/tile/dl-lookupcfg.h (_dl_unmap): Likewise.
* sysdeps/tile/dl-machine.h (_dl_after_load): Likewise.
* sysdeps/tile/dl-runtime.c (_dl_after_load, _dl_unmap): Likewise.
* sysdeps/unix/sysv/linux/dl-vdso.c (_dl_vdso_vsym): Likewise.
* sysdeps/unix/sysv/linux/dl-vdso.h (_dl_vdso_vsym): Likewise.
* sysdeps/x86_64/dl-lookupcfg.h (_dl_unmap): Likewise.
* sysdeps/x86_64/dl-tlsdesc.h (_dl_make_tlsdesc_dynamic): Likewise.
* sysdeps/x86_64/tlsdesc.c (_dl_unmap): Likewise.
2017-08-31 Florian Weimer <fweimer@redhat.com> 2017-08-31 Florian Weimer <fweimer@redhat.com>
* gmon/gmon.c (write_hist, write_call_graph, write_bb_counts): * gmon/gmon.c (write_hist, write_call_graph, write_bb_counts):

View File

@ -61,7 +61,6 @@
*/ */
int int
internal_function
_dl_addr_inside_object (struct link_map *l, const ElfW(Addr) addr) _dl_addr_inside_object (struct link_map *l, const ElfW(Addr) addr)
{ {
int n = l->l_phnum; int n = l->l_phnum;

View File

@ -134,7 +134,6 @@ while (0)
int int
internal_function
_dl_cache_libcmp (const char *p1, const char *p2) _dl_cache_libcmp (const char *p1, const char *p2)
{ {
while (*p1 != '\0') while (*p1 != '\0')
@ -181,7 +180,6 @@ _dl_cache_libcmp (const char *p1, const char *p2)
this function must take care that it does not return references to this function must take care that it does not return references to
any data in the mapping. */ any data in the mapping. */
char * char *
internal_function
_dl_load_cache_lookup (const char *name) _dl_load_cache_lookup (const char *name)
{ {
int left, right, middle; int left, right, middle;

View File

@ -42,7 +42,6 @@ struct r_debug _r_debug;
_r_debug.r_ldbase. Returns the address of _r_debug. */ _r_debug.r_ldbase. Returns the address of _r_debug. */
struct r_debug * struct r_debug *
internal_function
_dl_debug_initialize (ElfW(Addr) ldbase, Lmid_t ns) _dl_debug_initialize (ElfW(Addr) ldbase, Lmid_t ns)
{ {
struct r_debug *r; struct r_debug *r;

View File

@ -68,7 +68,6 @@ openaux (void *a)
} }
static ptrdiff_t static ptrdiff_t
internal_function
_dl_build_local_scope (struct link_map **list, struct link_map *map) _dl_build_local_scope (struct link_map **list, struct link_map *map)
{ {
struct link_map **p = list; struct link_map **p = list;
@ -153,7 +152,6 @@ preload (struct list *known, unsigned int *nlist, struct link_map *map)
} }
void void
internal_function
_dl_map_object_deps (struct link_map *map, _dl_map_object_deps (struct link_map *map,
struct link_map **preloads, unsigned int npreloads, struct link_map **preloads, unsigned int npreloads,
int trace_mode, int open_mode) int trace_mode, int open_mode)

View File

@ -24,7 +24,6 @@
/* Walk through the environment of the process and return all entries /* Walk through the environment of the process and return all entries
starting with `LD_'. */ starting with `LD_'. */
char * char *
internal_function
_dl_next_ld_env_entry (char ***position) _dl_next_ld_env_entry (char ***position)
{ {
char **current = *position; char **current = *position;

View File

@ -23,7 +23,6 @@
so as to mprotect it. */ so as to mprotect it. */
int int
internal_function
_dl_make_stack_executable (void **stack_endp) _dl_make_stack_executable (void **stack_endp)
{ {
return ENOSYS; return ENOSYS;

View File

@ -26,7 +26,6 @@ typedef void (*fini_t) (void);
void void
internal_function
_dl_sort_fini (struct link_map **maps, size_t nmaps, char *used, Lmid_t ns) _dl_sort_fini (struct link_map **maps, size_t nmaps, char *used, Lmid_t ns)
{ {
/* A list of one element need not be sorted. */ /* A list of one element need not be sorted. */

View File

@ -34,7 +34,6 @@
/* Return an array of useful/necessary hardware capability names. */ /* Return an array of useful/necessary hardware capability names. */
const struct r_strlenpair * const struct r_strlenpair *
internal_function
_dl_important_hwcaps (const char *platform, size_t platform_len, size_t *sz, _dl_important_hwcaps (const char *platform, size_t platform_len, size_t *sz,
size_t *max_capstrlen) size_t *max_capstrlen)
{ {

View File

@ -36,7 +36,6 @@ extern char **__environ;
Much of this code came from gconv_dl.c with slight modifications. */ Much of this code came from gconv_dl.c with slight modifications. */
static int static int
internal_function
dlerror_run (void (*operate) (void *), void *args) dlerror_run (void (*operate) (void *), void *args)
{ {
const char *objname; const char *objname;

View File

@ -392,7 +392,6 @@ expand_dynamic_string_token (struct link_map *l, const char *s, int is_path)
be freed if the shared object already has this name. be freed if the shared object already has this name.
Returns false if the object already had this name. */ Returns false if the object already had this name. */
static void static void
internal_function
add_name_to_object (struct link_map *l, const char *name) add_name_to_object (struct link_map *l, const char *name)
{ {
struct libname_list *lnp, *lastp; struct libname_list *lnp, *lastp;
@ -536,7 +535,6 @@ fillin_rpath (char *rpath, struct r_search_path_elem **result, const char *sep,
static bool static bool
internal_function
decompose_rpath (struct r_search_path_struct *sps, decompose_rpath (struct r_search_path_struct *sps,
const char *rpath, struct link_map *l, const char *what) const char *rpath, struct link_map *l, const char *what)
{ {
@ -656,7 +654,6 @@ cache_rpath (struct link_map *l,
void void
internal_function
_dl_init_paths (const char *llp) _dl_init_paths (const char *llp)
{ {
size_t idx; size_t idx;
@ -1887,7 +1884,6 @@ open_path (const char *name, size_t namelen, int mode,
/* Map in the shared object file NAME. */ /* Map in the shared object file NAME. */
struct link_map * struct link_map *
internal_function
_dl_map_object (struct link_map *loader, const char *name, _dl_map_object (struct link_map *loader, const char *name,
int type, int trace_mode, int mode, Lmid_t nsid) int type, int trace_mode, int mode, Lmid_t nsid)
{ {
@ -2241,7 +2237,6 @@ add_path (struct add_path_state *p, const struct r_search_path_struct *sps,
} }
void void
internal_function
_dl_rtld_di_serinfo (struct link_map *loader, Dl_serinfo *si, bool counting) _dl_rtld_di_serinfo (struct link_map *loader, Dl_serinfo *si, bool counting)
{ {
if (counting) if (counting)

View File

@ -560,7 +560,6 @@ dl_new_hash (const char *s)
/* Add extra dependency on MAP to UNDEF_MAP. */ /* Add extra dependency on MAP to UNDEF_MAP. */
static int static int
internal_function
add_dependency (struct link_map *undef_map, struct link_map *map, int flags) add_dependency (struct link_map *undef_map, struct link_map *map, int flags)
{ {
struct link_map *runp; struct link_map *runp;
@ -770,7 +769,6 @@ add_dependency (struct link_map *undef_map, struct link_map *map, int flags)
} }
static void static void
internal_function
_dl_debug_bindings (const char *undef_name, struct link_map *undef_map, _dl_debug_bindings (const char *undef_name, struct link_map *undef_map,
const ElfW(Sym) **ref, struct sym_val *value, const ElfW(Sym) **ref, struct sym_val *value,
const struct r_found_version *version, int type_class, const struct r_found_version *version, int type_class,
@ -784,7 +782,6 @@ _dl_debug_bindings (const char *undef_name, struct link_map *undef_map,
or in any function which gets called. If this would happen the audit or in any function which gets called. If this would happen the audit
code might create a thread which can throw off all the scope locking. */ code might create a thread which can throw off all the scope locking. */
lookup_t lookup_t
internal_function
_dl_lookup_symbol_x (const char *undef_name, struct link_map *undef_map, _dl_lookup_symbol_x (const char *undef_name, struct link_map *undef_map,
const ElfW(Sym) **ref, const ElfW(Sym) **ref,
struct r_scope_elem *symbol_scope[], struct r_scope_elem *symbol_scope[],
@ -935,7 +932,6 @@ _dl_lookup_symbol_x (const char *undef_name, struct link_map *undef_map,
/* Cache the location of MAP's hash table. */ /* Cache the location of MAP's hash table. */
void void
internal_function
_dl_setup_hash (struct link_map *map) _dl_setup_hash (struct link_map *map)
{ {
Elf_Symndx *hash; Elf_Symndx *hash;
@ -979,7 +975,6 @@ _dl_setup_hash (struct link_map *map)
static void static void
internal_function
_dl_debug_bindings (const char *undef_name, struct link_map *undef_map, _dl_debug_bindings (const char *undef_name, struct link_map *undef_map,
const ElfW(Sym) **ref, struct sym_val *value, const ElfW(Sym) **ref, struct sym_val *value,
const struct r_found_version *version, int type_class, const struct r_found_version *version, int type_class,

View File

@ -40,7 +40,6 @@
is returned. */ is returned. */
void * void *
internal_function
_dl_sysdep_read_whole_file (const char *file, size_t *sizep, int prot) _dl_sysdep_read_whole_file (const char *file, size_t *sizep, int prot)
{ {
void *result = MAP_FAILED; void *result = MAP_FAILED;
@ -279,7 +278,6 @@ _dl_dprintf (int fd, const char *fmt, ...)
/* Test whether given NAME matches any of the names of the given object. */ /* Test whether given NAME matches any of the names of the given object. */
int int
internal_function
_dl_name_match_p (const char *name, const struct link_map *map) _dl_name_match_p (const char *name, const struct link_map *map)
{ {
if (strcmp (name, map->l_name) == 0) if (strcmp (name, map->l_name) == 0)
@ -298,7 +296,6 @@ _dl_name_match_p (const char *name, const struct link_map *map)
unsigned long int unsigned long int
internal_function
_dl_higher_prime_number (unsigned long int n) _dl_higher_prime_number (unsigned long int n)
{ {
/* These are primes that are near, but slightly smaller than, a /* These are primes that are near, but slightly smaller than, a
@ -366,7 +363,6 @@ _dl_higher_prime_number (unsigned long int n)
called before errno may have been set up. */ called before errno may have been set up. */
uint64_t uint64_t
internal_function
_dl_strtoul (const char *nptr, char **endptr) _dl_strtoul (const char *nptr, char **endptr)
{ {
uint64_t result = 0; uint64_t result = 0;

View File

@ -27,7 +27,6 @@
/* Add the new link_map NEW to the end of the namespace list. */ /* Add the new link_map NEW to the end of the namespace list. */
void void
internal_function
_dl_add_to_namespace_list (struct link_map *new, Lmid_t nsid) _dl_add_to_namespace_list (struct link_map *new, Lmid_t nsid)
{ {
/* We modify the list of loaded objects. */ /* We modify the list of loaded objects. */
@ -55,7 +54,6 @@ _dl_add_to_namespace_list (struct link_map *new, Lmid_t nsid)
/* Allocate a `struct link_map' for a new object being loaded, /* Allocate a `struct link_map' for a new object being loaded,
and enter it into the _dl_loaded list. */ and enter it into the _dl_loaded list. */
struct link_map * struct link_map *
internal_function
_dl_new_object (char *realname, const char *libname, int type, _dl_new_object (char *realname, const char *libname, int type,
struct link_map *loader, int mode, Lmid_t nsid) struct link_map *loader, int mode, Lmid_t nsid)
{ {

View File

@ -180,7 +180,6 @@ static unsigned int log_hashfraction;
/* Set up profiling data to profile object desribed by MAP. The output /* Set up profiling data to profile object desribed by MAP. The output
file is found (or created) in OUTPUT_DIR. */ file is found (or created) in OUTPUT_DIR. */
void void
internal_function
_dl_start_profile (void) _dl_start_profile (void)
{ {
char *filename; char *filename;

View File

@ -45,7 +45,6 @@
directly, as static TLS should be rare and code handling it should directly, as static TLS should be rare and code handling it should
not be inlined as much as possible. */ not be inlined as much as possible. */
int int
internal_function
_dl_try_allocate_static_tls (struct link_map *map) _dl_try_allocate_static_tls (struct link_map *map)
{ {
/* If we've already used the variable with dynamic access, or if the /* 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 void
internal_function __attribute_noinline__ __attribute_noinline__
_dl_allocate_static_tls (struct link_map *map) _dl_allocate_static_tls (struct link_map *map)
{ {
if (map->l_tls_offset == FORCED_DYNAMIC_TLS_OFFSET if (map->l_tls_offset == FORCED_DYNAMIC_TLS_OFFSET
@ -308,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) _dl_protect_relro (struct link_map *l)
{ {
ElfW(Addr) start = ALIGN_DOWN((l->l_addr ElfW(Addr) start = ALIGN_DOWN((l->l_addr
@ -328,7 +327,7 @@ cannot apply additional memory protection after relocation");
} }
void void
internal_function __attribute_noinline__ __attribute_noinline__
_dl_reloc_bad_type (struct link_map *map, unsigned int type, int plt) _dl_reloc_bad_type (struct link_map *map, unsigned int type, int plt)
{ {
#define DIGIT(b) _itoa_lower_digits[(b) & 0xf]; #define DIGIT(b) _itoa_lower_digits[(b) & 0xf];

View File

@ -221,7 +221,6 @@ __rtld_lock_define_initialized_recursive (, _dl_load_write_lock)
int _dl_clktck; int _dl_clktck;
void void
internal_function
_dl_aux_init (ElfW(auxv_t) *av) _dl_aux_init (ElfW(auxv_t) *av)
{ {
int seen = 0; int seen = 0;
@ -305,7 +304,6 @@ _dl_aux_init (ElfW(auxv_t) *av)
void void
internal_function
_dl_non_dynamic_init (void) _dl_non_dynamic_init (void)
{ {
_dl_main_map.l_origin = _dl_get_origin (); _dl_main_map.l_origin = _dl_get_origin ();

View File

@ -41,7 +41,6 @@
/* Return the symbol address given the map of the module it is in and /* Return the symbol address given the map of the module it is in and
the symbol record. This is used in dl-sym.c. */ the symbol record. This is used in dl-sym.c. */
static void * static void *
internal_function
_dl_tls_symaddr (struct link_map *map, const ElfW(Sym) *ref) _dl_tls_symaddr (struct link_map *map, const ElfW(Sym) *ref)
{ {
# ifndef DONT_USE_TLS_INDEX # ifndef DONT_USE_TLS_INDEX
@ -83,7 +82,6 @@ call_dl_lookup (void *ptr)
static void * static void *
internal_function
do_sym (void *handle, const char *name, void *who, do_sym (void *handle, const char *name, void *who,
struct r_found_version *vers, int flags) struct r_found_version *vers, int flags)
{ {

View File

@ -255,13 +255,11 @@ _dl_sysdep_start (void **start_argptr,
} }
void void
internal_function
_dl_sysdep_start_cleanup (void) _dl_sysdep_start_cleanup (void)
{ {
} }
void void
internal_function
_dl_show_auxv (void) _dl_show_auxv (void)
{ {
char buf[64]; char buf[64];

View File

@ -44,7 +44,6 @@ oom (void)
size_t size_t
internal_function
_dl_next_tls_modid (void) _dl_next_tls_modid (void)
{ {
size_t result; size_t result;
@ -105,7 +104,6 @@ _dl_next_tls_modid (void)
size_t size_t
internal_function
_dl_count_modids (void) _dl_count_modids (void)
{ {
/* It is rare that we have gaps; see elf/dl-open.c (_dl_open) where /* It is rare that we have gaps; see elf/dl-open.c (_dl_open) where
@ -133,7 +131,6 @@ _dl_count_modids (void)
#ifdef SHARED #ifdef SHARED
void void
internal_function
_dl_determine_tlsoffset (void) _dl_determine_tlsoffset (void)
{ {
size_t max_align = TLS_TCB_ALIGN; size_t max_align = TLS_TCB_ALIGN;
@ -277,7 +274,6 @@ _dl_determine_tlsoffset (void)
#endif /* SHARED */ #endif /* SHARED */
static void * static void *
internal_function
allocate_dtv (void *result) allocate_dtv (void *result)
{ {
dtv_t *dtv; dtv_t *dtv;
@ -308,7 +304,6 @@ allocate_dtv (void *result)
/* Get size and alignment requirements of the static TLS block. */ /* Get size and alignment requirements of the static TLS block. */
void void
internal_function
_dl_get_tls_static_info (size_t *sizep, size_t *alignp) _dl_get_tls_static_info (size_t *sizep, size_t *alignp)
{ {
*sizep = GL(dl_tls_static_size); *sizep = GL(dl_tls_static_size);
@ -333,7 +328,6 @@ tcb_to_pointer_to_free_location (void *tcb)
} }
void * void *
internal_function
_dl_allocate_tls_storage (void) _dl_allocate_tls_storage (void)
{ {
void *result; void *result;

View File

@ -51,7 +51,6 @@ find_needed (const char *name, struct link_map *map)
static int static int
internal_function
match_symbol (const char *name, Lmid_t ns, ElfW(Word) hash, const char *string, match_symbol (const char *name, Lmid_t ns, ElfW(Word) hash, const char *string,
struct link_map *map, int verbose, int weak) struct link_map *map, int verbose, int weak)
{ {
@ -153,7 +152,6 @@ checking for version `%s' in file %s [%lu] required by file %s [%lu]\n",
int int
internal_function
_dl_check_map_versions (struct link_map *map, int verbose, int trace_mode) _dl_check_map_versions (struct link_map *map, int verbose, int trace_mode)
{ {
int result = 0; int result = 0;
@ -360,7 +358,6 @@ _dl_check_map_versions (struct link_map *map, int verbose, int trace_mode)
int int
internal_function
_dl_check_all_versions (struct link_map *map, int verbose, int trace_mode) _dl_check_all_versions (struct link_map *map, int verbose, int trace_mode)
{ {
struct link_map *l; struct link_map *l;

View File

@ -42,8 +42,7 @@
&& (__builtin_expect ((sym_map)->l_tls_offset != NO_TLS_OFFSET, 1) \ && (__builtin_expect ((sym_map)->l_tls_offset != NO_TLS_OFFSET, 1) \
|| _dl_try_allocate_static_tls (sym_map) == 0)) || _dl_try_allocate_static_tls (sym_map) == 0))
int internal_function attribute_hidden int _dl_try_allocate_static_tls (struct link_map *map) attribute_hidden;
_dl_try_allocate_static_tls (struct link_map *map);
#include <elf.h> #include <elf.h>

View File

@ -79,7 +79,6 @@ map_generation (struct link_map *map)
} }
void * void *
internal_function
_dl_make_tlsdesc_dynamic (struct link_map *map, size_t ti_offset) _dl_make_tlsdesc_dynamic (struct link_map *map, size_t ti_offset)
{ {
struct hashtab *ht; struct hashtab *ht;

View File

@ -22,8 +22,7 @@
#include <elf.h> #include <elf.h>
#include <libc-symbols.h> #include <libc-symbols.h>
extern int internal_function _dl_addr_inside_object (struct link_map *l, extern int _dl_addr_inside_object (struct link_map *l, const ElfW(Addr) addr);
const ElfW(Addr) addr);
static int static int
do_test (void) do_test (void)

View File

@ -58,8 +58,7 @@ extern ptrdiff_t attribute_hidden
_dl_tlsdesc_resolve_hold (struct tlsdesc *); _dl_tlsdesc_resolve_hold (struct tlsdesc *);
# ifdef SHARED # ifdef SHARED
extern void *internal_function _dl_make_tlsdesc_dynamic (struct link_map *, extern void *_dl_make_tlsdesc_dynamic (struct link_map *, size_t);
size_t);
extern ptrdiff_t attribute_hidden extern ptrdiff_t attribute_hidden
_dl_tlsdesc_dynamic (struct tlsdesc *); _dl_tlsdesc_dynamic (struct tlsdesc *);

View File

@ -154,7 +154,6 @@ _dl_tlsdesc_resolve_hold_fixup (struct tlsdesc *td, void *caller)
if there is one. */ if there is one. */
void void
internal_function
_dl_unmap (struct link_map *map) _dl_unmap (struct link_map *map)
{ {
_dl_unmap_segments (map); _dl_unmap_segments (map);

View File

@ -22,6 +22,6 @@
struct link_map; struct link_map;
extern void internal_function _dl_unmap (struct link_map *map); extern void _dl_unmap (struct link_map *map);
#define DL_UNMAP(map) _dl_unmap (map) #define DL_UNMAP(map) _dl_unmap (map)

View File

@ -53,7 +53,7 @@ elf_machine_dynamic (void)
static inline Elf32_Addr __attribute__ ((unused)) static inline Elf32_Addr __attribute__ ((unused))
elf_machine_load_address (void) elf_machine_load_address (void)
{ {
extern Elf32_Addr internal_function __dl_start (void *) asm ("_dl_start"); extern Elf32_Addr __dl_start (void *) asm ("_dl_start");
Elf32_Addr got_addr = (Elf32_Addr) &__dl_start; Elf32_Addr got_addr = (Elf32_Addr) &__dl_start;
Elf32_Addr pcrel_addr; Elf32_Addr pcrel_addr;
asm ("adr %0, _dl_start" : "=r" (pcrel_addr)); asm ("adr %0, _dl_start" : "=r" (pcrel_addr));

View File

@ -144,7 +144,6 @@ _dl_tlsdesc_resolve_hold_fixup (struct tlsdesc volatile *td,
if there is one. */ if there is one. */
void void
internal_function
_dl_unmap (struct link_map *map) _dl_unmap (struct link_map *map)
{ {
_dl_unmap_segments (map); _dl_unmap_segments (map);

View File

@ -100,5 +100,4 @@ struct cache_file_new
(((addr) + __alignof__ (struct cache_file_new) -1) \ (((addr) + __alignof__ (struct cache_file_new) -1) \
& (~(__alignof__ (struct cache_file_new) - 1))) & (~(__alignof__ (struct cache_file_new) - 1)))
extern int _dl_cache_libcmp (const char *p1, const char *p2) extern int _dl_cache_libcmp (const char *p1, const char *p2) attribute_hidden;
internal_function attribute_hidden;

View File

@ -248,15 +248,14 @@ struct audit_ifaces
/* Test whether given NAME matches any of the names of the given object. */ /* Test whether given NAME matches any of the names of the given object. */
extern int _dl_name_match_p (const char *__name, const struct link_map *__map) extern int _dl_name_match_p (const char *__name, const struct link_map *__map)
internal_function attribute_hidden; attribute_hidden;
/* Compute next higher prime number. */ /* Compute next higher prime number. */
extern unsigned long int _dl_higher_prime_number (unsigned long int n) extern unsigned long int _dl_higher_prime_number (unsigned long int n)
internal_function attribute_hidden; attribute_hidden;
/* A stripped down strtoul-like implementation. */ /* A stripped down strtoul-like implementation. */
uint64_t internal_function _dl_strtoul (const char *, char **) uint64_t _dl_strtoul (const char *, char **) attribute_hidden;
internal_function attribute_hidden;
/* Function used as argument for `_dl_receive_error' function. The /* Function used as argument for `_dl_receive_error' function. The
arguments are the error code, error string, and the objname the arguments are the error code, error string, and the objname the
@ -586,13 +585,10 @@ struct rtld_global_ro
void (*_dl_debug_printf) (const char *, ...) void (*_dl_debug_printf) (const char *, ...)
__attribute__ ((__format__ (__printf__, 1, 2))); __attribute__ ((__format__ (__printf__, 1, 2)));
void (*_dl_mcount) (ElfW(Addr) frompc, ElfW(Addr) selfpc); void (*_dl_mcount) (ElfW(Addr) frompc, ElfW(Addr) selfpc);
lookup_t (internal_function *_dl_lookup_symbol_x) (const char *, lookup_t (*_dl_lookup_symbol_x) (const char *, struct link_map *,
struct link_map *, const ElfW(Sym) **, struct r_scope_elem *[],
const ElfW(Sym) **, const struct r_found_version *, int, int,
struct r_scope_elem *[], struct link_map *);
const struct r_found_version *,
int, int,
struct link_map *);
int (*_dl_check_caller) (const void *, enum allowmask); int (*_dl_check_caller) (const void *, enum allowmask);
void *(*_dl_open) (const char *file, int mode, const void *caller_dlopen, void *(*_dl_open) (const char *file, int mode, const void *caller_dlopen,
Lmid_t nsid, int argc, char *argv[], char *env[]); Lmid_t nsid, int argc, char *argv[], char *env[]);
@ -851,8 +847,7 @@ libc_hidden_proto (_dl_catch_exception)
extern struct link_map *_dl_map_object (struct link_map *loader, extern struct link_map *_dl_map_object (struct link_map *loader,
const char *name, const char *name,
int type, int trace_mode, int mode, int type, int trace_mode, int mode,
Lmid_t nsid) Lmid_t nsid) attribute_hidden;
internal_function attribute_hidden;
/* Call _dl_map_object on the dependencies of MAP, and set up /* Call _dl_map_object on the dependencies of MAP, and set up
MAP->l_searchlist. PRELOADS points to a vector of NPRELOADS previously MAP->l_searchlist. PRELOADS points to a vector of NPRELOADS previously
@ -862,11 +857,10 @@ extern void _dl_map_object_deps (struct link_map *map,
struct link_map **preloads, struct link_map **preloads,
unsigned int npreloads, int trace_mode, unsigned int npreloads, int trace_mode,
int open_mode) int open_mode)
internal_function attribute_hidden; attribute_hidden;
/* Cache the locations of MAP's hash table. */ /* Cache the locations of MAP's hash table. */
extern void _dl_setup_hash (struct link_map *map) extern void _dl_setup_hash (struct link_map *map) attribute_hidden;
internal_function attribute_hidden;
/* Collect the directories in the search path for LOADER's dependencies. /* Collect the directories in the search path for LOADER's dependencies.
@ -875,8 +869,7 @@ extern void _dl_setup_hash (struct link_map *map)
by a previous call with COUNTING set, and SI must point to SI->dls_size by a previous call with COUNTING set, and SI must point to SI->dls_size
bytes to be used in filling in the result. */ bytes to be used in filling in the result. */
extern void _dl_rtld_di_serinfo (struct link_map *loader, extern void _dl_rtld_di_serinfo (struct link_map *loader,
Dl_serinfo *si, bool counting) Dl_serinfo *si, bool counting);
internal_function;
/* Search loaded objects' symbol tables for a definition of the symbol /* Search loaded objects' symbol tables for a definition of the symbol
@ -907,22 +900,18 @@ extern lookup_t _dl_lookup_symbol_x (const char *undef,
const struct r_found_version *version, const struct r_found_version *version,
int type_class, int flags, int type_class, int flags,
struct link_map *skip_map) struct link_map *skip_map)
internal_function attribute_hidden; attribute_hidden;
/* Look up symbol NAME in MAP's scope and return its run-time address. */
extern ElfW(Addr) _dl_symbol_value (struct link_map *map, const char *name)
internal_function;
/* Add the new link_map NEW to the end of the namespace list. */ /* Add the new link_map NEW to the end of the namespace list. */
extern void _dl_add_to_namespace_list (struct link_map *new, Lmid_t nsid) extern void _dl_add_to_namespace_list (struct link_map *new, Lmid_t nsid)
internal_function attribute_hidden; attribute_hidden;
/* Allocate a `struct link_map' for a new object being loaded. */ /* Allocate a `struct link_map' for a new object being loaded. */
extern struct link_map *_dl_new_object (char *realname, const char *libname, extern struct link_map *_dl_new_object (char *realname, const char *libname,
int type, struct link_map *loader, int type, struct link_map *loader,
int mode, Lmid_t nsid) int mode, Lmid_t nsid)
internal_function attribute_hidden; attribute_hidden;
/* Relocate the given object (if it hasn't already been). /* Relocate the given object (if it hasn't already been).
SCOPE is passed to _dl_lookup_symbol in symbol lookups. SCOPE is passed to _dl_lookup_symbol in symbol lookups.
@ -933,15 +922,14 @@ extern void _dl_relocate_object (struct link_map *map,
attribute_hidden; attribute_hidden;
/* Protect PT_GNU_RELRO area. */ /* Protect PT_GNU_RELRO area. */
extern void _dl_protect_relro (struct link_map *map) extern void _dl_protect_relro (struct link_map *map) attribute_hidden;
internal_function attribute_hidden;
/* Call _dl_signal_error with a message about an unhandled reloc type. /* Call _dl_signal_error with a message about an unhandled reloc type.
TYPE is the result of ELFW(R_TYPE) (r_info), i.e. an R_<CPU>_* value. TYPE is the result of ELFW(R_TYPE) (r_info), i.e. an R_<CPU>_* value.
PLT is nonzero if this was a PLT reloc; it just affects the message. */ PLT is nonzero if this was a PLT reloc; it just affects the message. */
extern void _dl_reloc_bad_type (struct link_map *map, extern void _dl_reloc_bad_type (struct link_map *map,
unsigned int type, int plt) unsigned int type, int plt)
internal_function attribute_hidden __attribute__ ((__noreturn__)); attribute_hidden __attribute__ ((__noreturn__));
/* Resolve conflicts if prelinking. */ /* Resolve conflicts if prelinking. */
extern void _dl_resolve_conflicts (struct link_map *l, extern void _dl_resolve_conflicts (struct link_map *l,
@ -952,14 +940,12 @@ extern void _dl_resolve_conflicts (struct link_map *l,
/* Check the version dependencies of all objects available through /* Check the version dependencies of all objects available through
MAP. If VERBOSE print some more diagnostics. */ MAP. If VERBOSE print some more diagnostics. */
extern int _dl_check_all_versions (struct link_map *map, int verbose, extern int _dl_check_all_versions (struct link_map *map, int verbose,
int trace_mode) int trace_mode) attribute_hidden;
internal_function attribute_hidden;
/* Check the version dependencies for MAP. If VERBOSE print some more /* Check the version dependencies for MAP. If VERBOSE print some more
diagnostics. */ diagnostics. */
extern int _dl_check_map_versions (struct link_map *map, int verbose, extern int _dl_check_map_versions (struct link_map *map, int verbose,
int trace_mode) int trace_mode) attribute_hidden;
internal_function attribute_hidden;
/* Initialize the object in SCOPE by calling the constructors with /* Initialize the object in SCOPE by calling the constructors with
ARGC, ARGV, and ENV as the parameters. */ ARGC, ARGV, and ENV as the parameters. */
@ -972,8 +958,7 @@ extern void _dl_fini (void);
/* Sort array MAPS according to dependencies of the contained objects. */ /* Sort array MAPS according to dependencies of the contained objects. */
extern void _dl_sort_fini (struct link_map **maps, size_t nmaps, char *used, extern void _dl_sort_fini (struct link_map **maps, size_t nmaps, char *used,
Lmid_t ns) Lmid_t ns) attribute_hidden;
internal_function attribute_hidden;
/* The dynamic linker calls this function before and having changing /* The dynamic linker calls this function before and having changing
any shared object mappings. The `r_state' member of `struct r_debug' any shared object mappings. The `r_state' member of `struct r_debug'
@ -986,15 +971,14 @@ rtld_hidden_proto (_dl_debug_state)
argument is the run-time load address of the dynamic linker, to be put argument is the run-time load address of the dynamic linker, to be put
in the `r_ldbase' member. Returns the address of the structure. */ in the `r_ldbase' member. Returns the address of the structure. */
extern struct r_debug *_dl_debug_initialize (ElfW(Addr) ldbase, Lmid_t ns) extern struct r_debug *_dl_debug_initialize (ElfW(Addr) ldbase, Lmid_t ns)
internal_function attribute_hidden; attribute_hidden;
/* Initialize the basic data structure for the search paths. */ /* Initialize the basic data structure for the search paths. */
extern void _dl_init_paths (const char *library_path) extern void _dl_init_paths (const char *library_path) attribute_hidden;
internal_function attribute_hidden;
/* Gather the information needed to install the profiling tables and start /* Gather the information needed to install the profiling tables and start
the timers. */ the timers. */
extern void _dl_start_profile (void) internal_function attribute_hidden; extern void _dl_start_profile (void) attribute_hidden;
/* The actual functions used to keep book on the calls. */ /* The actual functions used to keep book on the calls. */
extern void _dl_mcount (ElfW(Addr) frompc, ElfW(Addr) selfpc); extern void _dl_mcount (ElfW(Addr) frompc, ElfW(Addr) selfpc);
@ -1006,25 +990,22 @@ rtld_hidden_proto (_dl_mcount)
extern void _dl_mcount_wrapper (void *selfpc); extern void _dl_mcount_wrapper (void *selfpc);
/* Show the members of the auxiliary array passed up from the kernel. */ /* Show the members of the auxiliary array passed up from the kernel. */
extern void _dl_show_auxv (void) extern void _dl_show_auxv (void) attribute_hidden;
internal_function attribute_hidden;
/* Return all environment variables starting with `LD_', one after the /* Return all environment variables starting with `LD_', one after the
other. */ other. */
extern char *_dl_next_ld_env_entry (char ***position) extern char *_dl_next_ld_env_entry (char ***position) attribute_hidden;
internal_function attribute_hidden;
/* Return an array with the names of the important hardware capabilities. */ /* Return an array with the names of the important hardware capabilities. */
extern const struct r_strlenpair *_dl_important_hwcaps (const char *platform, extern const struct r_strlenpair *_dl_important_hwcaps (const char *platform,
size_t paltform_len, size_t paltform_len,
size_t *sz, size_t *sz,
size_t *max_capstrlen) size_t *max_capstrlen)
internal_function attribute_hidden; attribute_hidden;
/* Look up NAME in ld.so.cache and return the file name stored there, /* Look up NAME in ld.so.cache and return the file name stored there,
or null if none is found. Caller must free returned string. */ or null if none is found. Caller must free returned string. */
extern char *_dl_load_cache_lookup (const char *name) extern char *_dl_load_cache_lookup (const char *name) attribute_hidden;
internal_function attribute_hidden;
/* If the system does not support MAP_COPY we cannot leave the file open /* If the system does not support MAP_COPY we cannot leave the file open
all the time since this would create problems when the file is replaced. all the time since this would create problems when the file is replaced.
@ -1036,8 +1017,7 @@ extern void _dl_unload_cache (void) attribute_hidden;
most convenient manner available. *SIZEP gets the size of the most convenient manner available. *SIZEP gets the size of the
file. On error MAP_FAILED is returned. */ file. On error MAP_FAILED is returned. */
extern void *_dl_sysdep_read_whole_file (const char *file, size_t *sizep, extern void *_dl_sysdep_read_whole_file (const char *file, size_t *sizep,
int prot) int prot) attribute_hidden;
internal_function attribute_hidden;
/* System-specific function to do initial startup for the dynamic linker. /* System-specific function to do initial startup for the dynamic linker.
After this, file access calls and getenv must work. This is responsible After this, file access calls and getenv must work. This is responsible
@ -1050,18 +1030,17 @@ extern ElfW(Addr) _dl_sysdep_start (void **start_argptr,
ElfW(auxv_t) *auxv)) ElfW(auxv_t) *auxv))
attribute_hidden; attribute_hidden;
extern void _dl_sysdep_start_cleanup (void) extern void _dl_sysdep_start_cleanup (void) attribute_hidden;
internal_function attribute_hidden;
/* Determine next available module ID. */ /* Determine next available module ID. */
extern size_t _dl_next_tls_modid (void) internal_function attribute_hidden; extern size_t _dl_next_tls_modid (void) attribute_hidden;
/* Count the modules with TLS segments. */ /* Count the modules with TLS segments. */
extern size_t _dl_count_modids (void) internal_function attribute_hidden; extern size_t _dl_count_modids (void) attribute_hidden;
/* Calculate offset of the TLS blocks in the static TLS block. */ /* Calculate offset of the TLS blocks in the static TLS block. */
extern void _dl_determine_tlsoffset (void) internal_function attribute_hidden; extern void _dl_determine_tlsoffset (void) attribute_hidden;
#ifndef SHARED #ifndef SHARED
/* Set up the TCB for statically linked applications. This is called /* Set up the TCB for statically linked applications. This is called
@ -1079,16 +1058,13 @@ extern void *_dl_allocate_tls (void *mem);
rtld_hidden_proto (_dl_allocate_tls) rtld_hidden_proto (_dl_allocate_tls)
/* Get size and alignment requirements of the static TLS block. */ /* Get size and alignment requirements of the static TLS block. */
extern void _dl_get_tls_static_info (size_t *sizep, size_t *alignp) extern void _dl_get_tls_static_info (size_t *sizep, size_t *alignp);
internal_function;
extern void _dl_allocate_static_tls (struct link_map *map) extern void _dl_allocate_static_tls (struct link_map *map) attribute_hidden;
internal_function attribute_hidden;
/* These are internal entry points to the two halves of _dl_allocate_tls, /* These are internal entry points to the two halves of _dl_allocate_tls,
only used within rtld.c itself at startup time. */ only used within rtld.c itself at startup time. */
extern void *_dl_allocate_tls_storage (void) extern void *_dl_allocate_tls_storage (void) attribute_hidden;
internal_function attribute_hidden;
extern void *_dl_allocate_tls_init (void *); extern void *_dl_allocate_tls_init (void *);
rtld_hidden_proto (_dl_allocate_tls_init) rtld_hidden_proto (_dl_allocate_tls_init)
@ -1137,7 +1113,7 @@ extern struct link_map *_dl_update_slotinfo (unsigned long int req_modid)
extern void *_dl_tls_get_addr_soft (struct link_map *l) attribute_hidden; extern void *_dl_tls_get_addr_soft (struct link_map *l) attribute_hidden;
extern int _dl_addr_inside_object (struct link_map *l, const ElfW(Addr) addr) extern int _dl_addr_inside_object (struct link_map *l, const ElfW(Addr) addr)
internal_function attribute_hidden; attribute_hidden;
/* Show show of an object. */ /* Show show of an object. */
extern void _dl_show_scope (struct link_map *new, int from) extern void _dl_show_scope (struct link_map *new, int from)
@ -1147,10 +1123,10 @@ extern struct link_map *_dl_find_dso_for_object (const ElfW(Addr) addr);
rtld_hidden_proto (_dl_find_dso_for_object) rtld_hidden_proto (_dl_find_dso_for_object)
/* Initialization which is normally done by the dynamic linker. */ /* Initialization which is normally done by the dynamic linker. */
extern void _dl_non_dynamic_init (void) internal_function; extern void _dl_non_dynamic_init (void);
/* Used by static binaries to check the auxiliary vector. */ /* Used by static binaries to check the auxiliary vector. */
extern void _dl_aux_init (ElfW(auxv_t) *av) internal_function; extern void _dl_aux_init (ElfW(auxv_t) *av);
__END_DECLS __END_DECLS

View File

@ -26,7 +26,6 @@
struct link_map; struct link_map;
extern void _dl_unmap (struct link_map *map) extern void _dl_unmap (struct link_map *map) attribute_hidden;
internal_function attribute_hidden;
#define DL_UNMAP(map) _dl_unmap (map) #define DL_UNMAP(map) _dl_unmap (map)

View File

@ -51,8 +51,7 @@ extern ptrdiff_t attribute_hidden __attribute__ ((regparm (1)))
# ifdef SHARED # ifdef SHARED
extern void *_dl_make_tlsdesc_dynamic (struct link_map *map, extern void *_dl_make_tlsdesc_dynamic (struct link_map *map,
size_t ti_offset) size_t ti_offset) attribute_hidden;
internal_function attribute_hidden;
extern ptrdiff_t attribute_hidden __attribute__ ((regparm (1))) extern ptrdiff_t attribute_hidden __attribute__ ((regparm (1)))
_dl_tlsdesc_dynamic (struct tlsdesc *); _dl_tlsdesc_dynamic (struct tlsdesc *);

View File

@ -256,7 +256,6 @@ _dl_tlsdesc_resolve_hold_fixup (struct tlsdesc volatile *td,
if there is one. */ if there is one. */
void void
internal_function
_dl_unmap (struct link_map *map) _dl_unmap (struct link_map *map)
{ {
_dl_unmap_segments (map); _dl_unmap_segments (map);

View File

@ -277,7 +277,6 @@ fmh(); /* XXX */
} }
void void
internal_function
_dl_sysdep_start_cleanup (void) _dl_sysdep_start_cleanup (void)
{ {
/* Deallocate the reply port and task port rights acquired by /* Deallocate the reply port and task port rights acquired by
@ -645,7 +644,6 @@ _hurd_intr_rpc_mach_msg (mach_msg_header_t *msg,
void void
internal_function
_dl_show_auxv (void) _dl_show_auxv (void)
{ {
/* There is nothing to print. Hurd has no auxiliary vector. */ /* There is nothing to print. Hurd has no auxiliary vector. */

View File

@ -19,7 +19,6 @@
#include <elf/dl-init.c> #include <elf/dl-init.c>
unsigned int unsigned int
internal_function
_dl_nios2_get_gp_value (struct link_map *main_map) _dl_nios2_get_gp_value (struct link_map *main_map)
{ {
ElfW(Dyn) *dyn = main_map->l_ld; ElfW(Dyn) *dyn = main_map->l_ld;

View File

@ -22,6 +22,6 @@
struct link_map; struct link_map;
void internal_function _dl_unmap (struct link_map *map); void _dl_unmap (struct link_map *map);
#define DL_UNMAP(map) _dl_unmap (map) #define DL_UNMAP(map) _dl_unmap (map)

View File

@ -255,7 +255,7 @@ elf_machine_plt_value (struct link_map *map, const ElfW(Rela) *reloc,
} }
/* Support notifying the simulator about new objects. */ /* Support notifying the simulator about new objects. */
void internal_function _dl_after_load (struct link_map *l); void _dl_after_load (struct link_map *l);
#define DL_AFTER_LOAD _dl_after_load #define DL_AFTER_LOAD _dl_after_load
/* Names of the architecture-specific auditing callback functions. */ /* Names of the architecture-specific auditing callback functions. */

View File

@ -94,7 +94,7 @@ dl_realpath (const char *name, char *rpath)
} }
/* Support notifying the simulator about new objects. */ /* Support notifying the simulator about new objects. */
void internal_function void
_dl_after_load (struct link_map *l) _dl_after_load (struct link_map *l)
{ {
int shift; int shift;
@ -151,7 +151,7 @@ sim_dlclose (ElfW(Addr) map_start)
#undef DLPUTC #undef DLPUTC
} }
void internal_function void
_dl_unmap (struct link_map *map) _dl_unmap (struct link_map *map)
{ {
sim_dlclose (map->l_map_start); sim_dlclose (map->l_map_start);

View File

@ -21,7 +21,6 @@
void * void *
internal_function
_dl_vdso_vsym (const char *name, const struct r_found_version *vers) _dl_vdso_vsym (const char *name, const struct r_found_version *vers)
{ {
struct link_map *map = GLRO (dl_sysinfo_map); struct link_map *map = GLRO (dl_sysinfo_map);

View File

@ -48,6 +48,6 @@
/* Functions for resolving symbols in the VDSO link map. */ /* Functions for resolving symbols in the VDSO link map. */
extern void *_dl_vdso_vsym (const char *name, extern void *_dl_vdso_vsym (const char *name,
const struct r_found_version *version) const struct r_found_version *version)
internal_function attribute_hidden; attribute_hidden;
#endif /* dl-vdso.h */ #endif /* dl-vdso.h */

View File

@ -26,7 +26,6 @@
struct link_map; struct link_map;
extern void _dl_unmap (struct link_map *map) extern void _dl_unmap (struct link_map *map) attribute_hidden;
internal_function attribute_hidden;
#define DL_UNMAP(map) _dl_unmap (map) #define DL_UNMAP(map) _dl_unmap (map)

View File

@ -62,7 +62,7 @@ extern ptrdiff_t attribute_hidden
# ifdef SHARED # ifdef SHARED
extern void *_dl_make_tlsdesc_dynamic (struct link_map *map, extern void *_dl_make_tlsdesc_dynamic (struct link_map *map,
size_t ti_offset) size_t ti_offset)
internal_function attribute_hidden; attribute_hidden;
extern ptrdiff_t attribute_hidden _dl_tlsdesc_dynamic(struct tlsdesc *); extern ptrdiff_t attribute_hidden _dl_tlsdesc_dynamic(struct tlsdesc *);
# endif # endif

View File

@ -134,7 +134,6 @@ _dl_tlsdesc_resolve_hold_fixup (struct tlsdesc volatile *td,
if there is one. */ if there is one. */
void void
internal_function
_dl_unmap (struct link_map *map) _dl_unmap (struct link_map *map)
{ {
_dl_unmap_segments (map); _dl_unmap_segments (map);