Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package webkit2gtk3 for openSUSE:Factory checked in at 2021-08-16 10:08:38 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/webkit2gtk3 (Old) and /work/SRC/openSUSE:Factory/.webkit2gtk3.new.1899 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "webkit2gtk3" Mon Aug 16 10:08:38 2021 rev:123 rq:912017 version:2.32.3 Changes: -------- --- /work/SRC/openSUSE:Factory/webkit2gtk3/webkit2gtk3.changes 2021-08-10 10:28:31.853713816 +0200 +++ /work/SRC/openSUSE:Factory/.webkit2gtk3.new.1899/webkit2gtk3.changes 2021-08-16 10:13:10.398986757 +0200 @@ -1,0 +2,5 @@ +Tue Aug 10 12:10:02 UTC 2021 - Martin Li??ka <mli...@suse.cz> + +- Enable LTO by using upstream patch fix-lto.patch. + +------------------------------------------------------------------- New: ---- fix-lto.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ webkit2gtk3.spec ++++++ --- /var/tmp/diff_new_pack.pMcaEb/_old 2021-08-16 10:13:10.974986081 +0200 +++ /var/tmp/diff_new_pack.pMcaEb/_new 2021-08-16 10:13:10.978986076 +0200 @@ -44,6 +44,7 @@ # PATCH-FIX-OPENSUSE no-forced-sse.patch jeng...@iani.de -- cure execution of illegal instruction in i586 firefox. Patch0: no-forced-sse.patch +Patch1: fix-lto.patch BuildRequires: Mesa-libEGL-devel BuildRequires: Mesa-libGL-devel @@ -263,7 +264,6 @@ %autosetup -p1 -n webkitgtk-%{version} %build -%define _lto_cflags %{nil} # Here we must muzzle our dog so it doesn't eat all the memory max_link_jobs="%{?jobs:%{jobs}}" max_compile_jobs="%{?jobs:%{jobs}}" ++++++ fix-lto.patch ++++++ >From 2a6731b62bf3043d095cbb7dc5731d7764933bed Mon Sep 17 00:00:00 2001 From: Michael Catanzaro <mcatanz...@gnome.org> Date: Mon, 9 Aug 2021 10:53:05 +0000 Subject: [PATCH] Adding missing REFERENCED_FROM_ASM annotations to facilitate LTO https://bugs.webkit.org/show_bug.cgi?id=228865 Patch by Michael Catanzaro <mcatanz...@gnome.org> on 2021-08-09 Reviewed by Yusuke Suzuki. When investigating why WebKitGTK fails to build with LTO (link-time optimization) enabled, one of the GCC developers noticed that we are missing __attribute__ (("used")) on several C++ functions declared in LLIntSlowPaths.h and WasmSlowPaths.h that are called only from asm. Without this attribute, GCC assumes the functions are unused and drops them, then linking fails because they really are used. * llint/LLIntSlowPaths.h: * wasm/WasmSlowPaths.h: Canonical link: https://commits.webkit.org/240354@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@280770 268f45cc-cd09-0410-ab3c-d52691b4dbfc --- Source/JavaScriptCore/ChangeLog | 16 ++++++++++++++++ Source/JavaScriptCore/llint/LLIntSlowPaths.h | 20 ++++++++++---------- Source/JavaScriptCore/wasm/WasmSlowPaths.h | 8 ++++---- 3 files changed, 30 insertions(+), 14 deletions(-) diff --git a/Source/JavaScriptCore/llint/LLIntSlowPaths.h b/Source/JavaScriptCore/llint/LLIntSlowPaths.h index fbfd53cc551f..e20a0dfc6b87 100644 --- a/Source/JavaScriptCore/llint/LLIntSlowPaths.h +++ b/Source/JavaScriptCore/llint/LLIntSlowPaths.h @@ -36,15 +36,15 @@ struct ProtoCallFrame; namespace LLInt { -extern "C" SlowPathReturnType llint_trace_operand(CallFrame*, const Instruction*, int fromWhere, int operand); -extern "C" SlowPathReturnType llint_trace_value(CallFrame*, const Instruction*, int fromWhere, VirtualRegister operand); -extern "C" void llint_write_barrier_slow(CallFrame*, JSCell*) WTF_INTERNAL; +extern "C" SlowPathReturnType llint_trace_operand(CallFrame*, const Instruction*, int fromWhere, int operand) REFERENCED_FROM_ASM; +extern "C" SlowPathReturnType llint_trace_value(CallFrame*, const Instruction*, int fromWhere, VirtualRegister operand) REFERENCED_FROM_ASM; +extern "C" void llint_write_barrier_slow(CallFrame*, JSCell*) REFERENCED_FROM_ASM WTF_INTERNAL; #define LLINT_SLOW_PATH_DECL(name) \ extern "C" SlowPathReturnType llint_##name(CallFrame* callFrame, const Instruction* pc) #define LLINT_SLOW_PATH_HIDDEN_DECL(name) \ - LLINT_SLOW_PATH_DECL(name) WTF_INTERNAL + LLINT_SLOW_PATH_DECL(name) REFERENCED_FROM_ASM WTF_INTERNAL LLINT_SLOW_PATH_HIDDEN_DECL(trace_prologue); LLINT_SLOW_PATH_HIDDEN_DECL(trace_prologue_function_for_call); @@ -149,13 +149,13 @@ LLINT_SLOW_PATH_HIDDEN_DECL(slow_path_log_shadow_chicken_tail); LLINT_SLOW_PATH_HIDDEN_DECL(slow_path_super_sampler_begin); LLINT_SLOW_PATH_HIDDEN_DECL(slow_path_super_sampler_end); LLINT_SLOW_PATH_HIDDEN_DECL(slow_path_out_of_line_jump_target); -extern "C" SlowPathReturnType llint_throw_stack_overflow_error(VM*, ProtoCallFrame*) WTF_INTERNAL; -extern "C" SlowPathReturnType llint_slow_path_checkpoint_osr_exit(CallFrame* callFrame, EncodedJSValue unused) WTF_INTERNAL; -extern "C" SlowPathReturnType llint_slow_path_checkpoint_osr_exit_from_inlined_call(CallFrame* callFrame, EncodedJSValue callResult) WTF_INTERNAL; +extern "C" SlowPathReturnType llint_throw_stack_overflow_error(VM*, ProtoCallFrame*) REFERENCED_FROM_ASM WTF_INTERNAL; +extern "C" SlowPathReturnType llint_slow_path_checkpoint_osr_exit(CallFrame* callFrame, EncodedJSValue unused) REFERENCED_FROM_ASM WTF_INTERNAL; +extern "C" SlowPathReturnType llint_slow_path_checkpoint_osr_exit_from_inlined_call(CallFrame* callFrame, EncodedJSValue callResult) REFERENCED_FROM_ASM WTF_INTERNAL; #if ENABLE(C_LOOP) -extern "C" SlowPathReturnType llint_stack_check_at_vm_entry(VM*, Register*) WTF_INTERNAL; +extern "C" SlowPathReturnType llint_stack_check_at_vm_entry(VM*, Register*) REFERENCED_FROM_ASM WTF_INTERNAL; #endif -extern "C" SlowPathReturnType llint_check_vm_entry_permission(VM*, ProtoCallFrame*) WTF_INTERNAL; -extern "C" NO_RETURN_DUE_TO_CRASH void llint_crash() WTF_INTERNAL; +extern "C" SlowPathReturnType llint_check_vm_entry_permission(VM*, ProtoCallFrame*) REFERENCED_FROM_ASM WTF_INTERNAL; +extern "C" NO_RETURN_DUE_TO_CRASH void llint_crash() REFERENCED_FROM_ASM WTF_INTERNAL; } } // namespace JSC::LLInt diff --git a/Source/JavaScriptCore/wasm/WasmSlowPaths.h b/Source/JavaScriptCore/wasm/WasmSlowPaths.h index 5b2b8f2895a1..7762118338a7 100644 --- a/Source/JavaScriptCore/wasm/WasmSlowPaths.h +++ b/Source/JavaScriptCore/wasm/WasmSlowPaths.h @@ -47,7 +47,7 @@ namespace LLInt { extern "C" SlowPathReturnType slow_path_wasm_##name(CallFrame* callFrame, const Instruction* pc, Wasm::Instance* instance) #define WASM_SLOW_PATH_HIDDEN_DECL(name) \ - WASM_SLOW_PATH_DECL(name) WTF_INTERNAL + WASM_SLOW_PATH_DECL(name) REFERENCED_FROM_ASM WTF_INTERNAL #if ENABLE(WEBASSEMBLY_B3JIT) WASM_SLOW_PATH_HIDDEN_DECL(prologue_osr); @@ -84,9 +84,9 @@ WASM_SLOW_PATH_HIDDEN_DECL(memory_atomic_wait32); WASM_SLOW_PATH_HIDDEN_DECL(memory_atomic_wait64); WASM_SLOW_PATH_HIDDEN_DECL(memory_atomic_notify); -extern "C" SlowPathReturnType slow_path_wasm_throw_exception(CallFrame*, const Instruction*, Wasm::Instance* instance, Wasm::ExceptionType) WTF_INTERNAL; -extern "C" SlowPathReturnType slow_path_wasm_popcount(const Instruction* pc, uint32_t) WTF_INTERNAL; -extern "C" SlowPathReturnType slow_path_wasm_popcountll(const Instruction* pc, uint64_t) WTF_INTERNAL; +extern "C" SlowPathReturnType slow_path_wasm_throw_exception(CallFrame*, const Instruction*, Wasm::Instance* instance, Wasm::ExceptionType) REFERENCED_FROM_ASM WTF_INTERNAL; +extern "C" SlowPathReturnType slow_path_wasm_popcount(const Instruction* pc, uint32_t) REFERENCED_FROM_ASM WTF_INTERNAL; +extern "C" SlowPathReturnType slow_path_wasm_popcountll(const Instruction* pc, uint64_t) REFERENCED_FROM_ASM WTF_INTERNAL; } } // namespace JSC::LLInt