From: Thomas Monjalon <thomas@monjalon.net>
To: Bruce Richardson <bruce.richardson@intel.com>
Cc: dev@dpdk.org, john.mcnamara@intel.com
Subject: Re: [dpdk-dev] [PATCH 1/8] doc: update Linux GSG system requirements section
Date: Thu, 28 Nov 2019 12:51:27 +0100 [thread overview]
Message-ID: <1739137.btLB4cIjLT@xps> (raw)
In-Reply-To: <20191122160359.11625-2-bruce.richardson@intel.com>
22/11/2019 17:03, Bruce Richardson:
> Update the system requirements section of the doc to cover builds with
> meson and ninja. This involves updating the package dependencies to include
> meson, ninja and python 3.5, and also updating the optional dependencies
> section to explain that the components are enabled/disabled automatically
> by meson.
>
> As part of this update, the relevant sections were simplified to keep the
> document shorter. For mandatory requirements, we can refer to the various
> distro's development tools package groups rather than requiring gcc, core
> tools etc. individually. The optional package list was very incomplete, and
> if complete would duplicate information in the individual driver's guides.
> Therefore we can simplify it by listing only the library optional
> requirements and referring users to the driver docs to find details on
> their dependencies.
I agree with the intent.
[...]
> -* GNU ``make``.
> +* General development tools including ``make``, and a supported C compiler such as ``gcc`` or ``clang``.
Why referring to make and not meson?
> -* coreutils: ``cmp``, ``sed``, ``grep``, ``arch``, etc.
> + * For Red Hat/Fedora systems these can be installed using ``dnf groupinstall "Development Tools"``
> + * For Ubuntu/Debian systems these can be installed using ``apt install build-essential``
OK, this is very basic :)
> -* gcc: versions 4.9 or later is recommended for all platforms.
> - On some distributions, some specific compiler flags and linker flags are enabled by
> - default and affect performance (``-fstack-protector``, for example). Please refer to the documentation
> - of your distribution and to ``gcc -dumpspecs``.
I think we need to keep some compiler requirement somewhere.
What do you suggest?
> -* libc headers, often packaged as ``gcc-multilib`` (``glibc-devel.i686`` / ``libc6-dev-i386``;
> - ``glibc-devel.x86_64`` / ``libc6-dev`` for 64-bit compilation on Intel architecture;
> - ``glibc-devel.ppc64`` for 64 bit IBM Power architecture;)
[...]
> -* Additional packages required for 32-bit compilation on 64-bit systems are:
> - * glibc.i686, libgcc.i686, libstdc++.i686 and glibc-devel.i686 for Intel i686/x86_64;
> - * glibc.ppc64, libgcc.ppc64, libstdc++.ppc64 and glibc-devel.ppc64 for IBM ppc_64;
OK to drop libc requirements.
> - .. note::
> -
> - x86_x32 ABI is currently supported with distribution packages only on Ubuntu
> - higher than 13.10 or recent Debian distribution. The only supported compiler is gcc 4.9+.
No note at all about x32?
Do we know how it is supported?
> +* Python, recommended version 3.5+.
> + * Python v3.5+ is needed to build DPDK using meson and ninja
We cannot use meson at all with older Python?
> -* Python, version 2.7+ or 3.2+, to use various helper scripts included in the DPDK package.
> + * Python 2.7+ or 3.2+, to use various helper scripts included in the DPDK package.
I didn't know about 3.2 for scripts. Any special reason?
> +* Meson (v0.47.1+) and ninja
>
> + * Recommended to use the latest versions from Python's "pip" repository:
> + ``pip3 install meson ninja``
Why recommending pip? Is 0.47.1 enough?
> - .. note::
> -
> - On systems with NUMA support, `libnuma-dev` (aka `numactl-devel`)
> - is a recommended dependency when `--legacy-mem` switch is used,
> - and a *required* dependency if default memory mode is used.
> - While DPDK will compile and run without `libnuma`
> - even on NUMA-enabled systems,
> - both usability and performance will be degraded.
I think libnuma is worth to be mentioned here as it is an EAL dependency.
> +* Linux kernel headers or sources required to build kernel modules.
This one is obvious, OK.
> -* libpcap headers and libraries (libpcap-devel) to compile and use the libpcap-based poll-mode driver.
> - This driver is disabled by default and can be enabled by setting ``CONFIG_RTE_LIBRTE_PMD_PCAP=y`` in the build time config file.
OK to drop PMD-specific requirement.
> +**Additional Libraries**
> +
> +A number of DPDK components, such as libraries and poll-mode drivers (PMDs) have additional dependencies.
> +For DPDK builds using meson, the presence or absence of these dependencies will be
> +automatically detected enabling or disabling the relevant components appropriately.
> +
> +For builds using make, these components are disabled in the default configuration and
> +need to be enabled manually my changing the relevant setting to "y" in the build configuration file
typo: s/my/by/
> +i.e. the ``.config`` file in the build folder.
> +
> +In each case, the relevant library development package (``-devel`` or ``-dev``) is needed to build the DPDK components.
> +
> +For libraries the additional dependencies include:
> +
> +* libarchive: for some unit tests using tar to get their resources.
> +
> +* jansson: to compile and use the telemetry library.
> +
> +* libelf: to compile and use the bpf library.
I think these optional dependencies could go away, thanks to the text
you added above and below.
> +For poll-mode drivers, the additional dependencies for each driver can be
> +found in that driver's documentation in the relevant DPDK guide document,
> +e.g. Network Interface Controller Drivers Guide
Please use a link here.
You could also link the prog guide if talking about libraries.
next prev parent reply other threads:[~2019-11-28 11:51 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-11-22 16:03 [dpdk-dev] [PATCH 0/8] GSG Documentation updates Bruce Richardson
2019-11-22 16:03 ` [dpdk-dev] [PATCH 1/8] doc: update Linux GSG system requirements section Bruce Richardson
2019-11-28 11:51 ` Thomas Monjalon [this message]
2019-11-28 14:11 ` Bruce Richardson
2019-11-28 14:22 ` Thomas Monjalon
2019-11-28 14:30 ` Bruce Richardson
2019-11-28 14:34 ` Thomas Monjalon
2019-11-28 14:59 ` Bruce Richardson
2019-11-22 16:03 ` [dpdk-dev] [PATCH 2/8] doc: add building with meson to linux GSG Bruce Richardson
2019-11-25 13:19 ` Burakov, Anatoly
2019-11-25 13:27 ` Bruce Richardson
2019-11-25 13:54 ` Burakov, Anatoly
2019-11-25 14:40 ` Richardson, Bruce
2019-11-25 13:22 ` Burakov, Anatoly
2019-11-25 14:38 ` Richardson, Bruce
2019-11-22 16:03 ` [dpdk-dev] [PATCH 3/8] doc: reorder meson and make build instructions for arm Bruce Richardson
2019-11-24 11:25 ` Gavin Hu (Arm Technology China)
2019-11-22 16:03 ` [dpdk-dev] [PATCH 4/8] doc: remove reference to old versions of FreeBSD Bruce Richardson
2019-11-22 16:03 ` [dpdk-dev] [PATCH 5/8] doc: update examples output in FreeBSD GSG Bruce Richardson
2019-11-22 16:03 ` [dpdk-dev] [PATCH 6/8] doc: add meson install instructions for FreeBSD Bruce Richardson
2019-11-22 16:03 ` [dpdk-dev] [PATCH 7/8] doc: update documentation on build and running FreeBSD apps Bruce Richardson
2019-11-22 16:03 ` [dpdk-dev] [PATCH 8/8] doc: drop EAL command-line reference from FreeBSD GSG Bruce Richardson
2019-11-25 14:55 ` [dpdk-dev] [PATCH v2 0/8] GSG Documentation updates Bruce Richardson
2019-11-25 14:55 ` [dpdk-dev] [PATCH v2 1/8] doc: update Linux GSG system requirements section Bruce Richardson
2019-11-25 14:55 ` [dpdk-dev] [PATCH v2 2/8] doc: add building with meson to linux GSG Bruce Richardson
2019-11-25 15:11 ` Burakov, Anatoly
2019-11-25 14:55 ` [dpdk-dev] [PATCH v2 3/8] doc: reorder meson and make build instructions for arm Bruce Richardson
2019-11-25 14:55 ` [dpdk-dev] [PATCH v2 4/8] doc: remove reference to old versions of FreeBSD Bruce Richardson
2019-11-27 12:10 ` Burakov, Anatoly
2019-11-25 14:55 ` [dpdk-dev] [PATCH v2 5/8] doc: update examples output in FreeBSD GSG Bruce Richardson
2019-11-27 12:11 ` Burakov, Anatoly
2019-11-27 12:23 ` Bruce Richardson
2019-11-25 14:55 ` [dpdk-dev] [PATCH v2 6/8] doc: add meson install instructions for FreeBSD Bruce Richardson
2019-11-27 12:23 ` Burakov, Anatoly
2019-11-25 14:55 ` [dpdk-dev] [PATCH v2 7/8] doc: update documentation on build and running FreeBSD apps Bruce Richardson
2019-11-27 12:29 ` Burakov, Anatoly
2019-11-25 14:55 ` [dpdk-dev] [PATCH v2 8/8] doc: drop EAL command-line reference from FreeBSD GSG Bruce Richardson
2019-11-27 12:31 ` Burakov, Anatoly
2019-11-27 13:46 ` Bruce Richardson
2019-11-28 16:33 ` [dpdk-dev] [PATCH v3 0/5] GSG Documentation updates Bruce Richardson
2019-11-28 16:33 ` [dpdk-dev] [PATCH v3 1/5] doc: update Linux GSG system requirements section Bruce Richardson
2019-11-28 16:33 ` [dpdk-dev] [PATCH v3 2/5] doc: add building with meson to linux GSG Bruce Richardson
2019-11-28 16:33 ` [dpdk-dev] [PATCH v3 3/5] doc: reorder meson and make build instructions for arm Bruce Richardson
2019-11-28 16:33 ` [dpdk-dev] [PATCH v3 4/5] doc: remove reference to old versions of FreeBSD Bruce Richardson
2019-11-28 16:33 ` [dpdk-dev] [PATCH v3 5/5] doc: update examples output in FreeBSD GSG Bruce Richardson
2019-11-28 18:56 ` [dpdk-dev] [PATCH v3 0/5] GSG Documentation updates Thomas Monjalon
2020-01-03 15:37 ` Bruce Richardson
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=1739137.btLB4cIjLT@xps \
--to=thomas@monjalon.net \
--cc=bruce.richardson@intel.com \
--cc=dev@dpdk.org \
--cc=john.mcnamara@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 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.