Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: latest 'config' creates broken "ioconf.c" w/some custom kernels



I've come up with a simpler test configuration that elicits the behavior:

# TEST

include 	"arch/amd64/conf/GENERIC"
no options 	INCLUDE_CONFIG_FILE	# embed config file in kernel binary
options 	INCLUDE_JUST_CONFIG
no pcib* 	at pci?	# PCI-ISA bridges
no fwhrng* 	at ichlpcib?	# Intel 82802 FWH Random Number Generator
no isa0 	at mainbus?
no isa0 	at pcib?
no pckbc0 	at isa?	# pc keyboard controller
#no attimer0 	at isa?
#no pcppi0 	at isa?
no com0 	at isa?	# Standard PC serial ports
no com1 	at isa?
no lpt0 	at isa?	# standard PC parallel ports
no lpt1 	at isa?
no wdc0 	at isa?
no wdc1 	at isa?
no fdc0 	at isa?	# standard PC floppy controllers

The "no pckbc0 at isa?" is the trigger.  This is something all of my
amd64 (and most i386) kernel configs have since the machines in question
attach "pckbc* at acpi?".

The config as above produces the following failure:

[...]
--- ioconf.o ---
ioconf.c:2994:54: error: 'pspec28' undeclared here (not in a function)
     { "tpm",  "tpm_isa",  0, STAR, loc+  0,      0, &pspec28 },
                                                      ^
ioconf.c:2994:5: error: missing initializer for field 'cf_pspec' of 'struct cfdata' [-Werror=missing-field-initializers]
     { "tpm",  "tpm_isa",  0, STAR, loc+  0,      0, &pspec28 },
     ^
In file included from ioconf.c:10:0:
/x/current/src/sys/sys/device.h:275:25: note: 'cf_pspec' declared here
  const struct cfparent *cf_pspec;/* parent specification */
                         ^
ioconf.c:3206:5: error: missing initializer for field 'cf_pspec' of 'struct cfdata' [-Werror=missing-field-initializers]
     { "attimer", "attimer_isa",  0, NORM, loc+ 14,      0, &pspec28 },
     ^
In file included from ioconf.c:10:0:
/x/current/src/sys/sys/device.h:275:25: note: 'cf_pspec' declared here
  const struct cfparent *cf_pspec;/* parent specification */
                         ^
ioconf.c:3660:5: error: missing initializer for field 'cf_pspec' of 'struct cfdata' [-Werror=missing-field-initializers]
     { "pcppi",  "pcppi",  0, NORM, loc+  7,      0, &pspec28 },
     ^
In file included from ioconf.c:10:0:
/x/current/src/sys/sys/device.h:275:25: note: 'cf_pspec' declared here
  const struct cfparent *cf_pspec;/* parent specification */
                         ^
cc1: all warnings being treated as errors
*** [ioconf.o] Error code 1

nbmake: stopped in /r1/build/current/obj/amd64/sys/arch/amd64/compile/TEST
[...]


Comment out "no attimer0 at isa?" and "no pcppi0 at isa?" and the failure
is reduced to only:

[...]
--- ioconf.o ---
ioconf.c:2972:54: error: 'pspec28' undeclared here (not in a function)
     { "tpm",  "tpm_isa",  0, STAR, loc+  0,      0, &pspec28 },
                                                      ^
ioconf.c:2972:5: error: missing initializer for field 'cf_pspec' of 'struct cfdata' [-Werror=missing-field-initializers]
     { "tpm",  "tpm_isa",  0, STAR, loc+  0,      0, &pspec28 },
     ^
In file included from ioconf.c:10:0:
/x/current/src/sys/sys/device.h:275:25: note: 'cf_pspec' declared here
  const struct cfparent *cf_pspec;/* parent specification */
                         ^
cc1: all warnings being treated as errors
*** [ioconf.o] Error code 1

nbmake: stopped in /r1/build/current/obj/amd64/sys/arch/amd64/compile/TEST
[...]


Comment out "no pckbc0 at isa?" and the kernel builds again.

As it stands right now, even if your machine attaches "pckbc* at acpi?"
you MUST also have "pckbc0 at isa?" or Bad Things will happen.

-- 
|/"\ John D. Baker, KN5UKS               NetBSD     Darwin/MacOS X
|\ / jdbaker[snail]mylinuxisp[flyspeck]com    OpenBSD            FreeBSD
| X  No HTML/proprietary data in email.   BSD just sits there and works!
|/ \ GPGkeyID:  D703 4A7E 479F 63F8 D3F4  BD99 9572 8F23 E4AD 1645



Home | Main Index | Thread Index | Old Index