[dpdk-dev] [PATCH] app/testpmd: fix static build link ordering

Ferruh Yigit ferruh.yigit at intel.com
Tue Jan 31 11:58:12 CET 2017


On 1/13/2017 4:12 PM, Ferruh Yigit wrote:
> On 1/13/2017 4:01 PM, Jerin Jacob wrote:
>> On Fri, Jan 13, 2017 at 03:57:59PM +0000, Ferruh Yigit wrote:
>>> On 1/13/2017 3:53 PM, Thomas Monjalon wrote:
>>>> 2017-01-13 08:51, Jerin Jacob:
>>>>> On Thu, Jan 12, 2017 at 03:27:30PM +0000, Ferruh Yigit wrote:
>>>>>> On 1/12/2017 1:58 PM, Jerin Jacob wrote:
>>>>>>> On Thu, Jan 12, 2017 at 10:26:08AM +0100, Thomas Monjalon wrote:
>>>>>>>> 2017-01-12 13:16, Jerin Jacob:
>>>>>>>>> +ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y)
>>>>>>>>>  _LDLIBS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += -lrte_pmd_ixgbe
>>>>>>>>> +endif
>>>>>>>>
>>>>>>>> _LDLIBS is an internal variable of rte.app.mk.
>>>>>>>> Please could you check that there is no issue when using LDLIBS instead
>>>>>>>> of _LDLIBS?
>>>>>>>
>>>>> LDLIBS is not helping the situation as LDLIBS comes before the _LDLIBS-y
>>>>> mk/rte.app.mk:LDLIBS += $(_LDLIBS-y) $(CPU_LDLIBS) $(EXTRA_LDLIBS)
>>>>>
>>>>> But moving to EXTRA_LDLIBS looks OK.But it has to be under CONFIG_RTE_LIBRTE_IXGBE_PMD
>>>>>
>>>>> Thomas, Ferruh
>>>>> Let me know if you have any objection on below mentioned diff
>>>>>
>>>>> -ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y)
>>>>> -_LDLIBS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += -lrte_pmd_ixgbe
>>>>> +ifeq ($(CONFIG_RTE_LIBRTE_IXGBE_PMD),y)
>>>>> +EXTRA_LDLIBS += -lrte_pmd_ixgbe
>>>>>  endif
>>>>
>>>> You need to keep the shared lib check.
>>>> Anyway, EXTRA_LDLIBS should be reserved to users and not used in a Makefile.
>>>> I prefer your initial patch using _LDLIBS.
>>>>
>>>> Any objection to merge initial proposal?
>>>>
>>>
>>> LDLIBS should be OK, as long as wrapped with SHARED check. Is following
>>> not working:
>>
>> No, due to the following line
>> mk/rte.app.mk:LDLIBS += $(_LDLIBS-y) $(CPU_LDLIBS) $(EXTRA_LDLIBS)
>>
>> Again -lrte_pmd_ixgbe comes first.
> 
> You are right.

After second thought.
-lrte_pmd_ixgbe coming first is problem for static compilation, but
these libraries used only for dynamic compilation. And locations
shouldn't matter with dynamic compilation.

Can you please try converting to the following, that should work:

+ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y)
+ifeq ($(CONFIG_RTE_LIBRTE_IXGBE_PMD),y)
+LDLIBS += -lrte_pmd_ixgbe
+endif
+endif

I will send a patch for this.

> 
> No objection to initial proposal.
> 



More information about the dev mailing list