All of lore.kernel.org
 help / color / mirror / 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 related	[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 related	[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 related	[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 related	[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 related	[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, other threads:[~2019-11-28 22:01 UTC | newest]

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

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.