DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH v1] build: ccache support for cross build
@ 2022-06-02  9:23 jerinj
  2022-06-02  9:41 ` Bruce Richardson
  2022-06-08 17:13 ` [dpdk-dev] [PATCH v2] " jerinj
  0 siblings, 2 replies; 15+ messages in thread
From: jerinj @ 2022-06-02  9:23 UTC (permalink / raw)
  To: dev, Ruifeng Wang, Jan Viktorin, Bruce Richardson,
	David Christensen, Konstantin Ananyev
  Cc: thomas, david.marchand, juraj.linkes, fengchengwen, Jerin Jacob

From: Jerin Jacob <jerinj@marvell.com>

By default, ccache is not used for cross build[1].
Update all cross files to use ccache if it is available
in build machine.

[1]
https://mesonbuild.com/Machine-files.html

Signed-off-by: Jerin Jacob <jerinj@marvell.com>
---
 config/arm/arm32_armv8_linux_gcc           | 4 ++--
 config/arm/arm64_armada_linux_gcc          | 4 ++--
 config/arm/arm64_armv8_linux_clang_ubuntu  | 4 ++--
 config/arm/arm64_armv8_linux_gcc           | 4 ++--
 config/arm/arm64_bluefield_linux_gcc       | 4 ++--
 config/arm/arm64_centriq2400_linux_gcc     | 4 ++--
 config/arm/arm64_cn10k_linux_gcc           | 4 ++--
 config/arm/arm64_cn9k_linux_gcc            | 4 ++--
 config/arm/arm64_dpaa_linux_gcc            | 4 ++--
 config/arm/arm64_emag_linux_gcc            | 4 ++--
 config/arm/arm64_graviton2_linux_gcc       | 4 ++--
 config/arm/arm64_kunpeng920_linux_gcc      | 4 ++--
 config/arm/arm64_kunpeng930_linux_gcc      | 4 ++--
 config/arm/arm64_n1sdp_linux_gcc           | 4 ++--
 config/arm/arm64_n2_linux_gcc              | 4 ++--
 config/arm/arm64_stingray_linux_gcc        | 4 ++--
 config/arm/arm64_thunderx2_linux_gcc       | 4 ++--
 config/arm/arm64_thunderxt83_linux_gcc     | 4 ++--
 config/arm/arm64_thunderxt88_linux_gcc     | 4 ++--
 config/ppc/ppc64le-power8-linux-gcc        | 4 ++--
 config/ppc/ppc64le-power8-linux-gcc-ubuntu | 4 ++--
 config/x86/cross-mingw                     | 4 ++--
 22 files changed, 44 insertions(+), 44 deletions(-)

diff --git a/config/arm/arm32_armv8_linux_gcc b/config/arm/arm32_armv8_linux_gcc
index 89f8a12881..7f2977e49d 100644
--- a/config/arm/arm32_armv8_linux_gcc
+++ b/config/arm/arm32_armv8_linux_gcc
@@ -1,6 +1,6 @@
 [binaries]
-c = 'arm-linux-gnueabihf-gcc'
-cpp = 'arm-linux-gnueabihf-cpp'
+c = ['ccache', 'arm-linux-gnueabihf-gcc']
+cpp = ['ccache', 'arm-linux-gnueabihf-cpp']
 ar = 'arm-linux-gnueabihf-gcc-ar'
 strip = 'arm-linux-gnueabihf-strip'
 pkgconfig = 'arm-linux-gnueabihf-pkg-config'
diff --git a/config/arm/arm64_armada_linux_gcc b/config/arm/arm64_armada_linux_gcc
index 301418949b..1566999101 100644
--- a/config/arm/arm64_armada_linux_gcc
+++ b/config/arm/arm64_armada_linux_gcc
@@ -1,6 +1,6 @@
 [binaries]
-c = 'aarch64-linux-gnu-gcc'
-cpp = 'aarch64-linux-gnu-cpp'
+c = ['ccache', 'aarch64-linux-gnu-gcc']
+cpp = ['ccache', 'aarch64-linux-gnu-cpp']
 ar = 'aarch64-linux-gnu-ar'
 as = 'aarch64-linux-gnu-as'
 strip = 'aarch64-linux-gnu-strip'
diff --git a/config/arm/arm64_armv8_linux_clang_ubuntu b/config/arm/arm64_armv8_linux_clang_ubuntu
index db488d75f4..86ae43937b 100644
--- a/config/arm/arm64_armv8_linux_clang_ubuntu
+++ b/config/arm/arm64_armv8_linux_clang_ubuntu
@@ -1,6 +1,6 @@
 [binaries]
-c = 'clang'
-cpp = 'clang++'
+c = ['ccache', 'clang']
+cpp = ['ccache', 'clang++']
 ar = 'llvm-ar'
 strip = 'llvm-strip'
 llvm-config = 'llvm-config'
diff --git a/config/arm/arm64_armv8_linux_gcc b/config/arm/arm64_armv8_linux_gcc
index 5391d35389..048c2d9f29 100644
--- a/config/arm/arm64_armv8_linux_gcc
+++ b/config/arm/arm64_armv8_linux_gcc
@@ -1,6 +1,6 @@
 [binaries]
-c = 'aarch64-linux-gnu-gcc'
-cpp = 'aarch64-linux-gnu-cpp'
+c = ['ccache', 'aarch64-linux-gnu-gcc']
+cpp = ['ccache', 'aarch64-linux-gnu-cpp']
 ar = 'aarch64-linux-gnu-gcc-ar'
 strip = 'aarch64-linux-gnu-strip'
 pkgconfig = 'aarch64-linux-gnu-pkg-config'
diff --git a/config/arm/arm64_bluefield_linux_gcc b/config/arm/arm64_bluefield_linux_gcc
index 248a9f031a..38df3c198b 100644
--- a/config/arm/arm64_bluefield_linux_gcc
+++ b/config/arm/arm64_bluefield_linux_gcc
@@ -1,6 +1,6 @@
 [binaries]
-c = 'aarch64-linux-gnu-gcc'
-cpp = 'aarch64-linux-gnu-cpp'
+c = ['ccache', 'aarch64-linux-gnu-gcc']
+cpp = ['ccache', 'aarch64-linux-gnu-cpp']
 ar = 'aarch64-linux-gnu-gcc-ar'
 strip = 'aarch64-linux-gnu-strip'
 pkgconfig = 'aarch64-linux-gnu-pkg-config'
diff --git a/config/arm/arm64_centriq2400_linux_gcc b/config/arm/arm64_centriq2400_linux_gcc
index dfe9110331..0966eef2c5 100644
--- a/config/arm/arm64_centriq2400_linux_gcc
+++ b/config/arm/arm64_centriq2400_linux_gcc
@@ -1,6 +1,6 @@
 [binaries]
-c = 'aarch64-linux-gnu-gcc'
-cpp = 'aarch64-linux-gnu-cpp'
+c = ['ccache', 'aarch64-linux-gnu-gcc']
+cpp = ['ccache', 'aarch64-linux-gnu-cpp']
 ar = 'aarch64-linux-gnu-gcc-ar'
 strip = 'aarch64-linux-gnu-strip'
 pkgconfig = 'aarch64-linux-gnu-pkg-config'
diff --git a/config/arm/arm64_cn10k_linux_gcc b/config/arm/arm64_cn10k_linux_gcc
index a3578c03a1..201e0ccd59 100644
--- a/config/arm/arm64_cn10k_linux_gcc
+++ b/config/arm/arm64_cn10k_linux_gcc
@@ -1,6 +1,6 @@
 [binaries]
-c = 'aarch64-linux-gnu-gcc'
-cpp = 'aarch64-linux-gnu-cpp'
+c = ['ccache', 'aarch64-linux-gnu-gcc']
+cpp = ['ccache', 'aarch64-linux-gnu-cpp']
 ar = 'aarch64-linux-gnu-gcc-ar'
 strip = 'aarch64-linux-gnu-strip'
 pkgconfig = 'aarch64-linux-gnu-pkg-config'
diff --git a/config/arm/arm64_cn9k_linux_gcc b/config/arm/arm64_cn9k_linux_gcc
index a94b44a551..a9b4d51958 100644
--- a/config/arm/arm64_cn9k_linux_gcc
+++ b/config/arm/arm64_cn9k_linux_gcc
@@ -1,6 +1,6 @@
 [binaries]
-c = 'aarch64-linux-gnu-gcc'
-cpp = 'aarch64-linux-gnu-cpp'
+c = ['ccache', 'aarch64-linux-gnu-gcc']
+cpp = ['ccache', 'aarch64-linux-gnu-cpp']
 ar = 'aarch64-linux-gnu-gcc-ar'
 strip = 'aarch64-linux-gnu-strip'
 pkgconfig = 'aarch64-linux-gnu-pkg-config'
diff --git a/config/arm/arm64_dpaa_linux_gcc b/config/arm/arm64_dpaa_linux_gcc
index e9d5fd31fc..0d5761bd72 100644
--- a/config/arm/arm64_dpaa_linux_gcc
+++ b/config/arm/arm64_dpaa_linux_gcc
@@ -1,6 +1,6 @@
 [binaries]
