From: Aydın Mercan Date: Mon, 28 Jul 2025 13:19:41 +0000 (+0000) Subject: Use a proper compiler test for constexpr support X-Git-Tag: v9.21.12~34^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6ae002f1ae94cb88bec69f960594828840fd4244;p=thirdparty%2Fbind9.git Use a proper compiler test for constexpr support After GCC 15, C23 became the default version. [1] Add a proper compiler test for constexpr support to ensure that GCC 15+ invoked with `c_std` set to `none` does not erroneously use the constexpr shim. This change does not affect the build in its default configuration (which uses GNU C11); it is only meant to prepare the build system for adding C23 elements to the code. [1]: https://gcc.gnu.org/gcc-15/changes.html --- diff --git a/meson.build b/meson.build index 25e5388e7ea..a2377345f6e 100644 --- a/meson.build +++ b/meson.build @@ -293,9 +293,14 @@ config.set_quoted('NAMED_CONFFILE', sysconfdir / 'named.conf') config.set_quoted('CACHEDB_DEFAULT', get_option('cachedb')) config.set_quoted('ZONEDB_DEFAULT', get_option('zonedb')) -# Shim constexpr for pre-C23 -# "ne" => "none" -if c_std.substring(-2) in ['ne', '89', '99', '11', '17', '18'] +constexpr_test = ''' +static constexpr int r = 0; + +int main(void) { + return r; +} +''' +if not cc.compiles(constexpr_test, name: 'usage of constexpr') config.set('constexpr', 'static const') endif