[v11,6/6] devtools: expand meson cross compiling test coverage
Checks
Commit Message
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
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
>
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
>
@@ -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