]> granicus.if.org Git - postgresql/commit
MinGW: Include .dll extension in .def file LIBRARY commands.
authorNoah Misch <noah@leadboat.com>
Mon, 27 Oct 2014 23:59:39 +0000 (19:59 -0400)
committerNoah Misch <noah@leadboat.com>
Mon, 27 Oct 2014 23:59:52 +0000 (19:59 -0400)
commitc68bff644357c743d14065b8085dbb04d1505c72
tree4aa12b0211283511e2d47ff6d06d9cca60afc1b3
parent89fbe97fcad3cfbc5d09d2a9f66aaf31e3164b94
MinGW: Include .dll extension in .def file LIBRARY commands.

Newer toolchains append the extension implicitly if missing, but
buildfarm member narwhal (gcc 3.4.2, ld 2.15.91 20040904) does not.
This affects most core libraries having an exports.txt file, namely
libpq and the ECPG support libraries.  On Windows Server 2003, Windows
API functions that load and unload DLLs internally will mistakenly
unload a libpq whose DLL header reports "LIBPQ" instead of "LIBPQ.dll".
When, subsequently, control would return to libpq, the backend crashes.
Back-patch to 9.4, like commit 846e91e0223cf9f2821c3ad4dfffffbb929cb027.
Before that commit, we used a different linking technique that yielded
"libpq.dll" in the DLL header.

Commit 53566fc0940cf557416b13252df57350a4511ce4 worked around this by
eliminating a call to a function that loads and unloads DLLs internally.
That commit is no longer necessary for correctness, but its improving
consistency with the MSVC build remains valid.
src/Makefile.shlib