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