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.
- 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.
- 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