[dpdk-dev] [PATCH] spinlock:move constructor function out of header

Wiles, Keith keith.wiles at intel.com
Fri Jul 15 00:45:09 CEST 2016


> On Jul 14, 2016, at 2:59 PM, Thomas Monjalon <thomas.monjalon at 6wind.com> wrote:
> 
> Thanks Keith for continuing work.
> 
> 2016-07-14 14:31, Keith Wiles:
>> Moving the rte_rtm_init() constructor routine out of the
>> header file and into a new rte_spinlock.c for all archs/platforms.
>> Having constructor routines in a header file is not a good
>> place to keep these types of functions.
>> 
>> The problem is with linking 3rd party libraries when
>> an application is not linked directly to dpdk libraries, which
>> in this case causes a missing symbol in the linking phase.
>> 
>> Fixes: ba7468997ea6 ("spinlock: add HTM lock elision for x86")
>> 
>> Originally submitted by Damjan Marion <damarion at cisco.com>
> 
> You should keep the original Signed-off and authorship (From: field)
> with "git am".
> It is also easier to track when using -v2 --in-reply-to='<v1-id>’.

I can try and add that into the patch for v2.
> 
>> Signed-off-by: Keith Wiles <keith.wiles at intel.com>
>> ---
>> lib/librte_eal/bsdapp/eal/Makefile                 |  1 +
>> lib/librte_eal/common/arch/arm/rte_spinlock.c      | 46 ++++++++++++++++++++++
>> lib/librte_eal/common/arch/ppc_64/rte_spinlock.c   | 46 ++++++++++++++++++++++
>> lib/librte_eal/common/arch/tile/rte_spinlock.c     | 46 ++++++++++++++++++++++
>> lib/librte_eal/common/arch/x86/rte_spinlock.c      | 46 ++++++++++++++++++++++
>> .../common/include/arch/x86/rte_spinlock.h         | 14 ++-----
>> lib/librte_eal/linuxapp/eal/Makefile               |  1 +
> 
> I am not sure we should add a .c file for each arch, given it is called only
> from arch/x86/rte_spinlock.h.

I did not like having the .c for everyone, but the previous comment seemed to suggest it. I am willing to change it any better method, just let me know what you think. I would like just one.

On a side note I have combined the bsdapp and linuxapp into a single directory before. It is doable and it eliminates a number of duplicate files or code. Plus a also added support for OS X for DPDK, but I do not have access to any NICs with that version yet other then virtual ones. I could submit it and may be someone will write the kext to make it work. :-)



More information about the dev mailing list