trouble linking eepro100 and pci-scan into 2.4.18 kernel (unresolved symbols)

"Ryan S. Upton" <[email protected]>
Newsgroups gmane.linux.drivers.eepro100.devel
Message-ID <[email protected]>
Hello and thanks for all of the assistance you've already provided by writing these and other NIC drivers. I have exhausted other avenues and I would like to ask for a bit of help. 


There is history behind my need to have the latest kernel and eepro100 (and sundance as well) The problem is I cannot find a 'simple' way to get eepro100 or sundance to link into the current stable kernel. 

I've read (and reread..) pages on scyld. I have the most recent pci-scan.c, .h kern-compat.h eepro100.c and sundance.c (NOTE that sundance.c in the netdrivers.tgz file on scyld is 1.07, the driver alone is marked 1.09).  I replaced the drivers in the 2.4.18 stable release with these and changed the kernel provided Makefile as recommended and found some outstanding symbol problems. Namely:

$ > make dep clean bzImage && echo ______DONE_____
...
drivers/net/net.o: In function `speedo_found1':
drivers/net/net.o(.text+0x68): undefined reference to `acpi_set_pwr_state'
drivers/net/net.o(.text+0x4cc): undefined reference to `acpi_set_pwr_state'
drivers/net/net.o: In function `speedo_open':
drivers/net/net.o(.text+0x860): undefined reference to `acpi_set_pwr_state'
drivers/net/net.o: In function `speedo_close':
drivers/net/net.o(.text+0x1b3c): undefined reference to `acpi_set_pwr_state'
drivers/net/net.o: In function `speedo_ioctl':
drivers/net/net.o(.text+0x1cc4): undefined reference to `acpi_set_pwr_state'
drivers/net/net.o(.text+0x1ce6): more undefined references to `acpi_set_pwr_state' follow
drivers/net/net.o: In function `eepro100_probe':
drivers/net/net.o(.text+0x24cc): undefined reference to `pci_drv_register'
drivers/net/net.o: In function `sundance_probe':
drivers/net/net.o(.text+0x27e4): undefined reference to `pci_drv_register'
drivers/net/net.o: In function `sundance_pwr_event':
drivers/net/net.o(.text+0x410d): undefined reference to `acpi_set_pwr_state'
make: *** [vmlinux] Error 1

I tried a couple of workarounds in the Makefile by adding pci-scan.o:

...
obj-$(CONFIG_EEPRO100) += eepro100.o mii.o pci-scan.o
...

But even with these eventually the linker coughs up errors about an identical symbol in pci.c:

...
drivers/pci/driver.o: In function `pci_find_capability':
drivers/pci/driver.o(.text+0xfc): multiple definition of `pci_find_capability'
drivers/net/net.o(.text+0x2c10): first defined here
ld: Warning: size of symbol `pci_find_capability' changed from 123 to 186 in drivers/pci/driver.o
$ > 

It seems that there's SOME but not all of pci-scan already in the kernel. The pci_find_capability symbol is already in pci.c(?).  I am NOT up to rewriting the pci handling in kernel code (laughter), nor rewriting the eepro100 and sundance drivers so they do not need pci-scan. 

Can pci-scan.c from scyld be linked into 2.4.18?

NOTE:
I have also patched this kernel for IPVS (www.linuxvirtualserver.com) but the patches I applied do not seem to directly affect the lower layer hardware drivers any. 

_________________

There is a second problem I am having with the sundance.c version shipped with 2.4.18. Where can I send this question? (there does not seem to be a sundance list on scyld) The trouble is that there are transmit timeouts and no useabilty on a D-LINK DFE-580TX. 


Thanks for any assistance,
-R 
Ryan S. Upton
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.