2
0
mirror of https://gitlab.isc.org/isc-projects/bind9 synced 2025-08-22 10:10:06 +00:00

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
This commit is contained in:
Aydın Mercan 2025-07-28 13:19:41 +00:00
parent e8c3bcc0a2
commit 6ae002f1ae
No known key found for this signature in database

View File

@ -293,9 +293,14 @@ config.set_quoted('NAMED_CONFFILE', sysconfdir / 'named.conf')
config.set_quoted('CACHEDB_DEFAULT', get_option('cachedb')) config.set_quoted('CACHEDB_DEFAULT', get_option('cachedb'))
config.set_quoted('ZONEDB_DEFAULT', get_option('zonedb')) config.set_quoted('ZONEDB_DEFAULT', get_option('zonedb'))
# Shim constexpr for pre-C23 constexpr_test = '''
# "ne" => "none" static constexpr int r = 0;
if c_std.substring(-2) in ['ne', '89', '99', '11', '17', '18']
int main(void) {
return r;
}
'''
if not cc.compiles(constexpr_test, name: 'usage of constexpr')
config.set('constexpr', 'static const') config.set('constexpr', 'static const')
endif endif