DPDK patches and discussions
 help / color / Atom feed
* [dpdk-dev] [PATCH 1/2] config: set the pkgconfig executable
@ 2019-11-26  8:14 Ali Alnubani
  2019-11-26  8:14 ` [dpdk-dev] [PATCH 2/2] doc: add pkg-config-aarch64-linux-gnu as a prerequisite Ali Alnubani
                   ` (2 more replies)
  0 siblings, 3 replies; 12+ messages in thread
From: Ali Alnubani @ 2019-11-26  8:14 UTC (permalink / raw)
  To: dev

Meson fails to find a pkg-config executable if pkgconfig
isn't set for aarch64. The environment variable `PKG_CONFIG_PATH`
is useless in this case, and meson fails to locate dependencies
that are built in non-standard paths.

Signed-off-by: Ali Alnubani <alialnu@mellanox.com>
---
 config/arm/arm64_armada_linux_gcc    | 1 +
 config/arm/arm64_armv8_linux_gcc     | 1 +
 config/arm/arm64_bluefield_linux_gcc | 1 +
 config/arm/arm64_dpaa_linux_gcc      | 1 +
 config/arm/arm64_emag_linux_gcc      | 1 +
 config/arm/arm64_n1sdp_linux_gcc     | 1 +
 config/arm/arm64_octeontx2_linux_gcc | 1 +
 config/arm/arm64_thunderx2_linux_gcc | 1 +
 config/arm/arm64_thunderx_linux_gcc  | 1 +
 9 files changed, 9 insertions(+)

diff --git a/config/arm/arm64_armada_linux_gcc b/config/arm/arm64_armada_linux_gcc
index 6e6d56f6f..fa40c0398 100644
--- a/config/arm/arm64_armada_linux_gcc
+++ b/config/arm/arm64_armada_linux_gcc
@@ -4,6 +4,7 @@ cpp = 'aarch64-linux-gnu-cpp'
 ar = 'aarch64-linux-gnu-ar'
 as = 'aarch64-linux-gnu-as'
 strip = 'aarch64-linux-gnu-strip'
+pkgconfig = 'aarch64-linux-gnu-pkg-config'
 pcap-config = ''
 
 [host_machine]
diff --git a/config/arm/arm64_armv8_linux_gcc b/config/arm/arm64_armv8_linux_gcc
index 67dd9a97d..88f0ff9da 100644
--- a/config/arm/arm64_armv8_linux_gcc
+++ b/config/arm/arm64_armv8_linux_gcc
@@ -3,6 +3,7 @@ c = 'aarch64-linux-gnu-gcc'
 cpp = 'aarch64-linux-gnu-cpp'
 ar = 'aarch64-linux-gnu-gcc-ar'
 strip = 'aarch64-linux-gnu-strip'
+pkgconfig = 'aarch64-linux-gnu-pkg-config'
 pcap-config = ''
 
 [host_machine]
diff --git a/config/arm/arm64_bluefield_linux_gcc b/config/arm/arm64_bluefield_linux_gcc
index 304c4073d..86797d23c 100644
--- a/config/arm/arm64_bluefield_linux_gcc
+++ b/config/arm/arm64_bluefield_linux_gcc
@@ -3,6 +3,7 @@ c = 'aarch64-linux-gnu-gcc'
 cpp = 'aarch64-linux-gnu-cpp'
 ar = 'aarch64-linux-gnu-gcc-ar'
 strip = 'aarch64-linux-gnu-strip'
+pkgconfig = 'aarch64-linux-gnu-pkg-config'
 pcap-config = ''
 
 [host_machine]
diff --git a/config/arm/arm64_dpaa_linux_gcc b/config/arm/arm64_dpaa_linux_gcc
index f4b85a84b..1a4682154 100644
--- a/config/arm/arm64_dpaa_linux_gcc
+++ b/config/arm/arm64_dpaa_linux_gcc
@@ -4,6 +4,7 @@ cpp = 'aarch64-linux-gnu-cpp'
 ar = 'aarch64-linux-gnu-ar'
 as = 'aarch64-linux-gnu-as'
 strip = 'aarch64-linux-gnu-strip'
+pkgconfig = 'aarch64-linux-gnu-pkg-config'
 pcap-config = ''
 
 [host_machine]
diff --git a/config/arm/arm64_emag_linux_gcc b/config/arm/arm64_emag_linux_gcc
index bcb147a5a..8edcd3e97 100644
--- a/config/arm/arm64_emag_linux_gcc
+++ b/config/arm/arm64_emag_linux_gcc
@@ -3,6 +3,7 @@ c = 'aarch64-linux-gnu-gcc'
 cpp = 'aarch64-linux-gnu-cpp'
 ar = 'aarch64-linux-gnu-gcc-ar'
 strip = 'aarch64-linux-gnu-strip'
+pkgconfig = 'aarch64-linux-gnu-pkg-config'
 pcap-config = ''
 
 [host_machine]
