diff options
author | Joseph Myers <joseph@codesourcery.com> | 2018-02-06 21:29:50 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2018-02-06 21:29:50 +0000 |
commit | 663e7d784977f6b15c0cab73f754f9f39c9c0c2c (patch) | |
tree | e0c7e844ab63b1785c91d3231d9ae7ec6fe852c9 | |
parent | 6d7aa2b531088c3a277911534179975eb2622954 (diff) | |
download | glibc-663e7d784977f6b15c0cab73f754f9f39c9c0c2c.tar glibc-663e7d784977f6b15c0cab73f754f9f39c9c0c2c.tar.gz glibc-663e7d784977f6b15c0cab73f754f9f39c9c0c2c.tar.bz2 glibc-663e7d784977f6b15c0cab73f754f9f39c9c0c2c.zip |
Only define loff_t for __USE_MISC (bug 14553).
Bug 14553 reports that sys/types.h defines loff_t unconditionally,
despite it not being part of any supported standard. This is
permitted by the POSIX *_t reservation, but as a
quality-of-implementation issue it's still best not to define it
except for __USE_MISC. This patch conditions the definition
accordingly, updating a macro in sysdeps/unix/sysv/linux/sys/quota.h
to use __loff_t so it still works even if __USE_MISC is not defined.
codesearch.debian.net suggests there are quite a lot of loff_t uses
outside glibc, but it might well make sense to change all (few) uses
of loff_t or __loff_t inside glibc to use off64_t or __off64_t
instead, leaving only the definitions, treating this name as
obsolescent.
Tested for x86_64.
[BZ #14553]
* posix/sys/types.h (loff_t): Only define for [__USE_MISC].
* sysdeps/unix/sysv/linux/sys/quota.h (dqoff): Use __loff_t
instead of loff_t.
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | posix/sys/types.h | 3 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/sys/quota.h | 2 |
3 files changed, 9 insertions, 3 deletions
@@ -1,3 +1,10 @@ +2018-02-06 Joseph Myers <joseph@codesourcery.com> + + [BZ #14553] + * posix/sys/types.h (loff_t): Only define for [__USE_MISC]. + * sysdeps/unix/sysv/linux/sys/quota.h (dqoff): Use __loff_t + instead of loff_t. + 2018-02-06 Florian Weimer <fweimer@redhat.com> [BZ #18023] diff --git a/posix/sys/types.h b/posix/sys/types.h index a9e0005cab..e8d51a1342 100644 --- a/posix/sys/types.h +++ b/posix/sys/types.h @@ -39,9 +39,8 @@ typedef __u_quad_t u_quad_t; typedef __fsid_t fsid_t; # define __u_char_defined # endif -#endif - typedef __loff_t loff_t; +#endif #ifndef __ino_t_defined # ifndef __USE_FILE_OFFSET64 diff --git a/sysdeps/unix/sysv/linux/sys/quota.h b/sysdeps/unix/sysv/linux/sys/quota.h index c2a0aaa88d..23f569ee9a 100644 --- a/sysdeps/unix/sysv/linux/sys/quota.h +++ b/sysdeps/unix/sysv/linux/sys/quota.h @@ -114,7 +114,7 @@ struct dqblk #define dq_btime dq_dqb.dqb_btime #define dq_itime dq_dqb.dqb_itime -#define dqoff(UID) ((loff_t)((UID) * sizeof (struct dqblk))) +#define dqoff(UID) ((__loff_t)((UID) * sizeof (struct dqblk))) /* Old name for struct if_dqinfo. */ struct dqinfo |