Fix pathconf statvfs namespace (bug 18507).
commitd3ab671c942ba15a5b20f383ce71e387f17ae2c4
authorJoseph Myers <joseph@codesourcery.com>
Tue, 9 Jun 2015 19:52:01 +0000 (9 19:52 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Tue, 9 Jun 2015 19:52:01 +0000 (9 19:52 +0000)
treecb8b32f20c68d0b1487d2e300507f16f5dd52df2
parentdd26c44403582fdf10d663170f947dfe4b3207a0
Fix pathconf statvfs namespace (bug 18507).

pathconf uses __statvfs64, and fpathconf uses __fstatvfs64.  On
systems using sysdeps/unix/sysv/linux/wordsize-64, __statvfs64 then
brings in the strong symbol statvfs, and __fstatvfs64 brings in the
strong symbol fstatvfs, which are not in all the standards that have
pathconf and fpathconf.  This patch fixes this by making those symbols
into weak aliases.

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

[BZ #18507]
* sysdeps/unix/sysv/linux/fstatvfs.c (fstatvfs): Rename to
__fstatvfs and define as weak alias of __fstatvfs.  Use
libc_hidden_weak.
* sysdeps/unix/sysv/linux/statvfs.c (statvs): Rename to __statvfs
and define as weak alias of __statvfs.  Use libc_hidden_weak.
* sysdeps/unix/sysv/linux/wordsize-64/fstatvfs.c (__fstatvfs64):
Define as alias of __fstatvfs, not fstatvfs.
(fstatvfs64): Likewise.
* sysdeps/unix/sysv/linux/wordsize-64/statvfs.c (__statvfs64):
Define as alias of __statvfs, not statvfs.
(statvfs64): Likewise.
* conform/Makefile (test-xfail-POSIX/unistd.h/linknamespace):
Remove variable.
ChangeLog
NEWS
conform/Makefile
sysdeps/unix/sysv/linux/fstatvfs.c
sysdeps/unix/sysv/linux/statvfs.c
sysdeps/unix/sysv/linux/wordsize-64/fstatvfs.c
sysdeps/unix/sysv/linux/wordsize-64/statvfs.c