# Error while building my kernel



## Blackbird (Aug 3, 2010)

Hi,

I get the following error message while compiling my kernel on my 8.0-RELEASE-p4 system: (second line wrapped by hand)

```
MAKE=make sh /usr/src/sys/conf/newvers.sh MYKERNEL
cc -c -O2 -pipe -fno-strict-aliasing  -std=c99  -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes  -Wmissing-prototypes -Wpointer-arith -Winline \
-Wcast-qual  -Wundef -Wno-pointer-sign -fformat-extensions -nostdinc -I. -I/usr/src/sys -I/usr/src/sys/contrib/altq -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS \
-include opt_global.h -fno-common -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000  -mno-align-long-strings \
-mpreferred-stack-boundary=2  -mno-mmx -mno-3dnow -mno-sse -mno-sse2 -mno-sse3 -ffreestanding -fstack-protector -Werror  vers.c
linking kernel
OsdHardware.o(.text+0x1a5): In function `acpi_bus_number':
: undefined reference to `pci_cfgregread'
OsdHardware.o(.text+0x1d1): In function `acpi_bus_number':
: undefined reference to `pci_cfgregread'
OsdHardware.o(.text+0x1f6): In function `acpi_bus_number':
: undefined reference to `pci_cfgregread'
OsdHardware.o(.text+0x235): In function `acpi_bus_number':
: undefined reference to `pci_cfgregread'
OsdHardware.o(.text+0x273): In function `AcpiOsDerivePciId':
: undefined reference to `pci_cfgregopen'
OsdHardware.o(.text+0x373): In function `AcpiOsReadPciConfiguration':
: undefined reference to `pci_cfgregopen'
OsdHardware.o(.text+0x3b8): In function `AcpiOsReadPciConfiguration':
: undefined reference to `pci_cfgregread'
OsdHardware.o(.text+0x423): In function `AcpiOsWritePciConfiguration':
: undefined reference to `pci_cfgregopen'
OsdHardware.o(.text+0x45d): In function `AcpiOsWritePciConfiguration':
: undefined reference to `pci_cfgregwrite'
acpi.o(.text+0x3ab0): In function `acpi_attach':
: undefined reference to `pcie_cfgregopen'
acpi_cpu.o(.text+0x52b): In function `acpi_cpu_startup':
: undefined reference to `pci_find_device'
acpi_throttle.o(.text+0x4b0): In function `acpi_throttle_attach':
: undefined reference to `pci_find_device'
ichss.o(.text+0x7fa): In function `ichss_identify':
: undefined reference to `pci_find_bsf'
smist.o(.text+0x8d9): In function `smist_identify':
: undefined reference to `pci_find_device'
local_apic.o(.text+0x118d): In function `apic_setup_io':
: undefined reference to `msi_init'
local_apic.o(.text+0x11be): In function `apic_setup_io':
: undefined reference to `msi_init'
nexus.o(.text+0x1b7): In function `nexus_map_msi':
: undefined reference to `msi_map'
nexus.o(.text+0x1cb): In function `nexus_release_msix':
: undefined reference to `msix_release'
nexus.o(.text+0x1e1): In function `nexus_alloc_msix':
: undefined reference to `msix_alloc'
nexus.o(.text+0x201): In function `nexus_release_msi':
: undefined reference to `msi_release'
nexus.o(.text+0x22f): In function `nexus_alloc_msi':
: undefined reference to `msi_alloc'
*** Error code 1

Stop in /usr/obj/usr/src/sys/MYKERNEL.
*** Error code 1

Stop in /usr/src.
*** Error code 1

Stop in /usr/src.
```

Here's my config file, without commented:

```
# /usr/src/sys/i386/config/MYKERNEL

cpu		I686_CPU
ident		MYKERNEL

options 	SCHED_ULE		# ULE scheduler
options 	PREEMPTION		# Enable kernel thread preemption
options 	INET			# InterNETworking
options 	SCTP			# Stream Control Transmission Protocol
options 	FFS			# Berkeley Fast Filesystem
options 	SOFTUPDATES		# Enable FFS soft updates support
options 	UFS_ACL			# Support for access control lists
options 	UFS_DIRHASH		# Improve performance on big directories
options 	UFS_GJOURNAL		# Enable gjournal-based UFS journaling
options 	GEOM_LABEL		# Provides labelization
options		SCSI_DELAY=1000
options 	STACK			# stack(9) support
options 	SYSVSHM			# SYSV-style shared memory
options 	SYSVMSG			# SYSV-style message queues
options 	SYSVSEM			# SYSV-style semaphores
options 	P1003_1B_SEMAPHORES	# POSIX-style semaphores
options 	_KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions
options 	PRINTF_BUFR_SIZE=128	# Prevent printf output being interspersed.
options 	KBD_INSTALL_CDEV	# install a CDEV entry in /dev
options 	HWPMC_HOOKS		# Necessary kernel hooks for hwpmc(4)
options 	AUDIT			# Security event auditing
options 	MAC			# TrustedBSD MAC Framework
options		FLOWTABLE		# per-cpu routing cache

options 	SMP			# Symmetric MultiProcessor Kernel
device		apic			# I/O APIC

device		cpufreq

device		acpi

device		scbus		# SCSI bus (required for SCSI)
device		ch		# SCSI media changers
device		da		# Direct Access (disks)
device		cd		# CD
device		pass		# Passthrough device (direct SCSI access)
device		ses		# SCSI Environmental Services (and SAF-TE)

device		vga		# VGA video card driver

device		splash		# Splash screen and screen saver support

device		sc

device		loop		# Network loopback
device		random		# Entropy device
device		ether		# Ethernet support
device		pty		# BSD-style compatibility pseudo ttys
device		md		# Memory "disks"

device		bpf		# Berkeley packet filter

device		usb		# USB Bus (required)
device		uhid		# "Human Interface Devices"
device		ukbd		# Keyboard
device		ulpt		# Printer
device		umass		# Disks/Mass storage - Requires scbus and da
device		ums		# Mouse
```

Do you have an idea what I could have done wrong?


----------



## SirDice (Aug 3, 2010)

You're missing *device pci*.


----------



## Blackbird (Aug 3, 2010)

Thank you, that did it.

But how does it work? Neither do I have a PCI motherboard nor do I use PCI cards, do I? :x


----------



## wblock@ (Aug 3, 2010)

You may not have PCI slots, but the chipset is PCI, and some built-in devices may be connected via an internal PCI bus.


----------

