diff options
author | Joseph Myers <joseph@codesourcery.com> | 2015-06-12 17:34:11 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2015-06-12 17:34:11 +0000 |
commit | 9714012ca015f1f6763f66bd74d6f3f9e1512b36 (patch) | |
tree | 418f7f2316fdce01a1e14b2dd19f2df91c2ea0e4 /ChangeLog | |
parent | 498c1f6a7c7f7b634d02e740f15789cf68820a54 (diff) | |
download | glibc-9714012ca015f1f6763f66bd74d6f3f9e1512b36.tar.gz glibc-9714012ca015f1f6763f66bd74d6f3f9e1512b36.tar.xz glibc-9714012ca015f1f6763f66bd74d6f3f9e1512b36.zip |
Fix aio_* pread namespace (bug 18519).
aio_* bring in references to pread, which isn't in all the standards containing aio_* (as a reference from one library to another, this is a bug for dynamic as well as static linking). This patch fixes this by using __libc_pread instead, exporting that function from libc at symbol version GLIBC_PRIVATE; the code, with conditionals that may call either __pread64 or __libc_pread, becomes exactly analogous to that elsewhere in the same file that may call either __pwrite64 or __libc_pwrite. Tested for x86_64 and x86 (testsuite, and comparison of disassembly of installed shared libraries). libc changes because of the PLT entry for the newly exported __libc_pread; librt changes because of assertion line numbers and PLT rearrangement; other stripped installed shared libraries do not change. [BZ #18519] * posix/Versions (libc): Export __libc_pread at version GLIBC_PRIVATE. * sysdeps/pthread/aio_misc.c (handle_fildes_io): Call __libc_pread instead of pread. * conform/Makefile (test-xfail-POSIX/aio.h/linknamespace): Remove variable.
Diffstat (limited to 'ChangeLog')
-rw-r--r-- | ChangeLog | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog index d9629d9c3a..3e6b877dfa 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,13 @@ 2015-06-12 Joseph Myers <joseph@codesourcery.com> + [BZ #18519] + * posix/Versions (libc): Export __libc_pread at version + GLIBC_PRIVATE. + * sysdeps/pthread/aio_misc.c (handle_fildes_io): Call __libc_pread + instead of pread. + * conform/Makefile (test-xfail-POSIX/aio.h/linknamespace): Remove + variable. + [BZ #18522] * misc/efgcvt_r.c [LONG_DOUBLE_COMPAT (libc, GLIBC_2_0) && !LONG_DOUBLE_CVT] |