Re: Fix pkg-config file for static linking - Mailing list pgsql-hackers

From Filip Gospodinov
Subject Re: Fix pkg-config file for static linking
Date
Msg-id 86efc115-a9a9-f2fc-b405-e4933af10c46@gospodinov.ch
Whole thread Raw
In response to Re: Fix pkg-config file for static linking  (Peter Eisentraut <peter.eisentraut@enterprisedb.com>)
Responses Re: Fix pkg-config file for static linking  (Peter Eisentraut <peter.eisentraut@enterprisedb.com>)
List pgsql-hackers
On 06.07.21 15:13, Peter Eisentraut wrote:
> This doesn't work.
> 
> This patch adds libpgcommon and libpgport to Requires.private.  But they 
> are not pkg-config names but library names, so they should be added to 
> Libs.private.

Then, I must admit that I have misunderstood this patch at first
https://github.com/postgres/postgres/commit/beff361bc1edc24ee5f8b2073a1e5e4c92ea66eb 
.

My impression was that PKG_CONFIG_REQUIRES_PRIVATE ends up in 
Libs.private because of this line
https://github.com/postgres/postgres/blob/d9809bf8694c17e05537c5dd96cde3e67c02d52a/src/Makefile.shlib#L403 
.

After taking a second look, I've noticed that 
PKG_CONFIG_REQUIRES_PRIVATE is *filtered out*. But unfortunately, this 
currently doesn't work as intended because PKG_CONFIG_REQUIRES_PRIVATE 
seems to be unset in Makefile.shlib which leaves Requires.private empty 
and doesn't filter out -lcrypto and -lssl for Libs.private.
That must be also the reason why I first believed that 
PKG_CONFIG_REQUIRES_PRIVATE is used to populate Libs.private.

Anyway, this issue is orthogonal to my original patch. I'm proposing to 
hardcode -lpgcommon and -lpgport in Libs.private instead. Patch is attached.

Attachment

pgsql-hackers by date:

Previous
From: Mark Dilger
Date:
Subject: Re: refactoring basebackup.c
Next
From: Alvaro Herrera
Date:
Subject: Re: Rename of triggers for partitioned tables