Re: [PATCH] Add an ldflags_sl meson build option

Поиск
Список
Период
Сортировка
От Peter Eisentraut
Тема Re: [PATCH] Add an ldflags_sl meson build option
Дата
Msg-id 18877695-3859-485e-95b2-2a93c1717d69@eisentraut.org
обсуждение исходный текст
Ответ на Re: [PATCH] Add an ldflags_sl meson build option  ("Matt Smith (matts3)" <matts3@cisco.com>)
Список 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.




В списке pgsql-hackers по дате отправления: