pg.ddx.io  pgsql-bugs@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Andres Freund <andres@anarazel.de>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: jungleboogie0@gmail.com
Cc: pgsql-bugs@lists.postgresql.org
Subject: Re: BUG #15964: vacuumdb.c:187:10: error: use of undeclared identifier 'FD_SETSIZE'
Date: Sat, 17 Aug 2019 14:00:25 -0700
Message-ID: <20190817210025.v4bblh4lhsxajmlj@alap3.anarazel.de> (raw)
In-Reply-To: <24757.1566073861@sss.pgh.pa.us>
References: <15964-c1753bdfed722e04@postgresql.org>
	<24757.1566073861@sss.pgh.pa.us>

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





view thread (47+ messages)  latest in thread

Message-ID: <20190817210025.v4bblh4lhsxajmlj@alap3.anarazel.de>
Permalink:  ../20190817210025.v4bblh4lhsxajmlj@alap3.anarazel.de/
Also on:    postgresql.org/message-id/20190817210025.v4bblh4lhsxajmlj@alap3.anarazel.de

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-bugs@postgresql.org
  Cc: andres@anarazel.de, tgl@sss.pgh.pa.us, jungleboogie0@gmail.com, pgsql-bugs@lists.postgresql.org
  Subject: Re: BUG #15964: vacuumdb.c:187:10: error: use of undeclared identifier 'FD_SETSIZE'
  In-Reply-To: <20190817210025.v4bblh4lhsxajmlj@alap3.anarazel.de>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox