diff options
author | Zack Weinberg <zackw@panix.com> | 2017-03-22 10:55:38 -0400 |
---|---|---|
committer | Zack Weinberg <zackw@panix.com> | 2017-06-14 07:51:30 -0400 |
commit | 37f802f86400684c8d13403958b2c598721d6360 (patch) | |
tree | 1e7281fbdff02e8e0818300cf0ac1d496956d1a9 /bits | |
parent | 0572433b5beb636de1a49ec6b4fdab830c38cdc5 (diff) | |
download | glibc-37f802f86400684c8d13403958b2c598721d6360.zip glibc-37f802f86400684c8d13403958b2c598721d6360.tar.gz glibc-37f802f86400684c8d13403958b2c598721d6360.tar.bz2 |
Remove __need_IOV_MAX and __need_FOPEN_MAX.
__need_FOPEN_MAX wasn't being used anywhere. __need_IOV_MAX was more
complicated; the basic deal is that sys/uio.h wants to define a
constant named UIO_MAXIOV and bits/xopen_lim.h wants to define a
constant named IOV_MAX, with the same meaning. For no apparent reason
this was being handled via bits/stdio_lim.h -- stdio.h is NOT supposed
to define IOV_MAX -- and some mess in Makerules. Also, bits/uio.h on
Linux was being used as a dumping ground for extension functions.
So now we have bits/uio_lim.h, which defines __IOV_MAX.
bits/xopen_lim.h and sys/uio.h use that to define their respective
constants. We also now have bits/uio-ext.h, which is the official
Proper Home for extensions to sys/uio.h. bits/uio.h is removed, and
stdio_lim.h doesn't define IOV_MAX at all.
* bits/uio_lim.h, sysdeps/unix/sysv/linux/bits/uio_lim.h
* bits/uio-ext.h, sysdeps/unix/sysv/linux/bits/uio-ext.h: New file.
* bits/uio.h, sysdeps/unix/sysv/linux/bits/uio.h: Delete file.
* include/bits/xopen_lim.h: Use bits/uio_lim.h to get the value
for IOV_MAX.
* misc/Makefile: Install bits/uio-ext.h and bits/uio_lim.h.
Don't install bits/uio.h.
* misc/sys/uio.h: Don't include bits/uio.h. Do include
bits/types/struct_iovec.h and bits/uio_lim.h. Set UIO_MAXIOV
based on __IOV_MAX. Under __USE_GNU, also include bits/uio-ext.h.
* stdio-common/stdio_lim.h.in: Remove logic for __need_FOPEN_MAX
and __need_IOV_MAX. Don't define IOV_MAX at all.
* Makerules (stdio_lim.h): Remove logic for setting IOV_MAX.
* sysdeps/unix/sysv/linux/bits/fcntl-linux.h:
Include bits/types/struct_iovec.h, not bits/uio.h.
Use __ssize_t, not ssize_t, in function prototypes.
Don't use hard TAB for double space after period in comments.
Diffstat (limited to 'bits')
-rw-r--r-- | bits/uio-ext.h | 28 | ||||
-rw-r--r-- | bits/uio_lim.h (renamed from bits/uio.h) | 13 |
2 files changed, 36 insertions, 5 deletions
diff --git a/bits/uio-ext.h b/bits/uio-ext.h new file mode 100644 index 0000000..cd4039c --- /dev/null +++ b/bits/uio-ext.h @@ -0,0 +1,28 @@ +/* Operating system-specific extensions to sys/uio.h - generic version. + Copyright (C) 2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef _BITS_UIO_EXT_H +#define _BITS_UIO_EXT_H 1 + +#ifndef _SYS_UIO_H +# error "Never include <bits/uio-ext.h> directly; use <sys/uio.h> instead." +#endif + +/* This operating system does not extend sys/uio.h. */ + +#endif /* sys/uio_ext.h */ diff --git a/bits/uio.h b/bits/uio_lim.h index 96a3a71..63afbdc 100644 --- a/bits/uio.h +++ b/bits/uio_lim.h @@ -1,4 +1,5 @@ -/* Copyright (C) 1996-2017 Free Software Foundation, Inc. +/* Implementation limits related to sys/uio.h - generic version. + Copyright (C) 2017 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -15,9 +16,11 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ -#ifndef _SYS_UIO_H -# error "Never include <bits/uio.h> directly; use <sys/uio.h> instead." -#endif +#ifndef _BITS_UIO_LIM_H +#define _BITS_UIO_LIM_H 1 +/* Maximum length of the 'struct iovec' array in a single call to + readv or writev. If there is no limit, the macro is not defined. */ +#undef __IOV_MAX -#include <bits/types/struct_iovec.h> +#endif |