Subject: port-alpha/23566: "pseudo-device vinum" breaks kernel build
To: None <gnats-bugs@gnats.netbsd.org>
From: None <paul@chumby.dlib.vt.edu>
List: netbsd-bugs
Date: 11/25/2003 10:05:25
>Number:         23566
>Category:       port-alpha
>Synopsis:       GENERIC kernel fails to build with "pseudo-device vinum" included
>Confidential:   no
>Severity:       critical
>Priority:       medium
>Responsible:    port-alpha-maintainer
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Tue Nov 25 15:06:00 UTC 2003
>Closed-Date:
>Last-Modified:
>Originator:     Paul Mather
>Release:        NetBSD 1.6ZE
>Organization:
	Virginia Tech, Digital Library Research Laboratory
>Environment:
	
	
System: NetBSD chumby.dlib.vt.edu 1.6ZE NetBSD 1.6ZE (CHUMBY) #0: Sun Nov 9 16:07:55 EST 2003 paul@chumby.dlib.vt.edu:/usr/obj/sys/arch/alpha/compile/CHUMBY alpha
Architecture: alpha
Machine: alpha
>Description:

Attempting to build a kernel with Vinum support enabled (pseudo-device
vinum) will cause the kernel build to fail due to a warning generated
by /usr/src/sys/dev/vinum/vinumdaemon.c:

-----
[[...]]
#   compile  vinumconfig.o
/usr/tools/bin/alpha--netbsd-gcc -mno-fp-regs -ffreestanding -O2 -Werror -Wall -Wno-main -Wno-format-zero-length -Wpointer-arith -Wmissing-prototypes -Wstrict-prototypes -Wno-sign-compare -Dalpha -I. -I/usr/src/sys/arch -I/usr/src/sys -nostdinc -DDIAGNOSTIC -DLKM -DMAXUSERS=32 -D_KERNEL -D_KERNEL_OPT -c /usr/src/sys/dev/vinum/vinumconfig.c
#   compile  vinumdaemon.o
/usr/tools/bin/alpha--netbsd-gcc -mno-fp-regs -ffreestanding -O2 -Werror -Wall -Wno-main -Wno-format-zero-length -Wpointer-arith -Wmissing-prototypes -Wstrict-prototypes -Wno-sign-compare -Dalpha -I. -I/usr/src/sys/arch -I/usr/src/sys -nostdinc -DDIAGNOSTIC -DLKM -DMAXUSERS=32 -D_KERNEL -D_KERNEL_OPT -c /usr/src/sys/dev/vinum/vinumdaemon.c
/usr/src/sys/dev/vinum/vinumdaemon.c: In function `vinum_daemon':
/usr/src/sys/dev/vinum/vinumdaemon.c:113: warning: long long unsigned int format, daddr_t arg (arg 7)

*** Failed target:  vinumdaemon.o
*** Failed command: echo '# ' "compile " vinumdaemon.o; echo /usr/tools/bin/alpha--netbsd-gcc -mno-fp-regs -ffreestanding -O2 -Werror -Wall -Wno-main -Wno-format-zero-length -Wpointer-arith -Wmissing-prototypes -Wstrict-prototypes -Wno-sign-compare -Dalpha -I. -I/usr/src/sys/arch -I/usr/src/sys -nostdinc -DDIAGNOSTIC -DLKM -DMAXUSERS=32 -D_KERNEL -D_KERNEL_OPT -c /usr/src/sys/dev/vinum/vinumdaemon.c; /usr/tools/bin/alpha--netbsd-gcc -mno-fp-regs -ffreestanding -O2 -Werror -Wall -Wno-main -Wno-format-zero-length -Wpointer-arith -Wmissing-prototypes -Wstrict-prototypes -Wno-sign-compare -Dalpha -I. -I/usr/src/sys/arch -I/usr/src/sys -nostdinc -DDIAGNOSTIC -DLKM -DMAXUSERS=32 -D_KERNEL -D_KERNEL_OPT -c /usr/src/sys/dev/vinum/vinumdaemon.c
*** Error code 1

Stop.
nbmake: stopped in /usr/obj/sys/arch/alpha/compile/GENERIC-VINUM

ERROR: Failed to make all in /usr/src/sys/arch/alpha/compile/obj/GENERIC-VINUM
*** BUILD ABORTED ***
-----

This problem has existed for several weeks now.  I don't know if it
exists on other architectures, as I've only tried compiling Vinum
support on NetBSD/alpha.

Note that other Vinum files also suffer from warnings breaking the build:

-----
#   compile  vinuminterrupt.o
/usr/tools/bin/alpha--netbsd-gcc -mno-fp-regs -ffreestanding -O2 -Werror -Wall -Wno-main -Wno-format-zero-length -Wpointer-arith -Wmissing-prototypes -Wstrict-prototypes -Wno-sign-compare -Dalpha -I. -I/usr/src/sys/arch -I/usr/src/sys -nostdinc -DDIAGNOSTIC -DLKM -DMAXUSERS=32 -D_KERNEL -D_KERNEL_OPT -c /usr/src/sys/dev/vinum/vinuminterrupt.c
/usr/src/sys/dev/vinum/vinuminterrupt.c: In function `complete_rqe':
/usr/src/sys/dev/vinum/vinuminterrupt.c:107: warning: long long int format, daddr_t arg (arg 5)
/usr/src/sys/dev/vinum/vinuminterrupt.c:118: warning: long long int format, daddr_t arg (arg 5)
/usr/src/sys/dev/vinum/vinuminterrupt.c:124: warning: long long int format, daddr_t arg (arg 4)
/usr/src/sys/dev/vinum/vinuminterrupt.c:130: warning: long long int format, daddr_t arg (arg 4)

*** Failed target:  vinuminterrupt.o
-----

-----
#   compile  vinumrevive.o
/usr/tools/bin/alpha--netbsd-gcc -mno-fp-regs -ffreestanding -O2 -Werror -Wall -Wno-main -Wno-format-zero-length -Wpointer-arith -Wmissing-prototypes -Wstrict-prototypes -Wno-sign-compare -Dalpha -I. -I/usr/src/sys/arch -I/usr/src/sys -nostdinc -DDIAGNOSTIC -DLKM -DMAXUSERS=32 -D_KERNEL -D_KERNEL_OPT -c /usr/src/sys/dev/vinum/vinumrevive.c
/usr/src/sys/dev/vinum/vinumrevive.c: In function `parityops':
/usr/src/sys/dev/vinum/vinumrevive.c:305: warning: long long unsigned int format, __off_t arg (arg 3)

*** Failed target:  vinumrevive.o
-----

This problem affects any (alpha?) kernel config that includes
"pseudo-device vinum", not just GENERIC.

>How-To-Repeat:

With recent sources, do the following:

cd /usr/src
cp /usr/src/sys/arch/alpha/conf/GENERIC /usr/src/sys/arch/alpha/conf/GENERIC-VINUM
echo 'pseudo-device vinum' >> /usr/src/sys/arch/alpha/conf/GENERIC-VINUM
./build.sh tools kernel=GENERIC-VINUM

>Fix:

Compiling vinumdaemon.c, vinuminterrupt.c, and vinumrevive.c without
"-Werror" allows the kernel build to complete.  (Eliminating those
warnings is a better way to ensure that happens, though.:)
>Release-Note:
>Audit-Trail:
>Unformatted: