glibc/socket/Versions
Joseph Myers 0595c98494 Fix mq_notify socket, recv namespace (bug 18546).
mq_notify (in the 1996 edition of POSIX) brings in references to recv
and socket (not in POSIX until the 2001 edition).  This patch fixes
this by using __recv and __socket, exporting them from libc at version
GLIBC_PRIVATE.

Tested for x86_64 and x86 (testsuite and comparison of installed
stripped shared libraries; PLT / dynamic symbol table changes render
the comparison not particularly useful for libc).

	[BZ #18546]
	* socket/recv.c (__recv): Use libc_hidden_def.
	* socket/socket.c (__socket): Likewise.
	* sysdeps/mach/hurd/recv.c (__recv): Likewise.
	* sysdeps/mach/hurd/socket.c (__socket): Likewise.
	* sysdeps/unix/sysv/linux/generic/recv.c (__recv): Likewise.
	* sysdeps/unix/sysv/linux/recv.c (__recv): Use libc_hidden_weak.
	* sysdeps/unix/sysv/linux/socket.c (__socket): Use
	libc_hidden_def.
	* sysdeps/unix/sysv/linux/x86_64/recv.c (__recv): Use
	libc_hidden_weak.
	* include/sys/socket.h (__socket): Do not use attribute_hidden.
	Use libc_hidden_proto.
	(__recv): Likewise.
	* socket/Versions (libc): Export __recv and __socket at version
	GLIBC_PRIVATE.
	* sysdeps/unix/sysv/linux/mq_notify.c (helper_thread): Call __recv
	instead of recv.
	(init_mq_netlink): Call __socket instead of socket.
	* conform/Makefile (test-xfail-POSIX/mqueue.h/linknamespace):
	Remove variable.
2015-06-17 20:20:08 +00:00

45 lines
575 B
Plaintext

libc {
GLIBC_2.0 {
# functions used in other libraries
__connect; __send;
# a*
accept;
# b*
bind;
# c*
connect;
# g*
getpeername; getsockname; getsockopt;
# i*
isfdtype;
# l*
listen;
# r*
recv; recvfrom; recvmsg;
# s*
send; sendmsg; sendto; setsockopt; shutdown; socket; socketpair;
}
GLIBC_2.2.4 {
# Addition from P1003.1-200x
sockatmark;
}
GLIBC_2.10 {
accept4;
}
GLIBC_2.17 {
recvmmsg; sendmmsg;
}
GLIBC_PRIVATE {
__sendmmsg;
__recv; __socket;
}
}