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 >