ci: fix aarch64 cross compilation in GHA
authorDavid Marchand <david.marchand@redhat.com>
Fri, 29 Oct 2021 11:27:57 +0000 (13:27 +0200)
committerDavid Marchand <david.marchand@redhat.com>
Mon, 1 Nov 2021 17:15:24 +0000 (18:15 +0100)
CC_FOR_BUILD is a Travis env variable.
This results in GHA aarch64 cross compilation jobs building x86
binaries.

Example in a recent job on main branch:
2021-10-28T09:51:06.4976495Z + .ci/linux-build.sh
2021-10-28T09:51:06.4985674Z + [ -n build ]
2021-10-28T09:51:06.4987636Z + [ true = true ]
2021-10-28T09:51:06.4987991Z + [  = gcc ]
2021-10-28T09:51:06.4989419Z + [  = clang ]
2021-10-28T09:51:06.4990907Z + [ false = true ]
2021-10-28T09:51:06.4991348Z + [ false = true ]
2021-10-28T09:51:06.4992846Z + [ static = static ]
2021-10-28T09:51:06.4993550Z + OPTS= -Dexamples=l2fwd,l3fwd
2021-10-28T09:51:06.4995388Z + OPTS= -Dexamples=l2fwd,l3fwd
-Dplatform=generic
2021-10-28T09:51:06.4996279Z + OPTS= -Dexamples=l2fwd,l3fwd
-Dplatform=generic --default-library=static
2021-10-28T09:51:06.4998553Z + OPTS= -Dexamples=l2fwd,l3fwd
-Dplatform=generic --default-library=static --buildtype=debugoptimized
2021-10-28T09:51:06.4999949Z + OPTS= -Dexamples=l2fwd,l3fwd
-Dplatform=generic --default-library=static --buildtype=debugoptimized
-Dcheck_includes=true
2021-10-28T09:51:06.5002643Z + meson build --werror
-Dexamples=l2fwd,l3fwd -Dplatform=generic --default-library=static
--buildtype=debugoptimized -Dcheck_includes=true

common/cnxk has issues with Ubuntu 18.04 cross compiler.
It is a known issue (https://bugs.dpdk.org/show_bug.cgi?id=697), disable
it.

Fixes: 5d0b4ffa6964 ("ci: add aarch64 clang cross-compilation Travis builds")

Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Aaron Conole <aconole@redhat.com>
Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
.ci/linux-build.sh
.github/workflows/build.yml

index 06aaa79..e1f5255 100755 (executable)
@@ -54,11 +54,13 @@ catch_coredump() {
 }
 
 if [ "$AARCH64" = "true" ]; then
-    # convert the arch specifier
-    if [ "$CC_FOR_BUILD" = "gcc" ]; then
-       OPTS="$OPTS --cross-file config/arm/arm64_armv8_linux_gcc"
-    elif [ "$CC_FOR_BUILD" = "clang" ]; then
-       OPTS="$OPTS --cross-file config/arm/arm64_armv8_linux_clang_ubuntu1804"
+    # Note: common/cnxk is disabled for Ubuntu 18.04
+    # https://bugs.dpdk.org/show_bug.cgi?id=697
+    OPTS="$OPTS -Ddisable_drivers=common/cnxk"
+    if [ "${CC%%clang}" != "$CC" ]; then
+        OPTS="$OPTS --cross-file config/arm/arm64_armv8_linux_clang_ubuntu1804"
+    else
+        OPTS="$OPTS --cross-file config/arm/arm64_armv8_linux_gcc"
     fi
 fi
 
index 151641e..9cc9612 100644 (file)
@@ -46,6 +46,8 @@ jobs:
             compiler: gcc
             library: static
             cross: i386
+          # Note: common/cnxk is disabled for Ubuntu 18.04
+          # https://bugs.dpdk.org/show_bug.cgi?id=697
           - os: ubuntu-18.04
             compiler: gcc
             library: static