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 по дате отправления: