Re: narwhal and PGDLLIMPORT

Andres Freund <andres@2ndquadrant.com>

From: Andres Freund <andres@2ndquadrant.com>
To: Marco Atzeri <marco.atzeri@gmail.com>
Cc: pgsql-hackers@postgresql.org
Date: 2014-02-15T20:54:29Z
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 →
  1. MinGW: Link with shell32.dll instead of shfolder.dll.

  2. Centralize getopt-related declarations in a new header file pg_getopt.h.

  3. Get rid of use of dlltool in Mingw builds.

  4. Export a few more symbols required for test_shm_mq module.

  5. Export set_latch_on_sigusr1 symbol for Windows.

  6. Use SHGetFolderPath instead of SHGetSpecialFolderPath to find the

On 2014-02-15 21:49:43 +0100, Marco Atzeri wrote:
> On 12/02/2014 17:39, Tom Lane wrote:
> >Andres Freund <andres@2ndquadrant.com> writes:
> >>On 2014-02-12 11:26:56 -0500, Tom Lane wrote:
> >>>Hm.  So if we're giving up on the idea of ever getting rid of PGDLLIMPORT,
> >>>we ought to actually remove that, so that the Cygwin build works more like
> >>>the other Windows builds?
> >
> >>Hm, I don't see a big advantage in detecting the errors as It won't
> >>hugely increase the buildfarm coverage. But --auto-import seems to
> >>require marking the .text sections as writable, avoiding that seems to
> >>be a good idea if we don't need it anymore.
> >
> >Given the rather small number of Windows machines in the buildfarm,
> >I'd really like them all to be on the same page about what's valid
> >and what isn't.  Having to wait ~24 hours to find out if they're
> >all happy with something isn't my idea of a good time.  In any case,
> >as long as we have discrepancies between them, I'm not going to be
> >entirely convinced that any of them are telling the full truth.
> >
> >I'm going to go remove that switch and see if brolga starts failing.
> >If it does, I'll be satisfied that we understand the issues here.
> >
> >			regards, tom lane
> >
> >
> 
> disabling is not working on cygwin
> 
> gcc -O2 -Wall -Wmissing-prototypes -Wpointer-arith
> -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute
> -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard
> zic.o ialloc.o scheck.o localtime.o -L../../src/port -L../../src/common
> -Wl,--allow-multiple-definition -Wl,--disable-auto-import  -L/usr/local/lib
> -Wl,--as-needed   -lpgcommon -lpgport -lintl -lssl -lcrypto -lz -lreadline
> -lcrypt -o zic.exe
> zic.o:zic.c:(.text.startup+0xc9): undefined reference to `optarg'
> zic.o:zic.c:(.text.startup+0x10d): undefined reference to `optarg'
> /usr/lib/gcc/i686-pc-cygwin/4.8.2/../../../../i686-pc-cygwin/bin/ld: zic.o:
> bad reloc address 0x10d in section `.text.startup'
> /usr/lib/gcc/i686-pc-cygwin/4.8.2/../../../../i686-pc-cygwin/bin/ld: final
> link failed: Invalid operation
> collect2: error: ld returned 1 exit status
> 
> just removing "-Wl,--disable-auto-import" and everything works
> 
> $ gcc -O2 -Wall -Wmissing-prototypes -Wpointer-arith
> -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute
> -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard
> zic.o ialloc.o scheck.o localtime.o -L../../src/port -L../../src/common
> -Wl,--allow-multiple-definition -L/usr/local/lib -Wl,--as-needed
> -lpgcommon -lpgport -lintl -lssl -lcrypto -lz -lreadline -lcrypt -o zic.exe

Please pull and retry, that already might fix it. The reason it's
probably failing is the warnings about declspec you reported earlier.

See 60ff2fdd9970ba29f5267317a5e7354d2658c1e5

Greetings,

Andres Freund

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