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
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
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?
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
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
> -----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
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.
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>
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
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
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
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