From 483e39cc74116d8b7239c4dc82074ffd8c9ac04b Mon Sep 17 00:00:00 2001 From: Robo Date: Wed, 3 Aug 2022 07:34:29 -0700 Subject: [PATCH] chore: cherry-pick 97193a64b431 from chromium (#35184) Backports https://chromium-review.googlesource.com/c/chromium/src/+/3542265 Co-authored-by: John Kleinschmidt --- patches/chromium/.patches | 1 + ...e_size_from_64k_to_4k_on_linux_arm64.patch | 54 +++++++++++++++++++ 2 files changed, 55 insertions(+) create mode 100644 patches/chromium/do_not_reduce_page_size_from_64k_to_4k_on_linux_arm64.patch diff --git a/patches/chromium/.patches b/patches/chromium/.patches index 0228d993faa06..1448d766370f3 100644 --- a/patches/chromium/.patches +++ b/patches/chromium/.patches @@ -140,3 +140,4 @@ cherry-pick-902f0d144a5b.patch cherry-pick-664e0d8b4cfb.patch chore_add_electron_deps_to_gitignores.patch chore_allow_chromium_to_handle_synthetic_mouse_events_for_touch.patch +do_not_reduce_page_size_from_64k_to_4k_on_linux_arm64.patch diff --git a/patches/chromium/do_not_reduce_page_size_from_64k_to_4k_on_linux_arm64.patch b/patches/chromium/do_not_reduce_page_size_from_64k_to_4k_on_linux_arm64.patch new file mode 100644 index 0000000000000..bd5eea7b4dc0b --- /dev/null +++ b/patches/chromium/do_not_reduce_page_size_from_64k_to_4k_on_linux_arm64.patch @@ -0,0 +1,54 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Dominik=20Inf=C3=BChr?= +Date: Tue, 22 Mar 2022 17:33:03 +0000 +Subject: Do not reduce page size from 64K to 4K on Linux/ARM64 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This fixes build on Asahi Linux which uses 16K pages. + +Change-Id: I8cf3664849d98bcb984f339ebf9076d1cfaf5701 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3542265 +Reviewed-by: Andrew Grieve +Commit-Queue: Dominik Inführ +Cr-Commit-Position: refs/heads/main@{#983900} + +diff --git a/build/config/android/BUILD.gn b/build/config/android/BUILD.gn +index 4fc5565e27a596fe4aa1a093cfc0567fbd24b2a0..69341cea35d0c44aeb5f09b39783bd2abfcdcc43 100644 +--- a/build/config/android/BUILD.gn ++++ b/build/config/android/BUILD.gn +@@ -47,6 +47,13 @@ config("compiler") { + "-Wl,--exclude-libs=libvpx_assembly_arm.a", + ] + ++ if (current_cpu == "arm64") { ++ # Reduce the page size from 65536 in order to reduce binary size slightly ++ # by shrinking the alignment gap between segments. This also causes all ++ # segments to be mapped adjacently, which breakpad relies on. ++ ldflags += [ "-Wl,-z,max-page-size=4096" ] ++ } ++ + if (current_cpu == "arm64") { + if (arm_control_flow_integrity == "standard") { + cflags += [ "-mbranch-protection=standard" ] +diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn +index 7b9ce0172eedf2b55fe7f3de7baee2f2028f4a7b..8f932d6493ec84f89c69078f95db7fc7ad03ef05 100644 +--- a/build/config/compiler/BUILD.gn ++++ b/build/config/compiler/BUILD.gn +@@ -454,14 +454,7 @@ config("compiler") { + + # Linux-specific compiler flags setup. + # ------------------------------------ +- if ((is_posix || is_fuchsia) && !is_apple && use_lld) { +- if (current_cpu == "arm64") { +- # Reduce the page size from 65536 in order to reduce binary size slightly +- # by shrinking the alignment gap between segments. This also causes all +- # segments to be mapped adjacently, which breakpad relies on. +- ldflags += [ "-Wl,-z,max-page-size=4096" ] +- } +- } else if (use_gold) { ++ if (use_gold) { + ldflags += [ "-fuse-ld=gold" ] + if (!is_android) { + # On Android, this isn't needed. gcc in the NDK knows to look next to