From: | Peter Eisentraut <peter(at)eisentraut(dot)org> |
---|---|
To: | "Matt Smith (matts3)" <matts3(at)cisco(dot)com>, "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: [PATCH] Add an ldflags_sl meson build option |
Date: | 2025-06-18 09:44:22 |
Message-ID: | 18877695-3859-485e-95b2-2a93c1717d69@eisentraut.org |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On 18.06.25 08:40, Matt Smith (matts3) wrote:
> Yes I understand what you're saying. I know Meson tries to set some of
> these flags. But I want the source of truth for my flags for each target
> type to be outside Meson. Which Meson is not designed to do.
>
> When you're building many 3^rd party deps all with different build
> systems and all trying to tweak flags here and there, it introduces much
> better consistency to specify "all targets of a certain type use this
> flag set". Otherwise you end up having to write logic to filter flags
> per build system/package. And yes I realize we live in an imperfect
> world and packages such as postgres will in fact need to set project-
> specific flags, but this should be an exception.
>
> I have raised an issue on Meson itself: https://github.com/mesonbuild/
> meson/issues/14621 <https://github.com/mesonbuild/meson/issues/14621>
>
> Cmake has functionality whereby you can specify linker flags per target
> type and it will set them accordingly. Meson doesn't have this type of
> feature and instead sets base flags itself across all targets.
Yeah, I see myself agreeing with the answers on that Meson issue. I
think this is just not how the tool was meant to be used.
> So it would be helpful if postgresql could "drill a hole" as you say to
> shared_library() flags because then at least those flags can be
> overrriden externally just for those targets.
>
> If you don't mind me asking - I assume ldflags_sl exists as a way for
> postgres internally to be able to set flags across all shared libs?
I think this is all legacy from makefiles. With makefiles there isn't a
clear boundary between what variables are internal and external. And at
some point someone thought that it would be useful to document the
LDFLAGS_SL variable as external. But I don't know why anyone would use
it. I can make up some ideas retrospectively, perhaps someone wanted to
play around with -fvisibility or -fPIE or stuff like that. But even
then I would wonder whether it has the right granularity, since you
might need different flags for shared modules versus shared libraries.
That's why I asked you if you had a specific use case for an option to
pass. And then we could have thought about a way to expose that option
in a dedicated way perhaps. But I think this idea that you want to
control all the options yourself is just not the way this is meant to be
working.
From | Date | Subject | |
---|---|---|---|
Next Message | Bertrand Drouvot | 2025-06-18 09:46:51 | Re: confusing message in check_tuple |
Previous Message | Bertrand Drouvot | 2025-06-18 09:09:12 | Re: POC: enable logical decoding when wal_level = 'replica' without a server restart |