Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package nodejs-electron for openSUSE:Factory checked in at 2024-09-01 19:22:16 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/nodejs-electron (Old) and /work/SRC/openSUSE:Factory/.nodejs-electron.new.2698 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "nodejs-electron" Sun Sep 1 19:22:16 2024 rev:128 rq:1198001 version:30.4.0 Changes: -------- --- /work/SRC/openSUSE:Factory/nodejs-electron/nodejs-electron.changes 2024-08-19 23:46:22.764336568 +0200 +++ /work/SRC/openSUSE:Factory/.nodejs-electron.new.2698/nodejs-electron.changes 2024-09-01 19:22:47.291359491 +0200 @@ -1,0 +2,6 @@ +Sat Aug 31 09:00:18 UTC 2024 - Bruno Pitrus <brunopit...@hotmail.com> + +- Fedora 40+, TW: add v8-strict-aliasing.patch to work around GCC14 miscompile +- aarch64: remove -jitless from electron_rebuild macro, seems not needed anymore + +------------------------------------------------------------------- New: ---- v8-strict-aliasing.patch BETA DEBUG BEGIN: New: - Fedora 40+, TW: add v8-strict-aliasing.patch to work around GCC14 miscompile - aarch64: remove -jitless from electron_rebuild macro, seems not needed anymore BETA DEBUG END: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ nodejs-electron.spec ++++++ --- /var/tmp/diff_new_pack.LRw4Zx/_old 2024-09-01 19:22:51.055513602 +0200 +++ /var/tmp/diff_new_pack.LRw4Zx/_new 2024-09-01 19:22:51.059513766 +0200 @@ -55,7 +55,7 @@ #(all the widgets use Gtk unconditionally â not sure which of the changed codepaths are used in Electron) %bcond_with qt -%ifarch aarch64 %ix86 +%ifarch %ix86 #work around npm rebuild crashes on OBS %global jitless NODE_OPTIONS=--jitless %endif @@ -138,6 +138,11 @@ %bcond_with ffmpeg_6 %endif +%if 0%{?suse_version} >= 1550 || 0%{?sle_version} >= 150700 || 0%{?fedora} >= 40 +%bcond_without gcc14 +%else +%bcond_with gcc14 +%endif %if 0%{?fedora} @@ -360,6 +365,12 @@ Patch2055: bad-font-gc1.patch Patch2056: bad-font-gc2.patch Patch2057: bad-font-gc3.patch +#Work around gcc14 overly aggressive optimizer. Interestingly applying this patch produces a *different* crash on gcc13 + LTO. +%if %{with gcc14} +Patch2058: v8-strict-aliasing.patch +%else +Source2058: v8-strict-aliasing.patch +%endif # PATCHES that should be submitted upstream verbatim or near-verbatim # Fix blink nodestructor @@ -644,6 +655,9 @@ BuildRequires: gcc13-PIE BuildRequires: gcc13-c++ %endif +%if %{with gcc14} +BuildRequires: gcc-c++ >= 14 +%endif %if %{with pipewire} BuildRequires: pkgconfig(libpipewire-0.3) BuildRequires: pkgconfig(libspa-0.2) @@ -1040,7 +1054,7 @@ %if %{with lto} %ifarch aarch64 -export LDFLAGS="$LDFLAGS -flto=3 --param ggc-min-expand=20 --param ggc-min-heapsize=32768 --param lto-max-streaming-parallelism=1 -Wl,--no-keep-memory -Wl,--reduce-memory-overheads" +export LDFLAGS="$LDFLAGS -flto=2 --param ggc-min-expand=20 --param ggc-min-heapsize=32768 --param lto-max-streaming-parallelism=1 -Wl,--no-keep-memory -Wl,--reduce-memory-overheads" %else # x64 is fine with the the default settings (the machines have 30GB+ ram) export LDFLAGS="$LDFLAGS -flto=auto" ++++++ v8-strict-aliasing.patch ++++++ Work around numerous type confusion bugs in V8 due to GCC14 being much more aggressive about misoptimizing them Example crash (relibly happens during building electron inside mksnapshot): #0 v8::internal::compiler::CFGBuilder::CollectSuccessorBlocks () at ../../v8/src/compiler/scheduler.cc:435 #1 v8::internal::compiler::CFGBuilder::ConnectCall () at ../../v8/src/compiler/scheduler.cc:451 #2 v8::internal::compiler::CFGBuilder::ConnectBlocks () at ../../v8/src/compiler/scheduler.cc:402 #3 v8::internal::compiler::CFGBuilder::ConnectBlocks (this=0x55b3d1fc26a8, node=0x55b3d1fb6508) at ../../v8/src/compiler/scheduler.cc:365 #4 0x000055b3d0b6b05f in v8::internal::compiler::CFGBuilder::Run () at ../../v8/src/compiler/scheduler.cc:268 #5 v8::internal::compiler::Scheduler::BuildCFG (this=0x7ffd856fb860) at ../../v8/src/compiler/scheduler.cc:633 #6 0x000055b3d0b6f692 in v8::internal::compiler::Scheduler::ComputeSchedule (zone=0x55b3d1fa4100, graph=0x1070, flags=..., tick_counter=0x7ffd856fbfa0, profile_data=0x0) at ../../v8/src/compiler/scheduler.cc:64 #7 0x000055b3d0b3f3fb in v8::internal::compiler::ComputeSchedulePhase::Run () at ../../v8/src/compiler/pipeline.cc:1805 #8 v8::internal::compiler::PipelineImpl::Run<v8::internal::compiler::ComputeSchedulePhase> () at ../../v8/src/compiler/pipeline.cc:775 #9 v8::internal::compiler::PipelineImpl::ComputeScheduledGraph (this=0x7ffd856fc3b0) at ../../v8/src/compiler/pipeline.cc:3869 #10 0x000055b3d0b4b8e6 in v8::internal::compiler::Pipeline::GenerateCodeForCodeStub (isolate=0x55b3d1ac7700 <v8::internal::compiler::(anonymous namespace)::GetCommonOperatorGlobalCache()::object+288>, call_descriptor=0x55b3d1fb6b48, graph=0x7ffd856fbd30, jsgraph=0x7ffd856fbc88, source_positions=0x7ffd856fc090, kind=2, debug_name=0x55b3d1752b49 "V8.TFCSAOptimization", builtin=13, options=..., profile_data=0x0) at ../../v8/src/compiler/pipeline.cc:2951 #11 0x000055b3d0a003a9 in v8::internal::compiler::CodeAssembler::GenerateCode (state=0x7ffd856fd180, options=..., profile_data=0x0) at ../../v8/src/compiler/code-assembler.cc:175 #12 0x000055b3d0d8703d in BuildWithCodeStubAssemblerCS (isolate=0x55b3d1f19000, builtin=13, generator=0x0, interface_descriptor=3, name=0x7ffd856fd120 "\001") at ../../v8/src/builtins/setup-builtins-internal.cc:213 #13 0x000055b3d0d87440 in v8::internal::SetupIsolateDelegate::SetupBuiltinsInternal (isolate=0x55b3d1f19000) at ../../v8/src/builtins/setup-builtins-internal.cc:373 #14 0x000055b3d1726a05 in v8::internal::SetupIsolateDelegate::SetupBuiltins () at ../../v8/src/init/setup-isolate-full.cc:29 #15 v8::internal::Isolate::Init(v8::internal::SnapshotData*, v8::internal::SnapshotData*, v8::internal::SnapshotData*, bool) [clone .isra.0] () at ../../v8/src/execution/isolate.cc:4857 #16 0x000055b3d0503632 in v8::internal::Isolate::InitWithoutSnapshot () at ../../v8/src/execution/isolate.cc:4366 #17 v8::internal::SnapshotCreatorImpl::InitInternal (this=0x55b3d1f2d660, blob=0x0) at ../../v8/src/snapshot/snapshot.cc:868 #18 0x000055b3d009c347 in v8::internal::SnapshotCreatorImpl::SnapshotCreatorImpl () at ../../v8/src/snapshot/snapshot.cc:929 #19 v8::SnapshotCreator::SnapshotCreator () at ../../v8/src/api/api.cc:557 #20 main (argc=-777226496, argc@entry=14, argv=0x55b3d1fb6b48, argv@entry=0x7ffd85718da8) at ../../v8/src/snapshot/mksnapshot.cc:293 #21 0x00007f26f162a340 in __libc_start_call_main (main=main@entry=0x55b3d009b0c0 <main(int, char**)>, argc=argc@entry=14, argv=argv@entry=0x7ffd85718da8) at ../sysdeps/nptl/libc_start_call_main.h:58 #22 0x00007f26f162a409 in __libc_start_main_impl (main=0x55b3d009b0c0 <main(int, char**)>, argc=14, argv=0x7ffd85718da8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffd85718d98) at ../csu/libc-start.c:360 #23 0x000055b3d009df75 in _start () at ../sysdeps/x86_64/start.S:115 --- src/v8/BUILD.gn.old +++ src/v8/BUILD.gn @@ -775,6 +775,7 @@ config("internal_config") { libs = [ "atomic" ] } } + cflags = ["-fno-strict-aliasing"] } # Should be applied to all targets that write trace events.