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: