From a8d276e2230fe2266805374d80bdd950d64d6f97 Mon Sep 17 00:00:00 2001 From: Andrey Lushnikov Date: Thu, 28 Oct 2021 13:42:41 -0700 Subject: [PATCH] devops: support Chromium Linux for Arm64 compilation (#9863) --- browser_patches/checkout_build_archive_upload.sh | 16 ++++++++++++++++ browser_patches/chromium/EXPECTED_BUILDS | 1 + .../chromium/EXPECTED_BUILDS_WITH_SYMBOLS | 1 + browser_patches/chromium/archive.sh | 2 +- browser_patches/chromium/build.sh | 10 ++++++++-- 5 files changed, 27 insertions(+), 3 deletions(-) diff --git a/browser_patches/checkout_build_archive_upload.sh b/browser_patches/checkout_build_archive_upload.sh index 92bb89484b..9e88f0ea06 100755 --- a/browser_patches/checkout_build_archive_upload.sh +++ b/browser_patches/checkout_build_archive_upload.sh @@ -103,6 +103,13 @@ elif [[ "$BUILD_FLAVOR" == "chromium-linux" ]]; then EXPECTED_HOST_OS="Ubuntu" EXPECTED_HOST_OS_VERSION="18.04" BUILD_BLOB_NAME="chromium-linux.zip" +elif [[ "$BUILD_FLAVOR" == "chromium-linux-arm64" ]]; then + BROWSER_NAME="chromium" + EXTRA_BUILD_ARGS="--compile-linux-arm64" + EXTRA_ARCHIVE_ARGS="--compile-linux-arm64" + EXPECTED_HOST_OS="Ubuntu" + EXPECTED_HOST_OS_VERSION="18.04" + BUILD_BLOB_NAME="chromium-linux-arm64.zip" # =========================== # CHROMIUM-WITH-SYMBOLS COMPILATION @@ -142,6 +149,15 @@ elif [[ "$BUILD_FLAVOR" == "chromium-with-symbols-linux" ]]; then EXPECTED_HOST_OS_VERSION="18.04" BUILD_BLOB_NAME="chromium-with-symbols-linux.zip" BUILDS_LIST="EXPECTED_BUILDS_WITH_SYMBOLS" +elif [[ "$BUILD_FLAVOR" == "chromium-with-symbols-linux-arm64" ]]; then + BROWSER_NAME="chromium" + BROWSER_DISPLAY_NAME="chromium-with-symbols-arm64" + EXTRA_BUILD_ARGS="--compile-linux-arm64 --symbols" + EXTRA_ARCHIVE_ARGS="--compile-linux-arm64" + EXPECTED_HOST_OS="Ubuntu" + EXPECTED_HOST_OS_VERSION="18.04" + BUILD_BLOB_NAME="chromium-with-symbols-linux-arm64.zip" + BUILDS_LIST="EXPECTED_BUILDS_WITH_SYMBOLS" # =========================== diff --git a/browser_patches/chromium/EXPECTED_BUILDS b/browser_patches/chromium/EXPECTED_BUILDS index 2468c0551b..aa0df7e2ef 100644 --- a/browser_patches/chromium/EXPECTED_BUILDS +++ b/browser_patches/chromium/EXPECTED_BUILDS @@ -1,4 +1,5 @@ chromium-mac.zip chromium-mac-arm64.zip chromium-linux.zip +chromium-linux-arm64.zip chromium-win64.zip diff --git a/browser_patches/chromium/EXPECTED_BUILDS_WITH_SYMBOLS b/browser_patches/chromium/EXPECTED_BUILDS_WITH_SYMBOLS index f26a24a67c..36a818ac6f 100644 --- a/browser_patches/chromium/EXPECTED_BUILDS_WITH_SYMBOLS +++ b/browser_patches/chromium/EXPECTED_BUILDS_WITH_SYMBOLS @@ -1,4 +1,5 @@ chromium-with-symbols-mac.zip chromium-with-symbols-mac-arm64.zip chromium-with-symbols-linux.zip +chromium-with-symbols-linux-arm64.zip chromium-with-symbols-win64.zip diff --git a/browser_patches/chromium/archive.sh b/browser_patches/chromium/archive.sh index 84448401ad..30aeaac76a 100755 --- a/browser_patches/chromium/archive.sh +++ b/browser_patches/chromium/archive.sh @@ -63,7 +63,7 @@ function archive_compiled_chromium() { if [[ $1 == "--compile-mac"* ]]; then CHROMIUM_FOLDER_NAME="chrome-mac" CHROMIUM_FILES_TO_ARCHIVE=("Chromium.app") - elif [[ $1 == "--compile-linux" ]]; then + elif [[ $1 == "--compile-linux"* ]]; then CHROMIUM_FOLDER_NAME="chrome-linux" # Run python script and convert output to array. IFS=$'\n' CHROMIUM_FILES_TO_ARCHIVE=($(python "${SCRIPT_PATH}/compute_files_to_archive.py" 64bit "${CR_CHECKOUT_PATH}/src/chrome/tools/build/linux/FILES.cfg")) diff --git a/browser_patches/chromium/build.sh b/browser_patches/chromium/build.sh index 496e9cabe1..187c598f1f 100755 --- a/browser_patches/chromium/build.sh +++ b/browser_patches/chromium/build.sh @@ -6,7 +6,7 @@ trap "cd $(pwd -P)" EXIT cd "$(dirname "$0")" USAGE=$(cat<> ./out/Default/args.gn + elif [[ $1 == "--compile-linux-arm64" ]]; then + echo 'target_cpu = "arm"' >> ./out/Default/args.gn fi if [[ ! -z "$USE_GOMA" ]]; then @@ -90,11 +92,15 @@ compile_chromium() { fi else gn gen out/Default - if [[ $1 == "--compile-linux" ]]; then + if [[ $1 == "--compile-linux"* ]]; then TARGETS="chrome chrome_sandbox clear_key_cdm" else TARGETS="chrome" fi + if [[ $1 == "--compile-linux-arm64" ]]; then + # Install sysroot image, see https://chromium.googlesource.com/chromium/src/+/refs/heads/main/docs/linux/chromium_arm.md + ./build/linux/sysroot_scripts/install-sysroot.py --arch=arm + fi if [[ -z "$USE_GOMA" ]]; then autoninja -C out/Default $TARGETS else