-c = 'aarch64-linux-gnu-gcc'
-cpp = 'aarch64-linux-gnu-cpp'
+c = ['ccache', 'aarch64-linux-gnu-gcc']
+cpp = ['ccache', 'aarch64-linux-gnu-cpp']
 ar = 'aarch64-linux-gnu-ar'
 as = 'aarch64-linux-gnu-as'
 strip = 'aarch64-linux-gnu-strip'
diff --git a/config/arm/arm64_emag_linux_gcc b/config/arm/arm64_emag_linux_gcc
index 9cdd931180..16ec49fc32 100644
--- a/config/arm/arm64_emag_linux_gcc
+++ b/config/arm/arm64_emag_linux_gcc
@@ -1,6 +1,6 @@
 [binaries]
-c = 'aarch64-linux-gnu-gcc'
-cpp = 'aarch64-linux-gnu-cpp'
+c = ['ccache', 'aarch64-linux-gnu-gcc']
+cpp = ['ccache', 'aarch64-linux-gnu-cpp']
 ar = 'aarch64-linux-gnu-gcc-ar'
 strip = 'aarch64-linux-gnu-strip'
 pkgconfig = 'aarch64-linux-gnu-pkg-config'
diff --git a/config/arm/arm64_graviton2_linux_gcc b/config/arm/arm64_graviton2_linux_gcc
index 8016fd236c..094c540f50 100644
--- a/config/arm/arm64_graviton2_linux_gcc
+++ b/config/arm/arm64_graviton2_linux_gcc
@@ -1,6 +1,6 @@
 [binaries]
-c = 'aarch64-linux-gnu-gcc'
-cpp = 'aarch64-linux-gnu-cpp'
+c = ['ccache', 'aarch64-linux-gnu-gcc']
+cpp = ['ccache', 'aarch64-linux-gnu-cpp']
 ar = 'aarch64-linux-gnu-gcc-ar'
 strip = 'aarch64-linux-gnu-strip'
 pkgconfig = 'aarch64-linux-gnu-pkg-config'
diff --git a/config/arm/arm64_kunpeng920_linux_gcc b/config/arm/arm64_kunpeng920_linux_gcc
index c4685b2458..fc057c9063 100644
--- a/config/arm/arm64_kunpeng920_linux_gcc
+++ b/config/arm/arm64_kunpeng920_linux_gcc
@@ -1,6 +1,6 @@
 [binaries]
-c = 'aarch64-linux-gnu-gcc'
-cpp = 'aarch64-linux-gnu-cpp'
+c = ['ccache', 'aarch64-linux-gnu-gcc']
+cpp = ['ccache', 'aarch64-linux-gnu-cpp']
 ar = 'aarch64-linux-gnu-gcc-ar'
 strip = 'aarch64-linux-gnu-strip'
 pkgconfig = 'aarch64-linux-gnu-pkg-config'
diff --git a/config/arm/arm64_kunpeng930_linux_gcc b/config/arm/arm64_kunpeng930_linux_gcc
index fb85d2d710..5f43941fae 100644
--- a/config/arm/arm64_kunpeng930_linux_gcc
+++ b/config/arm/arm64_kunpeng930_linux_gcc
@@ -1,6 +1,6 @@
 [binaries]
-c = 'aarch64-linux-gnu-gcc'
-cpp = 'aarch64-linux-gnu-cpp'
+c = ['ccache', 'aarch64-linux-gnu-gcc']
+cpp = ['ccache', 'aarch64-linux-gnu-cpp']
 ar = 'aarch64-linux-gnu-gcc-ar'
 strip = 'aarch64-linux-gnu-strip'
 pkgconfig = 'aarch64-linux-gnu-pkg-config'
diff --git a/config/arm/arm64_n1sdp_linux_gcc b/config/arm/arm64_n1sdp_linux_gcc
index 0df283e2f4..fc123ab53f 100644
--- a/config/arm/arm64_n1sdp_linux_gcc
+++ b/config/arm/arm64_n1sdp_linux_gcc
@@ -1,6 +1,6 @@
 [binaries]
-c = 'aarch64-linux-gnu-gcc'
-cpp = 'aarch64-linux-gnu-cpp'
+c = ['ccache', 'aarch64-linux-gnu-gcc']
+cpp = ['ccache', 'aarch64-linux-gnu-cpp']
 ar = 'aarch64-linux-gnu-gcc-ar'
 strip = 'aarch64-linux-gnu-strip'
 pkgconfig = 'aarch64-linux-gnu-pkg-config'
diff --git a/config/arm/arm64_n2_linux_gcc b/config/arm/arm64_n2_linux_gcc
index 036aee2b0a..930bd5c236 100644
--- a/config/arm/arm64_n2_linux_gcc
+++ b/config/arm/arm64_n2_linux_gcc
@@ -1,6 +1,6 @@
 [binaries]
-c = 'aarch64-linux-gnu-gcc'
-cpp = 'aarch64-linux-gnu-cpp'
+c = ['ccache', 'aarch64-linux-gnu-gcc']
+cpp = ['ccache', 'aarch64-linux-gnu-cpp']
 ar = 'aarch64-linux-gnu-gcc-ar'
 strip = 'aarch64-linux-gnu-strip'
 pkgconfig = 'aarch64-linux-gnu-pkg-config'
diff --git a/config/arm/arm64_stingray_linux_gcc b/config/arm/arm64_stingray_linux_gcc
index 319a4a151d..5dfcd974fd 100644
--- a/config/arm/arm64_stingray_linux_gcc
+++ b/config/arm/arm64_stingray_linux_gcc
@@ -1,6 +1,6 @@
 [binaries]
-c = 'aarch64-linux-gnu-gcc'
-cpp = 'aarch64-linux-gnu-cpp'
+c = ['ccache', 'aarch64-linux-gnu-gcc']
+cpp = ['ccache', 'aarch64-linux-gnu-cpp']
 ar = 'aarch64-linux-gnu-gcc-ar'
 strip = 'aarch64-linux-gnu-strip'
 pkgconfig = 'aarch64-linux-gnu-pkg-config'
diff --git a/config/arm/arm64_thunderx2_linux_gcc b/config/arm/arm64_thunderx2_linux_gcc
index 69c71cbc82..c1f5995d93 100644
--- a/config/arm/arm64_thunderx2_linux_gcc
+++ b/config/arm/arm64_thunderx2_linux_gcc
@@ -1,6 +1,6 @@
 [binaries]
-c = 'aarch64-linux-gnu-gcc'
-cpp = 'aarch64-linux-gnu-cpp'
+c = ['ccache', 'aarch64-linux-gnu-gcc']
+cpp = ['ccache', 'aarch64-linux-gnu-cpp']
 ar = 'aarch64-linux-gnu-gcc-ar'
 strip = 'aarch64-linux-gnu-strip'
 pkgconfig = 'aarch64-linux-gnu-pkg-config'
diff --git a/config/arm/arm64_thunderxt83_linux_gcc b/config/arm/arm64_thunderxt83_linux_gcc
index 47102c900b..52746e2e59 100644
--- a/config/arm/arm64_thunderxt83_linux_gcc
+++ b/config/arm/arm64_thunderxt83_linux_gcc
@@ -1,6 +1,6 @@
 [binaries]
-c = 'aarch64-linux-gnu-gcc'
-cpp = 'aarch64-linux-gnu-cpp'
+c = ['ccache', 'aarch64-linux-gnu-gcc']
+cpp = ['ccache', 'aarch64-linux-gnu-cpp']
 ar = 'aarch64-linux-gnu-gcc-ar'
 strip = 'aarch64-linux-gnu-strip'
 pkgconfig = 'aarch64-linux-gnu-pkg-config'
diff --git a/config/arm/arm64_thunderxt88_linux_gcc b/config/arm/arm64_thunderxt88_linux_gcc
index 372097ba01..fed7eb791e 100644
--- a/config/arm/arm64_thunderxt88_linux_gcc
+++ b/config/arm/arm64_thunderxt88_linux_gcc
@@ -1,6 +1,6 @@
 [binaries]
-c = 'aarch64-linux-gnu-gcc'
-cpp = 'aarch64-linux-gnu-cpp'
+c = ['ccache', 'aarch64-linux-gnu-gcc']
+cpp = ['ccache', 'aarch64-linux-gnu-cpp']
 ar = 'aarch64-linux-gnu-gcc-ar'
 strip = 'aarch64-linux-gnu-strip'
 pkgconfig = 'aarch64-linux-gnu-pkg-config'
diff --git a/config/ppc/ppc64le-power8-linux-gcc b/config/ppc/ppc64le-power8-linux-gcc
index 51f7ceebf3..465044e427 100644
--- a/config/ppc/ppc64le-power8-linux-gcc
+++ b/config/ppc/ppc64le-power8-linux-gcc
@@ -1,6 +1,6 @@
 [binaries]
-c = 'powerpc64le-linux-gcc'
-cpp = 'powerpc64le-linux-cpp'
+c = ['ccache', 'powerpc64le-linux-gcc']
+cpp = ['ccache', 'powerpc64le-linux-cpp']
 ar = 'powerpc64le-linux-gcc-ar'
 strip = 'powerpc64le-linux-strip'
 
diff --git a/config/ppc/ppc64le-power8-linux-gcc-ubuntu b/config/ppc/ppc64le-power8-linux-gcc-ubuntu
index 803c612cbc..44d7e0100a 100644
--- a/config/ppc/ppc64le-power8-linux-gcc-ubuntu
+++ b/config/ppc/ppc64le-power8-linux-gcc-ubuntu
@@ -1,6 +1,6 @@
 [binaries]
