This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]