From: | Andres Freund <andres(at)anarazel(dot)de> |
---|---|
To: | pgsql-committers(at)lists(dot)postgresql(dot)org |
Subject: | pgsql: perl: Hide warnings inside perl.h when using gcc compatible comp |
Date: | 2023-01-03 01:21:33 |
Message-ID: | E1pCVzh-001lFV-Gy@gemulon.postgresql.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-committers |
perl: Hide warnings inside perl.h when using gcc compatible compiler
New versions of perl trigger warnings within perl.h with our compiler
flags. At least -Wdeclaration-after-statement, -Wshadow=compatible-local are
known to be problematic.
To avoid these warnings, conditionally use #pragma GCC system_header before
including plperl.h.
Alternatively, we could add the include paths for problematic headers with
-isystem, but that is a larger hammer and is harder to search for.
A more granular alternative would be to use #pragma GCC diagnostic
push/ignored/pop, but gcc warns about unknown warnings being ignored, so every
to-be-ignored-temporarily compiler warning would require its own pg_config.h
symbol and #ifdef.
As the warnings are voluminous, it makes sense to backpatch this change. But
don't do so yet, we first want gather buildfarm coverage - it's e.g. possible
that some compiler claiming to be gcc compatible has issues with the pragma.
Author: Andres Freund <andres(at)anarazel(dot)de>
Reviewed-by: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Discussion: Discussion: https://postgr.es/m/20221228182455.hfdwd22zztvkojy2@awork3.anarazel.de
Branch
------
REL_12_STABLE
Details
-------
https://git.postgresql.org/pg/commitdiff/f0e13802f196bc1044d52669ae5ef0b32e3a4db2
Modified Files
--------------
src/include/c.h | 28 ++++++++++++++++++++++++++++
src/pl/plperl/plperl.h | 9 +++++++++
2 files changed, 37 insertions(+)
From | Date | Subject | |
---|---|---|---|
Next Message | Michael Paquier | 2023-01-03 07:27:38 | pgsql: Fix typos in comments, code and documentation |
Previous Message | Tom Lane | 2023-01-02 21:17:19 | pgsql: Avoid reference to nonexistent array element in ExecInitAgg(). |