diff --git a/config/arm/arm64_n1sdp_linux_gcc b/config/arm/arm64_n1sdp_linux_gcc
index 83dad3df2..022e06303 100644
--- a/config/arm/arm64_n1sdp_linux_gcc
+++ b/config/arm/arm64_n1sdp_linux_gcc
@@ -3,6 +3,7 @@ c = 'aarch64-linux-gnu-gcc'
 cpp = 'aarch64-linux-gnu-cpp'
 ar = 'aarch64-linux-gnu-gcc-ar'
 strip = 'aarch64-linux-gnu-strip'
+pkgconfig = 'aarch64-linux-gnu-pkg-config'
 pcap-config = ''
 
 [host_machine]
diff --git a/config/arm/arm64_octeontx2_linux_gcc b/config/arm/arm64_octeontx2_linux_gcc
index e2c0b8f72..365bd7cbd 100644
--- a/config/arm/arm64_octeontx2_linux_gcc
+++ b/config/arm/arm64_octeontx2_linux_gcc
@@ -3,6 +3,7 @@ c = 'aarch64-linux-gnu-gcc'
 cpp = 'aarch64-linux-gnu-cpp'
 ar = 'aarch64-linux-gnu-gcc-ar'
 strip = 'aarch64-linux-gnu-strip'
+pkgconfig = 'aarch64-linux-gnu-pkg-config'
 pcap-config = ''
 
 [host_machine]
diff --git a/config/arm/arm64_thunderx2_linux_gcc b/config/arm/arm64_thunderx2_linux_gcc
index 0dc275644..2b41acc61 100644
--- a/config/arm/arm64_thunderx2_linux_gcc
+++ b/config/arm/arm64_thunderx2_linux_gcc
@@ -3,6 +3,7 @@ c = 'aarch64-linux-gnu-gcc'
 cpp = 'aarch64-linux-gnu-cpp'
 ar = 'aarch64-linux-gnu-gcc-ar'
 strip = 'aarch64-linux-gnu-strip'
+pkgconfig = 'aarch64-linux-gnu-pkg-config'
 pcap-config = ''
 
 [host_machine]
diff --git a/config/arm/arm64_thunderx_linux_gcc b/config/arm/arm64_thunderx_linux_gcc
index 14b801998..6572ab615 100644
--- a/config/arm/arm64_thunderx_linux_gcc
+++ b/config/arm/arm64_thunderx_linux_gcc
@@ -3,6 +3,7 @@ c = 'aarch64-linux-gnu-gcc'
 cpp = 'aarch64-linux-gnu-cpp'
 ar = 'aarch64-linux-gnu-gcc-ar'
 strip = 'aarch64-linux-gnu-strip'
+pkgconfig = 'aarch64-linux-gnu-pkg-config'
 pcap-config = ''
 
 [host_machine]
-- 
2.24.0


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [dpdk-dev] [PATCH 2/2] doc: add pkg-config-aarch64-linux-gnu as a prerequisite
  2019-11-26  8:14 [dpdk-dev] [PATCH 1/2] config: set the pkgconfig executable Ali Alnubani
@ 2019-11-26  8:14 ` Ali Alnubani
  2019-11-26  9:51   ` Bruce Richardson
  2019-11-27 16:53 ` [dpdk-dev] [PATCH 1/2] config: set the pkgconfig executable Bruce Richardson
  2019-11-28  7:24 ` [dpdk-dev] [PATCH v2 1/3] " Ali Alnubani
  2 siblings, 1 reply; 12+ messages in thread
From: Ali Alnubani @ 2019-11-26  8:14 UTC (permalink / raw)
  To: dev

The package pkg-config-aarch64-linux-gnu is required with meson for
detecting dependencies installed in nonstandard paths.

Signed-off-by: Ali Alnubani <alialnu@mellanox.com>
---
 doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst b/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst
index e799b0ba4..f00f9b130 100644
--- a/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst
+++ b/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst
@@ -122,6 +122,14 @@ To compile for non-NUMA targets, without compiling the kernel modules, use the f
 Meson Cross Compiling DPDK
 --------------------------
 
+Meson depends on pkgconfig to find the dependencies that are installed in
+nonstandard paths. The package `pkg-config-aarch64-linux-gnu` is required in
+this case. To install it in Ubuntu:
+
+.. code-block:: console
+
+   sudo apt-get install pkg-config-aarch64-linux-gnu
+
 To cross-compile DPDK on a desired target machine we can use the following
 command::
 
