Re: BUG #15964: vacuumdb.c:187:10: error: use of undeclaredidentifier 'FD_SETSIZE'
От | Andres Freund |
---|---|
Тема | Re: BUG #15964: vacuumdb.c:187:10: error: use of undeclaredidentifier 'FD_SETSIZE' |
Дата | |
Msg-id | 20190817210025.v4bblh4lhsxajmlj@alap3.anarazel.de обсуждение исходный текст |
Ответ на | Re: BUG #15964: vacuumdb.c:187:10: error: use of undeclared identifier 'FD_SETSIZE' (Tom Lane <tgl@sss.pgh.pa.us>) |
Ответы |
Re: BUG #15964: vacuumdb.c:187:10: error: use of undeclared identifier 'FD_SETSIZE'
|
Список | pgsql-bugs |
Hi, On 2019-08-17 16:31:01 -0400, Tom Lane wrote: > PG Bug reporting form <noreply@postgresql.org> writes: > > I'm trying to compile Postgresql from master on my OpenBSD machine, but I'm > > getting a build failure here: > > vacuumdb.c:184:26: error: use of undeclared identifier 'FD_SETSIZE' > > if (concurrentCons > FD_SETSIZE - 1) > > ^ > > Hmm, it seems somebody removed the "#include <sys/select.h>" from > that file, which was a pretty not-bright idea. Most of the parallel code was move into bin/scripts/scripts_parallel.c - but there's still the above error check. Seems like we ought to add a ParallelSlotsMax() or such, and use that in the error check, rather than check FD_SETSIZE directly? > But I wonder why the OpenBSD machines in the buildfarm aren't complaining. Or even why it works on other platforms. On linux/glibc it looks like sys/select.h is included by sys/types.h under certain conditions: #ifdef __USE_MISC /* In BSD <sys/types.h> is expected to define BYTE_ORDER. */ # include <endian.h> /* It also defines `fd_set' and the FD_* macros for `select'. */ # include <sys/select.h> #endif /* Use misc. */ which in turn is included by stddef.h under certain conditions: #if defined __USE_MISC || defined __USE_XOPEN_EXTENDED # include <sys/types.h> /* we need int32_t... */ stddef.h is included by c.h, so will obviously be included in any of our .c files. _USE_MISC and _XOPEN_SOURCE_EXTENDED are defined by default, unless they're explicitly specified (which we don't). I assume there's some compiler specific going on. Our animals use an old gcc version, whereas Sean's uses a modern clang. Not hard to imagine that the compiler specific bits look different enough to cause such a discrepancy. Greetings, Andres Freund
В списке pgsql-bugs по дате отправления: