[dpdk-dev] [PATCH v2] mk: fix ABI versioning compile error for combined shared library

Panu Matilainen pmatilai at redhat.com
Tue Nov 3 12:43:32 CET 2015


On 11/03/2015 01:33 PM, Ferruh Yigit wrote:
> On Tue, Nov 03, 2015 at 12:41:10PM +0200, Panu Matilainen wrote:
>> On 11/03/2015 11:20 AM, Ferruh Yigit wrote:
>>> On Tue, Nov 03, 2015 at 09:06:05AM +0200, Panu Matilainen wrote:
>>>> On 11/02/2015 05:23 PM, Ferruh Yigit wrote:
>>>>> Fixes following error:
>>>>>      LD libdpdk.so
>>>>>      /usr/bin/ld: /root/dpdk/build/lib/libdpdk.so: version node not found
>>>>>      for symbol <function>@DPDK_x.y
>>>>>
>>>>> Defines version symbols in a fixed path libdpdk.map file and this
>>>>> value hardcoded into makefile
>>>>
>>>> Hold on. What problem is this supposed to be fixing?
>>> This patch is to fix combined library compilation error when ABI versining used.
>>> Currently if ABI version macros used (VERSION_SYMBOL), we are not able to compile combined shared library.
>>>
>>>> If its for the bonding thing (as it'd appear from the threading), NAK.
>>> Nothing directly related to the bonding, just issue observed in this thread.
>>
>> Okay, understood, it was just not clear from the description. Since there
>> are no users of VERSION_SYMBOL etc macros this error has not come up until
>> now.
>>
>>>
>>>> The symbol versioning in
>>>> that patch is confused needs to be fixed there instead of inventing strange
>>>> workarounds elsewhere.
>>>>
>>> This is not intented to be a workaround but a fix, unless you have a better idea.
>>
>> The problem is, it undoes the other benefit of symbol versioning: hiding the
>> internal symbols. So in my eyes its more of a hack or a workaround than a
>> fix.
>>
>> I'd much much rather see this as a solution:
>> http://dpdk.org/dev/patchwork/patch/4262/
>>
> What I observed from this, how/why combined library should be generated is under question, from that perspective I agree this patch is a hack.
> If current method is used, this patch just fixes compile error, also patch is not related to versioning in combined library, which is still broken.

The linker script eliminates the whole versioning problem because it 
just makes the actual individual libraries *appear* as a single entity 
during build-time, whereas the current approach physically lumps it all 
together.

	- Panu -




More information about the dev mailing list