Subject: Kernel compile problem with ALTQ
To: None <netbsd-users@netbsd.org>
From: Jamie Heckford <jamie@tridentmicrosystems.co.uk>
List: netbsd-users
Date: 03/02/2005 15:42:59
Hi,

Im having a bit of trouble compiling the kernel for a box im building to run ALTQ.

Version is:

NetBSD 2.0 (GENERIC) #0: Wed Dec  1 10:58:25 UTC 2004  builds@build:/big/builds/ab/netbsd-2-0-RELEASE/i386/200411300000Z-obj/big/builds/ab/netbsd-2-0-RELEASE/src/sys/arch/i386/compile/GENERIC

The build stops with:

#    create  vers.c
sh ../../../../conf/newvers.sh
#   compile  TSHAPER/vers.o
cc      -ffreestanding   -O2 -Werror -Wall -Wno-main -Wno-format-zero-length -Wpointer-arith -Wmissing-prototypes -Wstrict-prototypes -Wno-sign-compare -fno-zero-initialized-in-bss  -Di386 -I.  -I../../../../arch -I../../../.. -nostdinc -DLKM -DMAXUSERS=64 -D_KERNEL -D_KERNEL_OPT  -c vers.c
#      link  TSHAPER/netbsd
ld -T ../../../../arch/i386/conf/kern.ldscript -Ttext c0100000 -e start -X -o netbsd ${SYSTEM_OBJ} ${EXTRA_OBJ} vers.o
altq_rio.o(.text+0xbd8): In function `rio_alloc':
: undefined reference to `wtab_alloc'
altq_rio.o(.text+0xd4e): In function `rio_destroy':
: undefined reference to `wtab_destroy'
altq_rio.o(.text+0x108b): In function `rio_addq':
: undefined reference to `drop_early'
altq_rio.o(.text+0x10e2): In function `rio_addq':
: undefined reference to `pow_w'
*** Error code 1

Stop.
make: stopped in /usr/src/sys/arch/i386/compile/TSHAPER

Anybody have any suggestions? Copy of kernel conf file below.

Thanks,

-- 
Jamie Heckford
Network Manager
Trident Microsystems Ltd.

t: +44(0)1737-780790
f: +44(0)1737-771908
w: http://www.tridentmicrosystems.co.uk/


# $NetBSD: GENERIC,v 1.595.2.11 2004/08/30 09:52:37 tron Exp $
# This machine description file is used to generate the default NetBSD
# kernel.  The generic kernel does not include all options, subsystems
# and device drivers, but should be useful for most applications.
#
# The machine description file can be customised for your specific
# machine to reduce the kernel size and improve its performance.
#
# For further information on compiling NetBSD kernels, see the config(8)
# man page.
#
# For further information on hardware support for this architecture, see
# the intro(4) man page.  For further information about kernel options
# for this architecture, see the options(4) man page.  For an explanation
# of each device driver in this file see the section 4 man page for the
# device.

include         "arch/i386/conf/std.i386"

options         INCLUDE_CONFIG_FILE     # embed config file in kernel binary

#ident          "GENERIC-$Revision: 1.595.2.11 $"

maxusers        64              # estimated number of users

# CPU support.  At least one is REQUIRED.
options         I686_CPU

# CPU-related options.
options         VM86            # virtual 8086 emulation

options         MTRR            # memory-type range register syscall support

# Standard system options

options         INSECURE        # disable kernel security levels - X needs this

options         RTC_OFFSET=0    # hardware clock is this many mins. west of GMT
options         NTP             # NTP phase/frequency locked loop
#options        NO_TSC_TIME     # Don't use TSC microtime, even if available.
                                # Improves time behavior under VMware.

options         KTRACE          # system call tracing via ktrace(1)
options         SYSTRACE        # system call vetting via systrace(1)

options         SYSVMSG         # System V-like message queues
options         SYSVSEM         # System V-like semaphores
#options        SEMMNI=10       # number of semaphore identifiers
#options        SEMMNS=60       # number of semaphores in system
#options        SEMUME=10       # max number of undo entries per process
#options        SEMMNU=30       # number of undo structures in system
options         SYSVSHM         # System V-like memory sharing
#options        SHMMAXPGS=2048  # 2048 pages is the default
options         P1003_1B_SEMAPHORE      # p1003.1b semaphore support