-c = 'powerpc64le-linux-gnu-gcc'
-cpp = 'powerpc64le-linux-gnu-cpp'
+c = ['ccache', 'powerpc64le-linux-gnu-gcc']
+cpp = ['ccache', 'powerpc64le-linux-gnu-cpp']
 ar = 'powerpc64le-linux-gnu-ar'
 strip = 'powerpc64le-linux-gnu-strip'
 
diff --git a/config/x86/cross-mingw b/config/x86/cross-mingw
index 09f7af0928..cddebda5b5 100644
--- a/config/x86/cross-mingw
+++ b/config/x86/cross-mingw
@@ -1,6 +1,6 @@
 [binaries]
-c = 'x86_64-w64-mingw32-gcc'
-cpp = 'x86_64-w64-mingw32-g++'
+c = ['ccache', 'x86_64-w64-mingw32-gcc']
+cpp = ['ccache', 'x86_64-w64-mingw32-g++']
 ld = 'x86_64-w64-mingw32-ld'
 ar = 'x86_64-w64-mingw32-ar'
 strip = 'x86_64-w64-mingw32-strip'
-- 
2.36.1


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

* Re: [dpdk-dev] [PATCH v1] build: ccache support for cross build
  2022-06-02  9:23 [dpdk-dev] [PATCH v1] build: ccache support for cross build jerinj
@ 2022-06-02  9:41 ` Bruce Richardson
  2022-06-02  9:43   ` Jerin Jacob
  2022-06-08 17:13 ` [dpdk-dev] [PATCH v2] " jerinj
  1 sibling, 1 reply; 15+ messages in thread
From: Bruce Richardson @ 2022-06-02  9:41 UTC (permalink / raw)
  To: jerinj
  Cc: dev, Ruifeng Wang, Jan Viktorin, David Christensen,
	Konstantin Ananyev, thomas, david.marchand, juraj.linkes,
	fengchengwen

On Thu, Jun 02, 2022 at 02:53:55PM +0530, jerinj@marvell.com wrote:
> From: Jerin Jacob <jerinj@marvell.com>
> 
> By default, ccache is not used for cross build[1].
> Update all cross files to use ccache if it is available
> in build machine.
> 
> [1]
> https://mesonbuild.com/Machine-files.html
> 
> Signed-off-by: Jerin Jacob <jerinj@marvell.com>

Does this still work even if ccache is not available? That's not fully
clear from the docs, but it seems to be that if an array is passed the
whole array is used as the command, rather than just one element of the
array. That would imply that cross-builds now require ccache. Is that
acceptable?

/Bruce


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

* Re: [dpdk-dev] [PATCH v1] build: ccache support for cross build
  2022-06-02  9:41 ` Bruce Richardson
@ 2022-06-02  9:43   ` Jerin Jacob
  2022-06-02 10:55     ` Thomas Monjalon
  0 siblings, 1 reply; 15+ messages in thread
From: Jerin Jacob @ 2022-06-02  9:43 UTC (permalink / raw)
  To: Bruce Richardson
  Cc: Jerin Jacob, dpdk-dev, Ruifeng Wang, Jan Viktorin,
	David Christensen, Konstantin Ananyev, Thomas Monjalon,
	David Marchand, Juraj Linkeš,
	fengchengwen

On Thu, Jun 2, 2022 at 3:11 PM Bruce Richardson
<bruce.richardson@intel.com> wrote:
>
> On Thu, Jun 02, 2022 at 02:53:55PM +0530, jerinj@marvell.com wrote:
> > From: Jerin Jacob <jerinj@marvell.com>
> >
> > By default, ccache is not used for cross build[1].
> > Update all cross files to use ccache if it is available
> > in build machine.
> >
> > [1]
> > https://mesonbuild.com/Machine-files.html
> >
> > Signed-off-by: Jerin Jacob <jerinj@marvell.com>
>
> Does this still work even if ccache is not available? That's not fully

Yes.

> clear from the docs, but it seems to be that if an array is passed the
> whole array is used as the command, rather than just one element of the
> array. That would imply that cross-builds now require ccache. Is that
> acceptable?

I have removed ccache from the build machine still it works.

>
> /Bruce
>

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

* Re: [dpdk-dev] [PATCH v1] build: ccache support for cross build
  2022-06-02  9:43   ` Jerin Jacob
@ 2022-06-02 10:55     ` Thomas Monjalon
  2022-06-02 12:00       ` Jerin Jacob
  0 siblings, 1 reply; 15+ messages in thread
From: Thomas Monjalon @ 2022-06-02 10:55 UTC (permalink / raw)
  To: Bruce Richardson, Jerin Jacob
  Cc: Jerin Jacob, dpdk-dev, Ruifeng Wang, Jan Viktorin,
	David Christensen, Konstantin Ananyev, David Marchand,
	Juraj Linkeš,
	fengchengwen

02/06/2022 11:43, Jerin Jacob:
> On Thu, Jun 2, 2022 at 3:11 PM Bruce Richardson
> <bruce.richardson@intel.com> wrote:
> >
> > On Thu, Jun 02, 2022 at 02:53:55PM +0530, jerinj@marvell.com wrote:
> > > From: Jerin Jacob <jerinj@marvell.com>
> > >
> > > By default, ccache is not used for cross build[1].
> > > Update all cross files to use ccache if it is available
> > > in build machine.
> > >
> > > [1]
> > > https://mesonbuild.com/Machine-files.html
> > >
> > > Signed-off-by: Jerin Jacob <jerinj@marvell.com>
> >
> > Does this still work even if ccache is not available? That's not fully
> 
> Yes.
> 
> > clear from the docs, but it seems to be that if an array is passed the
> > whole array is used as the command, rather than just one element of the
> > array. That would imply that cross-builds now require ccache. Is that
> > acceptable?
> 
> I have removed ccache from the build machine still it works.

I don't understand why it works without ccache.

In general, I would prefer we have a mechanism to update the cross file
on the fly, depending on the setup.
We have this for toolchain prefix name.
The prefix depends on where the toochain comes from.
In a "normal" build system, we set the prefix with an environment variable,
not by writing a file.



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

* Re: [dpdk-dev] [PATCH v1] build: ccache support for cross build
  2022-06-02 10:55     ` Thomas Monjalon
@ 2022-06-02 12:00       ` Jerin Jacob
  2022-06-02 13:33         ` Bruce Richardson
  2022-06-08  8:22         ` Jerin Jacob
  0 siblings, 2 replies; 15+ messages in thread
From: Jerin Jacob @ 2022-06-02 12:00 UTC (permalink / raw)
  To: Thomas Monjalon
  Cc: Bruce Richardson, Jerin Jacob, dpdk-dev, Ruifeng Wang,
	Jan Viktorin, David Christensen, Konstantin Ananyev,
	David Marchand, Juraj Linkeš,
	fengchengwen

On Thu, Jun 2, 2022 at 4:25 PM Thomas Monjalon <thomas@monjalon.net> wrote:
>
> 02/06/2022 11:43, Jerin Jacob:
> > On Thu, Jun 2, 2022 at 3:11 PM Bruce Richardson
> > <bruce.richardson@intel.com> wrote:
> > >
> > > On Thu, Jun 02, 2022 at 02:53:55PM +0530, jerinj@marvell.com wrote:
> > > > From: Jerin Jacob <jerinj@marvell.com>
> > > >
> > > > By default, ccache is not used for cross build[1].
> > > > Update all cross files to use ccache if it is available
> > > > in build machine.
> > > >
> > > > [1]
> > > > https://mesonbuild.com/Machine-files.html
> > > >
> > > > Signed-off-by: Jerin Jacob <jerinj@marvell.com>
> > >
> > > Does this still work even if ccache is not available? That's not fully
> >
> > Yes.
> >
> > > clear from the docs, but it seems to be that if an array is passed the
> > > whole array is used as the command, rather than just one element of the
> > > array. That would imply that cross-builds now require ccache. Is that
> > > acceptable?
> >
> > I have removed ccache from the build machine still it works.
>
> I don't understand why it works without ccache.

Meson is detecting valid compiler prefix. ccache is one of them.

See
https://github.com/fabio-porcedda/meson/commit/44db495f5ece43645ca3994dc95895c76a828530
https://github.com/mesonbuild/meson/issues/1392



>
> In general, I would prefer we have a mechanism to update the cross file
> on the fly, depending on the setup.

I believe, It would be a departure from the meson cross-file concept.

> We have this for toolchain prefix name.
> The prefix depends on where the toochain comes from.
> In a "normal" build system, we set the prefix with an environment variable,
> not by writing a file.
>
>

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

* Re: [dpdk-dev] [PATCH v1] build: ccache support for cross build
  2022-06-02 12:00       ` Jerin Jacob
@ 2022-06-02 13:33         ` Bruce Richardson
  2022-06-08  8:22         ` Jerin Jacob
  1 sibling, 0 replies; 15+ messages in thread
From: Bruce Richardson @ 2022-06-02 13:33 UTC (permalink / raw)
  To: Jerin Jacob
  Cc: Thomas Monjalon, Jerin Jacob, dpdk-dev, Ruifeng Wang,
	Jan Viktorin, David Christensen, Konstantin Ananyev,
	David Marchand, Juraj Linkeš,
	fengchengwen

