Re: narwhal and PGDLLIMPORT
Andres Freund <andres@2ndquadrant.com>
From: Andres Freund <andres@2ndquadrant.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Marco Atzeri <marco.atzeri@gmail.com>, pgsql-hackers@postgresql.org
Date: 2014-02-15T13:12:09Z
Lists: pgsql-hackers
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
MinGW: Link with shell32.dll instead of shfolder.dll.
- 53566fc0940c 9.5.0 cited
-
Centralize getopt-related declarations in a new header file pg_getopt.h.
- 60ff2fdd9970 9.4.0 cited
-
Get rid of use of dlltool in Mingw builds.
- 846e91e0223c 9.4.0 cited
-
Export a few more symbols required for test_shm_mq module.
- 7d7eee8bb702 9.4.0 cited
-
Export set_latch_on_sigusr1 symbol for Windows.
- 708c529c7fde 9.4.0 cited
-
Use SHGetFolderPath instead of SHGetSpecialFolderPath to find the
- 889f03812916 8.1.0 cited
On 2014-02-12 14:11:10 -0500, Tom Lane wrote: > Marco Atzeri <marco.atzeri@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