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