mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-24 22:10:13 +00:00
ecdeaac05f
* sysdeps/generic/ldsodefs.h (struct rtld_global): Add _dl_stack_flags and _dl_make_stack_executable_hook. Declare _dl_make_stack_executable. * elf/rtld.c (_rtld_global): Add initializer for _dl_stack_flags. (dl_main): Reset _dl_stack_flags according to PT_GNU_STACK phdr. Initialize _dl_make_stack_executable_hook. * elf/dl-support.c: Define those new variables. (_dl_non_dynamic_init): Scan phdrs for PT_GNU_STACK. (_dl_phdr): Fix type. * elf/dl-load.c (_dl_map_object_from_fd): Grok PT_GNU_STACK phdr and enable execute permission for the stack if necessary. * sysdeps/generic/dl-execstack.c: New file. * elf/Makefile (dl-routines): Add it. * elf/Versions (ld: GLIBC_PRIVATE): Add _dl_make_stack_executable. * sysdeps/unix/sysv/linux/dl-execstack.c: New file.
60 lines
1.6 KiB
Plaintext
60 lines
1.6 KiB
Plaintext
libc {
|
|
GLIBC_2.0 {
|
|
%ifdef EXPORT_UNWIND_FIND_FDE
|
|
__register_frame_info; __deregister_frame_info;
|
|
%endif
|
|
}
|
|
GLIBC_2.1 {
|
|
# functions used in other libraries
|
|
_dl_mcount_wrapper; _dl_mcount_wrapper_check;
|
|
}
|
|
GLIBC_2.2.4 {
|
|
dl_iterate_phdr;
|
|
}
|
|
%ifdef EXPORT_UNWIND_FIND_FDE
|
|
GCC_3.0 {
|
|
__register_frame_info_bases; __deregister_frame_info_bases;
|
|
__register_frame_info_table_bases; _Unwind_Find_FDE;
|
|
}
|
|
%endif
|
|
GLIBC_PRIVATE {
|
|
# functions used in other libraries
|
|
_dl_open; _dl_close; _dl_addr;
|
|
_dl_sym; _dl_vsym;
|
|
_dl_open_hook;
|
|
__libc_dlopen_mode; __libc_dlsym; __libc_dlclose;
|
|
}
|
|
}
|
|
|
|
ld {
|
|
GLIBC_2.0 {
|
|
# Function from libc.so which must be shared with libc.
|
|
calloc; free; malloc; realloc; __libc_memalign;
|
|
|
|
_r_debug;
|
|
}
|
|
GLIBC_2.1 {
|
|
# functions used in other libraries
|
|
_dl_mcount;
|
|
}
|
|
GLIBC_2.3 {
|
|
# runtime interface to TLS
|
|
__tls_get_addr;
|
|
}
|
|
GLIBC_PRIVATE {
|
|
# Those are in the dynamic linker, but used by libc.so.
|
|
__libc_enable_secure; __libc_stack_end;
|
|
_dl_argv; _dl_catch_error; _dl_check_map_versions;
|
|
_dl_debug_printf; _dl_debug_state; _dl_dst_count;
|
|
_dl_dst_substitute; _dl_init; _dl_lookup_symbol; _dl_lookup_symbol_skip;
|
|
_dl_lookup_versioned_symbol; _dl_lookup_versioned_symbol_skip;
|
|
_dl_map_object; _dl_map_object_deps; _dl_out_of_memory;
|
|
_dl_relocate_object; _dl_signal_error; _dl_start_profile; _dl_starting_up;
|
|
_dl_unload_cache;
|
|
_rtld_global; _dl_tls_symaddr; _dl_allocate_tls; _dl_deallocate_tls;
|
|
_dl_get_tls_static_info; _dl_allocate_tls_init;
|
|
_dl_get_origin; _dl_tls_setup; _dl_rtld_di_serinfo;
|
|
_dl_make_stack_executable;
|
|
}
|
|
}
|