From 930e3e5be6ee955ba77bc77409644696208888ab Mon Sep 17 00:00:00 2001 From: Yureka Date: Sun, 17 Dec 2023 02:08:18 +0100 Subject: chromium: use llvm 17 --- .../networking/browsers/chromium/common.nix | 12 +----- .../networking/browsers/chromium/default.nix | 2 +- .../chromium/patches/chromium-120-llvm-16.patch | 43 ---------------------- .../chromium/patches/chromium-120-llvm-17.patch | 29 +++++++++++++++ 4 files changed, 32 insertions(+), 54 deletions(-) delete mode 100644 pkgs/applications/networking/browsers/chromium/patches/chromium-120-llvm-16.patch create mode 100644 pkgs/applications/networking/browsers/chromium/patches/chromium-120-llvm-17.patch (limited to 'pkgs/applications/networking/browsers') diff --git a/pkgs/applications/networking/browsers/chromium/common.nix b/pkgs/applications/networking/browsers/chromium/common.nix index 50d11ff39d84..ba2539c38332 100644 --- a/pkgs/applications/networking/browsers/chromium/common.nix +++ b/pkgs/applications/networking/browsers/chromium/common.nix @@ -246,17 +246,9 @@ let # (we currently package 1.26 in Nixpkgs while Chromium bundles 1.21): # Source: https://bugs.chromium.org/p/angleproject/issues/detail?id=7582#c1 ./patches/angle-wayland-include-protocol.patch - ] ++ lib.optionals (!chromiumVersionAtLeast "120") [ - # We need to revert this patch to build M114+ with LLVM 16: - (githubPatch { - # Reland [clang] Disable autoupgrading debug info in ThinLTO builds - commit = "54969766fd2029c506befc46e9ce14d67c7ed02a"; - hash = "sha256-Vryjg8kyn3cxWg3PmSwYRG6zrHOqYWBMSdEMGiaPg6M="; - revert = true; - }) ] ++ lib.optionals (chromiumVersionAtLeast "120") [ - # We need to revert this patch to build M120+ with LLVM 16: - ./patches/chromium-120-llvm-16.patch + # We need to revert this patch to build M120+ with LLVM 17: + ./patches/chromium-120-llvm-17.patch ] ++ lib.optionals (!chromiumVersionAtLeast "119.0.6024.0") [ # Fix build with at-spi2-core ≥ 2.49 # This version is still needed for electron. diff --git a/pkgs/applications/networking/browsers/chromium/default.nix b/pkgs/applications/networking/browsers/chromium/default.nix index c1ac2dee602c..f592344bdf65 100644 --- a/pkgs/applications/networking/browsers/chromium/default.nix +++ b/pkgs/applications/networking/browsers/chromium/default.nix @@ -26,7 +26,7 @@ let # Sometimes we access `llvmPackages` via `pkgs`, and other times # via `pkgsFooBar`, so a string (attrname) is the only way to have # a single point of control over the LLVM version used. - llvmPackages_attrName = "llvmPackages_16"; + llvmPackages_attrName = "llvmPackages_17"; stdenv = pkgs.${llvmPackages_attrName}.stdenv; # Helper functions for changes that depend on specific versions: diff --git a/pkgs/applications/networking/browsers/chromium/patches/chromium-120-llvm-16.patch b/pkgs/applications/networking/browsers/chromium/patches/chromium-120-llvm-16.patch deleted file mode 100644 index 99a8c521a08a..000000000000 --- a/pkgs/applications/networking/browsers/chromium/patches/chromium-120-llvm-16.patch +++ /dev/null @@ -1,43 +0,0 @@ -diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn -index de1cd6e..bb5700b 100644 ---- a/build/config/compiler/BUILD.gn -+++ b/build/config/compiler/BUILD.gn -@@ -616,24 +616,6 @@ config("compiler") { - } - } - -- # TODO(crbug.com/1488374): This causes binary size growth and potentially -- # other problems. -- # TODO(crbug.com/1491036): This isn't supported by Cronet's mainline llvm version. -- if (default_toolchain != "//build/toolchain/cros:target" && -- !llvm_android_mainline) { -- cflags += [ -- "-mllvm", -- "-split-threshold-for-reg-with-hint=0", -- ] -- if (use_thin_lto && is_a_target_toolchain) { -- if (is_win) { -- ldflags += [ "-mllvm:-split-threshold-for-reg-with-hint=0" ] -- } else { -- ldflags += [ "-Wl,-mllvm,-split-threshold-for-reg-with-hint=0" ] -- } -- } -- } -- - # TODO(crbug.com/1235145): Investigate why/if this should be needed. - if (is_win) { - cflags += [ "/clang:-ffp-contract=off" ] -@@ -800,13 +782,6 @@ config("compiler") { - if (is_apple) { - ldflags += [ "-Wcrl,object_path_lto" ] - } -- if (!is_chromeos) { -- # TODO(https://crbug.com/972449): turn on for ChromeOS when that -- # toolchain has this flag. -- # We only use one version of LLVM within a build so there's no need to -- # upgrade debug info, which can be expensive since it runs the verifier. -- ldflags += [ "-Wl,-mllvm,-disable-auto-upgrade-debug-info" ] -- } - } - - # TODO(https://crbug.com/1211155): investigate why this isn't effective on diff --git a/pkgs/applications/networking/browsers/chromium/patches/chromium-120-llvm-17.patch b/pkgs/applications/networking/browsers/chromium/patches/chromium-120-llvm-17.patch new file mode 100644 index 000000000000..921ffe451139 --- /dev/null +++ b/pkgs/applications/networking/browsers/chromium/patches/chromium-120-llvm-17.patch @@ -0,0 +1,29 @@ +diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn +index de1cd6e..bb5700b 100644 +--- a/build/config/compiler/BUILD.gn ++++ b/build/config/compiler/BUILD.gn +@@ -616,24 +616,6 @@ config("compiler") { + } + } + +- # TODO(crbug.com/1488374): This causes binary size growth and potentially +- # other problems. +- # TODO(crbug.com/1491036): This isn't supported by Cronet's mainline llvm version. +- if (default_toolchain != "//build/toolchain/cros:target" && +- !llvm_android_mainline) { +- cflags += [ +- "-mllvm", +- "-split-threshold-for-reg-with-hint=0", +- ] +- if (use_thin_lto && is_a_target_toolchain) { +- if (is_win) { +- ldflags += [ "-mllvm:-split-threshold-for-reg-with-hint=0" ] +- } else { +- ldflags += [ "-Wl,-mllvm,-split-threshold-for-reg-with-hint=0" ] +- } +- } +- } +- + # TODO(crbug.com/1235145): Investigate why/if this should be needed. + if (is_win) { + cflags += [ "/clang:-ffp-contract=off" ] -- cgit 1.4.1