-- 
2.24.0


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [dpdk-dev] [PATCH 2/2] doc: add pkg-config-aarch64-linux-gnu as a prerequisite
  2019-11-26  8:14 ` [dpdk-dev] [PATCH 2/2] doc: add pkg-config-aarch64-linux-gnu as a prerequisite Ali Alnubani
@ 2019-11-26  9:51   ` Bruce Richardson
  2019-11-26 10:41     ` Ali Alnubani
  0 siblings, 1 reply; 12+ messages in thread
From: Bruce Richardson @ 2019-11-26  9:51 UTC (permalink / raw)
  To: Ali Alnubani; +Cc: dev

On Tue, Nov 26, 2019 at 08:14:25AM +0000, Ali Alnubani wrote:
> The package pkg-config-aarch64-linux-gnu is required with meson for
> detecting dependencies installed in nonstandard paths.
> 
> Signed-off-by: Ali Alnubani <alialnu@mellanox.com>
> ---
>  doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst | 8 ++++++++
>  1 file changed, 8 insertions(+)
> 
> diff --git a/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst b/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst
> index e799b0ba4..f00f9b130 100644
> --- a/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst
> +++ b/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst
> @@ -122,6 +122,14 @@ To compile for non-NUMA targets, without compiling the kernel modules, use the f
>  Meson Cross Compiling DPDK
>  --------------------------
>  
> +Meson depends on pkgconfig to find the dependencies that are installed in
> +nonstandard paths. The package `pkg-config-aarch64-linux-gnu` is required in
> +this case. To install it in Ubuntu:
> +
> +.. code-block:: console
> +
> +   sudo apt-get install pkg-config-aarch64-linux-gnu
> +
>  To cross-compile DPDK on a desired target machine we can use the following
>  command::

Is there a package for Fedora or similar Redhat-derived distros?

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [dpdk-dev] [PATCH 2/2] doc: add pkg-config-aarch64-linux-gnu as a prerequisite
  2019-11-26  9:51   ` Bruce Richardson
@ 2019-11-26 10:41     ` Ali Alnubani
  2019-11-26 12:00       ` Bruce Richardson
  0 siblings, 1 reply; 12+ messages in thread
From: Ali Alnubani @ 2019-11-26 10:41 UTC (permalink / raw)
  To: Bruce Richardson; +Cc: dev

Hi Bruce,

> -----Original Message-----
> From: Bruce Richardson <bruce.richardson@intel.com>
> Sent: Tuesday, November 26, 2019 11:52 AM
> To: Ali Alnubani <alialnu@mellanox.com>
> Cc: dev@dpdk.org
> Subject: Re: [dpdk-dev] [PATCH 2/2] doc: add pkg-config-aarch64-linux-gnu
> as a prerequisite
> 
> On Tue, Nov 26, 2019 at 08:14:25AM +0000, Ali Alnubani wrote:
> > The package pkg-config-aarch64-linux-gnu is required with meson for
> > detecting dependencies installed in nonstandard paths.
> >
> > Signed-off-by: Ali Alnubani <alialnu@mellanox.com>
> > ---
> >  doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst | 8 ++++++++
> >  1 file changed, 8 insertions(+)
> >
> > diff --git a/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst
> > b/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst
> > index e799b0ba4..f00f9b130 100644
> > --- a/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst
> > +++ b/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst
> > @@ -122,6 +122,14 @@ To compile for non-NUMA targets, without
> > compiling the kernel modules, use the f  Meson Cross Compiling DPDK
> >  --------------------------
> >
> > +Meson depends on pkgconfig to find the dependencies that are
> > +installed in nonstandard paths. The package
> > +`pkg-config-aarch64-linux-gnu` is required in this case. To install it in
> Ubuntu:
> > +
> > +.. code-block:: console
> > +
> > +   sudo apt-get install pkg-config-aarch64-linux-gnu
> > +
> >  To cross-compile DPDK on a desired target machine we can use the
> > following
> >  command::
> 
> Is there a package for Fedora or similar Redhat-derived distros?

I don't think it's available. Should I add instructions on how to cross build it instead of the apt-get example?

Thanks,
Ali

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [dpdk-dev] [PATCH 2/2] doc: add pkg-config-aarch64-linux-gnu as a prerequisite
  2019-11-26 10:41     ` Ali Alnubani
@ 2019-11-26 12:00       ` Bruce Richardson
  2019-11-27 15:54         ` Ali Alnubani
  0 siblings, 1 reply; 12+ messages in thread
From: Bruce Richardson @ 2019-11-26 12:00 UTC (permalink / raw)
  To: Ali Alnubani; +Cc: dev

On Tue, Nov 26, 2019 at 10:41:08AM +0000, Ali Alnubani wrote:
> Hi Bruce,
> 
> > -----Original Message-----
> > From: Bruce Richardson <bruce.richardson@intel.com>
> > Sent: Tuesday, November 26, 2019 11:52 AM
> > To: Ali Alnubani <alialnu@mellanox.com>
> > Cc: dev@dpdk.org
> > Subject: Re: [dpdk-dev] [PATCH 2/2] doc: add pkg-config-aarch64-linux-gnu
> > as a prerequisite
> > 
> > On Tue, Nov 26, 2019 at 08:14:25AM +0000, Ali Alnubani wrote:
> > > The package pkg-config-aarch64-linux-gnu is required with meson for
> > > detecting dependencies installed in nonstandard paths.
> > >
> > > Signed-off-by: Ali Alnubani <alialnu@mellanox.com>
> > > ---
> > >  doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst | 8 ++++++++
> > >  1 file changed, 8 insertions(+)
> > >
> > > diff --git a/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst
> > > b/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst
> > > index e799b0ba4..f00f9b130 100644
> > > --- a/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst
> > > +++ b/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst
> > > @@ -122,6 +122,14 @@ To compile for non-NUMA targets, without
> > > compiling the kernel modules, use the f  Meson Cross Compiling DPDK
> > >  --------------------------
> > >
> > > +Meson depends on pkgconfig to find the dependencies that are
> > > +installed in nonstandard paths. The package
> > > +`pkg-config-aarch64-linux-gnu` is required in this case. To install it in
> > Ubuntu:
> > > +
> > > +.. code-block:: console
> > > +
> > > +   sudo apt-get install pkg-config-aarch64-linux-gnu
> > > +
> > >  To cross-compile DPDK on a desired target machine we can use the
> > > following
> > >  command::
> > 
> > Is there a package for Fedora or similar Redhat-derived distros?
> 
> I don't think it's available. Should I add instructions on how to cross build it instead of the apt-get example?
> 
I think you might need both. Distro-instructions is probably best, but
there are a lot of people not using Ubuntu, I suspect.

Following patch 1, if pkg-config is added to all the cross-build files,
does that prevent previously working cross-builds from passing due to the
lack of the pkg-config package? Do the travis jobs need updating, for
example?

/Bruce

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [dpdk-dev] [PATCH 2/2] doc: add pkg-config-aarch64-linux-gnu as a prerequisite
  2019-11-26 12:00       ` Bruce Richardson
