Re: meson: Specify -Wformat as a common warning flag for extensions

Поиск
Список
Период
Сортировка
От Tristan Partin
Тема Re: meson: Specify -Wformat as a common warning flag for extensions
Дата
Msg-id CZSDSNYEUHUL.399XLPGCJSJ5H@neon.tech
обсуждение исходный текст
Ответ на Re: meson: Specify -Wformat as a common warning flag for extensions  (Sutou Kouhei <kou@clear-code.com>)
Ответы Re: meson: Specify -Wformat as a common warning flag for extensions  (Sutou Kouhei <kou@clear-code.com>)
Список pgsql-hackers
On Tue Mar 12, 2024 at 6:56 PM CDT, Sutou Kouhei wrote:
> Hi,
>
> In <CZOHWDYQJQCQ.23A5RRV1E05N2@neon.tech>
>   "Re: meson: Specify -Wformat as a common warning flag for extensions" on Fri, 08 Mar 2024 10:05:27 -0600,
>   "Tristan Partin" <tristan@neon.tech> wrote:
>
> > Ok, I figured this out. -Wall implies -Wformat=1. We set warning_level
> > to 1 in the Meson project() call, which implies -Wall, and set -Wall
> > in CFLAGS for autoconf. That's the reason we don't get issues building
> > Postgres. A user making use of the pg_config --cflags option, as Sutou
> > is, *will* run into the aforementioned issues, since we don't
> > propogate -Wall into pg_config.
> >
> >     $ gcc $(pg_config --cflags) -E - < /dev/null > /dev/null
> >     cc1: warning: ‘-Wformat-security’ ignored without ‘-Wformat’
> >     [-Wformat-security]
> >     $ gcc -Wall $(pg_config --cflags) -E - < /dev/null > /dev/null
> >     (nothing printed)
>
> Thanks for explaining this. You're right. This is the reason
> why we don't need this for PostgreSQL itself but we need
> this for PostgreSQL extensions. Sorry. I should have
> explained this in the first e-mail...
>
>
> What should we do to proceed this patch?

Perhaps adding some more clarification in the comments that I wrote.

-  # -Wformat-security requires -Wformat, so check for it
+  # -Wformat-secuirty requires -Wformat. We compile with -Wall in
+  # Postgres, which includes -Wformat=1. -Wformat is shorthand for
+  # -Wformat=1. The set of flags which includes -Wformat-security is
+  # persisted into pg_config --cflags, which is commonly used by
+  # PGXS-based extensions. The lack of -Wformat in the persisted flags
+  # will produce a warning on many GCC versions, so even though adding
+  # -Wformat here is a no-op for Postgres, it silences other use cases.

That might be too long-winded though :).

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



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

Предыдущее
От: Michael Paquier
Дата:
Сообщение: Re: Add new error_action COPY ON_ERROR "log"
Следующее
От: shveta malik
Дата:
Сообщение: Re: Introduce XID age and inactive timeout based replication slot invalidation