about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog8
-rw-r--r--NEWS2
-rw-r--r--conform/Makefile1
-rw-r--r--posix/Versions2
-rw-r--r--sysdeps/pthread/aio_misc.c9
5 files changed, 15 insertions, 7 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]
diff --git a/NEWS b/NEWS
index b4ec2629ab..ea3d824966 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 09d18e2321..8c11dc41c8 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 68df3a9f39..bb481a505b 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 83a6cb951d..d9740d7ebe 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