diff options
author | Ulrich Drepper <drepper@redhat.com> | 2002-02-03 00:31:37 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2002-02-03 00:31:37 +0000 |
commit | 7969407a01a108298ea506e0c37c1d6b7c9d424c (patch) | |
tree | 3c4f570e330a91ce712a574ee2d7ea1e9476c397 /sysdeps/generic/ldsodefs.h | |
parent | 88794e308552d6051453544f8790986314fd9e1c (diff) | |
download | glibc-7969407a01a108298ea506e0c37c1d6b7c9d424c.tar.gz glibc-7969407a01a108298ea506e0c37c1d6b7c9d424c.tar.xz glibc-7969407a01a108298ea506e0c37c1d6b7c9d424c.zip |
Update.
Change ld.so to not use functions which are exported. One cannot interpose them anyway. Use INT() to mark uses, INTDEF() to mark definitions. * include/libc-symbols.h: Define INT and INTDEF. * sysdeps/generic/ldsodefs.h: Declare _dl_debug_printf_internal, _dl_signal_error_internal, _dl_map_object_internal, _dl_map_object_deps_internal, _dl_lookup_symbol_internal, _dl_lookup_versioned_symbol_internal, _dl_relocate_object_internal, _dl_debug_state_internal, _dl_start_profile_internal, and _dl_unload_cache_internal. * include/dlfcn.h: Declare _dl_catch_error_internal. * elf/rtld.c: Use INT for calls to any of the *_internal functions above. Add INTDEF to function definitions. * elf/dl-debug.c: Likewise. * elf/dl-deps.c: Likewise. * elf/dl-dst.h: Likewise. * elf/dl-error.c: Likewise. * elf/dl-fini.c: Likewise. * elf/dl-init.c: Likewise. * elf/dl-load.c: Likewise. * elf/dl-lookup.c: Likewise. * elf/dl-misc.c: Likewise. * elf/dl-open.c: Likewise. * elf/dl-profile.c: Likewise. * elf/dl-reloc.c: Likewise. * elf/dl-runtime.c: Likewise. * elf/dl-version.c: Likewise. * elf/do-lookup.h: Likewise. * sysdeps/generic/dl-cache.c: Likewise. * sysdeps/generic/dl-sysdep.c: Likewise. * sysdeps/alpha/dl-machine.h (RTLD_START): Call _dl_init_internal instead of _dl_init. * sysdeps/arm/dl-machine.h: Likewise. * sysdeps/cris/dl-machine.h: Likewise. * sysdeps/hppa/dl-machine.h: Likewise. * sysdeps/i386/dl-machine.h: Likewise. * sysdeps/ia64/dl-machine.h: Likewise. * sysdeps/m68k/dl-machine.h: Likewise. * sysdeps/mips/dl-machine.h: Likewise. * sysdeps/mips/mips64/dl-machine.h: Likewise. * sysdeps/s390/s390-32/dl-machine.h: Likewise. * sysdeps/s390/s390-64/dl-machine.h: Likewise. * sysdeps/sh/dl-machine.h: Likewise. * sysdeps/sparc/sparc32/dl-machine.h: Likewise. * sysdeps/sparc/sparc64/dl-machine.h: Likewise. * sysdeps/x86_64/dl-machine.h: Likewise. * sysdeps/powerpc/dl-start.S (_dl_start_user): Likewise. * elf/Versions: Don't export _dl_check_all_versions, _dl_sysdep_start, and _dl_debug_initialize.
Diffstat (limited to 'sysdeps/generic/ldsodefs.h')
-rw-r--r-- | sysdeps/generic/ldsodefs.h | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/sysdeps/generic/ldsodefs.h b/sysdeps/generic/ldsodefs.h index be6b172ece..0f63799524 100644 --- a/sysdeps/generic/ldsodefs.h +++ b/sysdeps/generic/ldsodefs.h @@ -352,6 +352,8 @@ extern int _dl_sysdep_open_zero_fill (void); /* dl-sysdep.c */ tag showing the PID. */ extern void _dl_debug_printf (const char *fmt, ...) __attribute__ ((__format__ (__printf__, 1, 2))); +extern void _dl_debug_printf_internal (const char *fmt, ...) + __attribute__ ((__format__ (__printf__, 1, 2))); /* Write message on the debug file descriptor. The parameters are interpreted as for a `printf' call. All the lines buf the first @@ -395,6 +397,11 @@ extern void _dl_signal_error (int errcode, const char *object, const char *occurred, const char *errstring) internal_function __attribute__ ((__noreturn__)); +extern void _dl_signal_error_internal (int errcode, const char *object, + const char *occurred, + const char *errstring) + internal_function + __attribute__ ((__noreturn__)); /* Like _dl_signal_error, but may return when called in the context of _dl_receive_error. */ @@ -420,6 +427,12 @@ extern struct link_map *_dl_map_object (struct link_map *loader, const char *name, int preloaded, int type, int trace_mode, int mode) internal_function; +extern struct link_map *_dl_map_object_internal (struct link_map *loader, + const char *name, + int preloaded, + int type, int trace_mode, + int mode) + internal_function; /* Call _dl_map_object on the dependencies of MAP, and set up MAP->l_searchlist. PRELOADS points to a vector of NPRELOADS previously @@ -429,6 +442,11 @@ extern void _dl_map_object_deps (struct link_map *map, struct link_map **preloads, unsigned int npreloads, int trace_mode) internal_function; +extern void _dl_map_object_deps_internal (struct link_map *map, + struct link_map **preloads, + unsigned int npreloads, + int trace_mode) + internal_function; /* Cache the locations of MAP's hash table. */ extern void _dl_setup_hash (struct link_map *map) internal_function; @@ -449,6 +467,12 @@ extern lookup_t _dl_lookup_symbol (const char *undef, struct r_scope_elem *symbol_scope[], int type_class, int explicit) internal_function; +extern lookup_t _dl_lookup_symbol_internal (const char *undef, + struct link_map *undef_map, + const ElfW(Sym) **sym, + struct r_scope_elem *symbol_scope[], + int type_class, int explicit) + internal_function; /* Lookup versioned symbol. */ extern lookup_t _dl_lookup_versioned_symbol (const char *undef, @@ -458,6 +482,14 @@ extern lookup_t _dl_lookup_versioned_symbol (const char *undef, const struct r_found_version *version, int type_class, int explicit) internal_function; +extern lookup_t _dl_lookup_versioned_symbol_internal (const char *undef, + struct link_map *undef_map, + const ElfW(Sym) **sym, + struct r_scope_elem *symbol_scope[], + const struct r_found_version *version, + int type_class, + int explicit) + internal_function; /* For handling RTLD_NEXT we must be able to skip shared objects. */ extern lookup_t _dl_lookup_symbol_skip (const char *undef, @@ -493,6 +525,9 @@ extern struct link_map *_dl_new_object (char *realname, const char *libname, extern void _dl_relocate_object (struct link_map *map, struct r_scope_elem *scope[], int lazy, int consider_profiling); +extern void _dl_relocate_object_internal (struct link_map *map, + struct r_scope_elem *scope[], + int lazy, int consider_profiling); /* 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. @@ -532,6 +567,7 @@ extern void _dl_fini (void) internal_function; says what change is taking place. This function's address is the value of the `r_brk' member. */ extern void _dl_debug_state (void); +extern void _dl_debug_state_internal (void); /* Initialize `struct r_debug' if it has not already been done. The argument is the run-time load address of the dynamic linker, to be put @@ -546,6 +582,9 @@ extern void _dl_init_paths (const char *library_path) internal_function; the timers. */ extern void _dl_start_profile (struct link_map *map, const char *output_dir) internal_function; +extern void _dl_start_profile_internal (struct link_map *map, + const char *output_dir) + internal_function; /* The actual functions used to keep book on the calls. */ extern void _dl_mcount (ElfW(Addr) frompc, ElfW(Addr) selfpc); @@ -579,6 +618,7 @@ extern const char *_dl_load_cache_lookup (const char *name) Therefore we provide this function to close the file and open it again once needed. */ extern void _dl_unload_cache (void); +extern void _dl_unload_cache_internal (void); /* System-dependent function to read a file's whole contents in the most convenient manner available. *SIZEP gets the size of the |