f55727ca53
* sysdeps/generic/ldsodefs.h: Add declaration for _dl_all_dirs and _dl_all_init_dirs. * include/link.h (struct r_search_path_struct): New. (struct link_map): Use it for l_rpath_dirs and l_runpath_dirs. * elf/Versions [ld] (GLIBC_2.2): Add _dl_all_dirs and _dl_all_init_dirs. * elf/dl-close.c (_dl_close): Free l_rpath_dirs and l_runpath_dirs. * elf/dl-libc.c (free_mem): Free _dl_all_dirs list except elements added at startup time. * elf/dl-load.c: Fix memory handling. r_search_path_struct contains element to remember fact that we can free memory. (all_dirs): Renamed to _dl_all_dirs. Made global. (_dl_init_all_dirs): New variable. (fillin_rpath): Save one malloc call. (decompose_rpath): Change interface. New first parameter points to r_search_path_struct. (_dl_init_paths): Adjust for changes. Mark all memory as not deletable. Set _dl_init_all_paths value. (open_path): Remove may_free_dirs parameter. r_search_path_elem *** parameter replaced with r_search_path_struct *. Information about freeing now contained in r_search_path_struct. (_dl_map_object): Adjust for above changes. * elf/dl-open.c (dl_open_worker): Change format of debug info a bit.
66 lines
1.8 KiB
Plaintext
66 lines
1.8 KiB
Plaintext
libc {
|
|
GLIBC_2.0 {
|
|
# functions used in other libraries
|
|
_dl_open; _dl_close; _dl_addr;
|
|
}
|
|
GLIBC_2.1 {
|
|
# functions used in other libraries
|
|
_dl_mcount_wrapper; _dl_mcount_wrapper_check;
|
|
}
|
|
GLIBC_2.2 {
|
|
# this is defined in ld.so and overridden by libc
|
|
_dl_init_first;
|
|
|
|
# functions used in other libraries
|
|
_dl_sym; _dl_vsym;
|
|
}
|
|
}
|
|
|
|
ld {
|
|
GLIBC_2.0 {
|
|
# global variables
|
|
_dl_debug_impcalls; _dl_debug_fd;
|
|
|
|
# Those are in the dynamic linker, but used by libc.so.
|
|
__libc_enable_secure; _dl_catch_error; _dl_check_all_versions;
|
|
_dl_debug_initialize; _dl_debug_state; _dl_default_scope;
|
|
_dl_global_scope_end; _dl_lookup_symbol;
|
|
_dl_map_object; _dl_map_object_deps; _dl_object_relocation_scope;
|
|
_dl_relocate_object; _dl_signal_error; _dl_starting_up;
|
|
_dl_sysdep_start; _r_debug;
|
|
_dl_global_scope; _dl_lookup_symbol_skip;
|
|
_dl_lookup_versioned_symbol; _dl_lookup_versioned_symbol_skip;
|
|
_dl_debug_message;
|
|
|
|
# Function from libc.so which must be shared with libc.
|
|
calloc; free; malloc; realloc;
|
|
}
|
|
GLIBC_2.1 {
|
|
# global variables
|
|
_dl_profile; _dl_profile_map; _dl_profile_output; _dl_start_profile;
|
|
_dl_loaded; _dl_main_searchlist; _dl_fpu_control; _dl_initial_searchlist;
|
|
_dl_global_scope_alloc; __libc_stack_end;
|
|
|
|
# functions used in other libraries
|
|
_dl_mcount; _dl_unload_cache;
|
|
}
|
|
GLIBC_2.1.1 {
|
|
# global variables
|
|
_dl_lazy; _dl_origin_path; _dl_platformlen;
|
|
|
|
# functions used in other libraries
|
|
_dl_dst_count; _dl_dst_substitute;
|
|
}
|
|
GLIBC_2.2 {
|
|
_dl_debug_files;
|
|
|
|
_dl_init; _dl_load_lock; _dl_argv; _dl_nloaded; _dl_check_map_versions;
|
|
|
|
# this is defined in ld.so and overridden by libc
|
|
_dl_init_first;
|
|
|
|
# variables used elsewhere
|
|
_dl_out_of_memory; _dl_all_dirs; _dl_init_all_dirs;
|
|
}
|
|
}
|