options         LKM             # loadable kernel modules

options         USERCONF        # userconf(4) support
options         SYSCTL_INCLUDE_DESCR    # Include sysctl descriptions in kernel

# Compatibility options
options         COMPAT_NOMID    # NetBSD 0.8, 386BSD, and BSDI
options         COMPAT_09       # NetBSD 0.9
options         COMPAT_10       # NetBSD 1.0
options         COMPAT_11       # NetBSD 1.1
options         COMPAT_12       # NetBSD 1.2, 386BSD, and BSDI
options         COMPAT_13       # NetBSD 1.3, 386BSD, and BSDI
options         COMPAT_14       # NetBSD 1.4
options         COMPAT_15       # NetBSD 1.5
options         COMPAT_16       # NetBSD 1.6
options         COMPAT_43       # 4.3BSD, 386BSD, and BSDI
options         COMPAT_386BSD_MBRPART # recognize old partition ID

# File systems
file-system     FFS             # UFS
file-system     MFS             # memory file system
file-system     FDESC           # /dev/fd
file-system     KERNFS          # /kern
file-system     NULLFS          # loopback file system
file-system     PROCFS          # /proc
file-system     UMAPFS          # NULLFS + uid and gid remapping

# File system options
options         SOFTDEP         # FFS soft updates support.

# Networking options
options         INET            # IP + ICMP + TCP + UDP
options         INET6           # IPV6
options         ISO,TPIP        # OSI
options         PFIL_HOOKS      # pfil(9) packet filter hooks
options         IPFILTER_LOG    # ipmon(8) log support

options         ALTQ            # Manipulate network interfaces' output queues
options         ALTQ_CBQ        # Class-Based Queueing
options         ALTQ_RIO        # RED with IN/OUT

#
# wscons options
options         WSEMUL_VT100            # VT100 / VT220 emulation
# different kernel output - see dev/wscons/wsdisplayvar.h
options         WS_KERNEL_FG=WSCOL_GREEN
# compatibility to other console drivers
options         WSDISPLAY_COMPAT_PCVT           # emulate some ioctls
options         WSDISPLAY_COMPAT_SYSCONS        # emulate some ioctls
options         WSDISPLAY_COMPAT_USL            # VT handling
options         WSDISPLAY_COMPAT_RAWKBD         # can get raw scancodes
# use a large software cursor that doesn't blink
options         PCDISPLAY_SOFTCURSOR

# Kernel root file system and dump configuration.
config          netbsd  root on ? type ?

#
# Device configuration
#

mainbus0 at root

cpu* at mainbus?

# Basic Bus Support
# PCI bus support
pci*    at mainbus? bus ?
pci*    at pchb? bus ?
pci*    at ppb? bus ?

# PCI bridges
pchb*   at pci? dev ? function ?        # PCI-Host bridges
pceb*   at pci? dev ? function ?        # PCI-EISA bridges
pcib*   at pci? dev ? function ?        # PCI-ISA bridges
pcmb*   at pci? dev ? function ?        # PCI-MCA bridges
ppb*    at pci? dev ? function ?        # PCI-PCI bridges
# XXX 'puc's aren't really bridges, but there's no better place for them here
puc*    at pci? dev ? function ?        # PCI "universal" comm. cards

agp*    at pchb?

# EISA bus support
eisa0   at mainbus?
eisa0   at pceb?

# ISA bus support
isa0    at mainbus?
isa0    at pceb?
isa0    at pcib?
#isa0   at ichlpcib?

# MCA bus support
mca0    at mainbus?

# ISA Plug-and-Play bus support
isapnp0 at isa?

# Math Coprocessor support
npx0    at isa? port 0xf0 irq 13        # x86 math coprocessor


# Console Devices

# wscons
pckbc0          at isa?                 # pc keyboard controller
pckbd*          at pckbc?               # PC keyboard
vga0            at isa?
vga*            at pci? dev ? function ?
pcdisplay0      at isa?                 # CGA, MDA, EGA, HGA
wsdisplay*      at vga? console ?
wsdisplay*      at pcdisplay? console ?
wskbd*          at pckbd? console ?

