diff --git a/chromium-98.0.4758.102-gcc-12-subzero-fix.patch b/chromium-98.0.4758.102-gcc-12-subzero-fix.patch new file mode 100644 index 0000000..fd5bbdb --- /dev/null +++ b/chromium-98.0.4758.102-gcc-12-subzero-fix.patch @@ -0,0 +1,69 @@ +diff -up chromium-98.0.4758.102/third_party/swiftshader/third_party/subzero/src/IceInstX8664.cpp.gcc12fix chromium-98.0.4758.102/third_party/swiftshader/third_party/subzero/src/IceInstX8664.cpp +--- chromium-98.0.4758.102/third_party/swiftshader/third_party/subzero/src/IceInstX8664.cpp.gcc12fix 2022-02-25 22:17:18.071775686 +0000 ++++ chromium-98.0.4758.102/third_party/swiftshader/third_party/subzero/src/IceInstX8664.cpp 2022-02-25 22:17:40.964996468 +0000 +@@ -659,6 +659,7 @@ void emitIASOpTyGPR(const Cfg *Func, Typ + } + } + ++#if 0 + template + void emitIASRegOpTyGPR(const Cfg *Func, Type Ty, const Variable *Var, + const Operand *Src, const GPREmitterRegOp &Emitter) { +@@ -697,6 +698,7 @@ void emitIASRegOpTyGPR(const Cfg *Func, + llvm_unreachable("Unexpected operand type"); + } + } ++#endif + + void emitIASAddrOpTyGPR(const Cfg *Func, Type Ty, const AsmAddress &Addr, + const Operand *Src, const GPREmitterAddrOp &Emitter) { +diff -up chromium-98.0.4758.102/third_party/swiftshader/third_party/subzero/src/IceInstX8664.h.gcc12fix chromium-98.0.4758.102/third_party/swiftshader/third_party/subzero/src/IceInstX8664.h +--- chromium-98.0.4758.102/third_party/swiftshader/third_party/subzero/src/IceInstX8664.h.gcc12fix 2022-02-25 22:17:51.409640955 +0000 ++++ chromium-98.0.4758.102/third_party/swiftshader/third_party/subzero/src/IceInstX8664.h 2022-02-25 22:19:13.478847553 +0000 +@@ -576,8 +576,44 @@ void emitIASXmmShift(const Cfg *Func, Ty + /// Emit a two-operand (GPR) instruction, where the dest operand is a Variable + /// that's guaranteed to be a register. + template +-void emitIASRegOpTyGPR(const Cfg *Func, Type Ty, const Variable *Dst, +- const Operand *Src, const GPREmitterRegOp &Emitter); ++ ++void emitIASRegOpTyGPR(const Cfg *Func, Type Ty, const Variable *Var, ++ const Operand *Src, const GPREmitterRegOp &Emitter) { ++ auto *Target = InstX86Base::getTarget(Func); ++ Assembler *Asm = Func->getAssembler(); ++ assert(Var->hasReg()); ++ // We cheat a little and use GPRRegister even for byte operations. ++ GPRRegister VarReg = VarCanBeByte ? RegX8664::getEncodedGPR(Var->getRegNum()) ++ : RegX8664::getEncodedGPR(Var->getRegNum()); ++ if (const auto *SrcVar = llvm::dyn_cast(Src)) { ++ if (SrcVar->hasReg()) { ++ GPRRegister SrcReg = SrcCanBeByte ++ ? RegX8664::getEncodedGPR(SrcVar->getRegNum()) ++ : RegX8664::getEncodedGPR(SrcVar->getRegNum()); ++ (Asm->*(Emitter.GPRGPR))(Ty, VarReg, SrcReg); ++ } else { ++ AsmAddress SrcStackAddr = AsmAddress(SrcVar, Target); ++ (Asm->*(Emitter.GPRAddr))(Ty, VarReg, SrcStackAddr); ++ } ++ } else if (const auto *Mem = llvm::dyn_cast(Src)) { ++ Mem->emitSegmentOverride(Asm); ++ (Asm->*(Emitter.GPRAddr))(Ty, VarReg, AsmAddress(Mem, Asm, Target)); ++ } else if (const auto *Imm = llvm::dyn_cast(Src)) { ++ (Asm->*(Emitter.GPRImm))(Ty, VarReg, AssemblerImmediate(Imm->getValue())); ++ } else if (const auto *Imm = llvm::dyn_cast(Src)) { ++ assert(Utils::IsInt(32, Imm->getValue())); ++ (Asm->*(Emitter.GPRImm))(Ty, VarReg, AssemblerImmediate(Imm->getValue())); ++ } else if (const auto *Reloc = llvm::dyn_cast(Src)) { ++ const auto FixupKind = (Reloc->getName().hasStdString() && ++ Reloc->getName().toString() == GlobalOffsetTable) ++ ? FK_GotPC ++ : FK_Abs; ++ AssemblerFixup *Fixup = Asm->createFixup(FixupKind, Reloc); ++ (Asm->*(Emitter.GPRImm))(Ty, VarReg, AssemblerImmediate(Fixup)); ++ } else { ++ llvm_unreachable("Unexpected operand type"); ++ } ++} + + /// Instructions of the form x := op(x). + template diff --git a/chromium-98.0.4758.102-remoting-no-tests.patch b/chromium-98.0.4758.102-remoting-no-tests.patch new file mode 100644 index 0000000..a8c4dbd --- /dev/null +++ b/chromium-98.0.4758.102-remoting-no-tests.patch @@ -0,0 +1,20 @@ +diff -up chromium-98.0.4758.102/remoting/BUILD.gn.remoting-no-tests chromium-98.0.4758.102/remoting/BUILD.gn +--- chromium-98.0.4758.102/remoting/BUILD.gn.remoting-no-tests 2022-02-28 19:15:23.835872267 +0000 ++++ chromium-98.0.4758.102/remoting/BUILD.gn 2022-03-01 17:55:50.625536957 +0000 +@@ -8,7 +8,7 @@ import("//remoting/build/config/remoting + group("remoting_all") { + testonly = true + +- deps = [ ":remoting_unittests" ] ++ deps = [ ] + + if (is_win) { + deps += [ +@@ -37,7 +37,6 @@ group("remoting_all") { + + if (enable_remoting_host) { + deps += [ +- ":remoting_perftests", + "//remoting/host", + ] + diff --git a/chromium-98.0.4758.80-missing-utility-for-std-exchange.patch b/chromium-98.0.4758.80-missing-utility-for-std-exchange.patch index 1b5a71f..1f6c7e8 100644 --- a/chromium-98.0.4758.80-missing-utility-for-std-exchange.patch +++ b/chromium-98.0.4758.80-missing-utility-for-std-exchange.patch @@ -1,6 +1,6 @@ -diff -up chromium-98.0.4758.80/base/third_party/symbolize/symbolize.h.f36 chromium-98.0.4758.80/base/third_party/symbolize/symbolize.h ---- chromium-98.0.4758.80/base/third_party/symbolize/symbolize.h.f36 2022-02-08 19:28:20.198873875 +0000 -+++ chromium-98.0.4758.80/base/third_party/symbolize/symbolize.h 2022-02-08 19:28:57.533127622 +0000 +diff -up chromium-98.0.4758.102/base/third_party/symbolize/symbolize.h.missing-utility-for-std-exchange chromium-98.0.4758.102/base/third_party/symbolize/symbolize.h +--- chromium-98.0.4758.102/base/third_party/symbolize/symbolize.h.missing-utility-for-std-exchange 2022-02-25 22:30:02.833745309 +0000 ++++ chromium-98.0.4758.102/base/third_party/symbolize/symbolize.h 2022-02-25 22:30:02.832745344 +0000 @@ -58,6 +58,8 @@ #include "config.h" #include "glog/logging.h" @@ -10,3 +10,14 @@ diff -up chromium-98.0.4758.80/base/third_party/symbolize/symbolize.h.f36 chromi #ifdef HAVE_SYMBOLIZE #include +diff -up chromium-98.0.4758.102/v8/src/heap/cppgc/prefinalizer-handler.h.missing-utility-for-std-exchange chromium-98.0.4758.102/v8/src/heap/cppgc/prefinalizer-handler.h +--- chromium-98.0.4758.102/v8/src/heap/cppgc/prefinalizer-handler.h.missing-utility-for-std-exchange 2022-02-27 20:08:40.027930037 +0000 ++++ chromium-98.0.4758.102/v8/src/heap/cppgc/prefinalizer-handler.h 2022-02-27 20:08:52.945490126 +0000 +@@ -5,6 +5,7 @@ + #ifndef V8_HEAP_CPPGC_PREFINALIZER_HANDLER_H_ + #define V8_HEAP_CPPGC_PREFINALIZER_HANDLER_H_ + ++#include + #include + + #include "include/cppgc/prefinalizer.h" diff --git a/chromium.spec b/chromium.spec index 99a3487..14ce080 100644 --- a/chromium.spec +++ b/chromium.spec @@ -220,7 +220,7 @@ Name: chromium%{chromium_channel}%{nsuffix} %else Name: chromium%{chromium_channel} %endif -Version: %{majorversion}.0.4758.80 +Version: %{majorversion}.0.4758.102 Release: 1%{?dist} %if %{?freeworld} %if %{?shared} @@ -304,6 +304,12 @@ Patch79: chromium-93.0.4577.63-widevine-no-download.patch # Fix crashes with components/cast_* # Thanks to Gentoo Patch80: chromium-98.0.4758.80-EnumTable-crash.patch +# Fix build issues with gcc12 +Patch81: chromium-98.0.4758.102-gcc-12-subzero-fix.patch +# Disable tests on remoting build +Patch82: chromium-98.0.4758.102-remoting-no-tests.patch + + # Add missing cmath header Patch84: chromium-94.0.4606.71-remoting-missing-cmath-header.patch @@ -993,6 +999,8 @@ udev. %endif %patch79 -p1 -b .widevine-no-download %patch80 -p1 -b .EnumTable-crash +%patch81 -p1 -b .gcc12fix +%patch82 -p1 -b .remoting-no-tests %patch84 -p1 -b .remoting-missing-cmath-header %patch86 -p1 -b .clang-format-py3 %patch95 -p1 -b .mojo-header-fix @@ -2116,6 +2124,10 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt %changelog +* Fri Feb 25 2022 Tom Callaway - 98.0.4758.102-1 +- update to 98.0.4758.102 +- fix build issue with subzero and gcc12 + * Tue Feb 8 2022 Tom Callaway - 98.0.4758.80-1 - update to 98.0.4758.80 diff --git a/sources b/sources index 5f19837..6e2260c 100644 --- a/sources +++ b/sources @@ -21,4 +21,4 @@ SHA512 (NotoSansSymbols2-Regular.ttf) = 2644b42c3fdccfe12395f9b61553aced169a0f1d SHA512 (NotoSansTibetan-Regular.ttf) = fb5a48fcaea80eebe7d692f6fcf00d59d47658a358d0ec8e046fc559873f88bd595b2da474d2826abd9e9305f3741c69058d867b1e6048f37fe7d71b5d3af36a SHA512 (node-v12.22.6-linux-arm64.tar.xz) = 87ce5eb954deb1d0debe6fa02b28a3cc675e12fca1e51d44b123ab294aa39ce0c6b8ac9eae1e7a6e32673ea2c2d480651d9ba7eea73012f0529503eebe9eb34d SHA512 (node-v12.22.6-linux-x64.tar.xz) = e1b55c32343cb2ccc40d888c705414bebf9c46b02083d13731df79b1e79521b7277761f6bcca041e40e3a2e47c67bb8e7848aa2b919a9de5c2ebf62c4a9c7176 -SHA512 (chromium-98.0.4758.80-clean.tar.xz) = b3c95418683bc1ce24dcda8e1510fc5623ef97a9fca6574a75fb372648edaa078c715592c3f9fa0f6c0557b8edf1c3436faec093b620bef7b050a8c3aa4a2f96 +SHA512 (chromium-98.0.4758.102-clean.tar.xz) = c4d69e9e0c542a50a202ecc0fd2fb1b799110f825eb083878a2d965459e222fb5d319989aacd4f4f36ad38d51d82e1d3d4304cfba2dbebc8825555409114292a