DPDK patches and discussions
 help / color / mirror / Atom feed
From: "Martinx - ジェームズ" <thiagocmartinsc@gmail.com>
To: dev@dpdk.org
Subject: [dpdk-dev] Can't compile DPDK if both CONFIG_RTE_BUILD_COMBINE_LIBS and LIBRTE_PMD_XENVIRT are set to "yes"
Date: Mon, 23 Nov 2015 16:37:41 -0200	[thread overview]
Message-ID: <CAJSM8J2D_trMfzeSJAcuYD4sf-6GqdfhF-FdMOYV=0NFSGa0kQ@mail.gmail.com> (raw)

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

--

* Steps to reproduce it on Ubuntu *

You'll need to download, build and package DPDK using 100% Ubuntu
tools...     ;-)

1- Install Ubuntu 15.10 64-bit, Server or Desktop (If you're brave, go
for Ubuntu 16.04 Xenial dev branch);

NOTE 1: Make sure you have uncommented some 'source' URIs in your
/etc/apt/sources.list file. You can use the following Regex on vi:

    sudo vi /etc/apt/sources.list

    :%s/^# deb-src/deb-src/cg

NOTE 2: Install on your Ubuntu:

    sudo apt-get install fakeroot libxen-dev


2- Download and build DPDK 2.0

# Install DPDK build dependencies:

    sudo apt-get update
    sudo apt-get build-dep dpdk

    mkdir -p ~/dpdk/ubuntu ; cd ~/dpdk/ubuntu

# Download DPDK:

    apt-get source dpdk

    cd dpdk-2.0.0

# Build DPDK (without Xen, just defaults from Ubuntu package, it works):

    make -f debian/rules build  # to build it
    make -f debian/rules binary  # to package it into .deb files

# or

    dpkg-buildpackage -rfakeroot -uc -us

It will build okay! Like a charm...

But, now, if you want to enable LIBRTE_PMD_XENVIRT, it fails. To
reproduce this problem, try this:

     vi debian/rules

And bellow the lines (yes, it is duplicated, we know, add twice too):

                -e 's,(CONFIG_RTE_LIBNAME=).*,\1"dpdk",' \

Append the following line:

                -e 's,(LIBRTE_PMD_XENVIRT=).*,\1y,' \

Then, it fails to build, look:

    fakeroot make -f debian/rules build

# Line 486 of:

    http://pastebin.com/jjn8Fja1

-----

2.1- Download and build DPDK 2.2.0-rc1

 * Steps to reproduce it using most recent DPDK tarball *

So, lets say that you guys wants to test it using upstream DPDK tarball...

If you followed above instructions (step 2), you have everything you
need to build any DPDK version on Ubuntu (thanks to "apt-get build-dep
dpdk" step and sources 'URI' on your sources.list).

Steps:

mkdir -p ~/dpdk/2.2.0-rc1 ; cd ~/dpdk/2.2.0-rc1

wget http://dpdk.org/browse/dpdk/snapshot/dpdk-2.2.0-rc1.tar.gz

tar xf dpdk-2.2.0-rc1.tar.gz

cd dpdk-2.2.0-rc1

        make T=x86_64-native-linuxapp-gcc config

        sed -ri -e 's,(RTE_MACHINE=).*,\1"default",' \
                -e 's,(RTE_APP_TEST=).*,\1n,' \
                -e 's,(RTE_BUILD_SHARED_LIB=).*,\1y,' \
                -e 's,(RTE_EAL_IGB_UIO=).*,\1n,' \
                -e 's,(CONFIG_RTE_LIBRTE_KNI=).*,\1n,' \
                -e 's,(CONFIG_RTE_BUILD_COMBINE_LIBS=).*,\1y,' \
                -e 's,(CONFIG_RTE_LIBNAME=).*,\1"dpdk",' \
                -e 's,(LIBRTE_VHOST=).*,\1y,' \
                -e 's,(LIBRTE_PMD_XENVIRT=).*,\1y,' \
                -e 's,(LIBRTE_XEN_DOM0=).*,\1y,' \
                build/.config

Then, it also fails to build:

         make

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?

Thanks in advance!

Best,
Thiago

             reply	other threads:[~2015-11-23 18:38 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-11-23 18:37 Martinx - ジェームズ [this message]
2015-11-24 13:57 ` Panu Matilainen
2015-11-24 14:46   ` Sergio Gonzalez Monroy
2015-11-24 15:22     ` Panu Matilainen
2015-11-24 15:30       ` Martinx - ジェームズ
2015-11-24 15:53         ` Panu Matilainen
2015-11-25  0:26           ` Martinx - ジェームズ
2015-11-25  8:44             ` Panu Matilainen
2015-12-04 19:11 ` Thomas Monjalon

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAJSM8J2D_trMfzeSJAcuYD4sf-6GqdfhF-FdMOYV=0NFSGa0kQ@mail.gmail.com' \
    --to=thiagocmartinsc@gmail.com \
    --cc=dev@dpdk.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).