Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 05 Dec 2001 23:58:35 -0700
From:      Warner Losh <imp@harmony.village.org>
To:        Takanori Watanabe <takawata@shidahara1.planet.sci.kobe-u.ac.jp>
Cc:        current@FreeBSD.ORG
Subject:   Re: link_elf: symbol card_compat_do_probe_desc undefined 
Message-ID:  <200112060658.fB66wZM87498@harmony.village.org>
In-Reply-To: Your message of "Thu, 06 Dec 2001 13:32:13 %2B0900." <200112060432.NAA04219@shidahara1.planet.sci.kobe-u.ac.jp> 
References:  <200112060432.NAA04219@shidahara1.planet.sci.kobe-u.ac.jp>  

next in thread | previous in thread | raw e-mail | index | archive | help
In message <200112060432.NAA04219@shidahara1.planet.sci.kobe-u.ac.jp> Takanori Watanabe writes:
: In message <200112060414.fB64EuM86566@harmony.village.org>, Warner Losh さんい
: わく:
: >In message <200112051338.fB5DcMi00567@Magelan.Leidinger.net> Alexander Leiding
: >er writes:
: >: ---snip---
: >: Preloaded elf module "/boot/kernel/joy.ko" at 0xc048fe28.
: >: link_elf: symbol card_compat_do_probe_desc undefined
: >: KLD file joy.ko - could not finalize loading
: >
: >Hmmm.  Looks like this is my fault.  The joy driver now assumes that
: >pccard is in the base kernel, it seems.  I will investigate.  I hadn't
: >anticipated this problem.
: 
:  How about putting card_if.c and some support function stub into base system?

I must think about this, I think.

A quick look at joy.ko shows that the following symbols are undefined:
         U card_compat_attach_desc
         U card_compat_do_attach_desc
         U card_compat_do_probe_desc
         U card_compat_match_desc
         U card_compat_probe_desc
         U isa_pnp_probe_desc

ed shows a similar list of undefined symbols.

There are two cases here.  Some of these symbols come from using an
interface, while others come from implementing that interface.

Maybe we do need to compile all the *_if.c files into the kernel, used
or not, to allow any driver to be loaded.  If the bus isn't there,
then it will not probe on that bus, but there won't be the unresolved
symbols.

I'm unsure.  Comments?

Warner

BTM, here's a patch to implement all *_if.c files vs current.  This
should help the original poster around his problem.

Index: files
===================================================================
RCS file: /home/imp/FreeBSD/CVS/src/sys/conf/files,v
retrieving revision 1.587
diff -u -r1.587 files
--- files	6 Dec 2001 06:40:18 -0000	1.587
+++ files	6 Dec 2001 06:57:36 -0000
@@ -359,8 +359,8 @@
 dev/ida/ida_eisa.c	optional ida eisa
 dev/ida/ida_pci.c	optional ida pci
 dev/ie/if_ie.c		count ie isa
-dev/iicbus/iicbb_if.m	optional iicbb
-dev/iicbus/iicbus_if.m	optional iicbus
+dev/iicbus/iicbb_if.m	standard
+dev/iicbus/iicbus_if.m	standard
 dev/iicbus/if_ic.c	optional ic
 dev/iicbus/iic.c	optional iic
 dev/iicbus/iicbb.c	optional iicbb
@@ -407,7 +407,7 @@
 dev/mii/lxtphy.c	optional miibus
 dev/mii/qsphy.c		optional miibus
 dev/mii/acphy.c		optional miibus
-dev/mii/miibus_if.m	optional miibus
+dev/mii/miibus_if.m	standard
 dev/mlx/mlx.c		optional mlx
 dev/mlx/mlx_disk.c	optional mlx
 dev/mlx/mlx_pci.c	optional mlx
@@ -416,23 +416,20 @@
 dev/nge/if_nge.c	optional nge
 dev/null/null.c		standard
 dev/nmdm/nmdm.c		optional nmdm
-dev/pccard/card_if.m	optional card
-dev/pccard/card_if.m	optional cardbus
-dev/pccard/card_if.m	optional pccard
+dev/pccard/card_if.m	standard
 dev/pccard/pccard.c	optional pccard
 dev/pccard/pccard_cis.c	optional pccard
 dev/pccard/pccard_cis_quirks.c optional pccard
-dev/pccard/power_if.m	optional cardbus
-dev/pccard/power_if.m	optional pccard
+dev/pccard/power_if.m	standard
 dev/pci/eisa_pci.c	optional pci
 dev/pci/fixup_pci.c	optional pci
 dev/pci/ignore_pci.c	optional pci
 dev/pci/isa_pci.c	optional pci
 dev/pci/pci.c		count pci
