mirror of
git://sourceware.org/git/glibc.git
synced 2024-11-21 01:12:26 +08:00
35f1e82763
* configure.in: Add --enable-stackguard-randomization option. (ENABLE_STACKGUARD_RANDOMIZE): New define. * config.h.in (ENABLE_STACKGUARD_RANDOMIZE): Add. * sysdeps/unix/sysv/linux/dl-osinfo.h: Include stdint.h. (_dl_setup_stack_chk_guard): New inline function. * sysdeps/generic/dl-osinfo.h: Include stdint.h. (_dl_setup_stack_chk_guard): New inline function. * elf/rtld.c (__stack_chk_guard): New variable. (dl_main): Remove all traces of TLS_INIT_TP_EXPENSIVE. Set __stack_chk_guard to _dl_setup_stack_chk_guard (), use THREAD_SET_STACK_GUARD if defined. * elf/Versions (ld): Export __stack_chk_guard@@GLIBC_2.4. * sysdeps/generic/libc-start.c (__stack_chk_guard): New variable. (__libc_start_main): Set __stack_chk_guard to _dl_setup_stack_chk_guard (), use THREAD_SET_STACK_GUARD if defined. * sysdeps/generic/libc-tls.c (__libc_setup_tls): Remove all traces of TLS_INIT_TP_EXPENSIVE. * debug/Versions (libc): Export __stack_chk_fail@@GLIBC_2.4. * debug/Makefile (routines): Add stack_chk_fail. (static-only-routines): Add stack_chk_fail_local. * debug/stack_chk_fail_local.c: New file. * debug/stack_chk_fail.c: New file. * elf/Makefile: Add rules to build and run tst-stackguard1{,-static} tests. * elf/tst-stackguard1.c: New file. * elf/tst-stackguard1-static.c: New file. * elf/stackguard-macros.h: New file.
65 lines
1.4 KiB
Plaintext
65 lines
1.4 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_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;
|
|
# historically used by Garbage Collectors
|
|
__libc_stack_end;
|
|
}
|
|
GLIBC_2.3 {
|
|
# runtime interface to TLS
|
|
__tls_get_addr;
|
|
}
|
|
GLIBC_2.4 {
|
|
# stack canary
|
|
__stack_chk_guard;
|
|
}
|
|
GLIBC_PRIVATE {
|
|
# Those are in the dynamic linker, but used by libc.so.
|
|
__libc_enable_secure;
|
|
_dl_argv;
|
|
_dl_out_of_memory;
|
|
_dl_starting_up;
|
|
_rtld_global; _rtld_global_ro;
|
|
_dl_allocate_tls; _dl_deallocate_tls;
|
|
_dl_get_tls_static_info; _dl_allocate_tls_init;
|
|
_dl_tls_setup; _dl_rtld_di_serinfo;
|
|
_dl_make_stack_executable;
|
|
# Only here for gdb while a better method is developed.
|
|
_dl_debug_state;
|
|
}
|
|
}
|