Ecpg dependency
Hackorum builds and tests every patch posted to the lists, not only commitfest submissions. This is Hackorum's own CI rather than the PostgreSQL project's, and it is still under testing - please report anything that looks wrong.
You can run a PostgreSQL built from this patch straight from Docker, with no checkout and no build:
docker run --rm -p 5432:5432 ghcr.io/hackorum-dev/postgres-patch:t42053psql -h localhost -U postgresBuilt from patchset v5 (message #5), July 28, 2026 at 02:55 AM.
Every patchset is also pushed to a branch of our PostgreSQL fork, so you can check out the same tree CI built. Without a PostgreSQL checkout:
git clone --branch t42053_5 https://github.com/hackorum-dev/postgres.gitIn a checkout you already have, add the fork once:
git remote add hackorum https://github.com/hackorum-dev/postgres.gitthen, for this patchset and every later one:
git fetch hackorum t42053_5 && git checkout t42053_5Patchset v5 (message #5) is on t42053_5
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.
Thanks
Filip Januš
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.
--
Bruce Momjian <bruce@momjian.us> https://momjian.us
EnterpriseDB https://enterprisedb.com
+ As you are, so once was I. As I am, so you will be. +
+ Ancient Roman grave inscription +
Attachments:
ecpg.difftext/x-diff; charset=us-asciiDownload+2-0
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:
--
Bruce Momjian <bruce@momjian.us> https://momjian.us
EnterpriseDB https://enterprisedb.com
+ As you are, so once was I. As I am, so you will be. +
+ Ancient Roman grave inscription +
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]: /messages/by-id/871rsa13ae.fsf@wibble.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
Attachments:
0001-Add-missing-libpgport-prereq-in-ecpg-s-pgtypeslib.patchtext/x-diffDownload+2-1
On Sat, Mar 21, 2020 at 07:30:48PM +0000, Dagfinn Ilmari Manns�ker wrote:
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] /messages/by-id/871rsa13ae.fsf@wibble.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
Oh, good catch. I did not notice that patch before. Adding that change
to src/interfaces/ecpg/pgtypeslib/Makefile fixes the stand-alone
compile.
The attached patch does this, and changes libpq to use it too, so
parallel Make works there too.
--
Bruce Momjian <bruce@momjian.us> https://momjian.us
EnterpriseDB https://enterprisedb.com
+ As you are, so once was I. As I am, so you will be. +
+ Ancient Roman grave inscription +
On Sat, Mar 21, 2020 at 06:13:03PM -0400, Bruce Momjian wrote:
On Sat, Mar 21, 2020 at 07:30:48PM +0000, Dagfinn Ilmari Manns�ker wrote:
Bruce Momjian <bruce@momjian.us> writes:
On Sat, Mar 21, 2020 at 02:14:44PM -0400, Bruce Momjian wrote:
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] /messages/by-id/871rsa13ae.fsf@wibble.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 attachedOh, good catch. I did not notice that patch before. Adding that change
to src/interfaces/ecpg/pgtypeslib/Makefile fixes the stand-alone
compile.
Patch applied and backpatched to PG 12. Thanks.
--
Bruce Momjian <bruce@momjian.us> https://momjian.us
EnterpriseDB https://enterprisedb.com
+ As you are, so once was I. As I am, so you will be. +
+ Ancient Roman grave inscription +