tech-kern archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Compiling kernel with -std=gnu11
Currently we compile the kernel with -std=gnu99. Someone recently
added some code that uses the u"foo" syntax for UTF-16 literals, which
is new in C11. With -std=gnu99, gcc accepts this syntax but clang
rejects it -- clang requires -std=c11 or -std=gnu11.
We could switch to L"foo" like is being used elsewhere, but it's not
exactly correct -- the data in question really are fixed to be UTF-16,
not some arbitrary interpretation of wide characters. We may also
want to use other C11 features such as _Atomic in the future.
Any objections to compiling the kernel with -std=gnu11 instead?
diff -r 876c5a9056ed sys/conf/Makefile.kern.inc
--- a/sys/conf/Makefile.kern.inc Sun Jan 05 14:27:10 2025 +0000
+++ b/sys/conf/Makefile.kern.inc Sun Jan 05 14:48:17 2025 +0000
@@ -66,7 +66,7 @@ INCLUDES?= -I. ${EXTRA_INCLUDES} -I${S}/
-I$S -nostdinc
CPPFLAGS+= ${INCLUDES} ${IDENT} -D_KERNEL -D_KERNEL_OPT
.if !defined(COVERITY_TOP_CONFIG)
-CPPFLAGS+= -std=gnu99
+CPPFLAGS+= -std=gnu11
.endif
.if ${KERNEL_DIR:Uno} == "yes"
CPPFLAGS+= -DKERNEL_DIR
Home |
Main Index |
Thread Index |
Old Index