1
0
mirror of https://github.com/postgres/postgres.git synced 2025-07-12 21:01:52 +03:00

Make sure IOV_MAX is defined.

We stopped defining IOV_MAX on non-Windows systems in 75357ab94, on
the assumption that every non-Windows system defines it in <limits.h>
as required by X/Open.  GNU Hurd, however, doesn't follow that
standard either.  Put back the old logic to assume 16 if it's
not defined.

Author: Michael Banck <mbanck@gmx.net>
Co-authored-by: Christoph Berg <myon@debian.org>
Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us>
Discussion: https://postgr.es/m/6862e8d1.050a0220.194b8d.76fa@mx.google.com
Discussion: https://postgr.es/m/6846e0c3.df0a0220.39ef9b.c60e@mx.google.com
Backpatch-through: 16
This commit is contained in:
Tom Lane
2025-07-01 12:40:35 -04:00
parent 3a2617e4f0
commit d25d392e89

View File

@ -20,9 +20,6 @@
#else #else
/* POSIX requires at least 16 as a maximum iovcnt. */
#define IOV_MAX 16
/* Define our own POSIX-compatible iovec struct. */ /* Define our own POSIX-compatible iovec struct. */
struct iovec struct iovec
{ {
@ -32,6 +29,15 @@ struct iovec
#endif #endif
/*
* If <limits.h> didn't define IOV_MAX, define our own. X/Open requires at
* least 16. (GNU Hurd apparently feel that they're not bound by X/Open,
* because they don't define this symbol at all.)
*/
#ifndef IOV_MAX
#define IOV_MAX 16
#endif
/* Define a reasonable maximum that is safe to use on the stack. */ /* Define a reasonable maximum that is safe to use on the stack. */
#define PG_IOV_MAX Min(IOV_MAX, 32) #define PG_IOV_MAX Min(IOV_MAX, 32)