Ecpg dependency

Started by Filip Janusover 6 years ago6 messageshackers
Beta feature

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.

won't retrysuccessCI history

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:t42053
psql -h localhost -U postgres

Built 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.git

In a checkout you already have, add the fork once:

git remote add hackorum https://github.com/hackorum-dev/postgres.git

then, for this patchset and every later one:

git fetch hackorum t42053_5 && git checkout t42053_5

Patchset v5 (message #5) is on t42053_5

Jump to latest
#1Filip Janus
fjanus@redhat.com

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š

#2Bruce Momjian
bruce@momjian.us
In reply to: Filip Janus (#1)
Re: Ecpg dependency

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
#3Bruce Momjian
bruce@momjian.us
In reply to: Bruce Momjian (#2)
Re: Ecpg dependency

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 +
In reply to: Bruce Momjian (#3)
Re: Ecpg dependency

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
#5Bruce Momjian
bruce@momjian.us
In reply to: Dagfinn Ilmari Mannsåker (#4)
Re: Ecpg dependency

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 +

Attachments:

t42053_5
ecpg.difftext/x-diff; charset=us-asciiDownload+2-2
#6Bruce Momjian
bruce@momjian.us
In reply to: Bruce Momjian (#5)
Re: Ecpg dependency

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 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.

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 +