public inbox for [email protected]
help / color / mirror / Atom feedValidate user-supplied c_args in meson builds
2+ messages / 2 participants
[nested] [flat]
* Validate user-supplied c_args in meson builds
@ 2026-03-18 10:01 Bertrand Drouvot <[email protected]>
2026-04-15 21:36 ` Re: Validate user-supplied c_args in meson builds Tristan Partin <[email protected]>
0 siblings, 1 reply; 2+ messages in thread
From: Bertrand Drouvot @ 2026-03-18 10:01 UTC (permalink / raw)
To: [email protected]
Hi hackers,
While using an invalid c_args by mistake with clang and meson, I observed the
following:
$ CC="clang" meson setup meson_build -Dc_args="-Wbad"
produces:
meson.build:645:4: ERROR: Problem encountered: C compiler does not support C11
This is misleading: my C compiler does support C11 but the C11 check fails
due to the invalid arg, as stated in meson-log.txt:
"
stderr:
error: unknown warning option '-Wbad' [-Werror,-Wunknown-warning-option]
"
OTOH, providing an invalid CFLAG with autoconf and using clang currently produces
warnings like:
"
warning: unknown warning option '-Wbad' [-Wunknown-warning-option]
"
That's perfectly fine and not misleading.
If using gcc instead of clang, then:
1/ with autoconf, we get:
"
checking whether the C compiler works... no
configure: error: in `/home/postgres/postgresql/postgres':
configure: error: C compiler cannot create executables
See `config.log' for more details
"
and in config.log:
"
configure:4028: checking whether the C compiler works
configure:4050: gcc -O0 -Wbad conftest.c >&5
gcc: error: unrecognized command-line option '-Wbad'"
That's not misleading.
2/ with meson, we get:
"
$ CC="gcc" meson setup meson_build -Dc_args="-Wbad"
meson.build:9:0: ERROR: Compiler gcc cannot compile programs.
"
That's not misleading.
So it looks like that GCC treats an invalid CFLAG as an error by itself, while
clang only treats it as a warning (unless -Werror=unknown-warning-option is present).
Also, it looks like that when using clang, meson injects -Werror=unknown-warning-option
into cc.compiles().
This can be confirmed by creating a simple meson.build as:
"
project('test', 'c')
cc = meson.get_compiler('c')
cc.compiles('int main(void){return 0;}', name: 'test probe')
"
and running the compilation with a valid arg:
$ CC=gcc meson setup testbuild -Dc_args="-Wunused-value"
and check:
$ grep -c unknown-warning-option testbuild/meson-logs/meson-log.txt
0
While (with clang):
$ CC=clang meson setup testbuild -Dc_args="-Wunused-value"
$ grep -c unknown-warning-option testbuild/meson-logs/meson-log.txt
1
So, PFA, a patch that adds a cc.has_multi_arguments() check before the C11 test so
that :
CC="clang" meson setup meson_build -Dc_args="-Wbad"
now produces:
"
Compiler for C supports arguments -Wbad: NO
meson.build:625:2: ERROR: Problem encountered: One or more c_args are not supported by clang 21.0.0
"
and does not report wrongly that the C compiler does not support C11 when using
clang with meson (and an invalid c_args).
Regards,
--
Bertrand Drouvot
PostgreSQL Contributors Team
RDS Open Source Databases
Amazon Web Services: https://aws.amazon.com
^ permalink raw reply [nested|flat] 2+ messages in thread
* Re: Validate user-supplied c_args in meson builds
2026-03-18 10:01 Validate user-supplied c_args in meson builds Bertrand Drouvot <[email protected]>
@ 2026-04-15 21:36 ` Tristan Partin <[email protected]>
0 siblings, 0 replies; 2+ messages in thread
From: Tristan Partin @ 2026-04-15 21:36 UTC (permalink / raw)
To: Bertrand Drouvot <[email protected]>; +Cc: pgsql-hackers
I actually think this is a bug in Meson. I created a PR[0] to propose
a fix, but one person's bug is another person's feature. The actual
content of the patch seems fine to me, but I would wait to see the
result of the pull request fist.
[0]: https://github.com/mesonbuild/meson/pull/15714
--
Tristan Partin
PostgreSQL Contributors Team
AWS (https://aws.amazon.com)
^ permalink raw reply [nested|flat] 2+ messages in thread
end of thread, other threads:[~2026-04-15 21:36 UTC | newest]
Thread overview: 2+ messages (download: mbox mbox.gz follow: Atom feed)
-- links below jump to the message on this page --
2026-03-18 10:01 Validate user-supplied c_args in meson builds Bertrand Drouvot <[email protected]>
2026-04-15 21:36 ` Tristan Partin <[email protected]>
This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox