Date: Fri, 24 Apr 2026 20:36:32 +0000 From: Bjoern A. Zeeb <bz@FreeBSD.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Subject: git: 93d301d95ab2 - main - Remove -fms-extensions throughout the tree Message-ID: <69ebd450.36574.1b31c920@gitrepo.freebsd.org>
index | next in thread | raw e-mail
The branch main has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=93d301d95ab230ea159b21b5412aac2ce5362ac5 commit 93d301d95ab230ea159b21b5412aac2ce5362ac5 Author: Bjoern A. Zeeb <bz@FreeBSD.org> AuthorDate: 2026-02-03 01:51:40 +0000 Commit: Bjoern A. Zeeb <bz@FreeBSD.org> CommitDate: 2026-04-24 20:36:15 +0000 Remove -fms-extensions throughout the tree During a discussion about using -fms-extensions jhb pointed out that we have them enabled in the kernel for gcc by default (even multiple times in one part). I had missed all that and clang still failed on my use case (needing another option). The original cause for enabling them for our tree back then was that we needed to support C11 anonymous struct/unions. Our in-tree gcc 4.2.1, despite later patches, needed the -fms-extensions to support these even though this was not the expected use case for that option ( cc4a90c445aa0 enabled it globally for the kernel). clang at that time (or at least when it became default for 10.0) already was fine (with C11). Any later gcc (4.6.0 onwards) did not need that option anymore, even when compiled for -std=iso9899:1990 (which does not support anonymous structs/unions) unless one would add -pedantic (see gcc git 4bdd0a60b27a). This is also the reason why userland cddl sources now compile with the option removed despite CSTD=c99. The only driver which needed the option recently was ccp, but that was fixed in 8d3f41dbcb2a by jhb. So cleanup all uses cases of -fms-extensions for the moment as they are no longer needed given all compilers currently supported seem to be fine without them and gcc-4.2.1 was removed from the tree in stable/13 in 2020 (a9854bc3812b). Reported by: jhb (all this but possibly the world CDDL parts) Sponsored by: The FreeBSD Foundation MFC after: 3 days Reviewed by: emaste (earlier), imp, jhb, glebius Differential Revision: https://reviews.freebsd.org/D55072 --- cddl/lib/libzpool/Makefile | 1 - cddl/usr.bin/ztest/Makefile | 1 - cddl/usr.sbin/zdb/Makefile | 1 - sys/conf/kern.pre.mk | 3 +-- sys/conf/kmod.mk | 1 - sys/modules/iser/Makefile | 1 - sys/modules/pms/Makefile | 1 - sys/powerpc/conf/dpaa/config.dpaa | 2 +- 8 files changed, 2 insertions(+), 9 deletions(-) diff --git a/cddl/lib/libzpool/Makefile b/cddl/lib/libzpool/Makefile index 9361d352f7c0..0c680367956f 100644 --- a/cddl/lib/libzpool/Makefile +++ b/cddl/lib/libzpool/Makefile @@ -281,7 +281,6 @@ CFLAGS+= -DWANTS_MUTEX_OWNED CFLAGS+= -I${SRCTOP}/lib/libpthread/thread CFLAGS+= -I${SRCTOP}/lib/libpthread/sys CFLAGS+= -I${SRCTOP}/lib/libthr/arch/${MACHINE_CPUARCH}/include -CFLAGS.gcc+= -fms-extensions LIBADD= md pthread z spl icp nvpair avl umem diff --git a/cddl/usr.bin/ztest/Makefile b/cddl/usr.bin/ztest/Makefile index 83c7b0eee13a..89ee381f38ed 100644 --- a/cddl/usr.bin/ztest/Makefile +++ b/cddl/usr.bin/ztest/Makefile @@ -28,7 +28,6 @@ CSTD= c99 # Since there are many asserts in this program, it makes no sense to compile # it without debugging. CFLAGS+= -g -DDEBUG=1 -Wno-format -DZFS_DEBUG=1 -CFLAGS.gcc+= -fms-extensions HAS_TESTS= SUBDIR.${MK_TESTS}+= tests diff --git a/cddl/usr.sbin/zdb/Makefile b/cddl/usr.sbin/zdb/Makefile index 8bf07cb4c06a..239299aa1d67 100644 --- a/cddl/usr.sbin/zdb/Makefile +++ b/cddl/usr.sbin/zdb/Makefile @@ -24,7 +24,6 @@ CFLAGS+= \ LIBADD= nvpair umem zdb zfs_core zfs spl avl zutil zpool crypto pthread -CFLAGS.gcc+= -fms-extensions # Since there are many asserts in this program, it makes no sense to compile # it without debugging. CFLAGS+= -g -DDEBUG=1 -DZFS_DEBUG=1 diff --git a/sys/conf/kern.pre.mk b/sys/conf/kern.pre.mk index 3dc1efe3d5d2..a5b21cdbe843 100644 --- a/sys/conf/kern.pre.mk +++ b/sys/conf/kern.pre.mk @@ -78,10 +78,9 @@ CFLAGS= ${COPTFLAGS} ${DEBUG} CFLAGS+= ${INCLUDES} -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h CFLAGS_PARAM_INLINE_UNIT_GROWTH?=100 CFLAGS_PARAM_LARGE_FUNCTION_GROWTH?=1000 -CFLAGS.gcc+= -fms-extensions -finline-limit=${INLINE_LIMIT} +CFLAGS.gcc+= -finline-limit=${INLINE_LIMIT} CFLAGS.gcc+= --param inline-unit-growth=${CFLAGS_PARAM_INLINE_UNIT_GROWTH} CFLAGS.gcc+= --param large-function-growth=${CFLAGS_PARAM_LARGE_FUNCTION_GROWTH} -CFLAGS.gcc+= -fms-extensions .if defined(CFLAGS_ARCH_PARAMS) CFLAGS.gcc+=${CFLAGS_ARCH_PARAMS} .endif diff --git a/sys/conf/kmod.mk b/sys/conf/kmod.mk index aacd7a17ef99..c35116dfcaa8 100644 --- a/sys/conf/kmod.mk +++ b/sys/conf/kmod.mk @@ -139,7 +139,6 @@ CFLAGS+= -include ${.OBJDIR}/opt_global.h CFLAGS+= -I. -I${SYSDIR} -I${SYSDIR}/contrib/ck/include CFLAGS.gcc+= -finline-limit=${INLINE_LIMIT} -CFLAGS.gcc+= -fms-extensions CFLAGS.gcc+= --param inline-unit-growth=100 CFLAGS.gcc+= --param large-function-growth=1000 diff --git a/sys/modules/iser/Makefile b/sys/modules/iser/Makefile index ff08ae6f346a..2c00b3a4027b 100644 --- a/sys/modules/iser/Makefile +++ b/sys/modules/iser/Makefile @@ -17,7 +17,6 @@ CFLAGS+= -I${SYSDIR}/ofed/include/uapi CFLAGS+= ${LINUXKPI_INCLUDES} CFLAGS+= -DCONFIG_INFINIBAND_USER_MEM CFLAGS+= -DINET6 -DINET -CFLAGS+= -fms-extensions CFLAGS+=-DICL_KERNEL_PROXY diff --git a/sys/modules/pms/Makefile b/sys/modules/pms/Makefile index 8bd21fc4b502..81599e0a3ceb 100644 --- a/sys/modules/pms/Makefile +++ b/sys/modules/pms/Makefile @@ -17,7 +17,6 @@ ${SRCTOP}/sys/dev/pms/freebsd/driver/common CFLAGS+=-fno-builtin -CFLAGS+=-fms-extensions CFLAGS+=-Wredundant-decls CFLAGS+=-Wunused-variable diff --git a/sys/powerpc/conf/dpaa/config.dpaa b/sys/powerpc/conf/dpaa/config.dpaa index 6a923baed894..0b7c8fcf3b29 100644 --- a/sys/powerpc/conf/dpaa/config.dpaa +++ b/sys/powerpc/conf/dpaa/config.dpaa @@ -2,7 +2,7 @@ files "dpaa/files.dpaa" makeoptions DPAA_COMPILE_CMD="${LINUXKPI_C} ${DPAAWARNFLAGS} \ - -Wno-cast-qual -Wno-unused-function -Wno-init-self -fms-extensions \ + -Wno-cast-qual -Wno-unused-function -Wno-init-self \ -include $S/contrib/ncsw/build/dflags.h \ -Wno-error=missing-prototypes \ -I$S/contrib/ncsw/build/ \home | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?69ebd450.36574.1b31c920>
