src: Use gnu17 as the default C standard for userland instead of gnu99

Tracking newer versions of C (and C++) permits assuming newer language
features in the base system.  Some C11 extensions are already used in
the base system but implemented on top of GNU C extensions such as
_Alignas and _Static_assert.  In some cases the fallback versions in
cdefs.h are more limited than the native C11 extensions.

Even though C11 is the next major version of C, C17 is chosen instead
since C17 does not add new features to C but merely fixes defects in
C11.  It is also well supported by a wide range of clang (7.0.0+) and
GCC (8.1+) versions.

Along with changing the default, this change also removes explicit
requests for c11 via the CSTD variable in various Makefiles.

Libraries and binaries for ZFS continue to use c99.

PR:		284039 (exp-run)
Reviewed by:	imp, arichardson, emaste
Differential Revision:	https://reviews.freebsd.org/D43237
This commit is contained in:
Minsoo Choo 2025-01-09 11:13:06 -05:00 committed by John Baldwin
parent d35b039af9
commit ca4eddea97
6 changed files with 1 additions and 7 deletions

View file

@ -4,6 +4,5 @@ ATF_TESTS_C= functional
TEST_METADATA.functional+= timeout=15
LIBADD= util
CSTD= c11
.include <bsd.test.mk>

View file

@ -9,7 +9,6 @@ SRCS= newfs_msdos.c mkfs_msdos.c
.if ${MACHINE_CPUARCH} == "arm"
WARNS?= 3
.endif
CSTD= c11
HAS_TESTS=
SUBDIR.${MK_TESTS}+= tests

View file

@ -10,8 +10,7 @@
.include <bsd.compiler.mk>
# the default is gnu99 for now
CSTD?= gnu99
CSTD?= gnu17
.if ${CSTD} == "c89" || ${CSTD} == "c90"
CFLAGS+= -std=iso9899:1990

View file

@ -3,7 +3,6 @@
PACKAGE= runtime
PROG= sort
SRCS= bwstring.c coll.c file.c mem.c radixsort.c sort.c vsort.c
CSTD= c11
sort.1: sort.1.in
sed ${MAN_SUB} ${.ALLSRC} >${.TARGET}

View file

@ -25,7 +25,6 @@ MLINKS= zstd.1 unzstd.1 \
zstd.1 zstdcat.1 \
zstd.1 zstdmt.1
CSTD=c11
WARNS?= 2
LIBADD= zstd
.PATH: ${SRCTOP}/sys/contrib/zstd/programs

View file

@ -15,7 +15,6 @@ SRCS= cd9660.c \
MAN= makefs.8
NO_WCAST_ALIGN=
CSTD= c11
.if ${MK_ZFS} != "no"
SRCS+= zfs.c