From 444e556776c3693f9ccc19c5918172a559f62ae4 Mon Sep 17 00:00:00 2001 From: Thomas Monjalon Date: Mon, 15 Jun 2020 00:03:29 +0200 Subject: [PATCH] devtools: shrink cross-compilation test definition Each cross-compilation case needs to define the target compiler and the meson cross file. Given the compiler is already defined in the cross file, the latter is enough. The function "build" is changed to accept a cross file alternatively to the compiler name. In the case of a file (detected if readable), the compiler is extracted with sed and tr, and the option --cross-file is automatically added. Signed-off-by: Thomas Monjalon Reviewed-by: David Christensen --- devtools/test-meson-builds.sh | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/devtools/test-meson-builds.sh b/devtools/test-meson-builds.sh index 18b874fac5..bee55ec038 100755 --- a/devtools/test-meson-builds.sh +++ b/devtools/test-meson-builds.sh @@ -117,16 +117,24 @@ install_target () # fi } -build () # +build () # { targetdir=$1 shift - targetcc=$1 + crossfile= + [ -r $1 ] && crossfile=$1 || targetcc=$1 shift # skip build if compiler not available command -v ${CC##* } >/dev/null 2>&1 || return 0 + if [ -n "$crossfile" ] ; then + cross="--cross-file $crossfile" + targetcc=$(sed -n 's,^c[[:space:]]*=[[:space:]]*,,p' \ + $crossfile | tr -d "'" | tr -d '"') + else + cross= + fi load_env $targetcc || return 0 - config $srcdir $builds_dir/$targetdir --werror $* + config $srcdir $builds_dir/$targetdir $cross --werror $* compile $builds_dir/$targetdir if [ -n "$DPDK_ABI_REF_VERSION" ]; then abirefdir=${DPDK_ABI_REF_DIR:-reference}/$DPDK_ABI_REF_VERSION @@ -140,7 +148,7 @@ build () # fi rm -rf $abirefdir/build - config $abirefdir/src $abirefdir/build $* + config $abirefdir/src $abirefdir/build $cross $* compile $abirefdir/build install_target $abirefdir/build $abirefdir/$targetdir $srcdir/devtools/gen-abi.sh $abirefdir/$targetdir @@ -186,17 +194,15 @@ if [ "$ok" = "false" ] ; then fi build build-x86-default cc -Dlibdir=lib -Dmachine=$default_machine $use_shared -c=aarch64-linux-gnu-gcc # generic armv8a with clang as host compiler +f=$srcdir/config/arm/arm64_armv8_linux_gcc export CC="clang" -build build-arm64-host-clang $c $use_shared \ - --cross-file $srcdir/config/arm/arm64_armv8_linux_gcc +build build-arm64-host-clang $f $use_shared unset CC -# all gcc/arm configurations +# some gcc/arm configurations for f in $srcdir/config/arm/arm64_[bdo]*gcc ; do export CC="$CCACHE gcc" - build build-$(basename $f | tr '_' '-' | cut -d'-' -f-2) $c \ - $use_shared --cross-file $f + build build-$(basename $f | tr '_' '-' | cut -d'-' -f-2) $f $use_shared unset CC done -- 2.20.1