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;
    # Pointer protection.
    __pointer_chk_guard;
  }
}
