about summary refs log tree commit diff
path: root/sysdeps/unix/sysv
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2014-12-22 12:46:27 +0000
committerJoseph Myers <joseph@codesourcery.com>2014-12-22 12:46:27 +0000
commit935ab8179287f3b7aefdbe3829110d369be1a5c8 (patch)
tree1871bd55723cb03af4a777e9a88ec9247ddee6f4 /sysdeps/unix/sysv
parentcc8623f196cd5d1c82573b34cb3a6a56f712790a (diff)
downloadglibc-935ab8179287f3b7aefdbe3829110d369be1a5c8.tar.gz
glibc-935ab8179287f3b7aefdbe3829110d369be1a5c8.tar.xz
glibc-935ab8179287f3b7aefdbe3829110d369be1a5c8.zip
Fix resolver bind, getsockname namespace (bug 17733).
On Linux architectures using socketcall, the resolver ends up bringing
in strong symbols for bind and getsockname, which are not in
POSIX.1-1996.  This causes linknamespace test failures:

FAIL: conform/POSIX/pthread.h/linknamespace
FAIL: conform/POSIX/sched.h/linknamespace
FAIL: conform/POSIX/time.h/linknamespace

These functions are defined as strong symbols with __bind and
__getsockname as weak aliases.  This patch switches this to the other
way round by removing the NO_WEAK_ALIAS definitions and so letting the
default case in socket.S act; I see no reason for the existing
arrangements.

Tested for x86 (testsuite, and that disassembly of installed shared
libraries is unchanged by the patch).

	[BZ #17733]
	* sysdeps/unix/sysv/linux/bind.S (NO_WEAK_ALIAS): Do not define.
	(__bind): Do not define as weak alias.
	* sysdeps/unix/sysv/linux/getsockname.S (NO_WEAK_ALIAS): Do not
	define.
	(__getsockname): Do not define as weak alias.
Diffstat (limited to 'sysdeps/unix/sysv')
-rw-r--r--sysdeps/unix/sysv/linux/bind.S2
-rw-r--r--sysdeps/unix/sysv/linux/getsockname.S2
2 files changed, 0 insertions, 4 deletions
diff --git a/sysdeps/unix/sysv/linux/bind.S b/sysdeps/unix/sysv/linux/bind.S
index 7719ad0be8..61fb5ebff8 100644
--- a/sysdeps/unix/sysv/linux/bind.S
+++ b/sysdeps/unix/sysv/linux/bind.S
@@ -1,5 +1,3 @@
 #define	socket	bind
 #define	NARGS	3
-#define NO_WEAK_ALIAS	1
 #include <socket.S>
-weak_alias (bind, __bind)
diff --git a/sysdeps/unix/sysv/linux/getsockname.S b/sysdeps/unix/sysv/linux/getsockname.S
index 9ea371ff6e..c138be9da5 100644
--- a/sysdeps/unix/sysv/linux/getsockname.S
+++ b/sysdeps/unix/sysv/linux/getsockname.S
@@ -1,5 +1,3 @@
 #define	socket	getsockname
 #define	NARGS	3
-#define NO_WEAK_ALIAS	1
 #include <socket.S>
-weak_alias (getsockname, __getsockname)