On Thu, Jun 02, 2022 at 05:30:36PM +0530, Jerin Jacob wrote:
> On Thu, Jun 2, 2022 at 4:25 PM Thomas Monjalon <thomas@monjalon.net> wrote:
> >
> > 02/06/2022 11:43, Jerin Jacob:
> > > On Thu, Jun 2, 2022 at 3:11 PM Bruce Richardson
> > > <bruce.richardson@intel.com> wrote:
> > > >
> > > > On Thu, Jun 02, 2022 at 02:53:55PM +0530, jerinj@marvell.com wrote:
> > > > > From: Jerin Jacob <jerinj@marvell.com>
> > > > >
> > > > > By default, ccache is not used for cross build[1].
> > > > > Update all cross files to use ccache if it is available
> > > > > in build machine.
> > > > >
> > > > > [1]
> > > > > https://mesonbuild.com/Machine-files.html
> > > > >
> > > > > Signed-off-by: Jerin Jacob <jerinj@marvell.com>
> > > >
> > > > Does this still work even if ccache is not available? That's not fully
> > >
> > > Yes.
> > >
> > > > clear from the docs, but it seems to be that if an array is passed the
> > > > whole array is used as the command, rather than just one element of the
> > > > array. That would imply that cross-builds now require ccache. Is that
> > > > acceptable?
> > >
> > > I have removed ccache from the build machine still it works.
> >
> > I don't understand why it works without ccache.
> 
> Meson is detecting valid compiler prefix. ccache is one of them.
> 
> See
> https://github.com/fabio-porcedda/meson/commit/44db495f5ece43645ca3994dc95895c76a828530
> https://github.com/mesonbuild/meson/issues/1392
> 
> 
> 
> >
> > In general, I would prefer we have a mechanism to update the cross file
> > on the fly, depending on the setup.
> 
> I believe, It would be a departure from the meson cross-file concept.
> 
I don't see why we could script it and use it if people wanted. The
cross-file used should be stored in the build directory, so it's associated
with the build.

/Bruce

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

* Re: [dpdk-dev] [PATCH v1] build: ccache support for cross build
  2022-06-02 12:00       ` Jerin Jacob
  2022-06-02 13:33         ` Bruce Richardson
@ 2022-06-08  8:22         ` Jerin Jacob
  2022-06-08  8:30           ` Thomas Monjalon
  1 sibling, 1 reply; 15+ messages in thread
From: Jerin Jacob @ 2022-06-08  8:22 UTC (permalink / raw)
  To: Thomas Monjalon
  Cc: Bruce Richardson, Jerin Jacob, dpdk-dev, Ruifeng Wang,
	Jan Viktorin, David Christensen, Konstantin Ananyev,
	David Marchand, Juraj Linkeš,
	fengchengwen

On Thu, Jun 2, 2022 at 5:30 PM Jerin Jacob <jerinjacobk@gmail.com> wrote:
>
> On Thu, Jun 2, 2022 at 4:25 PM Thomas Monjalon <thomas@monjalon.net> wrote:
> >
> > 02/06/2022 11:43, Jerin Jacob:
> > > On Thu, Jun 2, 2022 at 3:11 PM Bruce Richardson
> > > <bruce.richardson@intel.com> wrote:
> > > >
> > > > On Thu, Jun 02, 2022 at 02:53:55PM +0530, jerinj@marvell.com wrote:
> > > > > From: Jerin Jacob <jerinj@marvell.com>
> > > > >
> > > > > By default, ccache is not used for cross build[1].
> > > > > Update all cross files to use ccache if it is available
> > > > > in build machine.
> > > > >
> > > > > [1]
> > > > > https://mesonbuild.com/Machine-files.html
> > > > >
> > > > > Signed-off-by: Jerin Jacob <jerinj@marvell.com>
> > > >
> > > > Does this still work even if ccache is not available? That's not fully
> > >
> > > Yes.
> > >
> > > > clear from the docs, but it seems to be that if an array is passed the
> > > > whole array is used as the command, rather than just one element of the
> > > > array. That would imply that cross-builds now require ccache. Is that
> > > > acceptable?
> > >
> > > I have removed ccache from the build machine still it works.
> >
> > I don't understand why it works without ccache.
>
> Meson is detecting valid compiler prefix. ccache is one of them.
>
> See
> https://github.com/fabio-porcedda/meson/commit/44db495f5ece43645ca3994dc95895c76a828530
> https://github.com/mesonbuild/meson/issues/1392

I hope there are no other review comments to fix it for this patch.
Since it is improving the build time for cross-build. If there is no
objection to this patch, Please merge it.


>
>
>
> >
> > In general, I would prefer we have a mechanism to update the cross file
> > on the fly, depending on the setup.
>
> I believe, It would be a departure from the meson cross-file concept.
>
> > We have this for toolchain prefix name.
> > The prefix depends on where the toochain comes from.
> > In a "normal" build system, we set the prefix with an environment variable,
> > not by writing a file.
> >
> >

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

* Re: [dpdk-dev] [PATCH v1] build: ccache support for cross build
  2022-06-08  8:22         ` Jerin Jacob
@ 2022-06-08  8:30           ` Thomas Monjalon
  2022-06-08 17:16             ` Jerin Jacob
  0 siblings, 1 reply; 15+ messages in thread
From: Thomas Monjalon @ 2022-06-08  8:30 UTC (permalink / raw)
  To: Jerin Jacob
  Cc: Bruce Richardson, Jerin Jacob, dpdk-dev, Ruifeng Wang,
	Jan Viktorin, David Christensen, Konstantin Ananyev,
	David Marchand, Juraj Linkeš,
	fengchengwen

08/06/2022 10:22, Jerin Jacob:
> On Thu, Jun 2, 2022 at 5:30 PM Jerin Jacob <jerinjacobk@gmail.com> wrote:
> >
> > On Thu, Jun 2, 2022 at 4:25 PM Thomas Monjalon <thomas@monjalon.net> wrote:
> > >
> > > 02/06/2022 11:43, Jerin Jacob:
> > > > On Thu, Jun 2, 2022 at 3:11 PM Bruce Richardson
> > > > <bruce.richardson@intel.com> wrote:
> > > > >
> > > > > On Thu, Jun 02, 2022 at 02:53:55PM +0530, jerinj@marvell.com wrote:
> > > > > > From: Jerin Jacob <jerinj@marvell.com>
> > > > > >
> > > > > > By default, ccache is not used for cross build[1].
> > > > > > Update all cross files to use ccache if it is available
> > > > > > in build machine.
> > > > > >
> > > > > > [1]
> > > > > > https://mesonbuild.com/Machine-files.html
> > > > > >
> > > > > > Signed-off-by: Jerin Jacob <jerinj@marvell.com>
> > > > >
> > > > > Does this still work even if ccache is not available? That's not fully
> > > >
> > > > Yes.
> > > >
> > > > > clear from the docs, but it seems to be that if an array is passed the
> > > > > whole array is used as the command, rather than just one element of the
> > > > > array. That would imply that cross-builds now require ccache. Is that
> > > > > acceptable?
> > > >
> > > > I have removed ccache from the build machine still it works.
> > >
> > > I don't understand why it works without ccache.
> >
> > Meson is detecting valid compiler prefix. ccache is one of them.
> >
> > See
> > https://github.com/fabio-porcedda/meson/commit/44db495f5ece43645ca3994dc95895c76a828530
> > https://github.com/mesonbuild/meson/issues/1392
> 
> I hope there are no other review comments to fix it for this patch.
> Since it is improving the build time for cross-build. If there is no
> objection to this patch, Please merge it.

I've tested it now and I see a big blocker.
This patch is breaking the use of devtools/test-meson-builds.sh
so I cannot merge it as-is, sorry.




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

* [dpdk-dev] [PATCH v2] build: ccache support for cross build
  2022-06-02  9:23 [dpdk-dev] [PATCH v1] build: ccache support for cross build jerinj
  2022-06-02  9:41 ` Bruce Richardson
