aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2016-04-26 09:55:47 +0000
committerJoseph Myers <joseph@codesourcery.com>2016-04-26 09:55:47 +0000
commitbf074726151d032bc345eaaa56e0858b1677e2ee (patch)
tree87eadb467ca1f420c8d72139d33327467fca4761
parent12404bb04e1e86052fb22005e6c05ab3d1ced46e (diff)
downloadglibc-bf074726151d032bc345eaaa56e0858b1677e2ee.zip
glibc-bf074726151d032bc345eaaa56e0858b1677e2ee.tar.gz
glibc-bf074726151d032bc345eaaa56e0858b1677e2ee.tar.bz2
Define off_t in stdio.h for XOPEN2K.
The header conformance test for stdio.h for XOPEN2K fails because the header does not define the off_t type, used in the expected declarations for fseeko and ftello. The absence of this type is not actually strictly a bug (hence no bug report being filed in Bugzilla), since POSIX didn't require the type to be declared in this header until the 2008 edition. However, the glibc convention in such cases - where the type falls under the general *_t POSIX reservation, and so it's OK to define it for all POSIX versions - is to make the headers self-contained in this regard even for the older POSIX versions not requiring the type to be defined despite including other declarations depending on the type. Thus, this patch adjusts the condition in the header and removes the XFAIL (rather than adapting the expectation to work when the functions are declared using __off_t without off_t being defined). Tested for x86_64 and x86 (testsuite, and that installed stripped shared libraries are unchanged by the patch). * libio/stdio.h (off_t): Define if [__USE_XOPEN2K], not [__USE_XOPEN2K8]. [__USE_LARGEFILE64] (off64_t): Likewise. * conform/Makefile (test-xfail-XOPEN2K/stdio.h/conform): Remove variable.
-rw-r--r--ChangeLog8
-rw-r--r--conform/Makefile1
-rw-r--r--libio/stdio.h4
3 files changed, 11 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 5c40ad8..8cbc1b1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2016-04-26 Joseph Myers <joseph@codesourcery.com>
+
+ * libio/stdio.h (off_t): Define if [__USE_XOPEN2K], not
+ [__USE_XOPEN2K8].
+ [__USE_LARGEFILE64] (off64_t): Likewise.
+ * conform/Makefile (test-xfail-XOPEN2K/stdio.h/conform): Remove
+ variable.
+
2016-04-25 Joseph Myers <joseph@codesourcery.com>
[BZ #19989]
diff --git a/conform/Makefile b/conform/Makefile
index e3baec7..7af4b2f 100644
--- a/conform/Makefile
+++ b/conform/Makefile
@@ -216,7 +216,6 @@ test-xfail-XOPEN2K/mqueue.h/conform = yes
test-xfail-XOPEN2K/semaphore.h/conform = yes
test-xfail-XOPEN2K/signal.h/conform = yes
test-xfail-XOPEN2K/stdarg.h/conform = yes
-test-xfail-XOPEN2K/stdio.h/conform = yes
test-xfail-XOPEN2K/sys/wait.h/conform = yes
test-xfail-XOPEN2K/ucontext.h/conform = yes
test-xfail-POSIX2008/arpa/inet.h/conform = yes
diff --git a/libio/stdio.h b/libio/stdio.h
index 4b66530..d7dbfad 100644
--- a/libio/stdio.h
+++ b/libio/stdio.h
@@ -84,7 +84,7 @@ typedef _G_va_list va_list;
# endif
#endif
-#ifdef __USE_XOPEN2K8
+#ifdef __USE_XOPEN2K
# ifndef __off_t_defined
# ifndef __USE_FILE_OFFSET64
typedef __off_t off_t;
@@ -97,7 +97,9 @@ typedef __off64_t off_t;
typedef __off64_t off64_t;
# define __off64_t_defined
# endif
+#endif
+#ifdef __USE_XOPEN2K8
# ifndef __ssize_t_defined
typedef __ssize_t ssize_t;
# define __ssize_t_defined