[v11,6/6] devtools: expand meson cross compiling test coverage

Message ID 20180619013746.13268-7-gavin.hu@arm.com (mailing list archive)
State Superseded, archived
Delegated to: Thomas Monjalon
Headers
Series Fix the cross compiling errors |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation fail Compilation issues

Commit Message

Gavin Hu June 19, 2018, 1:37 a.m. UTC
  The default test script covers only default host cc compiler, either gcc or
clang, the fix is to increase the coverage by adding one more to cover
clang and the others for gcc, also the build dirs are changed to *-host-$c,
indicating the difference of cc used.

Fixes: a55277a788 ("devtools: add test script for meson builds")
Cc: stable@dpdk.org

Signed-off-by: Gavin Hu <gavin.hu@arm.com>
Reviewed-by: Phil Yang <phil.yang@arm.com>
Reviewed-by: Song Zhu <song.zhu@arm.com>
---
 devtools/test-meson-builds.sh | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)
  

Comments

Bruce Richardson June 19, 2018, 10:14 a.m. UTC | #1
On Tue, Jun 19, 2018 at 09:37:46AM +0800, Gavin Hu wrote:
> The default test script covers only default host cc compiler, either gcc or
> clang, the fix is to increase the coverage by adding one more to cover
> clang and the others for gcc, also the build dirs are changed to *-host-$c,
> indicating the difference of cc used.
> 
> Fixes: a55277a788 ("devtools: add test script for meson builds")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Gavin Hu <gavin.hu@arm.com>
> Reviewed-by: Phil Yang <phil.yang@arm.com>
> Reviewed-by: Song Zhu <song.zhu@arm.com>
> ---
>  devtools/test-meson-builds.sh | 11 +++++++++--
>  1 file changed, 9 insertions(+), 2 deletions(-)
> 
> diff --git a/devtools/test-meson-builds.sh b/devtools/test-meson-builds.sh
> index 9bb5b93bd..f0912d109 100755
> --- a/devtools/test-meson-builds.sh
> +++ b/devtools/test-meson-builds.sh
> @@ -44,11 +44,18 @@ done
>  # test compilation with minimal x86 instruction set
>  build build-x86-default -Dmachine=nehalem
>  
> +# compile the general v8a also for clang to increase coverage
> +export CC="ccache clang"
> +build build-arm64-host-clang --cross-file config/arm/arm64_armv8_linuxapp_gcc
> +

This will fail if the cross-gcc is not present. You still need to move the
check out of the loop below to above this build call.

>  # enable cross compilation if gcc cross-compiler is found
>  for f in config/arm/arm*gcc ; do
>  	c=aarch64-linux-gnu-gcc
>  	if ! command -v $c >/dev/null 2>&1 ; then
> -		continue
> +		echo "## ERROR: $c is missing..."
> +		exit 1
>  	fi
> -	build build-$(basename $f | tr '_' '-' | cut -d'-' -f-2) --cross-file $f
> +	export CC="ccache gcc"
> +	build build-$(basename $f | tr '_' '-' | cut -d'-' -f-2)-host-gcc \
> +		--cross-file $f

Minor nit:
I'd tend to leave off the "host-gcc" part for brevity. If one build is marked
as host-clang, I think most folks unfamiliar with the script will probably
guess that gcc is the host compiler in unstated cases.

>  done
> -- 
> 2.11.0
>
  
Bruce Richardson June 19, 2018, 10:15 a.m. UTC | #2
On Tue, Jun 19, 2018 at 09:37:46AM +0800, Gavin Hu wrote:
> The default test script covers only default host cc compiler, either gcc or
> clang, the fix is to increase the coverage by adding one more to cover
> clang and the others for gcc, also the build dirs are changed to *-host-$c,
> indicating the difference of cc used.
> 
> Fixes: a55277a788 ("devtools: add test script for meson builds")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Gavin Hu <gavin.hu@arm.com>
> Reviewed-by: Phil Yang <phil.yang@arm.com>
> Reviewed-by: Song Zhu <song.zhu@arm.com>
> ---
>  devtools/test-meson-builds.sh | 11 +++++++++--
>  1 file changed, 9 insertions(+), 2 deletions(-)
> 
> diff --git a/devtools/test-meson-builds.sh b/devtools/test-meson-builds.sh
> index 9bb5b93bd..f0912d109 100755
> --- a/devtools/test-meson-builds.sh
> +++ b/devtools/test-meson-builds.sh
> @@ -44,11 +44,18 @@ done
>  # test compilation with minimal x86 instruction set
>  build build-x86-default -Dmachine=nehalem
>  
> +# compile the general v8a also for clang to increase coverage
> +export CC="ccache clang"
> +build build-arm64-host-clang --cross-file config/arm/arm64_armv8_linuxapp_gcc
> +
>  # enable cross compilation if gcc cross-compiler is found
>  for f in config/arm/arm*gcc ; do
>  	c=aarch64-linux-gnu-gcc
>  	if ! command -v $c >/dev/null 2>&1 ; then
> -		continue
> +		echo "## ERROR: $c is missing..."
> +		exit 1

Not sure we need to return an error return code in this case. A missing
compiler just means we skip the tests, not that we actually failed
anything.

>  	fi
> -	build build-$(basename $f | tr '_' '-' | cut -d'-' -f-2) --cross-file $f
> +	export CC="ccache gcc"
> +	build build-$(basename $f | tr '_' '-' | cut -d'-' -f-2)-host-gcc \
> +		--cross-file $f
>  done
> -- 
> 2.11.0
>
  

Patch

diff --git a/devtools/test-meson-builds.sh b/devtools/test-meson-builds.sh
index 9bb5b93bd..f0912d109 100755
--- a/devtools/test-meson-builds.sh
+++ b/devtools/test-meson-builds.sh
@@ -44,11 +44,18 @@  done
 # test compilation with minimal x86 instruction set
 build build-x86-default -Dmachine=nehalem
 
+# compile the general v8a also for clang to increase coverage
+export CC="ccache clang"
+build build-arm64-host-clang --cross-file config/arm/arm64_armv8_linuxapp_gcc
+
 # enable cross compilation if gcc cross-compiler is found
 for f in config/arm/arm*gcc ; do
 	c=aarch64-linux-gnu-gcc
 	if ! command -v $c >/dev/null 2>&1 ; then
-		continue
+		echo "## ERROR: $c is missing..."
+		exit 1
 	fi
-	build build-$(basename $f | tr '_' '-' | cut -d'-' -f-2) --cross-file $f
+	export CC="ccache gcc"
+	build build-$(basename $f | tr '_' '-' | cut -d'-' -f-2)-host-gcc \
+		--cross-file $f
 done