Fix resolver bind, getsockname namespace (bug 17733).
commit935ab8179287f3b7aefdbe3829110d369be1a5c8
authorJoseph Myers <joseph@codesourcery.com>
Mon, 22 Dec 2014 12:46:27 +0000 (22 12:46 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Mon, 22 Dec 2014 12:46:27 +0000 (22 12:46 +0000)
tree1871bd55723cb03af4a777e9a88ec9247ddee6f4
parentcc8623f196cd5d1c82573b34cb3a6a56f712790a
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.
ChangeLog
NEWS
sysdeps/unix/sysv/linux/bind.S
sysdeps/unix/sysv/linux/getsockname.S