@ 2022-06-08 17:13 ` jerinj
  2022-06-09  1:44   ` fengchengwen
                     ` (2 more replies)
  1 sibling, 3 replies; 15+ messages in thread
From: jerinj @ 2022-06-08 17:13 UTC (permalink / raw)
  To: dev, Jan Viktorin, Ruifeng Wang, Bruce Richardson,
	David Christensen, Stanislaw Kardach, Konstantin Ananyev
  Cc: thomas, david.marchand, juraj.linkes, fengchengwen, Jerin Jacob

From: Jerin Jacob <jerinj@marvell.com>

By default, ccache is not used for cross build[1].
Update all cross files to use ccache if it is available
in build machine.

Also, updated devtools/test-meson-builds.sh
script to find the correct DPDK_TARGET due to
change in cross file syntax.

[1]
https://mesonbuild.com/Machine-files.html

Signed-off-by: Jerin Jacob <jerinj@marvell.com>
---

v2:
- Rebased with master, therefore added update riscv64 cross files
- Fixed DPDK_TARGET detection with devtools/test-meson-builds.sh 
due to cross file synatx update.

 config/arm/arm32_armv8_linux_gcc           | 4 ++--
 config/arm/arm64_armada_linux_gcc          | 4 ++--
 config/arm/arm64_armv8_linux_clang_ubuntu  | 4 ++--
 config/arm/arm64_armv8_linux_gcc           | 4 ++--
 config/arm/arm64_bluefield_linux_gcc       | 4 ++--
 config/arm/arm64_centriq2400_linux_gcc     | 4 ++--
 config/arm/arm64_cn10k_linux_gcc           | 4 ++--
 config/arm/arm64_cn9k_linux_gcc            | 4 ++--
 config/arm/arm64_dpaa_linux_gcc            | 4 ++--
 config/arm/arm64_emag_linux_gcc            | 4 ++--
 config/arm/arm64_graviton2_linux_gcc       | 4 ++--
 config/arm/arm64_kunpeng920_linux_gcc      | 4 ++--
 config/arm/arm64_kunpeng930_linux_gcc      | 4 ++--
 config/arm/arm64_n1sdp_linux_gcc           | 4 ++--
 config/arm/arm64_n2_linux_gcc              | 4 ++--
 config/arm/arm64_stingray_linux_gcc        | 4 ++--
 config/arm/arm64_thunderx2_linux_gcc       | 4 ++--
 config/arm/arm64_thunderxt83_linux_gcc     | 4 ++--
 config/arm/arm64_thunderxt88_linux_gcc     | 4 ++--
 config/ppc/ppc64le-power8-linux-gcc        | 4 ++--
 config/ppc/ppc64le-power8-linux-gcc-ubuntu | 4 ++--
 config/riscv/riscv64_linux_gcc             | 4 ++--
 config/riscv/riscv64_sifive_u740_linux_gcc | 4 ++--
 config/x86/cross-mingw                     | 4 ++--
 devtools/test-meson-builds.sh              | 3 ++-
 25 files changed, 50 insertions(+), 49 deletions(-)

diff --git a/config/arm/arm32_armv8_linux_gcc b/config/arm/arm32_armv8_linux_gcc
index 89f8a12881..7f2977e49d 100644
--- a/config/arm/arm32_armv8_linux_gcc
+++ b/config/arm/arm32_armv8_linux_gcc
@@ -1,6 +1,6 @@
 [binaries]
-c = 'arm-linux-gnueabihf-gcc'
-cpp = 'arm-linux-gnueabihf-cpp'
+c = ['ccache', 'arm-linux-gnueabihf-gcc']
+cpp = ['ccache', 'arm-linux-gnueabihf-cpp']
 ar = 'arm-linux-gnueabihf-gcc-ar'
 strip = 'arm-linux-gnueabihf-strip'
 pkgconfig = 'arm-linux-gnueabihf-pkg-config'
diff --git a/config/arm/arm64_armada_linux_gcc b/config/arm/arm64_armada_linux_gcc
index 301418949b..1566999101 100644
--- a/config/arm/arm64_armada_linux_gcc
+++ b/config/arm/arm64_armada_linux_gcc
@@ -1,6 +1,6 @@
 [binaries]
-c = 'aarch64-linux-gnu-gcc'
-cpp = 'aarch64-linux-gnu-cpp'
+c = ['ccache', 'aarch64-linux-gnu-gcc']
+cpp = ['ccache', 'aarch64-linux-gnu-cpp']
 ar = 'aarch64-linux-gnu-ar'
 as = 'aarch64-linux-gnu-as'
 strip = 'aarch64-linux-gnu-strip'
diff --git a/config/arm/arm64_armv8_linux_clang_ubuntu b/config/arm/arm64_armv8_linux_clang_ubuntu
index db488d75f4..86ae43937b 100644
--- a/config/arm/arm64_armv8_linux_clang_ubuntu
+++ b/config/arm/arm64_armv8_linux_clang_ubuntu
@@ -1,6 +1,6 @@
 [binaries]
-c = 'clang'
-cpp = 'clang++'
+c = ['ccache', 'clang']
+cpp = ['ccache', 'clang++']
 ar = 'llvm-ar'
 strip = 'llvm-strip'
 llvm-config = 'llvm-config'
diff --git a/config/arm/arm64_armv8_linux_gcc b/config/arm/arm64_armv8_linux_gcc
index 5391d35389..048c2d9f29 100644
--- a/config/arm/arm64_armv8_linux_gcc
+++ b/config/arm/arm64_armv8_linux_gcc
@@ -1,6 +1,6 @@
 [binaries]
-c = 'aarch64-linux-gnu-gcc'
-cpp = 'aarch64-linux-gnu-cpp'
+c = ['ccache', 'aarch64-linux-gnu-gcc']
+cpp = ['ccache', 'aarch64-linux-gnu-cpp']
 ar = 'aarch64-linux-gnu-gcc-ar'
 strip = 'aarch64-linux-gnu-strip'
 pkgconfig = 'aarch64-linux-gnu-pkg-config'
diff --git a/config/arm/arm64_bluefield_linux_gcc b/config/arm/arm64_bluefield_linux_gcc
index 248a9f031a..38df3c198b 100644
--- a/config/arm/arm64_bluefield_linux_gcc
+++ b/config/arm/arm64_bluefield_linux_gcc
@@ -1,6 +1,6 @@
 [binaries]
-c = 'aarch64-linux-gnu-gcc'
-cpp = 'aarch64-linux-gnu-cpp'
+c = ['ccache', 'aarch64-linux-gnu-gcc']
+cpp = ['ccache', 'aarch64-linux-gnu-cpp']
 ar = 'aarch64-linux-gnu-gcc-ar'
 strip = 'aarch64-linux-gnu-strip'
 pkgconfig = 'aarch64-linux-gnu-pkg-config'
diff --git a/config/arm/arm64_centriq2400_linux_gcc b/config/arm/arm64_centriq2400_linux_gcc
index dfe9110331..0966eef2c5 100644
--- a/config/arm/arm64_centriq2400_linux_gcc
+++ b/config/arm/arm64_centriq2400_linux_gcc
@@ -1,6 +1,6 @@
 [binaries]
-c = 'aarch64-linux-gnu-gcc'
-cpp = 'aarch64-linux-gnu-cpp'
+c = ['ccache', 'aarch64-linux-gnu-gcc']
+cpp = ['ccache', 'aarch64-linux-gnu-cpp']
 ar = 'aarch64-linux-gnu-gcc-ar'
 strip = 'aarch64-linux-gnu-strip'
 pkgconfig = 'aarch64-linux-gnu-pkg-config'
diff --git a/config/arm/arm64_cn10k_linux_gcc b/config/arm/arm64_cn10k_linux_gcc
index a3578c03a1..201e0ccd59 100644
--- a/config/arm/arm64_cn10k_linux_gcc
+++ b/config/arm/arm64_cn10k_linux_gcc
@@ -1,6 +1,6 @@
 [binaries]
-c = 'aarch64-linux-gnu-gcc'
-cpp = 'aarch64-linux-gnu-cpp'
+c = ['ccache', 'aarch64-linux-gnu-gcc']
+cpp = ['ccache', 'aarch64-linux-gnu-cpp']
 ar = 'aarch64-linux-gnu-gcc-ar'
 strip = 'aarch64-linux-gnu-strip'
 pkgconfig = 'aarch64-linux-gnu-pkg-config'
diff --git a/config/arm/arm64_cn9k_linux_gcc b/config/arm/arm64_cn9k_linux_gcc
index a94b44a551..a9b4d51958 100644
--- a/config/arm/arm64_cn9k_linux_gcc
+++ b/config/arm/arm64_cn9k_linux_gcc
@@ -1,6 +1,6 @@
 [binaries]
-c = 'aarch64-linux-gnu-gcc'
-cpp = 'aarch64-linux-gnu-cpp'
+c = ['ccache', 'aarch64-linux-gnu-gcc']
+cpp = ['ccache', 'aarch64-linux-gnu-cpp']
 ar = 'aarch64-linux-gnu-gcc-ar'
 strip = 'aarch64-linux-gnu-strip'
 pkgconfig = 'aarch64-linux-gnu-pkg-config'
diff --git a/config/arm/arm64_dpaa_linux_gcc b/config/arm/arm64_dpaa_linux_gcc
index e9d5fd31fc..0d5761bd72 100644
--- a/config/arm/arm64_dpaa_linux_gcc
+++ b/config/arm/arm64_dpaa_linux_gcc
@@ -1,6 +1,6 @@
 [binaries]
-c = 'aarch64-linux-gnu-gcc'
-cpp = 'aarch64-linux-gnu-cpp'
+c = ['ccache', 'aarch64-linux-gnu-gcc']
+cpp = ['ccache', 'aarch64-linux-gnu-cpp']
 ar = 'aarch64-linux-gnu-ar'
 as = 'aarch64-linux-gnu-as'
 strip = 'aarch64-linux-gnu-strip'
diff --git a/config/arm/arm64_emag_linux_gcc b/config/arm/arm64_emag_linux_gcc
index 9cdd931180..16ec49fc32 100644
--- a/config/arm/arm64_emag_linux_gcc
+++ b/config/arm/arm64_emag_linux_gcc
@@ -1,6 +1,6 @@
 [binaries]
-c = 'aarch64-linux-gnu-gcc'
-cpp = 'aarch64-linux-gnu-cpp'
+c = ['ccache', 'aarch64-linux-gnu-gcc']
+cpp = ['ccache', 'aarch64-linux-gnu-cpp']
 ar = 'aarch64-linux-gnu-gcc-ar'
 strip = 'aarch64-linux-gnu-strip'
 pkgconfig = 'aarch64-linux-gnu-pkg-config'
diff --git a/config/arm/arm64_graviton2_linux_gcc b/config/arm/arm64_graviton2_linux_gcc
index 8016fd236c..094c540f50 100644
--- a/config/arm/arm64_graviton2_linux_gcc
+++ b/config/arm/arm64_graviton2_linux_gcc
@@ -1,6 +1,6 @@
 [binaries]
-c = 'aarch64-linux-gnu-gcc'
-cpp = 'aarch64-linux-gnu-cpp'
+c = ['ccache', 'aarch64-linux-gnu-gcc']
+cpp = ['ccache', 'aarch64-linux-gnu-cpp']
 ar = 'aarch64-linux-gnu-gcc-ar'
 strip = 'aarch64-linux-gnu-strip'
 pkgconfig = 'aarch64-linux-gnu-pkg-config'
diff --git a/config/arm/arm64_kunpeng920_linux_gcc b/config/arm/arm64_kunpeng920_linux_gcc
index c4685b2458..fc057c9063 100644
--- a/config/arm/arm64_kunpeng920_linux_gcc
+++ b/config/arm/arm64_kunpeng920_linux_gcc
@@ -1,6 +1,6 @@
 [binaries]
-c = 'aarch64-linux-gnu-gcc'
-cpp = 'aarch64-linux-gnu-cpp'
+c = ['ccache', 'aarch64-linux-gnu-gcc']
+cpp = ['ccache', 'aarch64-linux-gnu-cpp']
 ar = 'aarch64-linux-gnu-gcc-ar'
 strip = 'aarch64-linux-gnu-strip'
 pkgconfig = 'aarch64-linux-gnu-pkg-config'
diff --git a/config/arm/arm64_kunpeng930_linux_gcc b/config/arm/arm64_kunpeng930_linux_gcc
index fb85d2d710..5f43941fae 100644
--- a/config/arm/arm64_kunpeng930_linux_gcc
+++ b/config/arm/arm64_kunpeng930_linux_gcc
@@ -1,6 +1,6 @@
 [binaries]
-c = 'aarch64-linux-gnu-gcc'
-cpp = 'aarch64-linux-gnu-cpp'
+c = ['ccache', 'aarch64-linux-gnu-gcc']
+cpp = ['ccache', 'aarch64-linux-gnu-cpp']
 ar = 'aarch64-linux-gnu-gcc-ar'
 strip = 'aarch64-linux-gnu-strip'
 pkgconfig = 'aarch64-linux-gnu-pkg-config'
diff --git a/config/arm/arm64_n1sdp_linux_gcc b/config/arm/arm64_n1sdp_linux_gcc
index 0df283e2f4..fc123ab53f 100644
--- a/config/arm/arm64_n1sdp_linux_gcc
+++ b/config/arm/arm64_n1sdp_linux_gcc
@@ -1,6 +1,6 @@
 [binaries]
-c = 'aarch64-linux-gnu-gcc'
-cpp = 'aarch64-linux-gnu-cpp'
+c = ['ccache', 'aarch64-linux-gnu-gcc']
+cpp = ['ccache', 'aarch64-linux-gnu-cpp']
 ar = 'aarch64-linux-gnu-gcc-ar'
 strip = 'aarch64-linux-gnu-strip'
 pkgconfig = 'aarch64-linux-gnu-pkg-config'
diff --git a/config/arm/arm64_n2_linux_gcc b/config/arm/arm64_n2_linux_gcc
index 036aee2b0a..930bd5c236 100644
--- a/config/arm/arm64_n2_linux_gcc
+++ b/config/arm/arm64_n2_linux_gcc
@@ -1,6 +1,6 @@
 [binaries]
-c = 'aarch64-linux-gnu-gcc'
-cpp = 'aarch64-linux-gnu-cpp'
+c = ['ccache', 'aarch64-linux-gnu-gcc']
+cpp = ['ccache', 'aarch64-linux-gnu-cpp']
 ar = 'aarch64-linux-gnu-gcc-ar'
 strip = 'aarch64-linux-gnu-strip'
 pkgconfig = 'aarch64-linux-gnu-pkg-config'
diff --git a/config/arm/arm64_stingray_linux_gcc b/config/arm/arm64_stingray_linux_gcc
index 319a4a151d..5dfcd974fd 100644
--- a/config/arm/arm64_stingray_linux_gcc
+++ b/config/arm/arm64_stingray_linux_gcc
@@ -1,6 +1,6 @@
 [binaries]
-c = 'aarch64-linux-gnu-gcc'
-cpp = 'aarch64-linux-gnu-cpp'
+c = ['ccache', 'aarch64-linux-gnu-gcc']
+cpp = ['ccache', 'aarch64-linux-gnu-cpp']
 ar = 'aarch64-linux-gnu-gcc-ar'
 strip = 'aarch64-linux-gnu-strip'
 pkgconfig = 'aarch64-linux-gnu-pkg-config'
diff --git a/config/arm/arm64_thunderx2_linux_gcc b/config/arm/arm64_thunderx2_linux_gcc
index 69c71cbc82..c1f5995d93 100644
--- a/config/arm/arm64_thunderx2_linux_gcc
+++ b/config/arm/arm64_thunderx2_linux_gcc
@@ -1,6 +1,6 @@
 [binaries]
-c = 'aarch64-linux-gnu-gcc'
-cpp = 'aarch64-linux-gnu-cpp'
+c = ['ccache', 'aarch64-linux-gnu-gcc']
+cpp = ['ccache', 'aarch64-linux-gnu-cpp']
 ar = 'aarch64-linux-gnu-gcc-ar'
 strip = 'aarch64-linux-gnu-strip'
 pkgconfig = 'aarch64-linux-gnu-pkg-config'
diff --git a/config/arm/arm64_thunderxt83_linux_gcc b/config/arm/arm64_thunderxt83_linux_gcc
index 47102c900b..52746e2e59 100644
--- a/config/arm/arm64_thunderxt83_linux_gcc
+++ b/config/arm/arm64_thunderxt83_linux_gcc
@@ -1,6 +1,6 @@
 [binaries]
-c = 'aarch64-linux-gnu-gcc'
-cpp = 'aarch64-linux-gnu-cpp'
+c = ['ccache', 'aarch64-linux-gnu-gcc']
+cpp = ['ccache', 'aarch64-linux-gnu-cpp']
 ar = 'aarch64-linux-gnu-gcc-ar'
 strip = 'aarch64-linux-gnu-strip'
 pkgconfig = 'aarch64-linux-gnu-pkg-config'
diff --git a/config/arm/arm64_thunderxt88_linux_gcc b/config/arm/arm64_thunderxt88_linux_gcc
index 372097ba01..fed7eb791e 100644
--- a/config/arm/arm64_thunderxt88_linux_gcc
+++ b/config/arm/arm64_thunderxt88_linux_gcc
@@ -1,6 +1,6 @@
 [binaries]
-c = 'aarch64-linux-gnu-gcc'
-cpp = 'aarch64-linux-gnu-cpp'
+c = ['ccache', 'aarch64-linux-gnu-gcc']
+cpp = ['ccache', 'aarch64-linux-gnu-cpp']
 ar = 'aarch64-linux-gnu-gcc-ar'
 strip = 'aarch64-linux-gnu-strip'
 pkgconfig = 'aarch64-linux-gnu-pkg-config'
diff --git a/config/ppc/ppc64le-power8-linux-gcc b/config/ppc/ppc64le-power8-linux-gcc
index 51f7ceebf3..465044e427 100644
--- a/config/ppc/ppc64le-power8-linux-gcc
+++ b/config/ppc/ppc64le-power8-linux-gcc
@@ -1,6 +1,6 @@
 [binaries]
-c = 'powerpc64le-linux-gcc'
-cpp = 'powerpc64le-linux-cpp'
+c = ['ccache', 'powerpc64le-linux-gcc']
+cpp = ['ccache', 'powerpc64le-linux-cpp']
 ar = 'powerpc64le-linux-gcc-ar'
 strip = 'powerpc64le-linux-strip'
 
diff --git a/config/ppc/ppc64le-power8-linux-gcc-ubuntu b/config/ppc/ppc64le-power8-linux-gcc-ubuntu
index 803c612cbc..44d7e0100a 100644
--- a/config/ppc/ppc64le-power8-linux-gcc-ubuntu
+++ b/config/ppc/ppc64le-power8-linux-gcc-ubuntu
@@ -1,6 +1,6 @@
 [binaries]
-c = 'powerpc64le-linux-gnu-gcc'
-cpp = 'powerpc64le-linux-gnu-cpp'
+c = ['ccache', 'powerpc64le-linux-gnu-gcc']
+cpp = ['ccache', 'powerpc64le-linux-gnu-cpp']
 ar = 'powerpc64le-linux-gnu-ar'
 strip = 'powerpc64le-linux-gnu-strip'
 
diff --git a/config/riscv/riscv64_linux_gcc b/config/riscv/riscv64_linux_gcc
index ed4d3ce7fb..5e58781193 100644
--- a/config/riscv/riscv64_linux_gcc
+++ b/config/riscv/riscv64_linux_gcc
@@ -1,6 +1,6 @@
 [binaries]
-c = 'riscv64-linux-gnu-gcc'
-cpp = 'riscv64-linux-gnu-g++'
+c = ['ccache', 'riscv64-linux-gnu-gcc']
+cpp = ['ccache', 'riscv64-linux-gnu-g++']
 ar = 'riscv64-linux-gnu-ar'
 strip = 'riscv64-linux-gnu-strip'
 pcap-config = ''
diff --git a/config/riscv/riscv64_sifive_u740_linux_gcc b/config/riscv/riscv64_sifive_u740_linux_gcc
index 3d1905c434..58d2c92f8c 100644
--- a/config/riscv/riscv64_sifive_u740_linux_gcc
+++ b/config/riscv/riscv64_sifive_u740_linux_gcc
@@ -1,6 +1,6 @@
 [binaries]
-c = 'riscv64-unknown-linux-gnu-gcc'
-cpp = 'riscv64-unknown-linux-gnu-g++'
+c = ['ccache', 'riscv64-unknown-linux-gnu-gcc']
+cpp = ['ccache', 'riscv64-unknown-linux-gnu-g++']
 ar = 'riscv64-unknown-linux-gnu-ar'
 strip = 'riscv64-unknown-linux-gnu-strip'
 pcap-config = ''
diff --git a/config/x86/cross-mingw b/config/x86/cross-mingw
index 09f7af0928..cddebda5b5 100644
--- a/config/x86/cross-mingw
+++ b/config/x86/cross-mingw
@@ -1,6 +1,6 @@
 [binaries]
-c = 'x86_64-w64-mingw32-gcc'
-cpp = 'x86_64-w64-mingw32-g++'
+c = ['ccache', 'x86_64-w64-mingw32-gcc']
+cpp = ['ccache', 'x86_64-w64-mingw32-g++']
 ld = 'x86_64-w64-mingw32-ld'
 ar = 'x86_64-w64-mingw32-ar'
 strip = 'x86_64-w64-mingw32-strip'
diff --git a/devtools/test-meson-builds.sh b/devtools/test-meson-builds.sh
index f732dccf6c..e44a2b1995 100755
--- a/devtools/test-meson-builds.sh
+++ b/devtools/test-meson-builds.sh
@@ -160,7 +160,8 @@ build () # <directory> <target cc | cross file> <ABI check> [meson options]
 	if [ -n "$crossfile" ] ; then
 		cross="--cross-file $crossfile"
 		targetcc=$(sed -n 's,^c[[:space:]]*=[[:space:]]*,,p' \
-			$crossfile | tr -d "'" | tr -d '"')
+			$crossfile | cut -d ',' -f 2 | \
+			tr -d "'" | tr -d '"' | tr -d ']' | tr -d ' ')
 	else
 		cross=
 	fi
-- 
2.36.1


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

* Re: [dpdk-dev] [PATCH v1] build: ccache support for cross build
  2022-06-08  8:30           ` Thomas Monjalon
