mirror of
https://sourceware.org/git/glibc.git
synced 2025-01-27 10:13:39 +08:00
elf: Remove internal_function attribute
This commit is contained in:
parent
8d2f9410d5
commit
17e00cc69e
75
ChangeLog
75
ChangeLog
@ -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>
|
||||
|
||||
* gmon/gmon.c (write_hist, write_call_graph, write_bb_counts):
|
||||
|
@ -61,7 +61,6 @@
|
||||
|
||||
*/
|
||||
int
|
||||
internal_function
|
||||
_dl_addr_inside_object (struct link_map *l, const ElfW(Addr) addr)
|
||||
{
|
||||
int n = l->l_phnum;
|
||||
|
@ -134,7 +134,6 @@ while (0)
|
||||
|
||||
|
||||
int
|
||||
internal_function
|
||||
_dl_cache_libcmp (const char *p1, const char *p2)
|
||||
{
|
||||
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
|
||||
any data in the mapping. */
|
||||
char *
|
||||
internal_function
|
||||
_dl_load_cache_lookup (const char *name)
|
||||
{
|
||||
int left, right, middle;
|
||||
|
@ -42,7 +42,6 @@ struct r_debug _r_debug;
|
||||
_r_debug.r_ldbase. Returns the address of _r_debug. */
|
||||
|
||||
struct r_debug *
|
||||
internal_function
|
||||
_dl_debug_initialize (ElfW(Addr) ldbase, Lmid_t ns)
|
||||
{
|
||||
struct r_debug *r;
|
||||
|
@ -68,7 +68,6 @@ openaux (void *a)
|
||||
}
|
||||
|
||||
static ptrdiff_t
|
||||
internal_function
|
||||
_dl_build_local_scope (struct link_map **list, struct link_map *map)
|
||||
{
|
||||
struct link_map **p = list;
|
||||
@ -153,7 +152,6 @@ preload (struct list *known, unsigned int *nlist, struct link_map *map)
|
||||
}
|
||||
|
||||
void
|
||||
internal_function
|
||||
_dl_map_object_deps (struct link_map *map,
|
||||
struct link_map **preloads, unsigned int npreloads,
|
||||
int trace_mode, int open_mode)
|
||||
|
@ -24,7 +24,6 @@
|
||||
/* Walk through the environment of the process and return all entries
|
||||
starting with `LD_'. */
|
||||
char *
|
||||
internal_function
|
||||
_dl_next_ld_env_entry (char ***position)
|
||||
{
|
||||
char **current = *position;
|
||||
|
@ -23,7 +23,6 @@
|
||||
so as to mprotect it. */
|
||||
|
||||
int
|
||||
internal_function
|
||||
_dl_make_stack_executable (void **stack_endp)
|
||||
{
|
||||
return ENOSYS;
|
||||
|
@ -26,7 +26,6 @@ typedef void (*fini_t) (void);
|
||||
|
||||
|
||||
void
|
||||
internal_function
|
||||
_dl_sort_fini (struct link_map **maps, size_t nmaps, char *used, Lmid_t ns)
|
||||
{
|
||||
/* A list of one element need not be sorted. */
|
||||
|
@ -34,7 +34,6 @@
|
||||
|
||||
/* Return an array of useful/necessary hardware capability names. */
|
||||
const struct r_strlenpair *
|
||||
internal_function
|
||||
_dl_important_hwcaps (const char *platform, size_t platform_len, size_t *sz,
|
||||
size_t *max_capstrlen)
|
||||
{
|
||||
|
@ -36,7 +36,6 @@ extern char **__environ;
|
||||
Much of this code came from gconv_dl.c with slight modifications. */
|
||||
|
||||
static int
|
||||
internal_function
|
||||
dlerror_run (void (*operate) (void *), void *args)
|
||||
{
|
||||
const char *objname;
|
||||
|
@ -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.
|
||||
Returns false if the object already had this name. */
|
||||
static void
|
||||
internal_function
|
||||
add_name_to_object (struct link_map *l, const char *name)
|
||||
{
|
||||
struct libname_list *lnp, *lastp;
|
||||
@ -536,7 +535,6 @@ fillin_rpath (char *rpath, struct r_search_path_elem **result, const char *sep,
|
||||
|
||||
|
||||
static bool
|
||||
internal_function
|
||||
decompose_rpath (struct r_search_path_struct *sps,
|
||||
const char *rpath, struct link_map *l, const char *what)
|
||||
{
|
||||
@ -656,7 +654,6 @@ cache_rpath (struct link_map *l,
|
||||
|
||||
|
||||
void
|
||||
internal_function
|
||||
_dl_init_paths (const char *llp)
|
||||
{
|
||||
size_t idx;
|
||||
@ -1887,7 +1884,6 @@ open_path (const char *name, size_t namelen, int mode,
|
||||
/* Map in the shared object file NAME. */
|
||||
|
||||
struct link_map *
|
||||
internal_function
|
||||
_dl_map_object (struct link_map *loader, const char *name,
|
||||
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
|
||||
internal_function
|
||||
_dl_rtld_di_serinfo (struct link_map *loader, Dl_serinfo *si, bool counting)
|
||||
{
|
||||
if (counting)
|
||||
|
@ -560,7 +560,6 @@ dl_new_hash (const char *s)
|
||||
|
||||
/* Add extra dependency on MAP to UNDEF_MAP. */
|
||||
static int
|
||||
internal_function
|
||||
add_dependency (struct link_map *undef_map, struct link_map *map, int flags)
|
||||
{
|
||||
struct link_map *runp;
|
||||
@ -770,7 +769,6 @@ add_dependency (struct link_map *undef_map, struct link_map *map, int flags)
|
||||
}
|
||||
|
||||
static void
|
||||
internal_function
|
||||
_dl_debug_bindings (const char *undef_name, struct link_map *undef_map,
|
||||
const ElfW(Sym) **ref, struct sym_val *value,
|
||||
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
|
||||
code might create a thread which can throw off all the scope locking. */
|
||||
lookup_t
|
||||
internal_function
|
||||
_dl_lookup_symbol_x (const char *undef_name, struct link_map *undef_map,
|
||||
const ElfW(Sym) **ref,
|
||||
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. */
|
||||
|
||||
void
|
||||
internal_function
|
||||
_dl_setup_hash (struct link_map *map)
|
||||
{
|
||||
Elf_Symndx *hash;
|
||||
@ -979,7 +975,6 @@ _dl_setup_hash (struct link_map *map)
|
||||
|
||||
|
||||
static void
|
||||
internal_function
|
||||
_dl_debug_bindings (const char *undef_name, struct link_map *undef_map,
|
||||
const ElfW(Sym) **ref, struct sym_val *value,
|
||||
const struct r_found_version *version, int type_class,
|
||||
|
@ -40,7 +40,6 @@
|
||||
is returned. */
|
||||
|
||||
void *
|
||||
internal_function
|
||||
_dl_sysdep_read_whole_file (const char *file, size_t *sizep, int prot)
|
||||
{
|
||||
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. */
|
||||
int
|
||||
internal_function
|
||||
_dl_name_match_p (const char *name, const struct link_map *map)
|
||||
{
|
||||
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
|
||||
internal_function
|
||||
_dl_higher_prime_number (unsigned long int n)
|
||||
{
|
||||
/* 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. */
|
||||
|
||||
uint64_t
|
||||
internal_function
|
||||
_dl_strtoul (const char *nptr, char **endptr)
|
||||
{
|
||||
uint64_t result = 0;
|
||||
|
@ -27,7 +27,6 @@
|
||||
|
||||
/* Add the new link_map NEW to the end of the namespace list. */
|
||||
void
|
||||
internal_function
|
||||
_dl_add_to_namespace_list (struct link_map *new, Lmid_t nsid)
|
||||
{
|
||||
/* 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,
|
||||
and enter it into the _dl_loaded list. */
|
||||
struct link_map *
|
||||
internal_function
|
||||
_dl_new_object (char *realname, const char *libname, int type,
|
||||
struct link_map *loader, int mode, Lmid_t nsid)
|
||||
{
|
||||
|
@ -180,7 +180,6 @@ static unsigned int log_hashfraction;
|
||||
/* Set up profiling data to profile object desribed by MAP. The output
|
||||
file is found (or created) in OUTPUT_DIR. */
|
||||
void
|
||||
internal_function
|
||||
_dl_start_profile (void)
|
||||
{
|
||||
char *filename;
|
||||
|
@ -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
|
||||
@ -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)
|
||||
{
|
||||
ElfW(Addr) start = ALIGN_DOWN((l->l_addr
|
||||
@ -328,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];
|
||||
|
@ -221,7 +221,6 @@ __rtld_lock_define_initialized_recursive (, _dl_load_write_lock)
|
||||
int _dl_clktck;
|
||||
|
||||
void
|
||||
internal_function
|
||||
_dl_aux_init (ElfW(auxv_t) *av)
|
||||
{
|
||||
int seen = 0;
|
||||
@ -305,7 +304,6 @@ _dl_aux_init (ElfW(auxv_t) *av)
|
||||
|
||||
|
||||
void
|
||||
internal_function
|
||||
_dl_non_dynamic_init (void)
|
||||
{
|
||||
_dl_main_map.l_origin = _dl_get_origin ();
|
||||
|
@ -41,7 +41,6 @@
|
||||
/* Return the symbol address given the map of the module it is in and
|
||||
the symbol record. This is used in dl-sym.c. */
|
||||
static void *
|
||||
internal_function
|
||||
_dl_tls_symaddr (struct link_map *map, const ElfW(Sym) *ref)
|
||||
{
|
||||
# ifndef DONT_USE_TLS_INDEX
|
||||
@ -83,7 +82,6 @@ call_dl_lookup (void *ptr)
|
||||
|
||||
|
||||
static void *
|
||||
internal_function
|
||||
do_sym (void *handle, const char *name, void *who,
|
||||
struct r_found_version *vers, int flags)
|
||||
{
|
||||
|
@ -255,13 +255,11 @@ _dl_sysdep_start (void **start_argptr,
|
||||
}
|
||||
|
||||
void
|
||||
internal_function
|
||||
_dl_sysdep_start_cleanup (void)
|
||||
{
|
||||
}
|
||||
|
||||
void
|
||||
internal_function
|
||||
_dl_show_auxv (void)
|
||||
{
|
||||
char buf[64];
|
||||
|
@ -44,7 +44,6 @@ oom (void)
|
||||
|
||||
|
||||
size_t
|
||||
internal_function
|
||||
_dl_next_tls_modid (void)
|
||||
{
|
||||
size_t result;
|
||||
@ -105,7 +104,6 @@ _dl_next_tls_modid (void)
|
||||
|
||||
|
||||
size_t
|
||||
internal_function
|
||||
_dl_count_modids (void)
|
||||
{
|
||||
/* 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
|
||||
void
|
||||
internal_function
|
||||
_dl_determine_tlsoffset (void)
|
||||
{
|
||||
size_t max_align = TLS_TCB_ALIGN;
|
||||
@ -277,7 +274,6 @@ _dl_determine_tlsoffset (void)
|
||||
#endif /* SHARED */
|
||||
|
||||
static void *
|
||||
internal_function
|
||||
allocate_dtv (void *result)
|
||||
{
|
||||
dtv_t *dtv;
|
||||
@ -308,7 +304,6 @@ allocate_dtv (void *result)
|
||||
|
||||
/* Get size and alignment requirements of the static TLS block. */
|
||||
void
|
||||
internal_function
|
||||
_dl_get_tls_static_info (size_t *sizep, size_t *alignp)
|
||||
{
|
||||
*sizep = GL(dl_tls_static_size);
|
||||
@ -333,7 +328,6 @@ tcb_to_pointer_to_free_location (void *tcb)
|
||||
}
|
||||
|
||||
void *
|
||||
internal_function
|
||||
_dl_allocate_tls_storage (void)
|
||||
{
|
||||
void *result;
|
||||
|
@ -51,7 +51,6 @@ find_needed (const char *name, struct link_map *map)
|
||||
|
||||
|
||||
static int
|
||||
internal_function
|
||||
match_symbol (const char *name, Lmid_t ns, ElfW(Word) hash, const char *string,
|
||||
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
|
||||
internal_function
|
||||
_dl_check_map_versions (struct link_map *map, int verbose, int trace_mode)
|
||||
{
|
||||
int result = 0;
|
||||
@ -360,7 +358,6 @@ _dl_check_map_versions (struct link_map *map, int verbose, int trace_mode)
|
||||
|
||||
|
||||
int
|
||||
internal_function
|
||||
_dl_check_all_versions (struct link_map *map, int verbose, int trace_mode)
|
||||
{
|
||||
struct link_map *l;
|
||||
|
@ -42,8 +42,7 @@
|
||||
&& (__builtin_expect ((sym_map)->l_tls_offset != NO_TLS_OFFSET, 1) \
|
||||
|| _dl_try_allocate_static_tls (sym_map) == 0))
|
||||
|
||||
int internal_function attribute_hidden
|
||||
_dl_try_allocate_static_tls (struct link_map *map);
|
||||
int _dl_try_allocate_static_tls (struct link_map *map) attribute_hidden;
|
||||
|
||||
#include <elf.h>
|
||||
|
||||
|
@ -79,7 +79,6 @@ map_generation (struct link_map *map)
|
||||
}
|
||||
|
||||
void *
|
||||
internal_function
|
||||
_dl_make_tlsdesc_dynamic (struct link_map *map, size_t ti_offset)
|
||||
{
|
||||
struct hashtab *ht;
|
||||
|
@ -22,8 +22,7 @@
|
||||
#include <elf.h>
|
||||
#include <libc-symbols.h>
|
||||
|
||||
extern int internal_function _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);
|
||||
|
||||
static int
|
||||
do_test (void)
|
||||
|
@ -58,8 +58,7 @@ extern ptrdiff_t attribute_hidden
|
||||
_dl_tlsdesc_resolve_hold (struct tlsdesc *);
|
||||
|
||||
# ifdef SHARED
|
||||
extern void *internal_function _dl_make_tlsdesc_dynamic (struct link_map *,
|
||||
size_t);
|
||||
extern void *_dl_make_tlsdesc_dynamic (struct link_map *, size_t);
|
||||
|
||||
extern ptrdiff_t attribute_hidden
|
||||
_dl_tlsdesc_dynamic (struct tlsdesc *);
|
||||
|
@ -154,7 +154,6 @@ _dl_tlsdesc_resolve_hold_fixup (struct tlsdesc *td, void *caller)
|
||||
if there is one. */
|
||||
|
||||
void
|
||||
internal_function
|
||||
_dl_unmap (struct link_map *map)
|
||||
{
|
||||
_dl_unmap_segments (map);
|
||||
|
@ -22,6 +22,6 @@
|
||||
|
||||
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)
|
||||
|
@ -53,7 +53,7 @@ elf_machine_dynamic (void)
|
||||
static inline Elf32_Addr __attribute__ ((unused))
|
||||
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 pcrel_addr;
|
||||
asm ("adr %0, _dl_start" : "=r" (pcrel_addr));
|
||||
|
@ -144,7 +144,6 @@ _dl_tlsdesc_resolve_hold_fixup (struct tlsdesc volatile *td,
|
||||
if there is one. */
|
||||
|
||||
void
|
||||
internal_function
|
||||
_dl_unmap (struct link_map *map)
|
||||
{
|
||||
_dl_unmap_segments (map);
|
||||
|
@ -100,5 +100,4 @@ struct cache_file_new
|
||||
(((addr) + __alignof__ (struct cache_file_new) -1) \
|
||||
& (~(__alignof__ (struct cache_file_new) - 1)))
|
||||
|
||||
extern int _dl_cache_libcmp (const char *p1, const char *p2)
|
||||
internal_function attribute_hidden;
|
||||
extern int _dl_cache_libcmp (const char *p1, const char *p2) attribute_hidden;
|
||||
|
@ -248,15 +248,14 @@ struct audit_ifaces
|
||||
|
||||
/* 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)
|
||||
internal_function attribute_hidden;
|
||||
attribute_hidden;
|
||||
|
||||
/* Compute next higher prime number. */
|
||||
extern unsigned long int _dl_higher_prime_number (unsigned long int n)
|
||||
internal_function attribute_hidden;
|
||||
attribute_hidden;
|
||||
|
||||
/* A stripped down strtoul-like implementation. */
|
||||
uint64_t internal_function _dl_strtoul (const char *, char **)
|
||||
internal_function attribute_hidden;
|
||||
uint64_t _dl_strtoul (const char *, char **) attribute_hidden;
|
||||
|
||||
/* Function used as argument for `_dl_receive_error' function. 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 *, ...)
|
||||
__attribute__ ((__format__ (__printf__, 1, 2)));
|
||||
void (*_dl_mcount) (ElfW(Addr) frompc, ElfW(Addr) selfpc);
|
||||
lookup_t (internal_function *_dl_lookup_symbol_x) (const char *,
|
||||
struct link_map *,
|
||||
const ElfW(Sym) **,
|
||||
struct r_scope_elem *[],
|
||||
const struct r_found_version *,
|
||||
int, int,
|
||||
struct link_map *);
|
||||
lookup_t (*_dl_lookup_symbol_x) (const char *, struct link_map *,
|
||||
const ElfW(Sym) **, struct r_scope_elem *[],
|
||||
const struct r_found_version *, int, int,
|
||||
struct link_map *);
|
||||
int (*_dl_check_caller) (const void *, enum allowmask);
|
||||
void *(*_dl_open) (const char *file, int mode, const void *caller_dlopen,
|
||||
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,
|
||||
const char *name,
|
||||
int type, int trace_mode, int mode,
|
||||
Lmid_t nsid)
|
||||
internal_function attribute_hidden;
|
||||
Lmid_t nsid) attribute_hidden;
|
||||
|
||||
/* Call _dl_map_object on the dependencies of MAP, and set up
|
||||
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,
|
||||
unsigned int npreloads, int trace_mode,
|
||||
int open_mode)
|
||||
internal_function attribute_hidden;
|
||||
attribute_hidden;
|
||||
|
||||
/* Cache the locations of MAP's hash table. */
|
||||
extern void _dl_setup_hash (struct link_map *map)
|
||||
internal_function attribute_hidden;
|
||||
extern void _dl_setup_hash (struct link_map *map) attribute_hidden;
|
||||
|
||||
|
||||
/* 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
|
||||
bytes to be used in filling in the result. */
|
||||
extern void _dl_rtld_di_serinfo (struct link_map *loader,
|
||||
Dl_serinfo *si, bool counting)
|
||||
internal_function;
|
||||
Dl_serinfo *si, bool counting);
|
||||
|
||||
|
||||
/* 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,
|
||||
int type_class, int flags,
|
||||
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. */
|
||||
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. */
|
||||
extern struct link_map *_dl_new_object (char *realname, const char *libname,
|
||||
int type, struct link_map *loader,
|
||||
int mode, Lmid_t nsid)
|
||||
internal_function attribute_hidden;
|
||||
attribute_hidden;
|
||||
|
||||
/* Relocate the given object (if it hasn't already been).
|
||||
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;
|
||||
|
||||
/* Protect PT_GNU_RELRO area. */
|
||||
extern void _dl_protect_relro (struct link_map *map)
|
||||
internal_function attribute_hidden;
|
||||
extern void _dl_protect_relro (struct link_map *map) attribute_hidden;
|
||||
|
||||
/* 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.
|
||||
PLT is nonzero if this was a PLT reloc; it just affects the message. */
|
||||
extern void _dl_reloc_bad_type (struct link_map *map,
|
||||
unsigned int type, int plt)
|
||||
internal_function attribute_hidden __attribute__ ((__noreturn__));
|
||||
attribute_hidden __attribute__ ((__noreturn__));
|
||||
|
||||
/* Resolve conflicts if prelinking. */
|
||||
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
|
||||
MAP. If VERBOSE print some more diagnostics. */
|
||||
extern int _dl_check_all_versions (struct link_map *map, int verbose,
|
||||
int trace_mode)
|
||||
internal_function attribute_hidden;
|
||||
int trace_mode) attribute_hidden;
|
||||
|
||||
/* Check the version dependencies for MAP. If VERBOSE print some more
|
||||
diagnostics. */
|
||||
extern int _dl_check_map_versions (struct link_map *map, int verbose,
|
||||
int trace_mode)
|
||||
internal_function attribute_hidden;
|
||||
int trace_mode) attribute_hidden;
|
||||
|
||||
/* Initialize the object in SCOPE by calling the constructors with
|
||||
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. */
|
||||
extern void _dl_sort_fini (struct link_map **maps, size_t nmaps, char *used,
|
||||
Lmid_t ns)
|
||||
internal_function attribute_hidden;
|
||||
Lmid_t ns) attribute_hidden;
|
||||
|
||||
/* The dynamic linker calls this function before and having changing
|
||||
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
|
||||
in the `r_ldbase' member. Returns the address of the structure. */
|
||||
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. */
|
||||
extern void _dl_init_paths (const char *library_path)
|
||||
internal_function attribute_hidden;
|
||||
extern void _dl_init_paths (const char *library_path) attribute_hidden;
|
||||
|
||||
/* Gather the information needed to install the profiling tables and start
|
||||
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. */
|
||||
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);
|
||||
|
||||
/* Show the members of the auxiliary array passed up from the kernel. */
|
||||
extern void _dl_show_auxv (void)
|
||||
internal_function attribute_hidden;
|
||||
extern void _dl_show_auxv (void) attribute_hidden;
|
||||
|
||||
/* Return all environment variables starting with `LD_', one after the
|
||||
other. */
|
||||
extern char *_dl_next_ld_env_entry (char ***position)
|
||||
internal_function attribute_hidden;
|
||||
extern char *_dl_next_ld_env_entry (char ***position) attribute_hidden;
|
||||
|
||||
/* Return an array with the names of the important hardware capabilities. */
|
||||
extern const struct r_strlenpair *_dl_important_hwcaps (const char *platform,
|
||||
size_t paltform_len,
|
||||
size_t *sz,
|
||||
size_t *max_capstrlen)
|
||||
internal_function attribute_hidden;
|
||||
attribute_hidden;
|
||||
|
||||
/* 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. */
|
||||
extern char *_dl_load_cache_lookup (const char *name)
|
||||
internal_function attribute_hidden;
|
||||
extern char *_dl_load_cache_lookup (const char *name) attribute_hidden;
|
||||
|
||||
/* 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.
|
||||
@ -1036,8 +1017,7 @@ extern void _dl_unload_cache (void) attribute_hidden;
|
||||
most convenient manner available. *SIZEP gets the size of the
|
||||
file. On error MAP_FAILED is returned. */
|
||||
extern void *_dl_sysdep_read_whole_file (const char *file, size_t *sizep,
|
||||
int prot)
|
||||
internal_function attribute_hidden;
|
||||
int prot) attribute_hidden;
|
||||
|
||||
/* System-specific function to do initial startup for the dynamic linker.
|
||||
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))
|
||||
attribute_hidden;
|
||||
|
||||
extern void _dl_sysdep_start_cleanup (void)
|
||||
internal_function attribute_hidden;
|
||||
extern void _dl_sysdep_start_cleanup (void) attribute_hidden;
|
||||
|
||||
|
||||
/* 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. */
|
||||
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. */
|
||||
extern void _dl_determine_tlsoffset (void) internal_function attribute_hidden;
|
||||
extern void _dl_determine_tlsoffset (void) attribute_hidden;
|
||||
|
||||
#ifndef SHARED
|
||||
/* 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)
|
||||
|
||||
/* Get size and alignment requirements of the static TLS block. */
|
||||
extern void _dl_get_tls_static_info (size_t *sizep, size_t *alignp)
|
||||
internal_function;
|
||||
extern void _dl_get_tls_static_info (size_t *sizep, size_t *alignp);
|
||||
|
||||
extern void _dl_allocate_static_tls (struct link_map *map)
|
||||
internal_function attribute_hidden;
|
||||
extern void _dl_allocate_static_tls (struct link_map *map) attribute_hidden;
|
||||
|
||||
/* These are internal entry points to the two halves of _dl_allocate_tls,
|
||||
only used within rtld.c itself at startup time. */
|
||||
extern void *_dl_allocate_tls_storage (void)
|
||||
internal_function attribute_hidden;
|
||||
extern void *_dl_allocate_tls_storage (void) attribute_hidden;
|
||||
extern void *_dl_allocate_tls_init (void *);
|
||||
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 int _dl_addr_inside_object (struct link_map *l, const ElfW(Addr) addr)
|
||||
internal_function attribute_hidden;
|
||||
attribute_hidden;
|
||||
|
||||
/* Show show of an object. */
|
||||
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)
|
||||
|
||||
/* 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. */
|
||||
extern void _dl_aux_init (ElfW(auxv_t) *av) internal_function;
|
||||
extern void _dl_aux_init (ElfW(auxv_t) *av);
|
||||
|
||||
|
||||
__END_DECLS
|
||||
|
@ -26,7 +26,6 @@
|
||||
|
||||
struct link_map;
|
||||
|
||||
extern void _dl_unmap (struct link_map *map)
|
||||
internal_function attribute_hidden;
|
||||
extern void _dl_unmap (struct link_map *map) attribute_hidden;
|
||||
|
||||
#define DL_UNMAP(map) _dl_unmap (map)
|
||||
|
@ -51,8 +51,7 @@ extern ptrdiff_t attribute_hidden __attribute__ ((regparm (1)))
|
||||
|
||||
# ifdef SHARED
|
||||
extern void *_dl_make_tlsdesc_dynamic (struct link_map *map,
|
||||
size_t ti_offset)
|
||||
internal_function attribute_hidden;
|
||||
size_t ti_offset) attribute_hidden;
|
||||
|
||||
extern ptrdiff_t attribute_hidden __attribute__ ((regparm (1)))
|
||||
_dl_tlsdesc_dynamic (struct tlsdesc *);
|
||||
|
@ -256,7 +256,6 @@ _dl_tlsdesc_resolve_hold_fixup (struct tlsdesc volatile *td,
|
||||
if there is one. */
|
||||
|
||||
void
|
||||
internal_function
|
||||
_dl_unmap (struct link_map *map)
|
||||
{
|
||||
_dl_unmap_segments (map);
|
||||
|
@ -277,7 +277,6 @@ fmh(); /* XXX */
|
||||
}
|
||||
|
||||
void
|
||||
internal_function
|
||||
_dl_sysdep_start_cleanup (void)
|
||||
{
|
||||
/* 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
|
||||
internal_function
|
||||
_dl_show_auxv (void)
|
||||
{
|
||||
/* There is nothing to print. Hurd has no auxiliary vector. */
|
||||
|
@ -19,7 +19,6 @@
|
||||
#include <elf/dl-init.c>
|
||||
|
||||
unsigned int
|
||||
internal_function
|
||||
_dl_nios2_get_gp_value (struct link_map *main_map)
|
||||
{
|
||||
ElfW(Dyn) *dyn = main_map->l_ld;
|
||||
|
@ -22,6 +22,6 @@
|
||||
|
||||
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)
|
||||
|
@ -255,7 +255,7 @@ elf_machine_plt_value (struct link_map *map, const ElfW(Rela) *reloc,
|
||||
}
|
||||
|
||||
/* 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
|
||||
|
||||
/* Names of the architecture-specific auditing callback functions. */
|
||||
|
@ -94,7 +94,7 @@ dl_realpath (const char *name, char *rpath)
|
||||
}
|
||||
|
||||
/* Support notifying the simulator about new objects. */
|
||||
void internal_function
|
||||
void
|
||||
_dl_after_load (struct link_map *l)
|
||||
{
|
||||
int shift;
|
||||
@ -151,7 +151,7 @@ sim_dlclose (ElfW(Addr) map_start)
|
||||
#undef DLPUTC
|
||||
}
|
||||
|
||||
void internal_function
|
||||
void
|
||||
_dl_unmap (struct link_map *map)
|
||||
{
|
||||
sim_dlclose (map->l_map_start);
|
||||
|
@ -21,7 +21,6 @@
|
||||
|
||||
|
||||
void *
|
||||
internal_function
|
||||
_dl_vdso_vsym (const char *name, const struct r_found_version *vers)
|
||||
{
|
||||
struct link_map *map = GLRO (dl_sysinfo_map);
|
||||
|
@ -48,6 +48,6 @@
|
||||
/* Functions for resolving symbols in the VDSO link map. */
|
||||
extern void *_dl_vdso_vsym (const char *name,
|
||||
const struct r_found_version *version)
|
||||
internal_function attribute_hidden;
|
||||
attribute_hidden;
|
||||
|
||||
#endif /* dl-vdso.h */
|
||||
|
@ -26,7 +26,6 @@
|
||||
|
||||
struct link_map;
|
||||
|
||||
extern void _dl_unmap (struct link_map *map)
|
||||
internal_function attribute_hidden;
|
||||
extern void _dl_unmap (struct link_map *map) attribute_hidden;
|
||||
|
||||
#define DL_UNMAP(map) _dl_unmap (map)
|
||||
|
@ -62,7 +62,7 @@ extern ptrdiff_t attribute_hidden
|
||||
# ifdef SHARED
|
||||
extern void *_dl_make_tlsdesc_dynamic (struct link_map *map,
|
||||
size_t ti_offset)
|
||||
internal_function attribute_hidden;
|
||||
attribute_hidden;
|
||||
|
||||
extern ptrdiff_t attribute_hidden _dl_tlsdesc_dynamic(struct tlsdesc *);
|
||||
# endif
|
||||
|
@ -134,7 +134,6 @@ _dl_tlsdesc_resolve_hold_fixup (struct tlsdesc volatile *td,
|
||||
if there is one. */
|
||||
|
||||
void
|
||||
internal_function
|
||||
_dl_unmap (struct link_map *map)
|
||||
{
|
||||
_dl_unmap_segments (map);
|
||||
|
Loading…
Reference in New Issue
Block a user