@ 2019-11-27 15:54         ` Ali Alnubani
  2019-11-27 16:51           ` Bruce Richardson
  0 siblings, 1 reply; 12+ messages in thread
From: Ali Alnubani @ 2019-11-27 15:54 UTC (permalink / raw)
  To: Bruce Richardson; +Cc: dev

> -----Original Message-----
> From: Bruce Richardson <bruce.richardson@intel.com>
> Sent: Tuesday, November 26, 2019 2:01 PM
> To: Ali Alnubani <alialnu@mellanox.com>
> Cc: dev@dpdk.org
> Subject: Re: [dpdk-dev] [PATCH 2/2] doc: add pkg-config-aarch64-linux-gnu
> as a prerequisite
> 
> On Tue, Nov 26, 2019 at 10:41:08AM +0000, Ali Alnubani wrote:
> > Hi Bruce,
> >
> > > -----Original Message-----
> > > From: Bruce Richardson <bruce.richardson@intel.com>
> > > Sent: Tuesday, November 26, 2019 11:52 AM
> > > To: Ali Alnubani <alialnu@mellanox.com>
> > > Cc: dev@dpdk.org
> > > Subject: Re: [dpdk-dev] [PATCH 2/2] doc: add
> > > pkg-config-aarch64-linux-gnu as a prerequisite
> > >
> > > On Tue, Nov 26, 2019 at 08:14:25AM +0000, Ali Alnubani wrote:
> > > > The package pkg-config-aarch64-linux-gnu is required with meson
> > > > for detecting dependencies installed in nonstandard paths.
> > > >
> > > > Signed-off-by: Ali Alnubani <alialnu@mellanox.com>
> > > > ---
> > > >  doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst | 8 ++++++++
> > > >  1 file changed, 8 insertions(+)
> > > >
> > > > diff --git a/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst
> > > > b/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst
> > > > index e799b0ba4..f00f9b130 100644
> > > > --- a/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst
> > > > +++ b/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst
> > > > @@ -122,6 +122,14 @@ To compile for non-NUMA targets, without
> > > > compiling the kernel modules, use the f  Meson Cross Compiling
> > > > DPDK
> > > >  --------------------------
> > > >
> > > > +Meson depends on pkgconfig to find the dependencies that are
> > > > +installed in nonstandard paths. The package
> > > > +`pkg-config-aarch64-linux-gnu` is required in this case. To
> > > > +install it in
> > > Ubuntu:
> > > > +
> > > > +.. code-block:: console
> > > > +
> > > > +   sudo apt-get install pkg-config-aarch64-linux-gnu
> > > > +
> > > >  To cross-compile DPDK on a desired target machine we can use the
> > > > following
> > > >  command::
> > >
> > > Is there a package for Fedora or similar Redhat-derived distros?
> >
> > I don't think it's available. Should I add instructions on how to cross build it
> instead of the apt-get example?
> >
> I think you might need both. Distro-instructions is probably best, but there
> are a lot of people not using Ubuntu, I suspect.
> 
> Following patch 1, if pkg-config is added to all the cross-build files, does that
> prevent previously working cross-builds from passing due to the lack of the
> pkg-config package? Do the travis jobs need updating, for example?

Cross compiling pkg-config from source requires glib, which in turn requires other packages (libffi and pcre).
Do we want to add instructions to cross build that dependency tree?

I opened a pull request to the Github mirror to make sure I didn't break the CI:
https://github.com/DPDK/dpdk/pull/14
If the binary 'aarch64-linux-gnu-pkg-config' isn't found, Meson seems to just show the following warnings, but it doesn't fail with error:
'''
Did not find pkg-config by name 'aarch64-linux-gnu-pkg-config'
Found Pkg-config: NO
'''

I'll send v2 with an additional patch to add the package to the list of requirements for Travis's environment.
> 
> /Bruce

- Ali

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [dpdk-dev] [PATCH 2/2] doc: add pkg-config-aarch64-linux-gnu as a prerequisite
  2019-11-27 15:54         ` Ali Alnubani
@ 2019-11-27 16:51           ` Bruce Richardson
  0 siblings, 0 replies; 12+ messages in thread