@ 2022-06-08 17:16             ` Jerin Jacob
  2022-06-08 18:30               ` Stanisław Kardach
  0 siblings, 1 reply; 15+ messages in thread
From: Jerin Jacob @ 2022-06-08 17:16 UTC (permalink / raw)
  To: Thomas Monjalon
  Cc: Bruce Richardson, Jerin Jacob, dpdk-dev, Ruifeng Wang,
	Jan Viktorin, David Christensen, Konstantin Ananyev,
	David Marchand, Juraj Linkeš,
	fengchengwen

On Wed, Jun 8, 2022 at 2:00 PM Thomas Monjalon <thomas@monjalon.net> wrote:
>
> 08/06/2022 10:22, Jerin Jacob:
> > On Thu, Jun 2, 2022 at 5:30 PM Jerin Jacob <jerinjacobk@gmail.com> wrote:
> > >
> > > On Thu, Jun 2, 2022 at 4:25 PM Thomas Monjalon <thomas@monjalon.net> wrote:
> > > >
> > > > 02/06/2022 11:43, Jerin Jacob:
> > > > > On Thu, Jun 2, 2022 at 3:11 PM Bruce Richardson
> > > > > <bruce.richardson@intel.com> wrote:
> > > > > >
> > > > > > On Thu, Jun 02, 2022 at 02:53:55PM +0530, jerinj@marvell.com wrote:
> > > > > > > From: Jerin Jacob <jerinj@marvell.com>
> > > > > > >
> > > > > > > By default, ccache is not used for cross build[1].
> > > > > > > Update all cross files to use ccache if it is available
> > > > > > > in build machine.
> > > > > > >
> > > > > > > [1]
> > > > > > > https://mesonbuild.com/Machine-files.html
> > > > > > >
> > > > > > > Signed-off-by: Jerin Jacob <jerinj@marvell.com>
> > > > > >
> > > > > > Does this still work even if ccache is not available? That's not fully
> > > > >
> > > > > Yes.
> > > > >
> > > > > > clear from the docs, but it seems to be that if an array is passed the
> > > > > > whole array is used as the command, rather than just one element of the
> > > > > > array. That would imply that cross-builds now require ccache. Is that
> > > > > > acceptable?
> > > > >
> > > > > I have removed ccache from the build machine still it works.
> > > >
> > > > I don't understand why it works without ccache.
> > >
> > > Meson is detecting valid compiler prefix. ccache is one of them.
> > >
> > > See
> > > https://github.com/fabio-porcedda/meson/commit/44db495f5ece43645ca3994dc95895c76a828530
> > > https://github.com/mesonbuild/meson/issues/1392
> >
> > I hope there are no other review comments to fix it for this patch.
> > Since it is improving the build time for cross-build. If there is no
> > objection to this patch, Please merge it.
>
> I've tested it now and I see a big blocker.
> This patch is breaking the use of devtools/test-meson-builds.sh
> so I cannot merge it as-is, sorry.

