27/03/2020 15:24, Tom Barbette:
> 
> Le 27/03/2020 à 14:55, Thomas Monjalon a écrit :
> > 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.
> 
> I don't want DPDK to be installed system-wide. I have a lot of versions, 
> modified for different projects from different people, that has 
> different compatibility level. And even, different versions compiled for 
> different CPU architectures among our cluster.
> 
> I prefer to only rely $RTE_SDK to know where "everything is". I could 
> tell to my users to add something in their LD_LIBRARY_PATH, but I would 
> prefer to stick to only the standard RTE_SDK and RTE_TARGET.

You can install inside RTE_SDK.
This is what the command I gave you to test do.
Installation is just organizing files in a directory so it can be consumed.
Did you read the commands I sent? It is installing in $(pwd)/myinstall.
After install, RTE_SDK becomes $(pwd)/myinstall/share/dpdk.

> >> 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.
> 
> You know best... I still think make install is unnecessary in most cases 
> so I would not change the doc either...

I say "make install" is a must and there is no reason no to do it.
Please check the steps I wrote for you.



Reply via email to