On Thu, Aug 28, 2008 at 07:33:14AM -0400, FreeBSD Tinderbox wrote:
> TB --- 2008-08-28 09:46:09 - tinderbox 2.3 running on freebsd-stable.sentex.ca
> TB --- 2008-08-28 09:46:09 - starting RELENG_7 tinderbox run for amd64/amd64
> TB --- 2008-08-28 09:46:09 - cleaning the object tree
> TB --- 2008-08-28 09:46:30 - cvsupping the source tree
> TB --- 2008-08-28 09:46:30 - /usr/bin/csup -r 3 -g -L 1 -h localhost -s 
> /tinderbox/RELENG_7/amd64/amd64/supfile
> TB --- 2008-08-28 09:46:37 - building world (CFLAGS=-O2 -pipe)
> TB --- 2008-08-28 09:46:37 - cd /src
> TB --- 2008-08-28 09:46:37 - /usr/bin/make -B buildworld
> >>> World build started on Thu Aug 28 09:46:38 UTC 2008
> >>> Rebuilding the temporary build tree
> >>> stage 1.1: legacy release compatibility shims
> >>> stage 1.2: bootstrap tools
> >>> stage 2.1: cleaning up the object tree
> >>> stage 2.2: rebuilding the object tree
> >>> stage 2.3: build tools
> >>> stage 3: cross tools
> >>> stage 4.1: building includes
> >>> stage 4.2: building libraries
> >>> stage 4.3: make dependencies
> >>> stage 4.4: building everything
> >>> stage 5.1: building 32 bit shim libraries
> >>> World build completed on Thu Aug 28 11:17:55 UTC 2008
> TB --- 2008-08-28 11:17:55 - generating LINT kernel config
> TB --- 2008-08-28 11:17:55 - cd /src/sys/amd64/conf
> TB --- 2008-08-28 11:17:55 - /usr/bin/make -B LINT
> TB --- 2008-08-28 11:17:55 - building LINT kernel (COPTFLAGS=-O2 -pipe)
> TB --- 2008-08-28 11:17:55 - cd /src
> TB --- 2008-08-28 11:17:55 - /usr/bin/make -B buildkernel KERNCONF=LINT
> >>> Kernel build for LINT started on Thu Aug 28 11:17:55 UTC 2008
> >>> stage 1: configuring the kernel
> >>> stage 2.1: cleaning up the object tree
> >>> stage 2.2: rebuilding the object tree
> >>> stage 2.3: build tools
> >>> stage 3.1: making dependencies
> >>> stage 3.2: building everything
> [...]
> awk -f /src/sys/modules/cxgb/cxgb_t3fw/../../../conf/kmod_syms.awk 
> cxgb_t3fw.ko  export_syms | xargs -J% objcopy % cxgb_t3fw.ko
> objcopy --strip-debug cxgb_t3fw.ko
> ===> cyclic (all)
> cc -O2 -pipe -DDEBUG=1 -fno-strict-aliasing  -D_KERNEL -DKLD_MODULE -std=c99 
> -nostdinc  -I/src/sys/modules/cyclic/../../cddl/compat/opensolaris 
> -I/src/sys/modules/cyclic/../../cddl/contrib/opensolaris/uts/common 
> -I/src/sys/modules/cyclic/../.. 
> -I/src/sys/modules/cyclic/../../cddl/dev/cyclic/amd64 
> -DHAVE_KERNEL_OPTION_HEADERS -include /obj/amd64/src/sys/LINT/opt_global.h 
> -I. -I@ -I@/contrib/altq -finline-limit=8000 --param inline-unit-growth=100 
> --param large-function-growth=1000 -fno-common  -fno-omit-frame-pointer 
> -I/obj/amd64/src/sys/LINT -mcmodel=kernel -mno-red-zone  -mfpmath=387 
> -mno-sse -mno-sse2 -mno-mmx -mno-3dnow  -msoft-float 
> -fno-asynchronous-unwind-tables -ffreestanding -Wall -Wredundant-decls 
> -Wnested-externs -Wstrict-prototypes  -Wmissing-prototypes -Wpointer-arith 
> -Winline -Wcast-qual  -Wundef -Wno-pointer-sign -fformat-extensions 
> -Wno-unknown-pragmas -c /src/sys/modules/cyclic/../../cddl/dev/cyclic/cyclic.c
> In file included from 
> /src/sys/modules/cyclic/../../cddl/compat/opensolaris/sys/cyclic.h:40,
>                  from 
> /src/sys/modules/cyclic/../../cddl/compat/opensolaris/sys/cyclic_impl.h:33,
>                  from 
> /src/sys/modules/cyclic/../../cddl/dev/cyclic/cyclic.c:329:
> /src/sys/modules/cyclic/../../cddl/compat/opensolaris/sys/cpuvar.h:72: error: 
> size of array 'cpuc_pad' is too large
> *** Error code 1

This one is caused by struct sx difference between stable/7 and head.
More detailed, sizeof(struct sx) in the LINT build exceeds 56 bytes,
and causes CPUC_PADSIZE to be negative.

I think that CPU_CACHE_COHERENCE_SIZE shall be defined as roundup. Unless
you have objections, I will commit this to HEAD with short MFC period:

diff --git a/sys/cddl/compat/opensolaris/sys/cpuvar.h 
b/sys/cddl/compat/opensolaris/sys/cpuvar.h
index df0af5c..b42fda6 100644
--- a/sys/cddl/compat/opensolaris/sys/cpuvar.h
+++ b/sys/cddl/compat/opensolaris/sys/cpuvar.h
@@ -65,7 +65,8 @@ extern solaris_cpu_t    solaris_cpu[];
  */
 #define        CPUC_SIZE               (sizeof (uint16_t) + sizeof (uintptr_t) 
+ \
                                sizeof (kmutex_t))
-#define        CPUC_PADSIZE            CPU_CACHE_COHERENCE_SIZE - CPUC_SIZE
+#define        CPUC_SIZE1              roundup(CPUC_SIZE, 
CPU_CACHE_COHERENCE_SIZE)
+#define        CPUC_PADSIZE            CPUC_SIZE1 - CPUC_SIZE
 
 typedef struct cpu_core {
        uint16_t        cpuc_dtrace_flags;      /* DTrace flags */

Attachment: pgpW9n3XnsQv6.pgp
Description: PGP signature

Reply via email to