mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-23 17:53:37 +08:00
9acacaa02f
The 2008 edition of POSIX removed h_errno, but some functions still bring in references to the h_errno external symbol. As this symbol is not a part of the public ABI (only __h_errno_location is), this patch fixes this by renaming the GLIBC_PRIVATE TLS symbol to __h_errno. Tested for x86_64 and x86 (testsuite, and comparison of installed shared libraries). Disassembly of all shared libraries using h_errno changes because of the renaming (and changes to associated TLS / GOT offsets in some cases); disassembly of libpthread on x86_64 changes more substantially because the enlargement of .dynsym affects subsequent addresses. [BZ #18520] * inet/herrno.c (h_errno): Rename to __h_errno. (__libc_h_errno): Define as alias of __h_errno not h_errno. * include/netdb.h [IS_IN_LIB && !IS_IN (libc)] (h_errno): Define to __h_errno instead of h_errno. * nptl/herrno.c (h_errno): Rename to __h_errno. (__h_errno_location): Refer to __h_errno not h_errno. * resolv/Versions (h_errno): Rename to __h_errno. * conform/Makefile (test-xfail-XOPEN2K8/grp.h/linknamespace): Remove variable. (test-xfail-XOPEN2K8/pwd.h/linknamespace): Likewise.
101 lines
2.6 KiB
Plaintext
101 lines
2.6 KiB
Plaintext
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;
|
|
}
|
|
}
|