From 588ea3184ceb928cbc11e99ba3a7cfae2aa61773 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Thu, 14 May 2020 10:38:12 -0700 Subject: [PATCH] ci: Make cmake toolchain file for deqp cross build setup. This adds a few more variables that we found we needed for x86-to-arm dEQP cross builds. Also note that we're now fixed to use ccache in the dEQP builds. Reviewed-by: Christian Gmeiner Reviewed-by: Tomeu Vizoso Part-of: --- .gitlab-ci.yml | 4 ++-- .gitlab-ci/container/lava_arm.sh | 2 +- .gitlab-ci/create-cross-file.sh | 21 +++++++++++++++++++++ 3 files changed, 24 insertions(+), 3 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index e5fe436bdb6..eb21ecddc06 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -136,7 +136,7 @@ x86_build: - .fdo.container-build@debian - .container variables: - FDO_DISTRIBUTION_TAG: &x86_build "2020-05-18-baremetal" + FDO_DISTRIBUTION_TAG: &x86_build "2020-05-18-baremetal-2" .use-x86_build: variables: @@ -177,7 +177,7 @@ arm_build: - .fdo.container-build@debian@arm64v8 - .container variables: - FDO_DISTRIBUTION_TAG: &arm_build "2020-05-14-baremetal-2" + FDO_DISTRIBUTION_TAG: &arm_build "2020-05-14-baremetal-3" .use-arm_build: variables: diff --git a/.gitlab-ci/container/lava_arm.sh b/.gitlab-ci/container/lava_arm.sh index 15feb76f69a..fcaf9052418 100644 --- a/.gitlab-ci/container/lava_arm.sh +++ b/.gitlab-ci/container/lava_arm.sh @@ -20,6 +20,7 @@ fi # Determine if we're in a cross build. if [[ -e /cross_file-$DEBIAN_ARCH.txt ]]; then EXTRA_MESON_ARGS="--cross-file /cross_file-$DEBIAN_ARCH.txt" + EXTRA_CMAKE_ARGS="-DCMAKE_TOOLCHAIN_FILE=/toolchain-$DEBIAN_ARCH.cmake" export ARCH=${KERNEL_ARCH} export CROSS_COMPILE="${GCC_ARCH}-" @@ -32,7 +33,6 @@ mv /usr/local/bin/deqp-runner /lava-files/rootfs-${DEBIAN_ARCH}/usr/bin/. ############### Build dEQP -EXTRA_CMAKE_ARGS="-DCMAKE_C_COMPILER=${GCC_ARCH}-gcc -DCMAKE_CXX_COMPILER=${GCC_ARCH}-g++" STRIP_CMD="${GCC_ARCH}-strip" . .gitlab-ci/build-deqp-gl.sh mv /deqp /lava-files/rootfs-${DEBIAN_ARCH}/. diff --git a/.gitlab-ci/create-cross-file.sh b/.gitlab-ci/create-cross-file.sh index de2fba5f4dd..ba63812ca41 100755 --- a/.gitlab-ci/create-cross-file.sh +++ b/.gitlab-ci/create-cross-file.sh @@ -11,3 +11,24 @@ if [ "$arch" = "i386" ]; then fi # Rely on qemu-user being configured in binfmt_misc on the host sed -i -e '/\[properties\]/a\' -e "needs_exe_wrapper = False" "$cross_file" + +# Set up cmake cross compile toolchain file for dEQP builds +toolchain_file="/toolchain-$arch.cmake" +if [[ "$arch" = "arm64" ]]; then + GCC_ARCH="aarch64-linux-gnu" + DE_CPU="DE_CPU_ARM_64" + CMAKE_ARCH=arm +elif [[ "$arch" = "armhf" ]]; then + GCC_ARCH="arm-linux-gnueabihf" + DE_CPU="DE_CPU_ARM" + CMAKE_ARCH=arm +fi + +if [[ -n "$GCC_ARCH" ]]; then + echo "set(CMAKE_SYSTEM_NAME Linux)" > "$toolchain_file" + echo "set(CMAKE_SYSTEM_PROCESSOR arm)" >> "$toolchain_file" + echo "set(CMAKE_C_COMPILER /usr/lib/ccache/$GCC_ARCH-gcc)" >> "$toolchain_file" + echo "set(CMAKE_CXX_COMPILER /usr/lib/ccache/$GCC_ARCH-g++)" >> "$toolchain_file" + echo "set(ENV{PKG_CONFIG} \"/usr/bin/$GCC_ARCH-pkg-config\")" >> "$toolchain_file" + echo "set(DE_CPU $DE_CPU)" >> "$toolchain_file" +fi -- 2.30.2