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):
Remove internal_function.
* sysdeps/arm/machine-gmon.h (mcount_internal, _MCOUNT_DECL):
*/
int
-internal_function
_dl_addr_inside_object (struct link_map *l, const ElfW(Addr) addr)
{
int n = l->l_phnum;
int
-internal_function
_dl_cache_libcmp (const char *p1, const char *p2)
{
while (*p1 != '\0')
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;
_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;
}
static ptrdiff_t
-internal_function
_dl_build_local_scope (struct link_map **list, struct link_map *map)
{
struct link_map **p = list;
}
void
-internal_function
_dl_map_object_deps (struct link_map *map,
struct link_map **preloads, unsigned int npreloads,
int trace_mode, int open_mode)
/* 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;
so as to mprotect it. */
int
-internal_function
_dl_make_stack_executable (void **stack_endp)
{
return ENOSYS;
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. */
/* 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)
{
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;
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;
static bool
-internal_function
decompose_rpath (struct r_search_path_struct *sps,
const char *rpath, struct link_map *l, const char *what)
{
void
-internal_function
_dl_init_paths (const char *llp)
{
size_t idx;
/* 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)
{
}
void
-internal_function
_dl_rtld_di_serinfo (struct link_map *loader, Dl_serinfo *si, bool counting)
{
if (counting)
/* 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;
}
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,
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[],
/* Cache the location of MAP's hash table. */
void
-internal_function
_dl_setup_hash (struct link_map *map)
{
Elf_Symndx *hash;
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,
is returned. */
void *
-internal_function
_dl_sysdep_read_whole_file (const char *file, size_t *sizep, int prot)
{
void *result = MAP_FAILED;
/* 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)
unsigned long int
-internal_function
_dl_higher_prime_number (unsigned long int n)
{
/* These are primes that are near, but slightly smaller than, a
called before errno may have been set up. */
uint64_t
-internal_function
_dl_strtoul (const char *nptr, char **endptr)
{
uint64_t result = 0;
/* 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. */
/* 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)
{
/* 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;
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
}
void
-internal_function __attribute_noinline__
+__attribute_noinline__
_dl_allocate_static_tls (struct link_map *map)
{
if (map->l_tls_offset == FORCED_DYNAMIC_TLS_OFFSET
}
-void internal_function
+void
_dl_protect_relro (struct link_map *l)
{
ElfW(Addr) start = ALIGN_DOWN((l->l_addr
}
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];
int _dl_clktck;
void
-internal_function
_dl_aux_init (ElfW(auxv_t) *av)
{
int seen = 0;
void
-internal_function
_dl_non_dynamic_init (void)
{
_dl_main_map.l_origin = _dl_get_origin ();
/* 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
static void *
-internal_function
do_sym (void *handle, const char *name, void *who,
struct r_found_version *vers, int flags)
{
}
void
-internal_function
_dl_sysdep_start_cleanup (void)
{
}
void
-internal_function
_dl_show_auxv (void)
{
char buf[64];
size_t
-internal_function
_dl_next_tls_modid (void)
{
size_t result;
size_t
-internal_function
_dl_count_modids (void)
{
/* It is rare that we have gaps; see elf/dl-open.c (_dl_open) where
#ifdef SHARED
void
-internal_function
_dl_determine_tlsoffset (void)
{
size_t max_align = TLS_TCB_ALIGN;
#endif /* SHARED */
static void *
-internal_function
allocate_dtv (void *result)
{
dtv_t *dtv;
/* 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);
}
void *
-internal_function
_dl_allocate_tls_storage (void)
{
void *result;
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)
{
int
-internal_function
_dl_check_map_versions (struct link_map *map, int verbose, int trace_mode)
{
int result = 0;
int
-internal_function
_dl_check_all_versions (struct link_map *map, int verbose, int trace_mode)
{
struct link_map *l;
&& (__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>
}
void *
-internal_function
_dl_make_tlsdesc_dynamic (struct link_map *map, size_t ti_offset)
{
struct hashtab *ht;
#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)
_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 *);
if there is one. */
void
-internal_function
_dl_unmap (struct link_map *map)
{
_dl_unmap_segments (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)
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));
if there is one. */
void
-internal_function
_dl_unmap (struct link_map *map)
{
_dl_unmap_segments (map);
(((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;
/* 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
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[]);
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
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.
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
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.
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,
/* 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. */
/* 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'
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);
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.
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
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
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)
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)
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
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)
# 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 *);
if there is one. */
void
-internal_function
_dl_unmap (struct link_map *map)
{
_dl_unmap_segments (map);
}
void
-internal_function
_dl_sysdep_start_cleanup (void)
{
/* Deallocate the reply port and task port rights acquired by
void
-internal_function
_dl_show_auxv (void)
{
/* There is nothing to print. Hurd has no auxiliary vector. */
#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;
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)
}
/* 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. */
}
/* Support notifying the simulator about new objects. */
-void internal_function
+void
_dl_after_load (struct link_map *l)
{
int shift;
#undef DLPUTC
}
-void internal_function
+void
_dl_unmap (struct link_map *map)
{
sim_dlclose (map->l_map_start);
void *
-internal_function
_dl_vdso_vsym (const char *name, const struct r_found_version *vers)
{
struct link_map *map = GLRO (dl_sysinfo_map);
/* 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 */
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)
# 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
if there is one. */
void
-internal_function
_dl_unmap (struct link_map *map)
{
_dl_unmap_segments (map);