glibc/sysdeps
Torvald Riegel 6f9d4f595e Fix incorrect double-checked locking related to _res_hconf.initialized.
_res_hconf.initialized was not suitable for use in a multi-threaded
environment due to the lack of atomics and memory barriers.  Use of it was
also unnecessary because _res_hconf_init did the right thing by using
__libc_once.  This patch fixes the glibc-internal uses by just calling
_res_hconf_init unconditionally, and switches to a release MO atomic store
for _res_hconf.initialized to fix the glibc side of the synchronization
problem (which will maintain backward compatibility, but cannot fix the
lack of acquire MO on any glibc-external loads).

	[BZ #20477]
	* resolv/res_hconf.c (do_init): Use atomic access.
	* resolv/res_hconf.h: Add comments.
	* nscd/aicache.c (addhstaiX): Call _res_hconf_init unconditionally.
	* nss/getXXbyYY_r.c (REENTRANT_NAME): Likewise.
	* sysdeps/posix/getaddrinfo.c (gaih_inet): Likewise.
2016-08-18 20:53:37 +02:00
..
aarch64 Add fesetexcept: aarch64. 2016-08-16 16:16:57 +00:00
alpha Add fesetexcept: alpha. 2016-08-16 16:17:42 +00:00
arm Add fesetexcept: arm. 2016-08-16 16:18:24 +00:00
generic Support for type-generic libm function implementations libm 2016-08-17 14:06:03 -05:00
gnu Define UDP_ENCAP_* from Linux 4.7 in netinet/udp.h. 2016-08-03 12:13:16 +00:00
hppa Add fesetexcept: hppa. 2016-08-16 16:19:03 +00:00
i386 Add fesetexcept. 2016-08-16 16:16:10 +00:00
ia64 Do not override objects in libc.a in other static libraries [BZ #20452] 2016-08-17 14:57:01 +02:00
ieee754 Get rid of array-bounds warning in __kernel_rem_pio2[f] with gcc 6.1 -O3. 2016-08-18 12:20:35 +02:00
init_array
m68k Add fesetexcept: m68k. 2016-08-16 16:20:33 +00:00
mach Fix recvmsg returning SIGLOST on PF_LOCAL sockets 2016-08-09 01:42:50 +02:00
microblaze Remove atomic_compare_and_exchange_bool_rel. 2016-06-24 23:04:40 +03:00
mips Do not override objects in libc.a in other static libraries [BZ #20452] 2016-08-17 14:57:01 +02:00
nacl Add fesetexcept. 2016-08-16 16:16:10 +00:00
nios2 elf: Consolidate machine-agnostic DTV definitions in <dl-dtv.h> 2016-06-20 14:31:40 +02:00
nptl
posix Fix incorrect double-checked locking related to _res_hconf.initialized. 2016-08-18 20:53:37 +02:00
powerpc Add fesetexcept: powerpc. 2016-08-16 16:22:12 +00:00
pthread
s390 Do not override objects in libc.a in other static libraries [BZ #20452] 2016-08-17 14:57:01 +02:00
sh Add fesetexcept: sh. 2016-08-16 16:25:10 +00:00
sparc Add fesetexcept: sparc. 2016-08-16 16:25:57 +00:00
tile Remove atomic_compare_and_exchange_bool_rel. 2016-06-24 23:04:40 +03:00
unix Do not override objects in libc.a in other static libraries [BZ #20452] 2016-08-17 14:57:01 +02:00
wordsize-32
wordsize-64
x86 Fixed wrong vector sincos/sincosf ABI to have it compatible with 2016-07-01 14:15:38 +03:00
x86_64 Add fesetexcept. 2016-08-16 16:16:10 +00:00