diff options
author | Tavian Barnes <tavianator@tavianator.com> | 2025-07-09 10:22:00 -0400 |
---|---|---|
committer | Tavian Barnes <tavianator@tavianator.com> | 2025-07-26 14:19:51 -0400 |
commit | 1b1e5a4707d681e4b38df56e83db1be9c07723b8 (patch) | |
tree | 818d23177c1b2ab338c28ad84ff4a496dc0c9602 /build | |
parent | 54260a40b37890bb6ee3b62659abd3b13c89a0aa (diff) | |
download | bfs-1b1e5a4707d681e4b38df56e83db1be9c07723b8.tar.xz |
build: Use C23 if possible
For broader compiler support, we try both -std=c23 and -std=c2x. If
neither is supported, we fall back to -std=c17, but we will start
requiring some C23 features as extensions in this mode.
Diffstat (limited to 'build')
-rw-r--r-- | build/flags.mk | 14 | ||||
-rw-r--r-- | build/flags/std.c | 12 |
2 files changed, 19 insertions, 7 deletions
diff --git a/build/flags.mk b/build/flags.mk index d6f9499..00876d1 100644 --- a/build/flags.mk +++ b/build/flags.mk @@ -8,7 +8,7 @@ include gen/vars.mk # Internal flags _CPPFLAGS := -Isrc -Igen -include src/prelude.h -_CFLAGS := -std=c17 +_CFLAGS := _LDFLAGS := _LDLIBS := @@ -58,8 +58,7 @@ _CFLAGS += ${SAN_CFLAGS,${SAN}} YESLIBS := ${NOT,${_MSAN}${_TSAN}${_TYSAN}} NOLIBS ?= ${NOT,${YESLIBS}} -# gcov only intercepts fork()/exec() with -std=gnu* -GCOV_CFLAGS,y := -std=gnu17 --coverage +GCOV_CFLAGS,y := --coverage _CFLAGS += ${GCOV_CFLAGS,${_GCOV}} LINT_CPPFLAGS,y := -D_FORTIFY_SOURCE=3 -DBFS_LINT @@ -91,6 +90,10 @@ include build/exports.mk # Conditionally-supported flags AUTO_FLAGS := \ + gen/flags/std.mk \ + gen/flags/bind-now.mk \ + gen/flags/deps.mk \ + gen/flags/pthread.mk \ gen/flags/Wformat.mk \ gen/flags/Wimplicit-fallthrough.mk \ gen/flags/Wimplicit.mk \ @@ -99,10 +102,7 @@ AUTO_FLAGS := \ gen/flags/Wshadow.mk \ gen/flags/Wsign-compare.mk \ gen/flags/Wstrict-prototypes.mk \ - gen/flags/Wundef-prefix.mk \ - gen/flags/bind-now.mk \ - gen/flags/deps.mk \ - gen/flags/pthread.mk + gen/flags/Wundef-prefix.mk gen/flags.mk: ${AUTO_FLAGS} ${MSG} "[ GEN] $@" diff --git a/build/flags/std.c b/build/flags/std.c new file mode 100644 index 0000000..6030d1f --- /dev/null +++ b/build/flags/std.c @@ -0,0 +1,12 @@ +// Copyright © Tavian Barnes <tavianator@tavianator.com> +// SPDX-License-Identifier: 0BSD + +/// _CFLAGS += -std=c23 +/// --- +/// _CFLAGS += -std=c2x +/// --- +/// _CFLAGS += -std=c17 + +int main(void) { + return 0; +} |