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 -