On Mon Aug 21, 2023 at 10:33 AM CDT, Andrew Dunstan wrote:

On 2023-08-17 Th 16:51, Andres Freund wrote:
> Hi,
>
> On 2023-08-17 14:45:54 -0500, Tristan Partin wrote:
>> On Thu Aug 17, 2023 at 2:32 PM CDT, Andrew Dunstan wrote:
>>> I started digging into a warning I noticed on my FDW builds where
>>> Postgres is built with meson, 
e.g.<https://buildfarm.postgresql.org/cgi-bin/show_stage_log.pl?nm=crake&dt=2023-08-16%2018%3A37%3A25&stg=FileTextArrayFDW-build>
>>> which has this:
>>>
>>> cc1: warning: ‘-Wformat-security’ ignored without ‘-Wformat’
>>> [-Wformat-security]
>>>
>>> I found that the pgxs Makefile.global built under meson is a bit
>>> different. On debug builds for both this is what I get on HEAD (meson)
>>> and REL_15_STABLE (autoconf), stripped of the current components:
> I assume "current" means the flags that are present in both cases?
>
>
>>>            HEAD: CFLAGS =-Wshadow=compatible-local
>>> REL_15_STABLE: CFLAGS =-Wall  -g
>>>
>>> The warning is apparently due to the missing -Wall.
>>>
>>> Shouldn't we be aiming for pretty much identical settings?
> The difference for -Wshadow=compatible-local is due to changes between 15 and
> HEAD.
>
> We're indeed not adding -Wall right now (the warning level is handled by
> meson, so it doesn't show up in our cflags right now).
>
>
>> I agree that they should be identical. The meson bild should definitely be
>> aiming for 100% compatibility for the Makefile.global.
> I don't think that's feasible. It was a fair bit of work to get the most
> important contents to match, while skipping lots of things that are primarily
> relevant for building the server (which isn't relevant for pgxs).
>
> That said, in this specific case, I agree, we should likely emit -Wall to
> Makefile.global in meson as well.
>

Where should we do that? And how about the -g that's also missing for debug-enabled builds?

Look in src/makefiles/meson.build. You will see a line like
'CFLAGS': var_cflags. You probably want to do something like:

        pgxs_cflags = var_cflags + cc.get_supported_arguments('-Wxxx')
        if get_option('debug')
                # Populate for debug flags that aren't -g
                debug_flags = {}

pgxs_cflags += debug_flags.get(cc.get_id(), cc.get_supported_arguments('-g')
        endif

        ...
        CFLAGS: pgxs_cflags,
        ...

--
Tristan Partin
Neon (https://neon.tech)


Reply via email to