| libc { |
| GLIBC_2.0 { |
| %ifdef EXPORT_UNWIND_FIND_FDE |
| __deregister_frame_info; __register_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 { |
| __deregister_frame_info_bases; __register_frame_info_bases; |
| __register_frame_info_table_bases; _Unwind_Find_FDE; |
| } |
| %endif |
| GLIBC_PRIVATE { |
| # functions used in other libraries |
| _dl_addr; |
| _dl_open_hook; |
| _dl_sym; _dl_vsym; |
| __libc_dlclose; __libc_dlopen_mode; __libc_dlsym; |
| } |
| } |
| |
| ld { |
| GLIBC_2.0 { |
| # Function from libc.so which must be shared with libc. |
| __libc_memalign; calloc; free; malloc; realloc; |
| |
| _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_allocate_tls; _dl_allocate_tls_init; |
| _dl_argv; _dl_find_dso_for_object; _dl_get_tls_static_info; |
| _dl_deallocate_tls; _dl_make_stack_executable; _dl_out_of_memory; |
| _dl_clear_dtv; |
| _dl_rtld_di_serinfo; _dl_starting_up; _dl_tls_setup; |
| _rtld_global; _rtld_global_ro; |
| |
| # Only here for gdb while a better method is developed. |
| _dl_debug_state; |
| |
| # Pointer protection. |
| __pointer_chk_guard; |
| |
| # Google-local |
| _google_dl_debug_state_hook; |
| __google_auxv; |
| |
| # Expose __signal_safe* functions so we can use a different |
| # implementation (Google-local) |
| __signal_safe_calloc; |
| __signal_safe_free; |
| __signal_safe_malloc; |
| __signal_safe_memalign; |
| __signal_safe_realloc; |
| } |
| } |