Fix getifaddrs, freeifaddrs namespace (bug 17668).
commit7f994279e900954f2b220a02fa01f2042eef74b1
authorJoseph Myers <joseph@codesourcery.com>
Tue, 2 Dec 2014 23:11:09 +0000 (2 23:11 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Tue, 2 Dec 2014 23:11:09 +0000 (2 23:11 +0000)
treee81fcdd2acfa38ebe638f0232f9beead60c02d8d
parentbbe4c142b024d639418069b480b0f3d05b489803
Fix getifaddrs, freeifaddrs namespace (bug 17668).

Various objects in glibc bring in ifaddrs.o (via references to
__netlink_*) and thereby getifaddrs and freeifaddrs, which are not
part of any standard supported by glibc.  These should be weak aliases
of __getifaddrs and __freeifaddrs; this patch makes them so.

(The path by which these functions are brought in is Linux-specific,
but it seems less confusing to make all versions of these functions
weak aliases rather than only the Linux-specific versions that
definitely need it.)

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

[BZ #17668]
* inet/ifaddrs.c (getifaddrs): Rename to __getifaddrs and define
as weak alias of __getifaddrs.  Use libc_hidden_weak.
(freeifaddrs): Rename to __freeifaddrs and define as weak alias of
__freeifaddrs.  Use libc_hidden_weak.
* sysdeps/gnu/ifaddrs.c (getifaddrs): Rename to __getifaddrs and
define as weak alias of __getifaddrs.  Use libc_hidden_weak.
(freeifaddrs): Rename to __freeifaddrs and define as weak alias of
__freeifaddrs.  Use libc_hidden_weak.
* sysdeps/unix/sysv/linux/ifaddrs.c (getifaddrs): Rename to
__getifaddrs and define as weak alias of __getifaddrs.  Use
libc_hidden_weak.
(freeifaddrs): Rename to __freeifaddrs and define as weak alias of
__freeifaddrs.  Use libc_hidden_weak.
* conform/Makefile (test-xfail-XOPEN2K/net/if.h/linknamespace):
Remove variable.
(test-xfail-POSIX2008/net/if.h/linknamespace): Likewise.
(test-xfail-XOPEN2K8/net/if.h/linknamespace): Likewise.
ChangeLog
NEWS
conform/Makefile
inet/ifaddrs.c
sysdeps/gnu/ifaddrs.c
sysdeps/unix/sysv/linux/ifaddrs.c