From: Bruce Richardson @ 2019-11-27 16:51 UTC (permalink / raw)
  To: Ali Alnubani; +Cc: dev

On Wed, Nov 27, 2019 at 03:54:55PM +0000, Ali Alnubani wrote:
> > -----Original Message-----
> > From: Bruce Richardson <bruce.richardson@intel.com>
> > Sent: Tuesday, November 26, 2019 2:01 PM
> > To: Ali Alnubani <alialnu@mellanox.com>
> > Cc: dev@dpdk.org
> > Subject: Re: [dpdk-dev] [PATCH 2/2] doc: add pkg-config-aarch64-linux-gnu
> > as a prerequisite
> > 
> > On Tue, Nov 26, 2019 at 10:41:08AM +0000, Ali Alnubani wrote:
> > > Hi Bruce,
> > >
> > > > -----Original Message-----
> > > > From: Bruce Richardson <bruce.richardson@intel.com>
> > > > Sent: Tuesday, November 26, 2019 11:52 AM
> > > > To: Ali Alnubani <alialnu@mellanox.com>
> > > > Cc: dev@dpdk.org
> > > > Subject: Re: [dpdk-dev] [PATCH 2/2] doc: add
> > > > pkg-config-aarch64-linux-gnu as a prerequisite
> > > >
> > > > On Tue, Nov 26, 2019 at 08:14:25AM +0000, Ali Alnubani wrote:
> > > > > The package pkg-config-aarch64-linux-gnu is required with meson
> > > > > for detecting dependencies installed in nonstandard paths.
> > > > >
> > > > > Signed-off-by: Ali Alnubani <alialnu@mellanox.com>
> > > > > ---
> > > > >  doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst | 8 ++++++++
> > > > >  1 file changed, 8 insertions(+)
> > > > >
> > > > > diff --git a/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst
> > > > > b/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst
> > > > > index e799b0ba4..f00f9b130 100644
> > > > > --- a/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst
> > > > > +++ b/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst
> > > > > @@ -122,6 +122,14 @@ To compile for non-NUMA targets, without
> > > > > compiling the kernel modules, use the f  Meson Cross Compiling
> > > > > DPDK
> > > > >  --------------------------
> > > > >
> > > > > +Meson depends on pkgconfig to find the dependencies that are
> > > > > +installed in nonstandard paths. The package
> > > > > +`pkg-config-aarch64-linux-gnu` is required in this case. To
> > > > > +install it in
> > > > Ubuntu:
> > > > > +
> > > > > +.. code-block:: console
> > > > > +
> > > > > +   sudo apt-get install pkg-config-aarch64-linux-gnu
> > > > > +
> > > > >  To cross-compile DPDK on a desired target machine we can use the
> > > > > following
> > > > >  command::
> > > >
> > > > Is there a package for Fedora or similar Redhat-derived distros?
> > >
> > > I don't think it's available. Should I add instructions on how to cross build it
> > instead of the apt-get example?
> > >
> > I think you might need both. Distro-instructions is probably best, but there
> > are a lot of people not using Ubuntu, I suspect.
> > 
> > Following patch 1, if pkg-config is added to all the cross-build files, does that
> > prevent previously working cross-builds from passing due to the lack of the
> > pkg-config package? Do the travis jobs need updating, for example?
> 
> Cross compiling pkg-config from source requires glib, which in turn requires other packages (libffi and pcre).
> Do we want to add instructions to cross build that dependency tree?
> 
> I opened a pull request to the Github mirror to make sure I didn't break the CI:
> https://github.com/DPDK/dpdk/pull/14
> If the binary 'aarch64-linux-gnu-pkg-config' isn't found, Meson seems to just show the following warnings, but it doesn't fail with error:
> '''
> Did not find pkg-config by name 'aarch64-linux-gnu-pkg-config'
> Found Pkg-config: NO
> '''
> 
> I'll send v2 with an additional patch to add the package to the list of requirements for Travis's environment.
> > 
So long as is doesn't break something that was previously working I'm ok
with this set.

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [dpdk-dev] [PATCH 1/2] config: set the pkgconfig executable
  2019-11-26  8:14 [dpdk-dev] [PATCH 1/2] config: set the pkgconfig executable Ali Alnubani
  2019-11-26  8:14 ` [dpdk-dev] [PATCH 2/2] doc: add pkg-config-aarch64-linux-gnu as a prerequisite Ali Alnubani
@ 2019-11-27 16:53 ` Bruce Richardson
  2019-11-28  7:24 ` [dpdk-dev] [PATCH v2 1/3] " Ali Alnubani
  2 siblings, 0 replies; 12+ messages in thread
From: Bruce Richardson @ 2019-11-27 16:53 UTC (permalink / raw)
  To: Ali Alnubani; +Cc: dev

On Tue, Nov 26, 2019 at 08:14:22AM +0000, Ali Alnubani wrote:
> Meson fails to find a pkg-config executable if pkgconfig
> isn't set for aarch64. The environment variable `PKG_CONFIG_PATH`
> is useless in this case, and meson fails to locate dependencies
> that are built in non-standard paths.
> 
> Signed-off-by: Ali Alnubani <alialnu@mellanox.com>
> ---
>  config/arm/arm64_armada_linux_gcc    | 1 +
>  config/arm/arm64_armv8_linux_gcc     | 1 +
>  config/arm/arm64_bluefield_linux_gcc | 1 +
>  config/arm/arm64_dpaa_linux_gcc      | 1 +
>  config/arm/arm64_emag_linux_gcc      | 1 +
>  config/arm/arm64_n1sdp_linux_gcc     | 1 +
>  config/arm/arm64_octeontx2_linux_gcc | 1 +
>  config/arm/arm64_thunderx2_linux_gcc | 1 +
>  config/arm/arm64_thunderx_linux_gcc  | 1 +
>  9 files changed, 9 insertions(+)
>
Based off discussion on patch 2 thread:

Series
Acked-by: Bruce Richardson <bruce.richardson@intel.com> 

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [dpdk-dev] [PATCH v2 1/3] config: set the pkgconfig executable
  2019-11-26  8:14 [dpdk-dev] [PATCH 1/2] config: set the pkgconfig executable Ali Alnubani
  2019-11-26  8:14 ` [dpdk-dev] [PATCH 2/2] doc: add pkg-config-aarch64-linux-gnu as a prerequisite Ali Alnubani
  2019-11-27 16:53 ` [dpdk-dev] [PATCH 1/2] config: set the pkgconfig executable Bruce Richardson
@ 2019-11-28  7:24 ` " Ali Alnubani
  2019-11-28  7:24   ` [dpdk-dev] [PATCH v2 2/3] doc: add pkg-config-aarch64-linux-gnu as a prerequisite Ali Alnubani
                     ` (2 more replies)
  2 siblings, 3 replies; 12+ messages in thread
