Fix resolver bind, getsockname namespace (bug 17733)
Joseph Myers
joseph@codesourcery.com
Fri Dec 19 18:56:00 GMT 2014
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).
2014-12-19 Joseph Myers <joseph@codesourcery.com>
[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.
diff --git a/sysdeps/unix/sysv/linux/bind.S b/sysdeps/unix/sysv/linux/bind.S
index 7719ad0..61fb5eb 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 9ea371f..c138be9 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)
--
Joseph S. Myers
joseph@codesourcery.com
More information about the Libc-alpha
mailing list