Re: narwhal and PGDLLIMPORT

Tom Lane <tgl@sss.pgh.pa.us>

From: Tom Lane <tgl@sss.pgh.pa.us>
To: Noah Misch <noah@leadboat.com>
Cc: Dave Page <dpage@pgadmin.org>, Alvaro Herrera <alvherre@2ndquadrant.com>, Hiroshi Inoue <inoue@tpf.co.jp>, Andrew Dunstan <andrew@dunslane.net>, Craig Ringer <craig@2ndquadrant.com>, Robert Haas <robertmhaas@gmail.com>, Andres Freund <andres@2ndquadrant.com>, Amit Kapila <amit.kapila16@gmail.com>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2014-10-26T22:52:12Z
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

Noah Misch <noah@leadboat.com> writes:
> Calls to ldap_init() exhibit the same problem shfolder.dll:SHGetFolderPath()
> exhibited: it loads and unloads some DLLs, and it manages to unload libpq in
> passing.  There's nothing comparable to the above workaround this time, but I
> found a more fundamental fix.
> ...
> libpqdll.def uses "LIBRARY LIBPQ", which yields an internal name of
> "LIBPQ.dll" under MinGW-w64 i686-4.9.1-release-win32-dwarf-rt_v3-rev1.  Our
> MSVC build process also gives "LIBPQ.dll".  Under narwhal's older toolchain,
> libpq.dll gets a name of just "LIBPQ".  The attached patch brings the product
> of narwhal's toolchain in line with the others.  I don't know by what magic
> wldap32.dll:ldap_init() and shfolder.dll:SHGetFolderPath() care about finding
> ".dll" in the names of loaded libraries, but it does fix the bug.

Nice detective work!

> This erases the impetus for my recent commit 53566fc.  I'm inclined to keep
> that commit in the name of consistency with the MSVC build, but one could
> argue for reverting its 9.4 counterpart.  I don't feel strongly either way, so
> I expect to let 2f51f42 stand.

Yeah, I lean the same way.  The fewer differences in the results of our
assorted Windows build processes, the better.

			regards, tom lane