From: Ali Alnubani @ 2019-11-28  7:24 UTC (permalink / raw)
  To: dev; +Cc: Bruce Richardson

Meson fails to find a pkg-config executable if pkgconfig
isn't set for aarch64. The environment variable `PKG_CONFIG_PATH`
is useless in this case, and meson fails to locate dependencies
that are built in non-standard paths.

Signed-off-by: Ali Alnubani <alialnu@mellanox.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
v2: added an additional patch to the series.

 config/arm/arm64_armada_linux_gcc    | 1 +
 config/arm/arm64_armv8_linux_gcc     | 1 +
 config/arm/arm64_bluefield_linux_gcc | 1 +
 config/arm/arm64_dpaa_linux_gcc      | 1 +
 config/arm/arm64_emag_linux_gcc      | 1 +
 config/arm/arm64_n1sdp_linux_gcc     | 1 +
 config/arm/arm64_octeontx2_linux_gcc | 1 +
 config/arm/arm64_thunderx2_linux_gcc | 1 +
 config/arm/arm64_thunderx_linux_gcc  | 1 +
 9 files changed, 9 insertions(+)

diff --git a/config/arm/arm64_armada_linux_gcc b/config/arm/arm64_armada_linux_gcc
index 6e6d56f6f..fa40c0398 100644
--- a/config/arm/arm64_armada_linux_gcc
+++ b/config/arm/arm64_armada_linux_gcc
@@ -4,6 +4,7 @@ cpp = 'aarch64-linux-gnu-cpp'
 ar = 'aarch64-linux-gnu-ar'
 as = 'aarch64-linux-gnu-as'
 strip = 'aarch64-linux-gnu-strip'
+pkgconfig = 'aarch64-linux-gnu-pkg-config'
 pcap-config = ''
 
 [host_machine]
diff --git a/config/arm/arm64_armv8_linux_gcc b/config/arm/arm64_armv8_linux_gcc
index 67dd9a97d..88f0ff9da 100644
--- a/config/arm/arm64_armv8_linux_gcc
+++ b/config/arm/arm64_armv8_linux_gcc
@@ -3,6 +3,7 @@ c = 'aarch64-linux-gnu-gcc'
 cpp = 'aarch64-linux-gnu-cpp'
 ar = 'aarch64-linux-gnu-gcc-ar'
 strip = 'aarch64-linux-gnu-strip'
+pkgconfig = 'aarch64-linux-gnu-pkg-config'
 pcap-config = ''
 
 [host_machine]
diff --git a/config/arm/arm64_bluefield_linux_gcc b/config/arm/arm64_bluefield_linux_gcc
index 304c4073d..86797d23c 100644
--- a/config/arm/arm64_bluefield_linux_gcc
+++ b/config/arm/arm64_bluefield_linux_gcc
@@ -3,6 +3,7 @@ c = 'aarch64-linux-gnu-gcc'
 cpp = 'aarch64-linux-gnu-cpp'
 ar = 'aarch64-linux-gnu-gcc-ar'
 strip = 'aarch64-linux-gnu-strip'
+pkgconfig = 'aarch64-linux-gnu-pkg-config'
 pcap-config = ''
 
 [host_machine]
