[dpdk-dev] Debugging EAL PCI / Driver Init

Jayakumar, Muthurajan muthurajan.jayakumar at intel.com
Sun Aug 3 20:13:55 CEST 2014


Are you referring to CONFIG_RTE_BUILD_COMBINE_LIBS ? 

(ps: referenced here http://dpdk.org/ml/archives/dev/2013-October/000639.html)

Thanks,
M Jay


-----Original Message-----
From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Matthew Hall
Sent: Sunday, August 03, 2014 10:23 AM
To: Alex Markuze
Cc: dev at dpdk.org
Subject: Re: [dpdk-dev] Debugging EAL PCI / Driver Init

There is an option in the DPDK build config which compiles every DPDK lib into a single static lib. I don't have the name of the option in front of me but it had COMBINE in its name. When this option is used you can get every function in the whole DPDK with a single library. After that I had a lot fewer linking issues.

Matthew.
--
Sent from my mobile device.

On August 3, 2014 4:41:51 AM PDT, Alex Markuze <alex at weka.io> wrote:
>Resolved just as Matt has described.
>To remove any ambiguity (for future reference).
>
>This line in the gcc command resolves the issue in my case (a different 
>nic may need a different lib):
>--whole-archive -Wl,--start-group -lrte_pmd_ixgbe -Wl,--end-group -Wl,
>
>The problem is that the probe command polls over all pci devices and 
>tries to find a matching driver, these drivers register With these 
>macros which will only be called when the --whole-archive option is 
>provided and its actually the reason for this flags existence. Without 
>this flag the driver list is empty.
>
>PMD_REGISTER_DRIVER(rte_ixgbe_driver);
>PMD_REGISTER_DRIVER(rte_ixgbevf_driver);
>
>
>On Sun, Aug 3, 2014 at 1:38 PM, Alex Markuze <alex at weka.io> wrote:
>> Hi Matt, Dev
>> I'm Trying to compile ann app linking to dpdk and dpdk based libs.
>> And I'm seeing the same issue you've reported.
>> The probe function doesn't seem to find any ixgbevf(SRIOV VM) ports.
>> Same code compiled as a dpdk app works fine.
>>
>> In your solution to this issue you are referring to  -lintel_dpdk? I 
>> couldn't find any reference to it.
>>
>> Thanks
>> Alex.
>>
>>
>> On Sat, Aug 2, 2014 at 7:46 PM, Matthew Hall <mhall at mhcomputing.net>
>wrote:
>>> On Sun, Aug 03, 2014 at 01:37:06AM +0900, Masaru Oki wrote:
>>>> cc links library funtion from archive only if call from other
>object.
>>>> but new dpdk pmd library has constractor section and not call
>directly.
>>>> ld always links library funtion with constractor section.
>>>> use -Xlinker, or use ld instead of cc.
>>>
>>> Hello Oki-san,
>>>
>>> The trick to fix it was this, I finally found it in the example
>Makefiles with
>>> V=1 flag.
>>>
>>> -Wl,--whole-archive -Wl,--start-group -lintel_dpdk -Wl,--end-group
>-Wl,--no-whole-archive
>>>
>>> Thank you for the advice you provided, I couldn't have fixed it
>without your
>>> suggestions... it got me to look more closely at the linking.
>Importantly,
>>> "-Wl,--whole-archive" includes the entire archive whether or not
>it's called
>>> from other objects, so we don't lose the constructors, just like you
>said.
>>>
>>> Matthew.



More information about the dev mailing list