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 -


Reply via email to