diff --git a/config/arm/arm64_dpaa_linux_gcc b/config/arm/arm64_dpaa_linux_gcc
index f4b85a84b..1a4682154 100644
--- a/config/arm/arm64_dpaa_linux_gcc
+++ b/config/arm/arm64_dpaa_linux_gcc
@@ -4,6 +4,7 @@ cpp = 'aarch64-linux-gnu-cpp'
 ar = 'aarch64-linux-gnu-ar'
 as = 'aarch64-linux-gnu-as'
 strip = 'aarch64-linux-gnu-strip'
+pkgconfig = 'aarch64-linux-gnu-pkg-config'
 pcap-config = ''
 
 [host_machine]
diff --git a/config/arm/arm64_emag_linux_gcc b/config/arm/arm64_emag_linux_gcc
index bcb147a5a..8edcd3e97 100644
--- a/config/arm/arm64_emag_linux_gcc
+++ b/config/arm/arm64_emag_linux_gcc
@@ -3,6 +3,7 @@ c = 'aarch64-linux-gnu-gcc'
 cpp = 'aarch64-linux-gnu-cpp'
 ar = 'aarch64-linux-gnu-gcc-ar'
 strip = 'aarch64-linux-gnu-strip'
+pkgconfig = 'aarch64-linux-gnu-pkg-config'
 pcap-config = ''
 
 [host_machine]
diff --git a/config/arm/arm64_n1sdp_linux_gcc b/config/arm/arm64_n1sdp_linux_gcc
index 83dad3df2..022e06303 100644
--- a/config/arm/arm64_n1sdp_linux_gcc
+++ b/config/arm/arm64_n1sdp_linux_gcc
@@ -3,6 +3,7 @@ c = 'aarch64-linux-gnu-gcc'
 cpp = 'aarch64-linux-gnu-cpp'
 ar = 'aarch64-linux-gnu-gcc-ar'
 strip = 'aarch64-linux-gnu-strip'
+pkgconfig = 'aarch64-linux-gnu-pkg-config'
 pcap-config = ''
 
 [host_machine]
diff --git a/config/arm/arm64_octeontx2_linux_gcc b/config/arm/arm64_octeontx2_linux_gcc
index e2c0b8f72..365bd7cbd 100644
--- a/config/arm/arm64_octeontx2_linux_gcc
+++ b/config/arm/arm64_octeontx2_linux_gcc
@@ -3,6 +3,7 @@ c = 'aarch64-linux-gnu-gcc'
 cpp = 'aarch64-linux-gnu-cpp'
 ar = 'aarch64-linux-gnu-gcc-ar'
 strip = 'aarch64-linux-gnu-strip'
+pkgconfig = 'aarch64-linux-gnu-pkg-config'
 pcap-config = ''
 
 [host_machine]
diff --git a/config/arm/arm64_thunderx2_linux_gcc b/config/arm/arm64_thunderx2_linux_gcc
index 0dc275644..2b41acc61 100644
--- a/config/arm/arm64_thunderx2_linux_gcc
+++ b/config/arm/arm64_thunderx2_linux_gcc
@@ -3,6 +3,7 @@ c = 'aarch64-linux-gnu-gcc'
 cpp = 'aarch64-linux-gnu-cpp'
 ar = 'aarch64-linux-gnu-gcc-ar'
 strip = 'aarch64-linux-gnu-strip'
+pkgconfig = 'aarch64-linux-gnu-pkg-config'
 pcap-config = ''
 
 [host_machine]
diff --git a/config/arm/arm64_thunderx_linux_gcc b/config/arm/arm64_thunderx_linux_gcc
index 14b801998..6572ab615 100644
--- a/config/arm/arm64_thunderx_linux_gcc
+++ b/config/arm/arm64_thunderx_linux_gcc
@@ -3,6 +3,7 @@ c = 'aarch64-linux-gnu-gcc'
 cpp = 'aarch64-linux-gnu-cpp'
 ar = 'aarch64-linux-gnu-gcc-ar'
 strip = 'aarch64-linux-gnu-strip'
+pkgconfig = 'aarch64-linux-gnu-pkg-config'
 pcap-config = ''
 
 [host_machine]
-- 
2.24.0


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [dpdk-dev] [PATCH v2 2/3] doc: add pkg-config-aarch64-linux-gnu as a prerequisite
  2019-11-28  7:24 ` [dpdk-dev] [PATCH v2 1/3] " Ali Alnubani
@ 2019-11-28  7:24   ` Ali Alnubani
  2019-11-28  7:24   ` [dpdk-dev] [PATCH v2 3/3] ci: add pkg-config-aarch64-linux-gnu to aarch64_packages Ali Alnubani
  2019-11-28 22:01   ` [dpdk-dev] [PATCH v2 1/3] config: set the pkgconfig executable Thomas Monjalon
  2 siblings, 0 replies; 12+ messages in thread
From: Ali Alnubani @ 2019-11-28  7:24 UTC (permalink / raw)
  To: dev; +Cc: Bruce Richardson

The package pkg-config-aarch64-linux-gnu is required with meson for
detecting dependencies installed in nonstandard paths.

Signed-off-by: Ali Alnubani <alialnu@mellanox.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
v2: added an additional patch to the series.

 doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst b/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst
index e799b0ba4..f00f9b130 100644
--- a/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst
+++ b/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst
@@ -122,6 +122,14 @@ To compile for non-NUMA targets, without compiling the kernel modules, use the f
 Meson Cross Compiling DPDK
 --------------------------
 
