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>