I assume you are referring to fixing the DPDK_TARGET update due to the
cross-file update.
If so, it is fixed in v2 at
http://patches.dpdk.org/project/dpdk/patch/20220608171304.945454-1-jerinj@marvell.com/

Thanks
>
>
>

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

* Re: [dpdk-dev] [PATCH v1] build: ccache support for cross build
  2022-06-08 17:16             ` Jerin Jacob
@ 2022-06-08 18:30               ` Stanisław Kardach
  0 siblings, 0 replies; 15+ messages in thread
From: Stanisław Kardach @ 2022-06-08 18:30 UTC (permalink / raw)
  To: Jerin Jacob
  Cc: Thomas Monjalon, Bruce Richardson, Jerin Jacob, dpdk-dev,
	Ruifeng Wang, Jan Viktorin, David Christensen,
	Konstantin Ananyev, David Marchand, Juraj Linkeš,
	fengchengwen

On Wed, Jun 8, 2022 at 7:17 PM Jerin Jacob <jerinjacobk@gmail.com> wrote:
>
> On Wed, Jun 8, 2022 at 2:00 PM Thomas Monjalon <thomas@monjalon.net> wrote:
> >
> > 08/06/2022 10:22, Jerin Jacob:
> > > On Thu, Jun 2, 2022 at 5:30 PM Jerin Jacob <jerinjacobk@gmail.com> wrote:
> > > >
> > > > On Thu, Jun 2, 2022 at 4:25 PM Thomas Monjalon <thomas@monjalon.net> wrote:
> > > > >
> > > > > 02/06/2022 11:43, Jerin Jacob:
> > > > > > On Thu, Jun 2, 2022 at 3:11 PM Bruce Richardson
> > > > > > <bruce.richardson@intel.com> wrote:
> > > > > > >
> > > > > > > On Thu, Jun 02, 2022 at 02:53:55PM +0530, jerinj@marvell.com wrote:
> > > > > > > > From: Jerin Jacob <jerinj@marvell.com>
> > > > > > > >
> > > > > > > > By default, ccache is not used for cross build[1].
> > > > > > > > Update all cross files to use ccache if it is available
> > > > > > > > in build machine.
> > > > > > > >
> > > > > > > > [1]
> > > > > > > > https://mesonbuild.com/Machine-files.html
> > > > > > > >
> > > > > > > > Signed-off-by: Jerin Jacob <jerinj@marvell.com>
> > > > > > >
> > > > > > > Does this still work even if ccache is not available? That's not fully
> > > > > >
> > > > > > Yes.
> > > > > >
> > > > > > > clear from the docs, but it seems to be that if an array is passed the
> > > > > > > whole array is used as the command, rather than just one element of the
> > > > > > > array. That would imply that cross-builds now require ccache. Is that
> > > > > > > acceptable?
> > > > > >
> > > > > > I have removed ccache from the build machine still it works.
> > > > >
> > > > > I don't understand why it works without ccache.
> > > >
> > > > Meson is detecting valid compiler prefix. ccache is one of them.
> > > >
> > > > See
> > > > https://github.com/fabio-porcedda/meson/commit/44db495f5ece43645ca3994dc95895c76a828530
> > > > https://github.com/mesonbuild/meson/issues/1392
> > >
> > > I hope there are no other review comments to fix it for this patch.
> > > Since it is improving the build time for cross-build. If there is no
> > > objection to this patch, Please merge it.
> >
> > I've tested it now and I see a big blocker.
> > This patch is breaking the use of devtools/test-meson-builds.sh
> > so I cannot merge it as-is, sorry.
>
> I assume you are referring to fixing the DPDK_TARGET update due to the
> cross-file update.
> If so, it is fixed in v2 at
> http://patches.dpdk.org/project/dpdk/patch/20220608171304.945454-1-jerinj@marvell.com/

