From: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com> To: dev@dpdk.org Cc: ci@dpdk.org, Stephen Hemminger <stephen@networkplumber.org>, David Marchand <david.marchand@redhat.com>, Thomas Monjalon <thomas@monjalon.net>, Maxime Coquelin <maxime.coquelin@redhat.com>, Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>, Aaron Conole <aconole@redhat.com>, Michael Santana <maicolgabriel@hotmail.com>, Bruce Richardson <bruce.richardson@intel.com> Subject: [dpdk-ci] [PATCH v8 2/3] build: use Python pmdinfogen Date: Tue, 20 Oct 2020 20:44:02 +0300 Message-ID: <20201020174404.28653-3-dmitry.kozliuk@gmail.com> (raw) In-Reply-To: <20201020174404.28653-1-dmitry.kozliuk@gmail.com> Use the same interpreter to run pmdinfogen as for other build scripts. Adjust wrapper script accordingly and also don't suppress stderr from ar and pmdinfogen. Add configure-time check for elftools Python module for Unix hosts. Add python3-pyelftools to CI configuration. The package is available on all major distributions. FreeBSD has no system requirements section in its GSG. Currently neither Windows uses pmdinfogen, nor is COFF (PE) supported. Signed-off-by: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com> --- .travis.yml | 2 +- buildtools/gen-pmdinfo-cfile.sh | 6 +++--- buildtools/meson.build | 15 +++++++++++++++ doc/guides/linux_gsg/sys_reqs.rst | 6 ++++++ drivers/meson.build | 2 +- meson.build | 1 - 6 files changed, 26 insertions(+), 6 deletions(-) diff --git a/.travis.yml b/.travis.yml index 5e12db23b..6744f6fc1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,7 +11,7 @@ addons: apt: update: true packages: &required_packages - - [libnuma-dev, python3-setuptools, python3-wheel, python3-pip, ninja-build] + - [libnuma-dev, python3-setuptools, python3-wheel, python3-pip, python3-pyelftools, ninja-build] - [libbsd-dev, libpcap-dev, libibverbs-dev, libcrypto++-dev, libfdt-dev, libjansson-dev] _aarch64_packages: &aarch64_packages diff --git a/buildtools/gen-pmdinfo-cfile.sh b/buildtools/gen-pmdinfo-cfile.sh index 43059cf36..109ee461e 100755 --- a/buildtools/gen-pmdinfo-cfile.sh +++ b/buildtools/gen-pmdinfo-cfile.sh @@ -4,11 +4,11 @@ arfile=$1 output=$2 -pmdinfogen=$3 +shift 2 +pmdinfogen=$* # The generated file must not be empty if compiled in pedantic mode echo 'static __attribute__((unused)) const char *generator = "'$0'";' > $output for ofile in `ar t $arfile` ; do - ar p $arfile $ofile | $pmdinfogen - - >> $output 2> /dev/null + ar p $arfile $ofile | $pmdinfogen - - >> $output done -exit 0 diff --git a/buildtools/meson.build b/buildtools/meson.build index 04808dabc..dd4c0f640 100644 --- a/buildtools/meson.build +++ b/buildtools/meson.build @@ -17,3 +17,18 @@ else endif map_to_win_cmd = py3 + files('map_to_win.py') sphinx_wrapper = py3 + files('call-sphinx-build.py') +pmdinfogen = py3 + files('pmdinfogen.py') + +# TODO: starting from Meson 0.51.0 use +# python3 = import('python').find_installation('python', +# modules : python3_required_modules) +python3_required_modules = [] +if host_machine.system() != 'windows' + python3_required_modules = ['elftools'] +endif +foreach module : python3_required_modules + script = 'import importlib.util; import sys; exit(importlib.util.find_spec("@0@") is None)' + if run_command(py3, '-c', script.format(module)).returncode() != 0 + error('missing python module: @0@'.format(module)) + endif +endforeach diff --git a/doc/guides/linux_gsg/sys_reqs.rst b/doc/guides/linux_gsg/sys_reqs.rst index 6ecdc04aa..89c9f2570 100644 --- a/doc/guides/linux_gsg/sys_reqs.rst +++ b/doc/guides/linux_gsg/sys_reqs.rst @@ -52,6 +52,12 @@ Compilation of the DPDK * If the packaged version is below the minimum version, the latest versions can be installed from Python's "pip" repository: ``pip3 install meson ninja`` +* ``pyelftools`` (version 0.22+) + + * For RHEL/Fedora systems it can be installed using ``dnf install python-pyelftools`` + + * For Ubuntu/Debian it can be installed using ``apt install python3-pyelftools`` + * Library for handling NUMA (Non Uniform Memory Access). * ``numactl-devel`` in RHEL/Fedora; diff --git a/drivers/meson.build b/drivers/meson.build index a5a6fed06..94403f7ac 100644 --- a/drivers/meson.build +++ b/drivers/meson.build @@ -152,7 +152,7 @@ foreach subpath:subdirs command: [pmdinfo, tmp_lib.full_path(), '@OUTPUT@', pmdinfogen], output: out_filename, - depends: [pmdinfogen, tmp_lib]) + depends: [tmp_lib]) endif # now build the static driver diff --git a/meson.build b/meson.build index 61d9a4f5f..a6e8c09c2 100644 --- a/meson.build +++ b/meson.build @@ -45,7 +45,6 @@ subdir('buildtools') subdir('config') # build libs and drivers -subdir('buildtools/pmdinfogen') subdir('lib') subdir('drivers') -- 2.28.0
next prev parent reply other threads:[~2020-10-20 17:44 UTC|newest] Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top [not found] <20200708212335.25338-1-dmitry.kozliuk@gmail.com> [not found] ` <20200927214732.12783-1-dmitry.kozliuk@gmail.com> 2020-09-28 9:35 ` [dpdk-ci] [dpdk-dev] [PATCH v5 0/3] pmdinfogen: rewrite in Python David Marchand 2020-10-04 1:59 ` [dpdk-ci] [PATCH v6 " Dmitry Kozlyuk 2020-10-04 1:59 ` [dpdk-ci] [PATCH v6 1/3] pmdinfogen: add Python implementation Dmitry Kozlyuk 2020-10-04 1:59 ` [dpdk-ci] [PATCH v6 2/3] build: use Python pmdinfogen Dmitry Kozlyuk 2020-10-04 1:59 ` [dpdk-ci] [PATCH v6 3/3] pmdinfogen: remove C implementation Dmitry Kozlyuk 2020-10-14 14:37 ` [dpdk-ci] [dpdk-dev] [PATCH v6 0/3] pmdinfogen: rewrite in Python Maxime Coquelin 2020-10-14 15:40 ` Dmitry Kozlyuk 2020-10-14 18:31 ` [dpdk-ci] [PATCH v7 " Dmitry Kozlyuk 2020-10-14 18:31 ` [dpdk-ci] [PATCH v7 1/3] pmdinfogen: add Python implementation Dmitry Kozlyuk 2020-10-14 18:31 ` [dpdk-ci] [PATCH v7 2/3] build: use Python pmdinfogen Dmitry Kozlyuk 2020-10-14 18:31 ` [dpdk-ci] [PATCH v7 3/3] pmdinfogen: remove C implementation Dmitry Kozlyuk 2020-10-20 16:02 ` [dpdk-ci] [PATCH v7 0/3] pmdinfogen: rewrite in Python David Marchand 2020-10-20 17:45 ` Dmitry Kozlyuk 2020-10-20 22:09 ` Dmitry Kozlyuk 2020-10-20 17:44 ` [dpdk-ci] [PATCH v8 " Dmitry Kozlyuk 2020-10-20 17:44 ` [dpdk-ci] [PATCH v8 1/3] pmdinfogen: add Python implementation Dmitry Kozlyuk 2020-10-20 17:44 ` Dmitry Kozlyuk [this message] 2020-10-21 9:00 ` [dpdk-ci] [PATCH v8 2/3] build: use Python pmdinfogen Bruce Richardson 2021-01-20 0:05 ` [dpdk-ci] [dpdk-dev] " Thomas Monjalon 2021-01-20 7:23 ` Dmitry Kozlyuk 2020-10-20 17:44 ` [dpdk-ci] [PATCH v8 3/3] pmdinfogen: remove C implementation Dmitry Kozlyuk
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=20201020174404.28653-3-dmitry.kozliuk@gmail.com \ --to=dmitry.kozliuk@gmail.com \ --cc=aconole@redhat.com \ --cc=bruce.richardson@intel.com \ --cc=ci@dpdk.org \ --cc=david.marchand@redhat.com \ --cc=dev@dpdk.org \ --cc=maicolgabriel@hotmail.com \ --cc=maxime.coquelin@redhat.com \ --cc=stephen@networkplumber.org \ --cc=thomas@monjalon.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
DPDK CI discussions This inbox may be cloned and mirrored by anyone: git clone --mirror http://inbox.dpdk.org/ci/0 ci/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 ci ci/ http://inbox.dpdk.org/ci \ ci@dpdk.org public-inbox-index ci Example config snippet for mirrors. Newsgroup available over NNTP: nntp://inbox.dpdk.org/inbox.dpdk.ci AGPL code for this site: git clone https://public-inbox.org/public-inbox.git