mirror of
				https://github.com/postgres/postgres.git
				synced 2025-11-03 09:13:20 +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:
		@@ -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)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user