Re: Make frontend programs relink after libpgfeutils changes

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

In response to

Responses

Browse pgsql-hackers by date

  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