Subject: subr_disk.c error on kernel compile
To: port-sparc64 <port-sparc64@netbsd.org>
From: leam <leam@reuel.net>
List: port-sparc64
Date: 05/14/2003 20:47:39
And for my next trick......

/usr/pkg/gcc-3.2.2/bin/cc  -mcmodel=medlow -mno-fpu -ffreestanding  -O2 
-Werror -Wall -Wno-main -Wno-format-zero-length -Wpointer-arith 
-Wmissing-prototypes -Wstrict-prototypes -Wno-sign-compare 
-Wno-uninitialized  -Dsparc64 -D__sparc64__ -D_LP64 -Wa,-Av9a -I. 
-I../../../../arch -I../../../.. -nostdinc -DLKM -DMAXUSERS=64 -D_KERNEL 
-D_KERNEL_OPT   -c ../../../../kern/subr_disk.c

cc1: warnings being treated as errors
../../../../kern/subr_disk.c: In function `diskerr':
../../../../kern/subr_disk.c:151: warning: zero-length format string
*** Error code 1

Stop.
make: stopped in /usr/src/sys/arch/sparc64/compile/leamBSD


leamBSD is just a copy of GENERIC, to see if I can compile on gcc3.2.2. 
My existing kernel was compiled 7 May (though with src from a few days 
prior), and the files that have later timestamps (in that directory), are:

-rw-r--r--   1 root  wheel  33840 Apr 28 23:10 subr_autoconf.c
-rw-r--r--   1 root  wheel  17500 May  2 23:09 kern_ktrace.c
-rw-r--r--   1 root  wheel  12449 May 14 17:06 core_elf32.c
-rw-r--r--   1 root  wheel  25650 May 14 17:06 kern_ksyms.c
-rw-r--r--   1 root  wheel  22103 May 14 17:06 kern_malloc.c
-rw-r--r--   1 root  wheel  32083 May 14 17:06 kern_synch.c
-rw-r--r--   1 root  wheel  12998 May 14 17:06 kgdb_stub.c
-rw-r--r--   1 root  wheel  22955 May 14 17:06 sys_generic.c
-rw-r--r--   1 root  wheel  40515 May 14 17:06 uipc_socket.c
-rw-r--r--   1 root  wheel  21520 May 14 17:06 vfs_lockf.c


Since subr_disk.c has a timestamp of 13 Apr 03, I'm fairly confident it 
was used the last time I compiled. My guess is that gcc 3.2.2 is the 
main difference, but I don't know enough to say for sure.

OTOH, the function diskerr does have a note a few lines above saying:

  /* Compiler will error this is the format is wrong... */

That might be on the line that says:

  printf("%" PRIdaddr, bp->b_blkno);

Which is about 4 prior to the one marked offending. Suggestions on 
things to read or try to find the error?

ciao!

leam