All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Monjalon <thomas@monjalon.net>
To: Tom Barbette <barbette@kth.se>
Cc: dev@dpdk.org, Matthew Hall <mhall@mhcomputing.net>
Subject: Re: [dpdk-dev] Impossible to build external application if user build DPDK with "make config"
Date: Fri, 27 Mar 2020 14:55:14 +0100	[thread overview]
Message-ID: <2838010.xgJ6IN8ObU@xps> (raw)
In-Reply-To: <8876096d-45e3-7ab4-d7ea-0364eec0c0e4@kth.se>

27/03/2020 13:35, Tom Barbette:
> Le 27/03/2020 à 11:35, Thomas Monjalon a écrit :
> > 27/03/2020 10:14, Tom Barbette:
> >> CC'ing original participants as I don't see a way out of this.
> >>
> >> Le 12/03/2020 à 13:04, Tom Barbette a écrit :
> >>> Hi all,
> >>>
> >>> If the user follows the quick guide
> >>> (http://core.dpdk.org/doc/quick-start/) DPDK will be compiled in the
> >>> "build" folder.
> >>>
> >>> However, external applications will always fail to build because
> >>> RTE_SDK_BIN is strictly defined as $RTE_SDK/$RTE_TARGET, and
> >>> mk/internal/rte.extvars.mk needs to find .config in $RTE_SDK_BIN.
> >>>
> >>> Therefore please apply the patch at:
> >>> http://patchwork.dpdk.org/patch/9991/ that allows external apps to
> >>> override $RTE_SDK_BIN.
> >>>
> >>> Or (less preferable) modify the quick start guide to use something more
> >>> standard that allows to build with external apps (eg use the menu or
> >>> propose "make config T=x86_64-native-linuxapp-gcc
> >>> O=x86_64-native-linuxapp-gcc" instead). It's much easier for external
> >>> apps maintainer to refer to the DPDK tutorial for DPDK installation.
> > 
> > I don't understand the issue.
> > First of all, the external application should link an installed DPDK.
> > Then you should be able to set $RTE_SDK and $RTE_TARGET to fit
> > the installation directories.
> > 
> > Just checked doc/guides/linux_gsg/build_dpdk.rst
> > I see the whole build process with make is not correctly documented.
> > It should be:
> > 
> > 1/
> > 	make defconfig
> > 	or
> > 	make config T=x86_64-native-linux-gcc O=mybuild
> > 
> > 2/	make -j4 O=mybuild
> > 
> > 3/	make install O=mybuild DESTDIR=myinstall prefix=
> > 
> > 4/	RTE_SDK=$(pwd)/myinstall/share/dpdk RTE_TARGET=x86_64-native-linux-gcc make -C myapp
> > 
> > Please can you confirm it works?
> > 
> > 
> 
> I don't think it is usual to link against an "installed" DPDK, actually. 
> I've only seen people explaining "build DPDK with 1 & 2", which is 
> probably why the quick start also use only that and the usertools menu 
> also only builds in the usual folder SDK/TARGET.
> 
> Then also using the install method you propose, I'm missing a few 
> libraries, eg -lethdev which I would have to find using 
> -L$RTE_SDK/../../lib which does not sound great. But adding a link to 
> ../../lib under share fixes the problem, and the install script could do it.

Why are you trying to link a library in RTE_SDK?
You should set the installed library directory with LD_LIBRARY_PATH.

> Making RTE_SDK_BIN a ?= instead of a := would allow us to fix the 
> non-installed, but built-in-a-funny-folder installation path easily.
> 
> So I would recommend doing the lib link, but still the change proposed 
> because I'm really not sure people "install" DPDK...

The correct method is installing the library and using standard environment variables.
The only change I am OK to do is improving the documentation.



  reply	other threads:[~2020-03-27 13:55 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-12 12:04 [dpdk-dev] Impossible to build external application if user build DPDK with "make config" Tom Barbette
2020-03-27  9:14 ` Tom Barbette
2020-03-27 10:35   ` Thomas Monjalon
2020-03-27 12:35     ` Tom Barbette
2020-03-27 13:55       ` Thomas Monjalon [this message]
2020-03-27 14:24         ` Tom Barbette
2020-03-27 15:06           ` Thomas Monjalon
2020-03-27 15:53             ` Tom Barbette
2020-03-27 22:40               ` 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=2838010.xgJ6IN8ObU@xps \
    --to=thomas@monjalon.net \
    --cc=barbette@kth.se \
    --cc=dev@dpdk.org \
    --cc=mhall@mhcomputing.net \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.