[dpdk-dev] Can't compile DPDK if both CONFIG_RTE_BUILD_COMBINE_LIBS and LIBRTE_PMD_XENVIRT are set to "yes"

Panu Matilainen pmatilai at redhat.com
Wed Nov 25 09:44:20 CET 2015


On 11/25/2015 02:26 AM, Martinx - ジェームズ wrote:
> On 24 November 2015 at 13:53, Panu Matilainen <pmatilai at redhat.com> wrote:
>> On 11/24/2015 05:30 PM, Martinx - ジェームズ wrote:
>>>
>>> On 24 November 2015 at 13:22, Panu Matilainen <pmatilai at redhat.com> wrote:
>>>>
>>>> On 11/24/2015 04:46 PM, Sergio Gonzalez Monroy wrote:
>>>>>
>>>>>
>>>>> On 24/11/2015 13:57, Panu Matilainen wrote:
>>>>>>
>>>>>>
>>>>>> On 11/23/2015 08:37 PM, Martinx - ジェームズ wrote:
>>>>>>>
>>>>>>>
>>>>>>> Hello!
>>>>>>>
>>>>>>> My name is Thiago, I'm trying to compile DPDK 2.0, 2.1 and/or 2.2-rc1,
>>>>>>> on Ubuntu with Xen support but, it does not build...
>>>>>>>
>>>>>>> Also, initially, I'm using DPDK sources from Ubuntu APT repository
>>>>>>> but, it is also reproducible using upstream DPDK tarball as well,
>>>>>>> explained as follows:
>>>>>>>
>>>>>>> Problem:
>>>>>>>
>>>>>>> * It is not possible to use the following DPDK options at the same
>>>>>>> time:
>>>>>>>
>>>>>>> CONFIG_RTE_BUILD_COMBINE_LIBS
>>>>>>> LIBRTE_PMD_XENVIRT
>>>>>>>
>>>>>>> Ubuntu DPDK .deb package uses CONFIG_RTE_BUILD_COMBINE_LIBS and,
>>>>>>> without it, it can't build its .deb binary package (step: "make -f
>>>>>>> debian/rules binary" doesn't work).
>>>>>>>
>>>>>>> So, if you have the above two options set to "yes", the following
>>>>>>> error appear while building DPDK:
>>>>>>>
>>>>>>> http://pastebin.com/xUsQPxh8
>>>>>>>
>>>>>> [...]
>>>>>>>
>>>>>>>
>>>>>>> Build error:
>>>>>>>
>>>>>>> http://pastebin.com/fuUkpF4w
>>>>>>>
>>>>>>> If you remove "CONFIG_RTE_BUILD_COMBINE_LIBS", then, you can build it
>>>>>>> with "LIBRTE_PMD_XENVIRT", and vice-versa. But, without
>>>>>>> "...COMBINE_LIBS", Ubuntu .deb package doesn't get builded.
>>>>>>>
>>>>>>> BTW, the option LIBRTE_XEN_DOM0 is fine when also enabling
>>>>>>> COMBINE_LIBS...
>>>>>>>
>>>>>>> Am I missing something? Is this by design or a DPDK bug?
>>>>>>
>>>>>>
>>>>>>
>>>>>> DPDK bug I would say. The combined library has been increasingly in
>>>>>> risk of collapsing under its own weight for some time now.
>>>>>>
>>>>>> A much better way of achieving the same is using a so called linker
>>>>>> script which is essentially just an ascii file listing all the
>>>>>> individual libraries which the linker handles behind the scenes.
>>>>>> FWIW, that's how the combined library is packaged on Fedora and RHEL
>>>>>> and consumers like OVS and pktgen never knew the difference.
>>>>>>
>>>>>> The linker script approach has been suggested before but somehow the
>>>>>> threads died without nothing actually happening. I'll revive the patch
>>>>>> and post here shortly. Unless Sergio (cc'd) who previously worked on
>>>>>> the patches has a newer version cooking silently?
>>>>>>
>>>>> I haven't worked on it since,  so you probably are in a better position
>>>>> to continue the work than me.
>>>>
>>>>
>>>>
>>>> Ok, I suspected as much but thanks for confirming. I'll continue the work
>>>> as
>>>> time permits.
>>>>
>>>>           - Panu -
>>>>
>>>
>>> Cool! Thank you guys for this fast reply...
>>>
>>> Just a curiosity, do you guys think that this will be ready for 2.2?
>>> Or maybe just for 2.3?
>>>
>>> I'm hoping to use this for next Ubuntu release, Xenial on 2016, April
>>> (Ubuntu 16.04 LTS).
>>>
>>> So, I think that there is time, if not too much trouble for you guys
>>> (honestly, I don't know how hard is to fix that)...     :-)
>>
>>
>> Feel free to try this out: http://dpdk.org/dev/patchwork/patch/9088/
>>
>> Whether it lands in time for 2.2 I dont know. However there's absolutely no
>> need to be held hostage by that patch, you can just disable the combined
>> library build option and drop a linker script in its place, created by hand
>> or with couple of lines of shell script, eg:
>> http://pkgs.fedoraproject.org/cgit/dpdk.git/tree/dpdk.spec#n234
>>
>>          - Panu -
>>
>
> Helo Panu,
>
> This is getting interesting... Your patch worked (on top of
> dpdk-2.2.0-rc1) but, now, it broke Ubuntu / Debian packaging, because
> your patch adds a new file called "mk/rte.combinedlib.mk" but it also,
> removes the file "mk/rte.sharelib.mk", which Ubuntu is using to enable
> "LIB ABI Version" on DPDK.
>
> I'm talking about the following Ubuntu Patch (very simple and small):
>
> ---
> tmartins at xenial-1:~/dpdk/ubuntu/dpdk-2.0.0$ cat
> debian/patches/ubuntu-combined-shared-lib-abiversion.patch
>
> http://pastebin.com/VhpMF5U1
> ---
>
> So, with your patch, I can now compile DPDK while using both options
> (_COMBINE_LIBS and _XENVIRT) at the same time but, unfortunately,
> Ubuntu packaging is now broken...
>
> Yes, I know that you guys have nothing to do with that but, I think
> that it would be GREAT if DPDK comes with "Lib ABI Version" by
> default...
>
> So, is it possible to, somehow, include "LIBABIVER" on your new
> "mk/rte.combinedlib.mk" file?
>
> Then, Ubuntu / Debian will not need to patch DPDK anymore, during
> build/packaging process...

The linker script has no ABI version because its not a run-time library, 
its only used during building. The ABI versions are carried by the 
individual libraries themselves.

	- Panu -

> I really don't mind if DPDK team (or you Panu) just ignore this
> request, I know you guys are very busy, no problem...    =)
>
> Nevertheless, I'll also try your suggestion, to use something like this:
>
> http://pkgs.fedoraproject.org/cgit/dpdk.git/tree/dpdk.spec#n234
>
> ...to see if it behaves differently, and of course, to see if it
> builds the Debian package in the end of the day.
>
> Thanks again!
> Thiago
>



More information about the dev mailing list