From owner-freebsd-stable@freebsd.org Sun Aug 14 05:04:04 2016 Return-Path: Delivered-To: freebsd-stable@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 672CFBB9D97 for ; Sun, 14 Aug 2016 05:04:04 +0000 (UTC) (envelope-from markmi@dsl-only.net) Received: from asp.reflexion.net (outbound-mail-211-183.reflexion.net [208.70.211.183]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 2FDBD153B for ; Sun, 14 Aug 2016 05:04:03 +0000 (UTC) (envelope-from markmi@dsl-only.net) Received: (qmail 7844 invoked from network); 14 Aug 2016 04:38:06 -0000 Received: from unknown (HELO mail-cs-02.app.dca.reflexion.local) (10.81.19.2) by 0 (rfx-qmail) with SMTP; 14 Aug 2016 04:38:06 -0000 Received: by mail-cs-02.app.dca.reflexion.local (Reflexion email security v7.90.6) with SMTP; Sun, 14 Aug 2016 00:37:15 -0400 (EDT) Received: (qmail 17378 invoked from network); 14 Aug 2016 04:37:14 -0000 Received: from unknown (HELO iron2.pdx.net) (69.64.224.71) by 0 (rfx-qmail) with (AES256-SHA encrypted) SMTP; 14 Aug 2016 04:37:14 -0000 X-No-Relay: not in my network Received: from [192.168.0.105] (ip70-189-131-151.lv.lv.cox.net [70.189.131.151]) by iron2.pdx.net (Postfix) with ESMTPSA id A3806B1E001 for ; Sat, 13 Aug 2016 21:37:14 -0700 (PDT) From: Mark Millard Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable Subject: stable/11 -r304029: amd64-gcc says: sys/dev/hptmv/vdevice.h error: variably modified '_ArrayTables' at file scope Message-Id: <1CF12CBC-0933-41DE-AC50-7CDA3330A542@dsl-only.net> Date: Sat, 13 Aug 2016 21:37:20 -0700 To: freebsd-stable@freebsd.org Mime-Version: 1.0 (Mac OS X Mail 9.3 \(3124\)) X-Mailer: Apple Mail (2.3124) X-BeenThere: freebsd-stable@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: Production branch of FreeBSD source code List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 14 Aug 2016 05:04:04 -0000 [This was part of Bugzilla report 211540 against the HighPoint = RocketRAID 182x driver code. My -r304029 build attempt using -r304029 = still reports the error. This note is just about a build-ability problem = under amd64-gcc: I only tried it to add to the testing of 11.0. I'm = personally not blocked by the problem.] Attempting to build stable/11 -r304029 for TARGET_ARCH=3Damd64 with = amd64-gcc (amd64-xtoolchain-gcc) reports: /usr/src/sys/dev/hptmv/vdevice.h:145:2: error: variably modified = '_ArrayTables' at file scope [-Werror] BYTE _ArrayTables[MAX_ARRAY_PER_VBUS * ARRAY_VDEV_SIZE]; ^ The "variably modified '_ArrayTables' at file scope" messages refer to = (various .h files contributing): #define MAX_VDEVICE_PER_VBUS 8 . . . #ifndef MAX_ARRAY_PER_VBUS #define MAX_ARRAY_PER_VBUS (MAX_VDEVICE_PER_VBUS*2) /* worst case */ #endif . . . #define ARRAY_VDEV_SIZE = ((UINT)(ULONG_PTR)&((PVDevice)0)->u+sizeof(RaidArray)) . . . typedef struct _VBus { . . . #ifdef SUPPORT_ARRAY PVDevice pFreeArrayLink; BYTE _ArrayTables[MAX_ARRAY_PER_VBUS * ARRAY_VDEV_SIZE]; #endif . . . } VBus; ARRAY_VDEV_SIZE from /usr/src/sys/dev/hptmv/vdevice.h is what is being = complained about for its use in typedef struct _VBus's _ArrayTables = field at file scope. amd64-gcc does not treat = ((UINT)(ULONG_PTR)&((PVDevice)0)->u+sizeof(RaidArray)) as a known = constant where such is required in the _ArrayTables field declaration. /usr/src/sys/dev/hptmv/vdevice.h having = ((UINT)(ULONG_PTR)&((PVDevice)0)->u+sizeof(RaidArray)) for = ARRAY_VDEV_SIZE goes back to -r136849 and the file's creation on = 2004-Oct-24. It appears that SUPPORT_ARRAY was defined back then. SO the = code is old. Context details: # svnlite info /usr/src/ | grep "Rev[i:]"=20 you have mail Revision: 304029 Last Changed Rev: 304029 # uname -apKU FreeBSD FreeBSDx64 11.0-PRERELEASE FreeBSD 11.0-PRERELEASE #4 r304029M: = Sat Aug 13 00:40:30 PDT 2016 = markmi@FreeBSDx64:/usr/obj/clang/amd64.amd64/usr/src/sys/GENERIC-NODBG = amd64 amd64 1100500 1100500 # more ~/src.configs/src.conf.amd64-xtoolchain.amd64-host=20 TO_TYPE=3Damd64 TOOLS_TO_TYPE=3Dx86_64 VERSION_CONTEXT=3D11.0 # KERNCONF=3DGENERIC-NODBG TARGET=3D${TO_TYPE} .if ${.MAKE.LEVEL} =3D=3D 0 TARGET_ARCH=3D${TO_TYPE} .export TARGET_ARCH .endif # WITHOUT_CROSS_COMPILER=3D WITHOUT_SYSTEM_COMPILER=3D # WITH_LIBCPLUSPLUS=3D WITHOUT_BINUTILS_BOOTSTRAP=3D WITHOUT_CLANG_BOOTSTRAP=3D WITH_CLANG=3D WITH_CLANG_IS_CC=3D WITH_CLANG_FULL=3D WITH_CLANG_EXTRAS=3D WITH_LLDB=3D #PORTS_MODULES=3Demulators/virtualbox-ose-additions # #WITH_BOOT=3D for amd64-xtoolschain-gcc/amd64-gcc gets something like...=20= # --- all_subdir_sys --- # -994 bytes available # *** [boot2] Error code 1 WITHOUT_BOOT=3D WITH_LIB32=3D # WITHOUT_ELFTOOLCHAIN_BOOTSTRAP=3D WITHOUT_GCC_BOOTSTRAP=3D WITHOUT_GCC=3D WITHOUT_GCC_IS_CC=3D WITHOUT_GNUCXX=3D # NO_WERROR=3D #WERROR=3D MALLOC_PRODUCTION=3D # WITH_DEBUG_FILES=3D # # # For TO (so-called "cross") stages . . . # So-called-cross via ${TO_TYPE}-xtoolchain-gcc/${TO_TYPE}-gcc. . . # TOOLS_TO_TYPE based on ${TO_TYPE}-xtoolchain-gcc related binutils. . . # CROSS_TOOLCHAIN=3D${TO_TYPE}-gcc X_COMPILER_TYPE=3Dgcc CROSS_BINUTILS_PREFIX=3D/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/ .if ${.MAKE.LEVEL} =3D=3D 0 = XCC=3D/usr/local/bin/${TOOLS_TO_TYPE}-portbld-freebsd${VERSION_CONTEXT}-gc= c = XCXX=3D/usr/local/bin/${TOOLS_TO_TYPE}-portbld-freebsd${VERSION_CONTEXT}-g= ++ = XCPP=3D/usr/local/bin/${TOOLS_TO_TYPE}-portbld-freebsd${VERSION_CONTEXT}-c= pp .export XCC .export XCXX .export XCPP XAS=3D/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/as XAR=3D/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/ar XLD=3D/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/ld XNM=3D/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/nm XOBJCOPY=3D/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/objcopy XOBJDUMP=3D/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/objdump XRANLIB=3D/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/ranlib XSIZE=3D/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/size #NO-SUCH: XSTRINGS=3D/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/strings XSTRINGS=3D/usr/local/bin/${TOOLS_TO_TYPE}-freebsd-strings .export XAS .export XAR .export XLD .export XNM .export XOBJCOPY .export XOBJDUMP .export XRANLIB .export XSIZE .export XSTRINGS .endif # # # =46rom based on clang (via system). . . # .if ${.MAKE.LEVEL} =3D=3D 0 CC=3D/usr/bin/clang CXX=3D/usr/bin/clang++ CPP=3D/usr/bin/clang-cpp .export CC .export CXX .export CPP .endif # more ~/src.configs/make.conf=20 CFLAGS.gcc+=3D -v =3D=3D=3D Mark Millard markmi at dsl-only.net