From: Mike Yuan Date: Thu, 16 Jan 2025 17:50:54 +0000 (+0100) Subject: meson: bump C std to gnu17 X-Git-Tag: v258-rc1~1571 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9cd064aa9ffe8728961859a127c18054c857a5b8;p=thirdparty%2Fsystemd.git meson: bump C std to gnu17 GCC 8.4 (our baseline) defaults to gnu17 already. --- diff --git a/docs/CODING_STYLE.md b/docs/CODING_STYLE.md index 48fa4b093d0..b8b420c1423 100644 --- a/docs/CODING_STYLE.md +++ b/docs/CODING_STYLE.md @@ -151,16 +151,16 @@ SPDX-License-Identifier: LGPL-2.1-or-later ## Code Organization and Semantics -- For our codebase we intend to use ISO C11 *with* GNU extensions (aka - "gnu11"). Public APIs (i.e. those we expose via `libsystemd.so` +- For our codebase we intend to use ISO C17 *with* GNU extensions (aka + "gnu17"). Public APIs (i.e. those we expose via `libsystemd.so` i.e. `systemd/sd-*.h`) should only use ISO C89 however (with a very limited set of conservative and common extensions, such as fixed size integer types - from ``), so that we don't force consuming programs into C11 + from ``), so that we don't force consuming programs into C17 mode. (This discrepancy in particular means one thing: internally we use C99 `bool` booleans, externally C89-compatible `int` booleans which generally have different size in memory and slightly different semantics, also see below.) Both for internal and external code it's OK to use even newer - features and GCC extension than "gnu11", as long as there's reasonable + features and GCC extension than "gnu17", as long as there's reasonable fallback #ifdeffery in place to ensure compatibility is retained with older compilers. diff --git a/meson.build b/meson.build index 617d6d24528..d567f255664 100644 --- a/meson.build +++ b/meson.build @@ -4,7 +4,7 @@ project('systemd', 'c', version : files('meson.version'), license : 'LGPLv2+', default_options: [ - 'c_std=gnu11', + 'c_std=gnu17', 'prefix=/usr', 'sysconfdir=/etc', 'localstatedir=/var', @@ -1761,7 +1761,7 @@ python_39 = python.language_version().version_compare('>=3.9') if conf.get('BPF_FRAMEWORK') == 1 bpf_clang_flags = [ - '-std=gnu11', + '-std=gnu17', '-Wno-compare-distinct-pointer-types', '-fno-stack-protector', '-O2', @@ -1772,7 +1772,7 @@ if conf.get('BPF_FRAMEWORK') == 1 ] bpf_gcc_flags = [ - '-std=gnu11', + '-std=gnu17', '-fno-stack-protector', '-fno-ssa-phiopt', '-O2', diff --git a/src/basic/missing_threads.h b/src/basic/missing_threads.h index d48e05d586b..c7da1dbd5e0 100644 --- a/src/basic/missing_threads.h +++ b/src/basic/missing_threads.h @@ -5,7 +5,7 @@ #if HAVE_THREADS_H # include #elif !(defined(thread_local)) -# if __STDC_VERSION__ >= 201112L && !(defined(__STDC_NO_THREADS__)) +# ifndef __STDC_NO_THREADS__ # define thread_local _Thread_local # else # define thread_local __thread