From d12e91d584d77d621cfe497d0882c40c1fc97836 Mon Sep 17 00:00:00 2001 From: Matt Macy Date: Tue, 21 Aug 2018 03:45:09 +0000 Subject: [PATCH] Make dnode definition uniform on !x86 gcc4 requires -fms-extensions to accept anonymous union members --- cddl/lib/libzpool/Makefile | 1 + cddl/usr.bin/ztest/Makefile | 1 + cddl/usr.sbin/zdb/Makefile | 1 + sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dnode.h | 6 ------ sys/conf/kern.pre.mk | 1 + sys/modules/zfs/Makefile | 1 + 6 files changed, 5 insertions(+), 6 deletions(-) diff --git a/cddl/lib/libzpool/Makefile b/cddl/lib/libzpool/Makefile index c3e64911ebd8..1f329a98ec44 100644 --- a/cddl/lib/libzpool/Makefile +++ b/cddl/lib/libzpool/Makefile @@ -61,6 +61,7 @@ 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 nvpair avl umem diff --git a/cddl/usr.bin/ztest/Makefile b/cddl/usr.bin/ztest/Makefile index 63ec0ff9cc66..acd6bb7c6e3a 100644 --- a/cddl/usr.bin/ztest/Makefile +++ b/cddl/usr.bin/ztest/Makefile @@ -24,6 +24,7 @@ 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 +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 cccfe15c823b..8c919341f8e3 100644 --- a/cddl/usr.sbin/zdb/Makefile +++ b/cddl/usr.sbin/zdb/Makefile @@ -25,6 +25,7 @@ CFLAGS+= -I${SRCTOP}/cddl/contrib/opensolaris/head LIBADD= nvpair umem uutil zfs zpool +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 diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dnode.h b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dnode.h index 4521a6127b9a..74acef0ae194 100644 --- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dnode.h +++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dnode.h @@ -185,7 +185,6 @@ typedef struct dnode_phys { * | dn_blkptr[0] | dn_bonus[0..191] | dn_spill | * +---------------+-----------------------+---------------+ */ -#if defined(__i386__) || defined(__amd64__) union { blkptr_t dn_blkptr[1+DN_OLD_MAX_BONUSLEN/sizeof (blkptr_t)]; struct { @@ -199,11 +198,6 @@ typedef struct dnode_phys { blkptr_t dn_spill; }; }; -#else - blkptr_t dn_blkptr[1]; - uint8_t dn_bonus[DN_OLD_MAX_BONUSLEN - sizeof (blkptr_t)]; - blkptr_t dn_spill; -#endif } dnode_phys_t; #define DN_SPILL_BLKPTR(dnp) (blkptr_t *)((char *)(dnp) + \ diff --git a/sys/conf/kern.pre.mk b/sys/conf/kern.pre.mk index c1bbf0d30bfb..af08904e98ac 100644 --- a/sys/conf/kern.pre.mk +++ b/sys/conf/kern.pre.mk @@ -89,6 +89,7 @@ CFLAGS_ARCH_PARAMS?=--param max-inline-insns-single=1000 -DMACHINE_ARCH='"${MACH CFLAGS.gcc+= -fno-common -fms-extensions -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/modules/zfs/Makefile b/sys/modules/zfs/Makefile index e5cb1f7d7e53..011c07045eb7 100644 --- a/sys/modules/zfs/Makefile +++ b/sys/modules/zfs/Makefile @@ -95,6 +95,7 @@ CFLAGS+=-I${SYSDIR} CFLAGS+=-I${SUNW}/common/zfs CFLAGS+=-I${SUNW}/common CFLAGS+=-DBUILDING_ZFS +CFLAGS.gcc+=-fms-extensions .if ${MACHINE_ARCH} == "powerpc64" CFLAGS.gcc+=-mminimal-toc