Fix wordsize-64 posix_fadvise64, posix_fallocate64 namespace (bug 17777)
Commit Message
On systems using sysdeps/unix/sysv/linux/wordsize-64, posix_fadvise64
and posix_fallocate64 (non-POSIX) are strong aliases for posix_fadvise
and posix_fallocate (POSIX), meaning references to the latter wrongly
bring in definitions of the former. They should be weak aliases; this
patch makes them so.
Tested for x86_64 (testsuite, and that disassembly of installed shared
libraries is unchanged by the patch).
2014-12-30 Joseph Myers <joseph@codesourcery.com>
[BZ #17777]
* sysdeps/unix/sysv/linux/wordsize-64/posix_fadvise.c
(posix_fadvise64): Define as weak alias not strong alias.
* sysdeps/unix/sysv/linux/wordsize-64/posix_fallocate.c
(posix_fallocate64): Likewise.
* conform/Makefile (test-xfail-XOPEN2K/fcntl.h/linknamespace):
Remove variable.
(test-xfail-XOPEN2K/mqueue.h/linknamespace): Likewise.
(test-xfail-POSIX2008/fcntl.h/linknamespace): Likewise.
(test-xfail-POSIX2008/mqueue.h/linknamespace): Likewise.
(test-xfail-XOPEN2K8/fcntl.h/linknamespace): Likewise.
(test-xfail-XOPEN2K8/mqueue.h/linknamespace): Likewise.
Comments
Ping. This patch
<https://sourceware.org/ml/libc-alpha/2014-12/msg00985.html> is pending
review.
On Tue, Dec 30, 2014 at 3:00 PM, Joseph Myers <joseph@codesourcery.com> wrote:
> On systems using sysdeps/unix/sysv/linux/wordsize-64, posix_fadvise64
> and posix_fallocate64 (non-POSIX) are strong aliases for posix_fadvise
> and posix_fallocate (POSIX), meaning references to the latter wrongly
> bring in definitions of the former. They should be weak aliases; this
> patch makes them so.
>
> Tested for x86_64 (testsuite, and that disassembly of installed shared
> libraries is unchanged by the patch).
>
> 2014-12-30 Joseph Myers <joseph@codesourcery.com>
>
> [BZ #17777]
> * sysdeps/unix/sysv/linux/wordsize-64/posix_fadvise.c
> (posix_fadvise64): Define as weak alias not strong alias.
> * sysdeps/unix/sysv/linux/wordsize-64/posix_fallocate.c
> (posix_fallocate64): Likewise.
> * conform/Makefile (test-xfail-XOPEN2K/fcntl.h/linknamespace):
> Remove variable.
> (test-xfail-XOPEN2K/mqueue.h/linknamespace): Likewise.
> (test-xfail-POSIX2008/fcntl.h/linknamespace): Likewise.
> (test-xfail-POSIX2008/mqueue.h/linknamespace): Likewise.
> (test-xfail-XOPEN2K8/fcntl.h/linknamespace): Likewise.
> (test-xfail-XOPEN2K8/mqueue.h/linknamespace): Likewise.
>
Looks good to me.
Thanks.
@@ -389,11 +389,9 @@ test-xfail-UNIX98/syslog.h/linknamespace = yes
test-xfail-UNIX98/unistd.h/linknamespace = yes
test-xfail-UNIX98/wchar.h/linknamespace = yes
test-xfail-UNIX98/wordexp.h/linknamespace = yes
-test-xfail-XOPEN2K/fcntl.h/linknamespace = yes
test-xfail-XOPEN2K/fmtmsg.h/linknamespace = yes
test-xfail-XOPEN2K/fnmatch.h/linknamespace = yes
test-xfail-XOPEN2K/glob.h/linknamespace = yes
-test-xfail-XOPEN2K/mqueue.h/linknamespace = yes
test-xfail-XOPEN2K/netdb.h/linknamespace = yes
test-xfail-XOPEN2K/regex.h/linknamespace = yes
test-xfail-XOPEN2K/search.h/linknamespace = yes
@@ -407,19 +405,15 @@ test-xfail-XOPEN2K/unistd.h/linknamespace = yes
test-xfail-XOPEN2K/wordexp.h/linknamespace = yes
test-xfail-POSIX2008/ctype.h/linknamespace = yes
test-xfail-POSIX2008/dirent.h/linknamespace = yes
-test-xfail-POSIX2008/fcntl.h/linknamespace = yes
test-xfail-POSIX2008/grp.h/linknamespace = yes
-test-xfail-POSIX2008/mqueue.h/linknamespace = yes
test-xfail-POSIX2008/netdb.h/linknamespace = yes
test-xfail-POSIX2008/regex.h/linknamespace = yes
test-xfail-POSIX2008/semaphore.h/linknamespace = yes
test-xfail-POSIX2008/spawn.h/linknamespace = yes
test-xfail-POSIX2008/unistd.h/linknamespace = yes
test-xfail-XOPEN2K8/dirent.h/linknamespace = yes
-test-xfail-XOPEN2K8/fcntl.h/linknamespace = yes
test-xfail-XOPEN2K8/fmtmsg.h/linknamespace = yes
test-xfail-XOPEN2K8/grp.h/linknamespace = yes
-test-xfail-XOPEN2K8/mqueue.h/linknamespace = yes
test-xfail-XOPEN2K8/netdb.h/linknamespace = yes
test-xfail-XOPEN2K8/pwd.h/linknamespace = yes
test-xfail-XOPEN2K8/regex.h/linknamespace = yes
@@ -37,4 +37,4 @@ posix_fadvise (int fd, off_t offset, off_t len, int advise)
return ENOSYS;
#endif
}
-strong_alias (posix_fadvise, posix_fadvise64)
+weak_alias (posix_fadvise, posix_fadvise64)
@@ -61,4 +61,4 @@ posix_fallocate (int fd, __off_t offset, __off_t len)
return internal_fallocate (fd, offset, len);
}
-strong_alias (posix_fallocate, posix_fallocate64)
+weak_alias (posix_fallocate, posix_fallocate64)