Re: Clean up MinGW def file generation

From: Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>
To: Michael Paquier <michael(at)paquier(dot)xyz>
Cc: Peter Eisentraut <peter(dot)eisentraut(at)2ndquadrant(dot)com>, pgsql-hackers(at)postgresql(dot)org
Subject: Re: Clean up MinGW def file generation
Date: 2019-10-18 12:07:58
Message-ID: 20191018120758.GA1661@alvherre.pgsql
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 2019-Oct-17, Michael Paquier wrote:

> On Tue, Oct 15, 2019 at 09:00:23AM +0200, Peter Eisentraut wrote:

> > I think we can clean this up and just have the regular ddl.def built
> > normally at build time if required.
> >
> > Does anyone know more about this?
>
> This comes from here, but I cannot see a thread about this topic
> around this date:
> commit: a1d5d8574751d62a039d8ceb44329ee7c637196a
> author: Peter Eisentraut <peter_e(at)gmx(dot)net>
> date: Tue, 26 Feb 2008 06:41:24 +0000
> Refactor the code that creates the shared library export files to appear
> only once in Makefile.shlib and not in four copies.

Well, yes, but that code originates from much earlier. For example
2a63c1602d9d (Tom Lane, Oct. 2004) is the one that created the libpq
ones. But even that ancient one seems to be just refactoring some stuff
that was already there, namely something that seems to have been created
by commit 53cd7cd8a916:

commit 53cd7cd8a9168d4b2e2feb52129336429cc99b98
Author: Bruce Momjian <bruce(at)momjian(dot)us>
AuthorDate: Tue Mar 9 04:53:37 2004 +0000
CommitDate: Tue Mar 9 04:53:37 2004 +0000

Make a separate win32 debug DLL along with the non-debug version:

Currently, src/interfaces/libpq/win32.mak builds a statically-linked
library "libpq.lib", a debug dll "libpq.dll", import library for the
debug dll "libpqdll.lib", a release dll "libpq.dll", import library for
the release dll "libpqdll.lib". To avoid naming clashes, I would make
the debug dll and import libraries "libpqd.dll" and "libpqddll.lib".

Basically, the debug build uses the cl flags: "/MDd /D _DEBUG", and the
release build uses the cl flags "/MD /D NDEBUG". Usually the debug
build has a "D" suffix on the file name, so for example:

libpqd.dll libpq, debug build
libpqd.lib libpq, debug build, import library
libpq.dll libpq, release build
libpq.lib libpq, release build, import library

David Turner

This stuff was used by win32.mak, but I don't know if that tells anyone
anything.

--
Álvaro Herrera https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Stephen Frost 2019-10-18 12:18:20 Re: Proposal: Make use of C99 designated initialisers for nulls/values arrays
Previous Message Amit Kapila 2019-10-18 12:01:58 Re: PATCH: logical_work_mem and logical streaming of large in-progress transactions