This is the mail archive of the
glibc-cvs@sourceware.org
mailing list for the glibc project.
GNU C Library master sources branch master updated. glibc-2.21-465-g9714012
- From: jsm28 at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 12 Jun 2015 17:34:31 -0000
- Subject: GNU C Library master sources branch master updated. glibc-2.21-465-g9714012
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".
The branch, master has been updated
via 9714012ca015f1f6763f66bd74d6f3f9e1512b36 (commit)
from 498c1f6a7c7f7b634d02e740f15789cf68820a54 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=9714012ca015f1f6763f66bd74d6f3f9e1512b36
commit 9714012ca015f1f6763f66bd74d6f3f9e1512b36
Author: Joseph Myers <joseph@codesourcery.com>
Date: Fri Jun 12 17:34:11 2015 +0000
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.
diff --git a/ChangeLog b/ChangeLog
index d9629d9..3e6b877 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]
diff --git a/NEWS b/NEWS
index b4ec262..ea3d824 100644
--- a/NEWS
+++ b/NEWS
@@ -21,7 +21,7 @@ Version 2.22
18211, 18217, 18220, 18221, 18234, 18244, 18247, 18287, 18319, 18324,
18333, 18346, 18397, 18409, 18410, 18412, 18418, 18422, 18434, 18444,
18468, 18469, 18470, 18479, 18483, 18495, 18496, 18497, 18498, 18507,
- 18520, 18522.
+ 18519, 18520, 18522.
* Cache information can be queried via sysconf() function on s390 e.g. with
_SC_LEVEL1_ICACHE_SIZE as argument.
diff --git a/conform/Makefile b/conform/Makefile
index 09d18e2..8c11dc4 100644
--- a/conform/Makefile
+++ b/conform/Makefile
@@ -354,7 +354,6 @@ test-xfail-XPG4/netdb.h/linknamespace = yes
test-xfail-XPG4/syslog.h/linknamespace = yes
test-xfail-XPG4/unistd.h/linknamespace = yes
test-xfail-XPG4/wordexp.h/linknamespace = yes
-test-xfail-POSIX/aio.h/linknamespace = yes
test-xfail-POSIX/mqueue.h/linknamespace = yes
test-xfail-POSIX/semaphore.h/linknamespace = yes
test-xfail-UNIX98/fmtmsg.h/linknamespace = yes
diff --git a/posix/Versions b/posix/Versions
index 68df3a9..bb481a5 100644
--- a/posix/Versions
+++ b/posix/Versions
@@ -135,6 +135,6 @@ libc {
execvpe;
}
GLIBC_PRIVATE {
- __libc_fork; __libc_pwrite;
+ __libc_fork; __libc_pread; __libc_pwrite;
}
}
diff --git a/sysdeps/pthread/aio_misc.c b/sysdeps/pthread/aio_misc.c
index 83a6cb9..d9740d7 100644
--- a/sysdeps/pthread/aio_misc.c
+++ b/sysdeps/pthread/aio_misc.c
@@ -536,10 +536,11 @@ handle_fildes_io (void *arg)
aiocbp->aiocb64.aio_offset));
else
aiocbp->aiocb.__return_value =
- TEMP_FAILURE_RETRY (pread (fildes,
- (void *) aiocbp->aiocb.aio_buf,
- aiocbp->aiocb.aio_nbytes,
- aiocbp->aiocb.aio_offset));
+ TEMP_FAILURE_RETRY (__libc_pread (fildes,
+ (void *)
+ aiocbp->aiocb.aio_buf,
+ aiocbp->aiocb.aio_nbytes,
+ aiocbp->aiocb.aio_offset));
if (aiocbp->aiocb.__return_value == -1 && errno == ESPIPE)
/* The Linux kernel is different from others. It returns
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 8 ++++++++
NEWS | 2 +-
conform/Makefile | 1 -
posix/Versions | 2 +-
sysdeps/pthread/aio_misc.c | 9 +++++----
5 files changed, 15 insertions(+), 7 deletions(-)
hooks/post-receive
--
GNU C Library master sources