From ee5fd55153d5f407b1062e2ce5ff741a7d503c44 Mon Sep 17 00:00:00 2001 From: Peter Eisentraut Date: Fri, 18 Jul 2025 13:26:40 +0300 Subject: [PATCH v1 1/2] meson: Move C99 test earlier That way, if any command-line options are needed, subsequent tests will also use them. --- meson.build | 85 ++++++++++++++++++++++++++--------------------------- 1 file changed, 42 insertions(+), 43 deletions(-) diff --git a/meson.build b/meson.build index 5365aaf95e6..0b9d7224cd6 100644 --- a/meson.build +++ b/meson.build @@ -550,6 +550,48 @@ dir_doc_extension = dir_doc / 'extension' # used, they need to be added to test_c_args as well. ############################################################### +# Do we need -std=c99 to compile C99 code? We don't want to add -std=c99 +# unnecessarily, because we optionally rely on newer features. +c99_test = ''' +#include +#include +#include +#include + +struct named_init_test { + int a; + int b; +}; + +extern void structfunc(struct named_init_test); + +int main(int argc, char **argv) +{ + struct named_init_test nit = { + .a = 3, + .b = 5, + }; + + for (int loop_var = 0; loop_var < 3; loop_var++) + { + nit.a += nit.b; + } + + structfunc((struct named_init_test){1, 0}); + + return nit.a != 0; +} +''' + +if not cc.compiles(c99_test, name: 'c99') + if cc.compiles(c99_test, name: 'c99 with -std=c99', args: ['-std=c99']) + cflags += '-std=c99' + else + error('C compiler does not support C99') + endif +endif + + postgres_inc = [include_directories(postgres_inc_d)] test_lib_d = postgres_lib_d test_c_args = cppflags + cflags @@ -1704,49 +1746,6 @@ endif # Compiler tests ############################################################### -# Do we need -std=c99 to compile C99 code? We don't want to add -std=c99 -# unnecessarily, because we optionally rely on newer features. -c99_test = ''' -#include -#include -#include -#include - -struct named_init_test { - int a; - int b; -}; - -extern void structfunc(struct named_init_test); - -int main(int argc, char **argv) -{ - struct named_init_test nit = { - .a = 3, - .b = 5, - }; - - for (int loop_var = 0; loop_var < 3; loop_var++) - { - nit.a += nit.b; - } - - structfunc((struct named_init_test){1, 0}); - - return nit.a != 0; -} -''' - -if not cc.compiles(c99_test, name: 'c99', args: test_c_args) - if cc.compiles(c99_test, name: 'c99 with -std=c99', - args: test_c_args + ['-std=c99']) - test_c_args += '-std=c99' - cflags += '-std=c99' - else - error('C compiler does not support C99') - endif -endif - if host_machine.endian() == 'big' cdata.set('WORDS_BIGENDIAN', 1) endif base-commit: 5022ff250eeba2367fb4e74fed8ee65bcddb6c99 -- 2.50.0