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;
  }
}

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;
  }
}