Re: Make frontend programs relink after libpgfeutils changes - Mailing list pgsql-hackers

From Yingying Chen
Subject Re: Make frontend programs relink after libpgfeutils changes
Date
Msg-id CAGGTb67i8j==pVXnE-wwc--JxtM3-w-NK0yA2z=zi5fbQvtSqQ@mail.gmail.com
Whole thread
Responses Re: Make frontend programs relink after libpgfeutils changes
List pgsql-hackers


On Mon, Jun 15, 2026 at 3:29 PM Chao Li <li.evan.chao@gmail.com> wrote:
Hi,

I ran into some trouble while working on patch [1], where I changed print.c and needed to rebuild psql. However, make silently didn't rebuild psql after the print.c change. I wasn’t aware of that at first, and it confused me and wasted quite a bit of time before I figured out what was happening.

I tried a Meson build. Ninja automatically rebuilds 33 client tools after print.c changes, so I changed make to automatically rebuild client tools in the same way as Meson.

But then I found that there are actually 27 client tools that depend on libpgfeutils.a. There are 6 client tools that don’t really require libpgfeutils.a, but Meson still links the library to them. They are:

* pg_archivecleanup
* pg_config
* pg_controldata
* pg_ctl
* pg_test_fsync
* pg_test_timing

I want this patch to focus on make, and I am not as familiar with Meson as I am with make, so I didn’t touch the Meson part.

With this patch, when something like print.c in libpgfeutils.a is changed, all dependent client tools are automatically rebuilt.

See the attached patch for details. BTW, besides the client tools, test_escape also depends on libpgfeutils.a, so I included it in the patch as well.

[1] https://www.postgresql.org/message-id/A44110E7-6A03-4C67-95AD-527192A6C768%40gmail.com

Best regards,
--
Chao Li (Evan)
HighGo Software Co., Ltd.
https://www.highgo.com/

 
Thanks for the patch. I even ran into the same trouble and got frustrated, and ended up I switched to meson build. So I'd give a big +1 to fix the problem for make users.

I tried the patch, and it works properly. But I see meson automatically rebuilds some more tools than src/bin/ tools, such as contrib/oid2name/oid2name, src/tools/pg_bsd_indent/pg_bsd_indent, etc., do you plan to handle them also?

Regards,
Yingying Chen

pgsql-hackers by date:

Previous
From: Bharath Rupireddy
Date:
Subject: Re: [PATCH] Improving index selection for logical replication apply with replica identity full
Next
From: Ewan Young
Date:
Subject: [PATCH] pg_restore_extended_stats() can store an MCV list that cannot be read back