Re: meson: pgxs Makefile.global differences

From: "Tristan Partin" <tristan(at)neon(dot)tech>
To: "Andrew Dunstan" <andrew(at)dunslane(dot)net>, "Andres Freund" <andres(at)anarazel(dot)de>
Cc: "PostgreSQL Hackers" <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: meson: pgxs Makefile.global differences
Date: 2023-08-21 15:48:23
Message-ID: CUYCAD19HJ25.36D6QV4YQHQY2@gonk
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

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)

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Andrew Dunstan 2023-08-21 15:51:24 Re: Make all Perl warnings fatal
Previous Message Peter Eisentraut 2023-08-21 15:43:48 Re: meson: pgxs Makefile.global differences