DPDK patches and discussions
 help / color / mirror / Atom feed
From: Thomas Monjalon <thomas@monjalon.net>
To: Ferruh Yigit <ferruh.yigit@intel.com>
Cc: Bruce Richardson <bruce.richardson@intel.com>,
	dev@dpdk.org, david.marchand@redhat.com
Subject: Re: [dpdk-dev] [PATCH v2] devtools: fix 32-bits build
Date: Mon, 09 Nov 2020 18:44:54 +0100	[thread overview]
Message-ID: <2240726.PXfc15pV6C@thomas> (raw)
In-Reply-To: <3526179.Ta2yc0qjKd@thomas>

09/11/2020 18:20, Thomas Monjalon:
> 09/11/2020 18:15, Ferruh Yigit:
> > On 11/9/2020 5:01 PM, Thomas Monjalon wrote:
> > > 09/11/2020 17:48, Ferruh Yigit:
> > >> I can send a new version to reset 'CUSTOM_PKG_CONFIG_PATH',
> > >> what is the intention/plan with the config file?
> > > 
> > > You should use a config file to set PKG_CONFIG_PATH, PATH,
> > > DPDK_MESON_OPTIONS, etc accordingly to build with all
> > > your non-installed dependencies.
> > > CUSTOM_PKG_CONFIG_PATH is a way to avoid using the config file
> > > in a single case.
> > > 
> > 
> > Either use 'PKG_CONFIG_PATH' environment variable or a config file, both has the 
> > same problem that we need two different pkg config path, one for 64bit and one 
> > for 32bit.
> 
> No. In the config file, you can set the right value by testing $DPDK_TARGET.
> Note: the config file is a shell script.
> 
> > v2 of this patch provides a way to use correct one when needed.
> 
> This is not a global fix.
> 
> > Moving the default values from system environment or script hardcoded values to 
> > a config file is something else and can be done later, what do you think?
> 
> The root cause of your issue is using variables from the environment.
> The global fix is then to reset them all,
> while keeping a default value for PATH which is not only for compilation config.

This is what we have currently:

    export PATH=$default_path
    export PKG_CONFIG_PATH=$default_pkgpath
    export CPPFLAGS=$default_cppflags
    export CFLAGS=$default_cflags 
    export LDFLAGS=$default_ldflags
    unset DPDK_MESON_OPTIONS

The PATH needs to be restored at each run to avoid using a wrong toolchain.
The default value is best taken from the start environment,
at the condition no conflicting toolchain is already set.

PKG_CONFIG_PATH is specific to each target.
I believe it can be reset at each run and configured
only from the config file.
A default PKG_CONFIG_PATH for all targets does not make any sense.

CPPFLAGS, CFLAGS and LDFLAGS could be used to customize some options
applying to all targets in some build tests without touching the config file.

DPDK_MESON_OPTIONS could be the same as CFLAGS: take a global default from env
and restore the value at each run, so each target can have additional options
from the config file.

Reminder about what can be a config file loaded by devtools/load-devel-config:
Note: the complex regexps below are for compatibility with the Make build tests.

if echo $DPDK_TARGET | grep -q '^i[3-6]86' ; then
	export PKG_CONFIG_PATH=${mlxdep}32/lib/pkgconfig
elif echo $DPDK_TARGET | grep -q '^x86_64-w' ; then # MinGW
	:
elif echo $DPDK_TARGET | grep -q '^x86_64' ; then
	export DPDK_MESON_OPTIONS="enable_kmods=true"
	export CFLAGS="-I$aesnidep -I$root/libsso/libsso-snow3g-0.3.1/include -I$root/libsso/libsso-kasumi-0.3.1/include -I$root/libsso/libsso-zuc-0.1.1-182/include"
	export LDFLAGS="-L$aesnidep -L$root/libsso/libsso-snow3g-0.3.1/build -L$root/libsso/libsso-kasumi-0.3.1/build -L$root/libsso/libsso-zuc-0.1.1-182/build"
	export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:$mlxdep/lib/pkgconfig:$nfbdep/lib64/pkgconfig:$szedep/lib64/pkgconfig:$isaldep/..
elif echo $DPDK_TARGET | grep -q '^arm-' ; then
	export PATH=$PATH:$root/../pkg/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin
elif echo $DPDK_TARGET | grep -q '^a.*64-' ; then
	export DPDK_MESON_OPTIONS="lib_musdk_dir=$LIBMUSDK_PATH"
elif echo $DPDK_TARGET | grep -q '^p.*pc.*64' ; then
	export PATH=$PATH:$root/../pkg/powerpc64le-power8--glibc--stable-2018.11-1/bin
fi

export DPDK_GETMAINTAINER_PATH=$root/linux/scripts/get_maintainer.pl
export DPDK_CHECKPATCH_PATH=$root/linux/scripts/checkpatch.pl
export DPDK_CHECKPATCH_LINE_LENGTH=100
export DPDK_CHECKPATCH_CODESPELL=$root/codespell/dictionary.txt

export DPDK_BUILD_TEST_DIR=$root/dpdk-build
export DPDK_ABI_REF_DIR=$DPDK_BUILD_TEST_DIR/abiref
#export DPDK_ABI_REF_VERSION=v20.11



  reply	other threads:[~2020-11-09 17:45 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-11-09 13:00 [dpdk-dev] [PATCH] " Ferruh Yigit
2020-11-09 13:19 ` Thomas Monjalon
2020-11-09 13:24   ` Ferruh Yigit
2020-11-09 13:35     ` Bruce Richardson
2020-11-09 13:51       ` Thomas Monjalon
2020-11-09 14:55 ` [dpdk-dev] [PATCH v2] " Ferruh Yigit
2020-11-09 15:28   ` Thomas Monjalon
2020-11-09 15:44     ` Bruce Richardson
2020-11-09 16:14       ` Thomas Monjalon
2020-11-09 16:19         ` Bruce Richardson
2020-11-09 16:48           ` Ferruh Yigit
2020-11-09 17:01             ` Thomas Monjalon
2020-11-09 17:15               ` Ferruh Yigit
2020-11-09 17:20                 ` Thomas Monjalon
2020-11-09 17:44                   ` Thomas Monjalon [this message]
2020-11-09 21:02                     ` Thomas Monjalon
2020-11-11 12:34                       ` Ferruh Yigit

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=2240726.PXfc15pV6C@thomas \
    --to=thomas@monjalon.net \
    --cc=bruce.richardson@intel.com \
    --cc=david.marchand@redhat.com \
    --cc=dev@dpdk.org \
    --cc=ferruh.yigit@intel.com \
    /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).