Module Name: src Committed By: riastradh Date: Mon Jan 13 15:40:18 UTC 2025
Modified Files: src/share/mk: bsd.sys.mk src/sys/conf: Makefile.kern.inc Log Message: Switch from -std=gnu99 to -std=gnu11 by default. This is needed for newer language syntax like u"foo" for UTF-16 string literals in UEFI. As proposed on tech-kern: https://mail-index.netbsd.org/tech-kern/2025/01/05/msg029919.html Some commentators requested -std=c11 instead of -std=gnu11, but that requires additional work -- some of it is a matter of providing asm and typeof as aliases for __asm__ and __typeof__, but there's other issues that need to be resolved too like PR toolchain/58969: use of alloca is warning, not error, with -std=c11. This is a smaller incremental change. PR toolchain/58962: clang build broken by C11 features with -std=gnu99 To generate a diff of this commit: cvs rdiff -u -r1.316 -r1.317 src/share/mk/bsd.sys.mk cvs rdiff -u -r1.301 -r1.302 src/sys/conf/Makefile.kern.inc Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/share/mk/bsd.sys.mk diff -u src/share/mk/bsd.sys.mk:1.316 src/share/mk/bsd.sys.mk:1.317 --- src/share/mk/bsd.sys.mk:1.316 Tue Feb 13 16:15:59 2024 +++ src/share/mk/bsd.sys.mk Mon Jan 13 15:40:18 2025 @@ -1,4 +1,4 @@ -# $NetBSD: bsd.sys.mk,v 1.316 2024/02/13 16:15:59 christos Exp $ +# $NetBSD: bsd.sys.mk,v 1.317 2025/01/13 15:40:18 riastradh Exp $ # # Build definitions used for NetBSD source tree builds. @@ -56,11 +56,17 @@ CXXFLAGS+= ${REPROFLAGS} .endif # NetBSD sources use C99 style, with some GCC extensions. -# Coverity does not like -std=gnu99 +# Coverity does not like -std=gnu99 (XXX untested but likely not gnu11 either) +# +# XXX Ideally we would not rely on GNU extensions, but currently some +# code uses alloca(3) which -std=c11 compiles broken-at-runtime. Until +# we fix that (PR toolchain/58969: use of alloca is warning, not error, +# with -std=c11), we have to continue using -std=gnu11 and not +# -std=c11. .if !defined(COVERITY_TOP_CONFIG) && empty(CFLAGS:M*-std=*) -CFLAGS+= ${${ACTIVE_CC} == "clang":? -std=gnu99 :} -CFLAGS+= ${${ACTIVE_CC} == "gcc":? -std=gnu99 :} -CFLAGS+= ${${ACTIVE_CC} == "pcc":? -std=gnu99 :} +CFLAGS+= ${${ACTIVE_CC} == "clang":? -std=gnu11 :} +CFLAGS+= ${${ACTIVE_CC} == "gcc":? -std=gnu11 :} +CFLAGS+= ${${ACTIVE_CC} == "pcc":? -std=gnu11 :} .endif .if defined(WARNS) Index: src/sys/conf/Makefile.kern.inc diff -u src/sys/conf/Makefile.kern.inc:1.301 src/sys/conf/Makefile.kern.inc:1.302 --- src/sys/conf/Makefile.kern.inc:1.301 Mon May 6 08:43:36 2024 +++ src/sys/conf/Makefile.kern.inc Mon Jan 13 15:40:18 2025 @@ -1,4 +1,4 @@ -# $NetBSD: Makefile.kern.inc,v 1.301 2024/05/06 08:43:36 mrg Exp $ +# $NetBSD: Makefile.kern.inc,v 1.302 2025/01/13 15:40:18 riastradh Exp $ # # This file contains common `MI' targets and definitions and it is included # at the bottom of each `MD' ${MACHINE}/conf/Makefile.${MACHINE}. @@ -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