On Thu, Nov 26, 2009 at 10:43:13AM -0700, Brett Glass wrote:
> I encountered a strange bug when I was "trimming" the GENERIC FreeBSD
> RELEASE-8.0 kernel to omit drivers for hardware that would not be used on one
> target platform. I removed all of the USB Ethernet drivers except for "udav"
> (Davicom USB Ethernet) and tried to rebuild the kernel. The build stopped at
> the point where the kernel was linked, reporting undefined references in the
> file /sys/usb/net/if_udav.c to "uether_pause", "uether_ifdetach",
> "uether_getmii", and other routines with similar names. I discovered that
> these functions are defined in the file usb_ethernet.c, which is in the same
> directory as if_udav.c.

Missing symbols are almost always the sign of a missing "device" directive 
inside
of the kernel configuration file.  In this case, they're part of 
sys/dev/usb/net/usb_ethernet.[ch], which should be being built.

You absolutely need to include the following devices in addition to "device 
udav":

device ether
device miibus

I assume you did leave "device usb" and related pieces (meaning lines
around that area) intact.

Keeping it simple: can we see your kernel configuration file in its
entirety?  It isn't included in the PR, nor in this Email.

> More experimentation seems to indicate that the GENERIC kernel builds by sheer
> luck, due to an odd quirk in the "config" utility.

I haven't used "config" since the early 3.x days.  I'm certain "make
buildkernel" and friends relies on it, but configuring a kernel +
building a kernel is a lot simpler now.  Read /usr/src/Makefile,
starting with the line "For individuals wanting to upgrade their
sources".  The steps there are accurate.

I don't think parenthesis are the core of the problem, given that there
are many other devices in /sys/conf/files which utilise said method.

-- 
| Jeremy Chadwick                                   j...@parodius.com |
| Parodius Networking                       http://www.parodius.com/ |
| UNIX Systems Administrator                  Mountain View, CA, USA |
| Making life hard for others since 1977.              PGP: 4BD6C0CB |
_______________________________________________
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "freebsd-stable-unsubscr...@freebsd.org"

Reply via email to