On Thu, 2012-03-15 at 22:20 +0100, Björn Döbel wrote:
Hi,
Since you offered to help with link errors, here they are. Lets focus on two errors first, solving them might give me some ideas about solving other link errors.
1. l4/pkg/ankh/server/netlib/tg3.c:11644: undefined reference to `pci_get_device'
This method is defined in "l4/pkg/dde/linux26/contrib/drivers/pci/search.c". This file is getting built into "dde-linux26".
And "Ankh" links to "dde-linux26", so it should find the reference.
2. l4/pkg/ankh/server/netlib/tg3.c:11659: undefined reference to `pci_dev_put'
This method is present in "l4/pkg/dde/linux26/lib/src/drivers/pci/pci-driver.c". And is getting built into "dde-linux26" also.
Please go to your L4 build directory and find libdde_linux26.a. Run 'nm' on it and find out what type and visibility these symbols have in the library.
Here is the output of nm for above two methods. 00000000 t pci_dev_put 00000000 t pci_get_device It seems like their visibility is "local". I looked at the declaration and the definition of the methods and they are not defined as "static" Here is the declaration for "pci_get_device" -------- struct pci_dev *pci_get_device(unsigned int vendor, unsigned int device, struct pci_dev *from); -------- And here is the implementation -------- struct pci_dev * pci_get_device(unsigned int vendor, unsigned int device, struct pci_dev *from) { return pci_get_subsys(vendor, device, PCI_ANY_ID, PCI_ANY_ID, from); } --------- I might not have the clear understanding of the problem here. I would appreciate your help here. Thanks, Shashi
Bjoern