On 2014-02-12 14:11:10 -0500, Tom Lane wrote:
> Marco Atzeri <marco.atz...@gmail.com> writes:
> > On 12/02/2014 19:19, Andres Freund wrote:
> >> On 2014-02-12 19:13:07 +0100, Marco Atzeri wrote:
> >>> About PGDLLIMPORT , my build log is full of "warning: ‘optarg’ redeclared
> >>> without dllimport attribute: previous dllimport ignored "
> 
> >> That should be fixed then. I guess cygwin's getopt.h declares it that way?
> 
> > from /usr/include/getopt.h
> 
> > extern char __declspec(dllimport) *optarg;      /* argument associated 
> > with option */
> 
> Hm.  All of our files that use getopt also do
> 
> extern char *optarg;
> extern int    optind,
>             opterr;
> 
> #ifdef HAVE_INT_OPTRESET
> extern int    optreset;            /* might not be declared by system headers 
> */
> #endif

At least zic.c doesn't...

So, now that brolga is revived, this unsurprisingly causes breakage
there after the --disable-auto-export change. ISTM the easiest way to
deal with this is to just adorn all those with a PGDLLIMPORT?

I don't immediately see how the HAVE_INT_OPTRESET stuff could be reused
in any interesting way as it's really independent of optind/optarg
whether it exists?

It strikes me that we should just move all that to
src/include/getopt_long.h and include that from the places that
currently include getopt.h directly. It's pretty pointless to have all
those externs, HAVE_GETOPT_H, HAVE_INT_OPTRESET in every file. It'd be
prettier if it were named getopt.h, but well...

Greetings,

Andres Freund

-- 
 Andres Freund                     http://www.2ndQuadrant.com/
 PostgreSQL Development, 24x7 Support, Training & Services


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to