| From: | Yingying Chen <cyy9255(at)gmail(dot)com> |
|---|---|
| To: | Chao Li <li(dot)evan(dot)chao(at)gmail(dot)com> |
| Cc: | PostgreSQL-development <pgsql-hackers(at)lists(dot)postgresql(dot)org>, Álvaro Herrera <alvherre(at)kurilemu(dot)de> |
| Subject: | Re: Make frontend programs relink after libpgfeutils changes |
| Date: | 2026-06-16 03:09:58 |
| Message-ID: | CAGGTb67i8j==pVXnE-wwc--JxtM3-w-NK0yA2z=zi5fbQvtSqQ@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
On Mon, Jun 15, 2026 at 3:29 PM Chao Li <li(dot)evan(dot)chao(at)gmail(dot)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
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Ewan Young | 2026-06-16 03:15:46 | [PATCH] pg_restore_extended_stats() can store an MCV list that cannot be read back |
| Previous Message | Bharath Rupireddy | 2026-06-16 02:55:14 | Re: [PATCH] Improving index selection for logical replication apply with replica identity full |