-dev/pci/pci_if.m	optional pci
+dev/pci/pci_if.m	standard
 dev/pci/pci_pci.c	optional pci
 dev/pci/pci_user.c	optional pci
-dev/pci/pcib_if.m	optional pci
+dev/pci/pcib_if.m	standard
 dev/pcic/i82365.c	optional pcic pccard
 dev/pcic/i82365_isa.c	optional pcic pccard isa
 dev/pdq/if_fea.c	optional fea eisa
@@ -441,7 +438,7 @@
 dev/pdq/pdq.c		optional fpa pci
 dev/pdq/pdq_ifsubr.c	optional fea eisa
 dev/pdq/pdq_ifsubr.c	optional fpa pci
-dev/ppbus/ppbus_if.m	optional ppbus
+dev/ppbus/ppbus_if.m	standard
 dev/ppbus/if_plip.c	optional plip
 dev/ppbus/immio.c	optional vpo
 dev/ppbus/lpbb.c	optional lpbb
@@ -472,7 +469,7 @@
 dev/si/si_eisa.c	optional si eisa
 dev/si/si_isa.c		optional si isa
 dev/si/si_pci.c		optional si pci
-dev/smbus/smbus_if.m	optional smbus
+dev/smbus/smbus_if.m	standard
 dev/smbus/smb.c		optional smb
 dev/smbus/smbconf.c	optional smbus
 dev/smbus/smbus.c	count smbus
@@ -520,18 +517,18 @@
 dev/sound/pci/vibes.c	optional pcm pci
 #dev/sound/pci/vortex1.c	optional pcm pci
 dev/sound/pcm/ac97.c	optional pcm
-dev/sound/pcm/ac97_if.m	optional pcm
+dev/sound/pcm/ac97_if.m	standard
 dev/sound/pcm/buffer.c	optional pcm
 dev/sound/pcm/channel.c	optional pcm
-dev/sound/pcm/channel_if.m	optional pcm
+dev/sound/pcm/channel_if.m	standard
 dev/sound/pcm/dsp.c	optional pcm
 dev/sound/pcm/fake.c	optional pcm
 dev/sound/pcm/feeder.c	optional pcm
-dev/sound/pcm/feeder_if.m	optional pcm
-dev/sound/pcm/feeder_fmt.c	optional pcm
-dev/sound/pcm/feeder_rate.c	optional pcm
+dev/sound/pcm/feeder_if.m	standard
+dev/sound/pcm/feeder_fmt.c	standard
+dev/sound/pcm/feeder_rate.c	standard
 dev/sound/pcm/mixer.c	optional pcm
-dev/sound/pcm/mixer_if.m	optional pcm
+dev/sound/pcm/mixer_if.m	standard
 dev/sound/pcm/sndstat.c	optional pcm
 dev/sound/pcm/sound.c	optional pcm
 dev/sound/pcm/vchan.c	optional pcm
@@ -561,7 +558,7 @@
 dev/txp/if_txp.c	optional txp
 #
 # USB support
-dev/usb/usb_if.m	optional usb
+dev/usb/usb_if.m	standard
 dev/usb/hid.c		optional usb
 dev/usb/if_aue.c	optional aue
 dev/usb/if_cue.c	optional cue
@@ -737,7 +734,7 @@
 i4b/layer4/i4b_l4mgmt.c		optional i4b
 i4b/layer4/i4b_l4timer.c	optional i4b
 #
-isa/isa_if.m		optional isa
+isa/isa_if.m		standard
 isa/isa_common.c	optional isa
 isa/isahint.c		optional isa
 isa/joy.c		optional joy
@@ -877,7 +874,7 @@
 libkern/bcd.c		standard
 libkern/bsearch.c	standard
 libkern/iconv.c		optional libiconv
-libkern/iconv_converter_if.m	optional libiconv
+libkern/iconv_converter_if.m	standard
 libkern/iconv_xlat.c	optional libiconv
 libkern/index.c		standard
 libkern/inet_ntoa.c	standard
@@ -1194,7 +1191,7 @@
 pccard/pcic_pci.c	optional pcic card pci
 pccard/plxcard.c	optional plxcard pci
 pci/agp.c		optional agp
-pci/agp_if.m		optional agp
+pci/agp_if.m		standard
 pci/agp_intel.c		optional agp
 pci/agp_via.c		optional agp
 pci/agp_sis.c		optional agp

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200112060658.fB66wZM87498>