buildkernel failure: undefined reference
Robert Huff
roberthuff at rcn.com
Tue Sep 6 10:25:53 PDT 2005
I'm trying to upgrade from -CURRENT(March 29) to
-CURRENT(00:01 Sept 6) and buildkernel fails. Specifically, the
code compiles, but the link phase dies with:
MAKE=/usr/obj/usr/src/make.i386/make sh /usr/src/sys/conf/newvers.sh JERUSALEM
touch hack.c
cc -shared -nostdlib hack.c -o hack.So
rm -f hack.c
MAKE=/usr/obj/usr/src/make.i386/make sh /usr/src/sys/conf/newvers.sh JERUSALEM
cc -c -O -pipe -march=pentium4 -Wall -Wredundant-decls -Wnested-externs -Wstrict
-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -fformat
-extensions -std=c99 -g -nostdinc -I- -I. -I/usr/src/sys -I/usr/src/sys/contrib
/dev/acpica -I/usr/src/sys/contrib/altq -I/usr/src/sys/contrib/ipfilter -I/usr/s
rc/sys/contrib/pf -I/usr/src/sys/contrib/dev/ath -I/usr/src/sys/contrib/dev/ath/
freebsd -I/usr/src/sys/contrib/ngatm -I/usr/src/sys/dev/twa -D_KERNEL -include o
pt_global.h -fno-common -finline-limit=8000 --param inline-unit-growth=100 --par
am large-function-growth=1000 -mno-align-long-strings -mpreferred-stack-boundar
y=2 -mno-mmx -mno-3dnow -mno-sse -mno-sse2 -mno-sse3 -ffreestanding -Werror ve
rs.c
linking kernel.debug
mga_dma.o(.text+0xd): In function `mga_do_wait_for_idle':
/usr/src/sys/dev/drm/mga_dma.c:56: undefined reference to `drm_debug_flag'
mga_dma.o(.text+0xa3): In function `mga_do_dma_reset':
/usr/src/sys/dev/drm/mga_dma.c:79: undefined reference to `drm_debug_flag'
mga_dma.o(.text+0x10b): In function `mga_do_dma_flush':
/usr/src/sys/dev/drm/mga_dma.c:109: undefined reference to `drm_debug_flag'
mga_dma.o(.text+0x17b):/usr/src/sys/dev/drm/mga_dma.c:120: undefined reference t
o `drm_debug_flag'
mga_dma.o(.text+0x21a):/usr/src/sys/dev/drm/mga_dma.c:148: undefined reference t
o `drm_debug_flag'
mga_dma.o(.text+0x257):/usr/src/sys/dev/drm/mga_dma.c:149: more undefined refere
nces to `drm_debug_flag' follow
mga_dma.o(.text+0x633): In function `mga_freelist_init':
/usr/src/sys/dev/drm/mga_dma.c:254: undefined reference to `drm_alloc'
mga_dma.o(.text+0x6be):/usr/src/sys/dev/drm/mga_dma.c:265: undefined reference t
o `drm_alloc'
etc..
I have examined /usr/src/UPDATING and found noting applicable.
What have I missed?
(make.conf and kernel config are appended.)
Robert Huff
**************** /etc/make.conf
# Created: Fri Jan 30 14:18:07 2004
# Setting to use base perl from ports:
#PERL_VER=5.6.1
#PERL_VERSION=5.6.1
#PERL_ARCH=mach
#NOPERL=yo
#NO_PERL=yo
#NO_PERL_WRAPPER=yo
#
CPUTYPE?=p4
CFLAGS= -O -pipe
X_WINDOW_SYSTEM=xorg
HAVE_MOTIF= yes
# To avoid building various parts of the base system:
# (copied from /usr/share/examples/etc/make.conf
#NO_BOOT= true # do not build boot blocks and loader
#NO_CVS= true # do not build CVS
#NO_CXX= true # do not build C++ and friends
#NO_BIND= true # do not build BIND
NO_BIND_ETC= true # Do not install files to /etc/namedb
NO_BLUETOOTH= true # do not build Bluetooth related stuff
NO_FORTRAN= true # do not build g77 and related libraries
#NO_GDB= true # do not build GDB
#NO_I4B= true # do not build isdn4bsd package
#NO_IPFILTER= true # do not build IP Filter package
#NO_PF= true # do not build PF firewall package
#NO_AUTHPF= true # do not build and install authpf (setuid/gid)
#NO_KERBEROS= true # do not build and install Kerberos 5 (KTH Heimdal)
#NO_LPR= true # do not build lpr and related programs
#NO_MAILWRAPPER=true # do not build the mailwrapper(8) MTA selector
#NO_MODULES= true # do not build modules with the kernel
#NO_OBJC= true # do not build Objective C support
#NO_OPENSSH= true # do not build OpenSSH
#NO_OPENSSL= true # do not build OpenSSL (implies NO_KERBEROS/NO_OPENSSH)
#NO_SENDMAIL= true # do not build sendmail and related programs
#NO_SHAREDOCS= true # do not build the 4.4BSD legacy docs
#NO_TCSH= true # do not build and install /bin/csh (which is tcsh)
#NO_VINUM= true # do not build Vinum utilities
#NOCRYPT= true # do not build any crypto code
#NOGAMES= true # do not build games (games/ subdir)
#NOINFO= true # do not make or install info files
#NOLIBC_R= true # do not build libc_r (re-entrant version of libc)
#NOMAN= true # do not build manual pages
NO_PROFILE= true # Avoid compiling profiled libraries
#NOSHARE= true # do not go into the share subdir
# to get automatic SASL in sendmail
SENDMAIL_CFLAGS+= -I/usr/local/include/ -DSASL=2
SENDMAIL_LDFLAGS+= -L/usr/local/lib
SENDMAIL_LDADD+= -lsasl2
# added by use.perl 2005-07-06 13:49:19
PERL_VER=5.8.7
PERL_VERSION=5.8.7
**************** kernel config
#
# JERUSALEM
#
# For more information read the handbook part System Administration ->
# Configuring the FreeBSD Kernel -> The Configuration File.
# The handbook is available in /usr/share/doc/handbook or online as
# latest version from the FreeBSD World Wide Web server
# <URL:http://www.FreeBSD.ORG/>
#
# An exhaustive list of options and more detailed explanations of the
# device lines is present in the ./LINT configuration file. If you are
# in doubt as to the purpose or necessity of a line, check first in LINT.
#
# $Id: GENERIC,v 1.125 1998/10/16 01:30:11 obrien Exp $
machine i386
#cpu "I386_CPU"
#cpu "I486_CPU"
#cpu "I586_CPU"
cpu I686_CPU
ident JERUSALEM
maxusers 0
#options MATH_EMULATE #Support for x87 emulation
options SCHED_ULE
options INET #InterNETworking
options INET6 #IPv6 communications protocols
options MAXDSIZ="(1024*1024*1024)"
options MAXSSIZ="(256*1024*1024)"
#options IPX
#options NCP #NetWare Core protocol
options FFS #Berkeley Fast Filesystem
options MSDOSFS #MSDOS Filesystem
options CD9660 #ISO 9660 Filesystem
#options NWFS #NetWare 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 SCSI_DELAY=100 #Be pessimistic about Joe SCSI
# note: value is in milliseconds
#options SAFETY
# Debugging for use in -current
options KDB # Enable kernel debugger support.
options DDB #Enable the kernel debugger
makeoptions DEBUG=-g
#options INVARIANTS #Enable calls of extra sanity checking
#options INVARIANT_SUPPORT #Extra sanity checks of internal structures, required by INVARIANTS
#options WITNESS #Enable checks to detect deadlocks and cycles
#options WITNESS_SKIPSPIN #Don't run witness on spinlocks for speed
options COMPAT_43 #Compatible with BSD 4.3 [KEEP THIS!]
options COMPAT_FREEBSD4 #Compatible with FreeBSD4
options SYSVSHM #SYSV-style shared memory
options SYSVMSG #SYSV-style message queues
options SYSVSEM #SYSV-style semaphores
options COMPAT_AOUT
# see java/62837
#options COMPAT_LINUX
#options LINPROCFS
options PROCFS
options PSEUDOFS
# For StarOffice
#options P1003_1B
#options _KPOSIX_PRIORITY_SCHEDULING
#options _KPOSIX_VERSION=199309L
#options MD5
# For Mars-nwe NetWare server
#options IPX
# for WINE
#options USER_LDT #allow user-level control of i386 ldt
#
#
#config kernel root on da0
device isa
device eisa
device pci
#device fdc0 at isa? port IO_FD1 irq 6 drq 2c
device fdc
#device fd at fdc drive 0
#disk fd1 at fdc drive 1
# Unless you know very well what you're doing, leave ft0 at drive 2, or
# remove the line entirely if you don't need it. Trying to configure
# it on another unit might cause surprises, see PR kern/7176.
#tape ft0 at fdc0 drive 2
#options "CMD640" # work around CMD640 chip deficiency
#controller wdc0 at isa? port "IO_WD1" bio irq 14 vector wdintr
#disk wd0 at wdc0 drive 0
#disk wd1 at wdc0 drive 1
#controller wdc1 at isa? port "IO_WD2" bio irq 15 vector wdintr
#disk wd2 at wdc1 drive 0
#disk wd3 at wdc1 drive 1
#options ATAPI #Enable ATAPI support for IDE bus
#options ATAPI_STATIC #Don't do it as an LKM
#device wcd0 #IDE CD-ROM
#device wfd0 #IDE Floppy (e.g. LS-120)
# A single entry for any of these controllers (ncr, ahb, ahc, amd) is
# sufficient for any number of installed devices.
#controller ncr0
#controller amd0
#controller ahb0
device ahc
#controller isp0
# This controller offers a number of configuration options, too many to
# document here - see the LINT file in this directory and look up the
# dpt0 entry there for much fuller documentation on this.
#controller dpt0
#controller adv0 at isa? port ? cam irq ?
#controller adw0
#controller bt0 at isa? port ? cam irq ?
#controller aha0 at isa? port ? cam irq ?
#controller uha0 at isa? port "IO_UHA0" bio irq ? drq 5 vector uhaintr
#controller aic0 at isa? port 0x340 bio irq 11 vector aicintr
#controller nca0 at isa? port 0x1f88 bio irq 10 vector ncaintr
#controller nca1 at isa? port 0x350 bio irq 5 vector ncaintr
#controller sea0 at isa? bio irq 5 iomem 0xc8000 iosiz 0x2000 vector seaintr
device scbus
device da # SCSI disk
device sa # SCSI tape
device pass
device cd # Only need one of these, the code dynamically grows
#device wt0 at isa? port 0x300 bio irq 5 drq 1 vector wtintr
#device mcd0 at isa? port 0x300 bio irq 10 vector mcdintr
#controller matcd0 at isa? port 0x230 bio
#device scd0 at isa? port 0x230 bio
# syscons is the default console driver, resembling an SCO console
#device sc at isa? flags 0x100
device sc
# at isa? port "IO_KBD" conflicts tty irq 1 vector scintr
# Enable this and PCVT_FREEBSD for pcvt vt220 compatible console driver
## 2/3/1999: new model console stuff
#device atkbdc
#device atkbd
#device vt
device vga
device mgadrm
device agp
#device vt0 at isa? port "IO_KBD" conflicts tty irq 1 vector pcrint
options XSERVER # support for X server
#options FAT_CURSOR # start with block cursor
# If you have a ThinkPAD, uncomment this along with the rest of the PCVT lines
#options PCVT_SCANSET=2 # IBM keyboards are non-std
device npx
#
# Laptop support (see LINT for more options)
#
#device apm0 at isa? disable flags 0x31 # Advanced Power Management
# PCCARD (PCMCIA) support
#controller card0
#device pcic0 at card?
#device pcic1 at card?
device sio
#device lpt0 at isa? port? tty irq 7 vector lptintr
# Parallel-Port Bus
#
# Parallel port bus support is provided by the `ppbus' device.
# Multiple devices may be attached to the parallel port, devices
# are automatically probed and attached when found.
#
# Supported devices:
# vpo Iomega Zip Drive
# Requires SCSI disk support ('scbus' and 'da'), best
# performance is achieved with ports in EPP 1.9 mode.
# nlpt Parallel Printer, use _instead_ of lpt0
# plip Parallel network interface
# ppi General-purpose I/O ("Geek Port")
# pps Pulse per second Timing Interface
# lpbb Philips official parallel port I2C bit-banging interface
#
# Supported interfaces:
# ppc ISA-bus parallel port interfaces.
#
device ppc
device ppbus
device lpt
device plip
device ppi
############
# USB support
device uhci
device ohci
device ehci
device usb
device ugen
#device uhid
device ukbd
options KBD_INSTALL_CDEV
device ums
#device uscanner
############
#device psm at isa? port "IO_KBD" conflicts tty irq 12 vector psmintr
#device psm
# Order is important here due to intrusive probes, do *not* alphabetize
# this list of network interfaces until the probes have been fixed.
# Right now it appears that the ie0 must be probed before ep0. See
# revision 1.20 of this file.
device de
#device de0
#device de1
#device fxp0
#device tl0
#device tx0
#device vx0
#device xl0
#device ed0 at isa? port 0x380 net irq 9 iomem 0xd8000 vector edintr
#device ie0 at isa? port 0x300 net irq 10 iomem 0xd0000 vector ieintr
#device ep0 at isa? port 0x300 net irq 10 vector epintr
#device ex0 at isa? port? net irq? vector exintr
#device fe0 at isa? port 0x300 net irq ? vector feintr
#device le0 at isa? port 0x300 net irq 5 iomem 0xd0000 vector le_intr
#device lnc0 at isa? port 0x280 net irq 10 drq 0 vector lncintr
#device ze0 at isa? port 0x300 net irq 10 iomem 0xd8000 vector zeintr
#device zp0 at isa? port 0x300 net irq 10 iomem 0xd8000 vector zpintr
#device cs0 at isa? port 0x300 net irq ? vector csintr
#
# see /usr/src/UPDATING
#
device mem # Memory and kernel memory devices
device io # I/O device
#device null # Null and zero devices
device random
device bpf
device loop # Network loopback
device ether
#device sl 1
#device ppp 0
device tun
device gif
device pty
#device gzip # Exec gzipped a.out's
#
# for IPFW/natd
#
options IPFIREWALL #firewall
options IPFIREWALL_VERBOSE #print information about
# dropped packets
#options IPFIREWALL_FORWARD #enable xparent proxy support
options IPFIREWALL_VERBOSE_LIMIT=100 #limit verbosity
options IPDIVERT #divert sockets
#
# IPv6
#
options IPV6FIREWALL #firewall for IPv6
options IPV6FIREWALL_VERBOSE
options IPV6FIREWALL_VERBOSE_LIMIT=100
options IPV6FIREWALL_DEFAULT_TO_ACCEPT
#
# sound driver
#
#device pcm
device sound
device snd_cmi
More information about the freebsd-current
mailing list