Re: meson: Add _static and _shared suffixes to the library names

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Jacob Champion <jacob(dot)champion(at)enterprisedb(dot)com>
Cc: Nazir Bilal Yavuz <byavuz81(at)gmail(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>, Andres Freund <andres(at)anarazel(dot)de>
Subject: Re: meson: Add _static and _shared suffixes to the library names
Date: 2025-08-12 16:27:40
Message-ID: 3391734.1755016060@sss.pgh.pa.us
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Jacob Champion <jacob(dot)champion(at)enterprisedb(dot)com> writes:
> On Tue, Aug 12, 2025 at 8:46 AM Nazir Bilal Yavuz <byavuz81(at)gmail(dot)com> wrote:
>> The solution is changing the libraries' names [3]. Changing
>> conflicting libraries' names is actually enough but I wanted to add
>> _static and _shared suffixes to all of the libraries' names as I think
>> this is more future proof.
>>
>> Any feedback would be appreciated.

> Just as a kneejerk reaction, I think it'd be really strange if the
> Meson version of libpq-oauth.a was named libpq-oauth_static.a on disk,
> and clients had to figure out which build system was used in order to
> link.

This proposal seems utterly unacceptable from a client compatibility
standpoint. Sure, we could get away with renaming purely internal
things like boot_parser, but libpq? It won't do for the ecpg
libraries either.

> Is there a way to work around this problem in a way that affects Windows only?

Even on Windows, the proposal is unacceptable. The build products
have to remain the same as what they've been for decades. If meson
is unable to build them, we can't use meson. But I imagine there is
something you can do to persuade the newer version to do what it was
doing before.

regards, tom lane

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Nathan Bossart 2025-08-12 16:29:06 Re: Non-reproducible AIO failure
Previous Message Tom Lane 2025-08-12 16:20:58 Re: Making type Datum be 8 bytes everywhere