I've just tested it on a clean Ubuntu 20.04 docker with only RISC-V
toolchain, no ccache and indeed compilation works. Both directly with
meson and via test-meson-builds.sh.
Seems like ccache is parsed in special way by meson as using any other
unknown command just fails meson configuration.
Also setting CC/CXX env variable makes meson bail (even if I use the
cross-file value), so I'm not sure if there is a better way to do it.

Acked-by: Stanislaw Kardach <kda@semihalf.com>

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

* Re: [dpdk-dev] [PATCH v2] build: ccache support for cross build
  2022-06-08 17:13 ` [dpdk-dev] [PATCH v2] " jerinj
@ 2022-06-09  1:44   ` fengchengwen
  2022-06-10  7:30   ` Ruifeng Wang
  2022-06-14 16:01   ` Thomas Monjalon
  2 siblings, 0 replies; 15+ messages in thread
From: fengchengwen @ 2022-06-09  1:44 UTC (permalink / raw)
  To: jerinj, dev, Jan Viktorin, Ruifeng Wang, Bruce Richardson,
	David Christensen, Stanislaw Kardach, Konstantin Ananyev
  Cc: thomas, david.marchand, juraj.linkes

Test with: arm64_kunpeng920/930 and gcc-7/10, also with ccache or no, all pass

Acked-by: Chengwen Feng <fengchengwen@huawei.com>


On 2022/6/9 1:13, jerinj@marvell.com wrote:
> From: Jerin Jacob <jerinj@marvell.com>
> 
> By default, ccache is not used for cross build[1].
> Update all cross files to use ccache if it is available
> in build machine.
> 
> Also, updated devtools/test-meson-builds.sh
> script to find the correct DPDK_TARGET due to
> change in cross file syntax.
> 
> [1]
> https://mesonbuild.com/Machine-files.html
> 
> Signed-off-by: Jerin Jacob <jerinj@marvell.com>
> ---
> 
> v2:
> - Rebased with master, therefore added update riscv64 cross files
> - Fixed DPDK_TARGET detection with devtools/test-meson-builds.sh 
> due to cross file synatx update.
> 
>  config/arm/arm32_armv8_linux_gcc           | 4 ++--
>  config/arm/arm64_armada_linux_gcc          | 4 ++--
>  config/arm/arm64_armv8_linux_clang_ubuntu  | 4 ++--
>  config/arm/arm64_armv8_linux_gcc           | 4 ++--
>  config/arm/arm64_bluefield_linux_gcc       | 4 ++--
>  config/arm/arm64_centriq2400_linux_gcc     | 4 ++--
>  config/arm/arm64_cn10k_linux_gcc           | 4 ++--
>  config/arm/arm64_cn9k_linux_gcc            | 4 ++--
>  config/arm/arm64_dpaa_linux_gcc            | 4 ++--
>  config/arm/arm64_emag_linux_gcc            | 4 ++--
>  config/arm/arm64_graviton2_linux_gcc       | 4 ++--
>  config/arm/arm64_kunpeng920_linux_gcc      | 4 ++--
>  config/arm/arm64_kunpeng930_linux_gcc      | 4 ++--

[snip]

> 


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

* RE: [dpdk-dev] [PATCH v2] build: ccache support for cross build
  2022-06-08 17:13 ` [dpdk-dev] [PATCH v2] " jerinj
  2022-06-09  1:44   ` fengchengwen
@ 2022-06-10  7:30   ` Ruifeng Wang
  2022-06-14 16:09     ` Thomas Monjalon
  2022-06-14 16:01   ` Thomas Monjalon
  2 siblings, 1 reply; 15+ messages in thread
From: Ruifeng Wang @ 2022-06-10  7:30 UTC (permalink / raw)
  To: jerinj, dev, Jan Viktorin, Bruce Richardson, David Christensen,
	Stanislaw Kardach, Konstantin Ananyev
  Cc: thomas, david.marchand, juraj.linkes, fengchengwen, jerinj, nd

> -----Original Message-----
> From: jerinj@marvell.com <jerinj@marvell.com>
> Sent: Thursday, June 9, 2022 1:13 AM
> To: dev@dpdk.org; Jan Viktorin <viktorin@rehivetech.com>; Ruifeng Wang
> <Ruifeng.Wang@arm.com>; Bruce Richardson
> <bruce.richardson@intel.com>; David Christensen
> <drc@linux.vnet.ibm.com>; Stanislaw Kardach <kda@semihalf.com>;
> Konstantin Ananyev <konstantin.v.ananyev@yandex.ru>
> Cc: thomas@monjalon.net; david.marchand@redhat.com;
> juraj.linkes@pantheon.tech; fengchengwen@huawei.com;
> jerinj@marvell.com
> Subject: [dpdk-dev] [PATCH v2] build: ccache support for cross build
> 
> From: Jerin Jacob <jerinj@marvell.com>
> 
> By default, ccache is not used for cross build[1].
> Update all cross files to use ccache if it is available in build machine.
> 
> Also, updated devtools/test-meson-builds.sh script to find the correct
> DPDK_TARGET due to change in cross file syntax.
> 
> [1]
> https://mesonbuild.com/Machine-files.html
> 
> Signed-off-by: Jerin Jacob <jerinj@marvell.com>
> ---
> 

Verified that cross-build works fine with/without ccache.
Acked-by: Ruifeng Wang <ruifeng.wang@arm.com>

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

* Re: [dpdk-dev] [PATCH v2] build: ccache support for cross build
  2022-06-08 17:13 ` [dpdk-dev] [PATCH v2] " jerinj
  2022-06-09  1:44   ` fengchengwen
  2022-06-10  7:30   ` Ruifeng Wang
@ 2022-06-14 16:01   ` Thomas Monjalon
  2 siblings, 0 replies; 15+ messages in thread
From: Thomas Monjalon @ 2022-06-14 16:01 UTC (permalink / raw)
  To: Jerin Jacob
  Cc: dev, Jan Viktorin, Ruifeng Wang, Bruce Richardson,
	David Christensen, Stanislaw Kardach, Konstantin Ananyev,
	david.marchand, juraj.linkes, fengchengwen

08/06/2022 19:13, jerinj@marvell.com:
> --- a/devtools/test-meson-builds.sh
> +++ b/devtools/test-meson-builds.sh
> @@ -160,7 +160,8 @@ build () # <directory> <target cc | cross file> <ABI check> [meson options]
>  	if [ -n "$crossfile" ] ; then
>  		cross="--cross-file $crossfile"
>  		targetcc=$(sed -n 's,^c[[:space:]]*=[[:space:]]*,,p' \
> -			$crossfile | tr -d "'" | tr -d '"')
> +			$crossfile | cut -d ',' -f 2 | \
> +			tr -d "'" | tr -d '"' | tr -d ']' | tr -d ' ')

The last line can be shortened to
	tr -d "'"'"] '

I'll change while merging.



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

* Re: [dpdk-dev] [PATCH v2] build: ccache support for cross build
  2022-06-10  7:30   ` Ruifeng Wang
@ 2022-06-14 16:09     ` Thomas Monjalon
  0 siblings, 0 replies; 15+ messages in thread
From: Thomas Monjalon @ 2022-06-14 16:09 UTC (permalink / raw)
  To: jerinj, dev, Jan Viktorin, Bruce Richardson, David Christensen,
	Stanislaw Kardach, Konstantin Ananyev
  Cc: david.marchand, juraj.linkes, fengchengwen, jerinj, nd, Ruifeng Wang

> > By default, ccache is not used for cross build[1].
> > Update all cross files to use ccache if it is available in build machine.
> > 
> > Also, updated devtools/test-meson-builds.sh script to find the correct
> > DPDK_TARGET due to change in cross file syntax.
> > 
> > [1]
> > https://mesonbuild.com/Machine-files.html
> > 
> > Signed-off-by: Jerin Jacob <jerinj@marvell.com>
> > ---
> > 
> 
> Verified that cross-build works fine with/without ccache.
> Acked-by: Ruifeng Wang <ruifeng.wang@arm.com>

Applied with minor change, thanks.




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

end of thread, other threads:[~2022-06-14 16:09 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-06-02  9:23 [dpdk-dev] [PATCH v1] build: ccache support for cross build jerinj
2022-06-02  9:41 ` Bruce Richardson
2022-06-02  9:43   ` Jerin Jacob
2022-06-02 10:55     ` Thomas Monjalon
2022-06-02 12:00       ` Jerin Jacob
2022-06-02 13:33         ` Bruce Richardson
2022-06-08  8:22         ` Jerin Jacob
2022-06-08  8:30           ` Thomas Monjalon
2022-06-08 17:16             ` Jerin Jacob
2022-06-08 18:30               ` Stanisław Kardach
2022-06-08 17:13 ` [dpdk-dev] [PATCH v2] " jerinj
2022-06-09  1:44   ` fengchengwen
2022-06-10  7:30   ` Ruifeng Wang
2022-06-14 16:09     ` Thomas Monjalon
2022-06-14 16:01   ` Thomas Monjalon

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).