%include <tls.h>

libc {
  GLIBC_2.0 {
    _res;

    # helper functions
    __h_errno_location;

    # functions used in other libraries
    __res_randomid;

    # variables in normal name space
    h_errlist; h_nerr;

    # h*
    herror; hstrerror;

    # r*
    res_init;
  }
  GLIBC_2.2 {
    # r*
    __res_state; __res_init; __res_nclose; __res_ninit; _res_hconf;
  }
  GLIBC_PRIVATE {
    __gai_sigqueue;

    h_errno; __resp;

    __res_maybe_init; __res_iclose;
  }
}

libresolv {
  GLIBC_2.0 {
    _gethtbyaddr; _gethtbyname; _gethtbyname2; _gethtent; _getlong;
    _getshort; _res_opcodes; _res_resultcodes; _sethtent; dn_expand;
    inet_net_ntop; inet_net_pton; inet_neta; res_gethostbyaddr;
    res_gethostbyname; res_gethostbyname2; res_mkquery; res_query;
    res_querydomain; res_search; res_send_setqhook; res_send_setrhook;
    # Variables
    __p_class_syms; __p_type_syms;
    # Private routines shared between libc/net, named, nslookup and others.
    __b64_ntop; __b64_pton;
    __dn_comp;  __dn_count_labels; __dn_skipname;
    __fp_nquery; __fp_query; __fp_resstat; __hostalias;
    __loc_aton; __loc_ntoa;
    __p_cdname; __p_cdnname; __p_class; __p_fqname; __p_fqnname; __p_option;
    __p_query; __p_rr; __p_secstodate; __p_time; __p_type;
    __putlong; __putshort;
    __res_close; __res_dnok; __res_hnok; __res_isourserver; __res_mailok;
    __res_nameinquery; __res_ownok; __res_queriesmatch;
    __res_send;
    __sym_ntop; __sym_ntos; __sym_ston;
  }
  GLIBC_2.2 {
    __dn_expand;
    __res_hostalias; __res_mkquery; __res_nmkquery; __res_nquery;
    __res_nquerydomain; __res_nsearch; __res_nsend; __res_query;
    __res_querydomain; __res_search;
  }
  GLIBC_2.3.2 {
    __p_rcode;
  }
  GLIBC_2.9 {
    ns_msg_getflag;
    ns_get16; ns_get32; ns_put16; ns_put32;
    ns_initparse; ns_skiprr; ns_parserr;
    ns_sprintrr; ns_sprintrrf;
    ns_format_ttl; ns_parse_ttl;
    ns_datetosecs;
    ns_name_ntol; ns_name_ntop; ns_name_pton;
    ns_name_unpack; ns_name_pack;
    ns_name_uncompress; ns_name_compress;
    ns_name_skip; ns_name_rollback;
    ns_samedomain; ns_subdomain; ns_makecanon; ns_samename;
  }
  GLIBC_PRIVATE {
    # Needed in libnss_dns.
    __ns_name_unpack; __ns_name_ntop;
    __ns_get16; __ns_get32;
    __libc_res_nquery; __libc_res_nsearch;
  }
}

libnss_dns {
  GLIBC_PRIVATE {
    _nss_dns_gethostbyaddr_r; _nss_dns_gethostbyname2_r;
    _nss_dns_gethostbyname3_r;
    _nss_dns_gethostbyname_r; _nss_dns_getnetbyaddr_r;
    _nss_dns_getnetbyname_r; _nss_dns_getcanonname_r;
    _nss_dns_gethostbyaddr2_r;
    _nss_dns_gethostbyname4_r;
  }
}

libanl {
  GLIBC_2.2.3 {
    gai_cancel; gai_error; gai_suspend; getaddrinfo_a;
  }
}