+Meson depends on pkgconfig to find the dependencies that are installed in
+nonstandard paths. The package `pkg-config-aarch64-linux-gnu` is required in
+this case. To install it in Ubuntu:
+
+.. code-block:: console
+
+   sudo apt-get install pkg-config-aarch64-linux-gnu
+
 To cross-compile DPDK on a desired target machine we can use the following
 command::
 
-- 
2.24.0


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [dpdk-dev] [PATCH v2 3/3] ci: add pkg-config-aarch64-linux-gnu to aarch64_packages
  2019-11-28  7:24 ` [dpdk-dev] [PATCH v2 1/3] " Ali Alnubani
  2019-11-28  7:24   ` [dpdk-dev] [PATCH v2 2/3] doc: add pkg-config-aarch64-linux-gnu as a prerequisite Ali Alnubani
@ 2019-11-28  7:24   ` Ali Alnubani
  2019-11-28 22:01   ` [dpdk-dev] [PATCH v2 1/3] config: set the pkgconfig executable Thomas Monjalon
  2 siblings, 0 replies; 12+ messages in thread
From: Ali Alnubani @ 2019-11-28  7:24 UTC (permalink / raw)
  To: dev

The aarch64 cross-files are configured to explicitly use the binary
'aarch64-linux-gnu-pkg-config', which is available in the package
'pkg-config-aarch64-linux-gnu' in ubuntu.

Signed-off-by: Ali Alnubani <alialnu@mellanox.com>
---
 .travis.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/.travis.yml b/.travis.yml
index 7b9fc6898..8f90d06f2 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -17,7 +17,7 @@ addons:
 
 aarch64_packages: &aarch64_packages
   - *required_packages
-  - [gcc-aarch64-linux-gnu, libc6-dev-arm64-cross]
+  - [gcc-aarch64-linux-gnu, libc6-dev-arm64-cross, pkg-config-aarch64-linux-gnu]
 
 extra_packages: &extra_packages
   - *required_packages
-- 
2.24.0


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [dpdk-dev] [PATCH v2 1/3] config: set the pkgconfig executable
  2019-11-28  7:24 ` [dpdk-dev] [PATCH v2 1/3] " Ali Alnubani
  2019-11-28  7:24   ` [dpdk-dev] [PATCH v2 2/3] doc: add pkg-config-aarch64-linux-gnu as a prerequisite Ali Alnubani
  2019-11-28  7:24   ` [dpdk-dev] [PATCH v2 3/3] ci: add pkg-config-aarch64-linux-gnu to aarch64_packages Ali Alnubani
@ 2019-11-28 22:01   ` Thomas Monjalon
  2 siblings, 0 replies; 12+ messages in thread
From: Thomas Monjalon @ 2019-11-28 22:01 UTC (permalink / raw)
  To: Ali Alnubani; +Cc: dev, Bruce Richardson

28/11/2019 08:24, Ali Alnubani:
> Meson fails to find a pkg-config executable if pkgconfig
> isn't set for aarch64. The environment variable `PKG_CONFIG_PATH`
> is useless in this case, and meson fails to locate dependencies
> that are built in non-standard paths.
> 
> Signed-off-by: Ali Alnubani <alialnu@mellanox.com>
> Acked-by: Bruce Richardson <bruce.richardson@intel.com>

Series squashed and applied, thanks




^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, back to index

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-11-26  8:14 [dpdk-dev] [PATCH 1/2] config: set the pkgconfig executable Ali Alnubani
2019-11-26  8:14 ` [dpdk-dev] [PATCH 2/2] doc: add pkg-config-aarch64-linux-gnu as a prerequisite Ali Alnubani
2019-11-26  9:51   ` Bruce Richardson
2019-11-26 10:41     ` Ali Alnubani
2019-11-26 12:00       ` Bruce Richardson
2019-11-27 15:54         ` Ali Alnubani
2019-11-27 16:51           ` Bruce Richardson
2019-11-27 16:53 ` [dpdk-dev] [PATCH 1/2] config: set the pkgconfig executable Bruce Richardson
2019-11-28  7:24 ` [dpdk-dev] [PATCH v2 1/3] " Ali Alnubani
2019-11-28  7:24   ` [dpdk-dev] [PATCH v2 2/3] doc: add pkg-config-aarch64-linux-gnu as a prerequisite Ali Alnubani
2019-11-28  7:24   ` [dpdk-dev] [PATCH v2 3/3] ci: add pkg-config-aarch64-linux-gnu to aarch64_packages Ali Alnubani
2019-11-28 22:01   ` [dpdk-dev] [PATCH v2 1/3] config: set the pkgconfig executable Thomas Monjalon

DPDK patches and discussions

Archives are clonable:
	git clone --mirror http://inbox.dpdk.org/dev/0 dev/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 dev dev/ http://inbox.dpdk.org/dev \
		dev@dpdk.org
	public-inbox-index dev


Newsgroup available over NNTP:
	nntp://inbox.dpdk.org/inbox.dpdk.dev


AGPL code for this site: git clone https://public-inbox.org/ public-inbox