Re: Ecpg dependency

Dagfinn Ilmari Mannsåker <ilmari@ilmari.org>

From: ilmari@ilmari.org (Dagfinn Ilmari Mannsåker )
To: Bruce Momjian <bruce@momjian.us>
Cc: Filip Janus <fjanus@redhat.com>, pgsql-hackers@lists.postgresql.org
Date: 2020-03-21T19:30:48Z
Lists: pgsql-hackers

Attachments

Bruce Momjian <bruce@momjian.us> writes:

> On Sat, Mar 21, 2020 at 02:14:44PM -0400, Bruce Momjian wrote:
>> On Tue, Mar 10, 2020 at 01:47:14PM +0100, Filip Janus wrote:
>> > Hello,
>> > After upgrade from 11.2 to 12.2 I found, that build of ecpg component depends
>> > on pgcommon_shlib and pgport_shlib.  But build of ecpg doesn't include build
>> > of pgcommon_shlib and pgport_shlib. That means, if I want to build ecpg, first
>> > I need to build  pgcommon_shlib and pgport_shlib and after that I am able to
>> > build ecpg.
>> > 
>> > I would like to ask if this behavior is expected or not ? Because previous
>> > version doesn't require this separate builds.
>> 
>> Ah, I see the problem, and this is a new bug in PG 12.  The attached
>> patch fixes PG 12 and master.
>
>> + all-lib: | submake-libpgport
>
> Oh, I forgot to mention I got this line from
> src/interfaces/libpq/Makefile:

And that line is wrong, but my patch to fix it¹ seems to have fallen
between the cracks.

[1] https://www.postgresql.org/message-id/flat/871rsa13ae.fsf%40wibble.ilmari.org 

Adding the dependency to `all-lib` only fixes it for serial builds. To
fix it properly, so it works with parallel builds (e.g. 'make -j4 -C
src/interfaces/ecpg', the dependency needs to be declared via
SHLIB_PREREQS, as attached

- ilmari
-- 
- Twitter seems more influential [than blogs] in the 'gets reported in
  the mainstream press' sense at least.               - Matt McLeod
- That'd be because the content of a tweet is easier to condense down
  to a mainstream media article.                      - Calle Dybedahl