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.

Reply via email to