pcppi0          at isa?
sysbeep0        at pcppi?

# Serial Devices

# PCI serial interfaces
com*    at puc? port ?                  # 16x50s on "universal" comm boards
cy*     at pci? dev ? function ?        # Cyclades Cyclom-Y serial boards
cz*     at pci? dev ? function ?        # Cyclades-Z multi-port serial boards

# ISA Plug-and-Play serial interfaces
com*    at isapnp?                      # Modems and serial boards

# I2O devices
iop*    at pci? dev ? function ?        # I/O processor
ld*     at iop? tid ?                   # block devices

# IDE and related devices
# PCI IDE controllers - see pciide(4) for supported hardware.
# The 0x0001 flag force the driver to use DMA, even if the driver doesn't know
# how to set up DMA modes for this chip. This may work, or may cause
# a machine hang with some controllers.
pciide*         at pci? dev ? function ? flags 0x0000   # GENERIC pciide driver
viaide*         at pci? dev ? function ?        # VIA/AMD/Nvidia IDE controllers

# ISA Plug-and-Play IDE controllers
wdc*    at isapnp?

# ISA ST506, ESDI, and IDE controllers
# Use flags 0x01 if you want to try to use 32bits data I/O (the driver will
# fall back to 16bits I/O if 32bits I/O are not functional).
# Some controllers pass the initial 32bit test, but will fail later.
wdc0    at isa? port 0x1f0 irq 14 flags 0x00
wdc1    at isa? port 0x170 irq 15 flags 0x00

# ATA (IDE) bus support
atabus* at ata?

# IDE drives
# Flags are used only with controllers that support DMA operations
# and mode settings (e.g. some pciide controllers)
# The lowest order four bits (rightmost digit) of the flags define the PIO
# mode to use, the next set of four bits the DMA mode and the third set the
# UltraDMA mode. For each set of four bits, the 3 lower bits define the mode
# to use, and the last bit must be 1 for this setting to be used.
# For DMA and UDMA, 0xf (1111) means 'disable'.
# 0x0fac means 'use PIO mode 4, DMA mode 2, disable UltraDMA'.
# (0xc=1100, 0xa=1010, 0xf=1111)
# 0x0000 means "use whatever the drive claims to support".
wd*     at atabus? drive ? flags 0x0000

# ATAPI bus support
atapibus* at atapi?

# ATAPI devices
# flags have the same meaning as for IDE drives.
sd*     at atapibus? drive ? flags 0x0000       # ATAPI disk drives
uk*     at atapibus? drive ? flags 0x0000       # ATAPI unknown

# Network Interfaces

# PCI network interfaces
rtk*    at pci? dev ? function ?        # Realtek 8129/8139
ukphy*  at mii? phy ?                   # generic unknown PHYs

# Pull in optional local configuration
include "arch/i386/conf/GENERIC.local"


pseudo-device   md              1       # memory disk device (ramdisk)
pseudo-device   vnd             4       # disk-like interface to files

# network pseudo-devices
pseudo-device   bpfilter        8       # Berkeley packet filter
pseudo-device   ipfilter                # IP filter (firewall) and NAT
pseudo-device   loop                    # network loopback
pseudo-device   tun             2       # network tunneling over tty
pseudo-device   gre             2       # generic L3 over IP tunnel
pseudo-device   gif             4       # IPv[46] over IPv[46] tunnel (RFC1933)
pseudo-device   vlan                    # IEEE 802.1q encapsulation
pseudo-device   bridge                  # simple inter-network bridging
options         BRIDGE_IPF              # bridge uses IP/IPv6 pfil hooks too

# miscellaneous pseudo-devices
pseudo-device   pty                     # pseudo-terminals
# rnd works; RND_COM does not on port i386 yet.
pseudo-device   rnd                     # /dev/random and in-kernel generator
pseudo-device   clockctl                # user control of clock subsystem

# wscons pseudo-devices
pseudo-device   wsmux                   # mouse & keyboard multiplexor
pseudo-device   wsfont
pseudo-device   ksyms                   # /dev/ksyms