Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package llvm18 for openSUSE:Factory checked 
in at 2025-07-28 14:58:04
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/llvm18 (Old)
 and      /work/SRC/openSUSE:Factory/.llvm18.new.13279 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "llvm18"

Mon Jul 28 14:58:04 2025 rev:14 rq:1295972 version:18.1.8

Changes:
--------
--- /work/SRC/openSUSE:Factory/llvm18/llvm18.changes    2025-05-23 
14:27:50.909710047 +0200
+++ /work/SRC/openSUSE:Factory/.llvm18.new.13279/llvm18.changes 2025-07-28 
14:58:09.710313701 +0200
@@ -1,0 +2,7 @@
+Sat Jul 26 16:17:06 UTC 2025 - Bernhard Wiedemann <bwiedem...@suse.com>
+
+- Disable ASLR during build to make libomp.so reproducible (boo#1199076)
+- Add reproducible.patch to make libomp.so reproducible (boo#1199076)
+- Replace usage of %jobs for reproducible builds (boo#1237231)
+
+-------------------------------------------------------------------

New:
----
  reproducible.patch

----------(New B)----------
  New:- Disable ASLR during build to make libomp.so reproducible (boo#1199076)
- Add reproducible.patch to make libomp.so reproducible (boo#1199076)
- Replace usage of %jobs for reproducible builds (boo#1237231)
----------(New E)----------

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ llvm18.spec ++++++
--- /var/tmp/diff_new_pack.hHVpmR/_old  2025-07-28 14:58:11.362381927 +0200
+++ /var/tmp/diff_new_pack.hHVpmR/_new  2025-07-28 14:58:11.366382092 +0200
@@ -117,7 +117,7 @@
 # Set max_<type>_jobs so that every job of the given type has at least the
 # given amount of memory.
 %define set_jobs() \
-    max_%{1}_jobs="%{?jobs:%{jobs}}" \
+    max_%{1}_jobs="$(echo %{?_smp_mflags} | cut -c 3-)" \
     if test -n "$max_%{1}_jobs" -a "$max_%{1}_jobs" -gt 1 ; then \
         max_jobs="$(($avail_mem / %2))" \
         test "$max_%{1}_jobs" -gt "$max_jobs" && max_%{1}_jobs="$max_jobs" && 
echo "Warning: Reducing number of %{1} jobs to $max_jobs because of memory 
limits" \
@@ -413,6 +413,8 @@
 Patch17:        llvm-suse-implicit-gnu.patch
 # PATCH-FIX-OPENSUSE: No need to run {amdgpu,nvptx}-arch because we don't have 
the toolchains installed anyway.
 Patch18:        openmp-dont-run-gpu-arch.patch
+# PATCH-FIX-UPSTREAM: make libomp reproducible (boo#1199076)
+Patch19:        reproducible.patch
 Patch20:        llvm_build_tablegen_component_as_shared_library.patch
 Patch21:        tests-use-python3.patch
 Patch24:        opt-viewer-Find-style-css-in-usr-share.patch
@@ -959,6 +961,7 @@
 
 %if %{with openmp}
 mv openmp-%{_version}.src projects/openmp
+%patch -P 19 -p1
 %endif
 
 %if %{with libcxx}
@@ -1088,12 +1091,13 @@
 %if %{with thin_lto} && %{with use_lld}
 %global lld_ldflag --ld-path=%{sourcedir}/stage1/bin/ld.lld
 %ifarch %{arm} i586 ppc
-%if %{jobs} > 8
-%global lto_limit_threads -Wl,--thinlto-jobs=8
-%endif
+jobs=$(echo %{?_smp_mflags} | cut -c 3-)
+if [ "$jobs" -gt 8 ] ; then
+    lto_limit_threads=-Wl,--thinlto-jobs=8
+fi
 %endif
 %endif
-%define build_ldflags -Wl,--build-id=sha1 %{?lld_ldflag} %{?lto_limit_threads}
+%define build_ldflags -Wl,--build-id=sha1 %{?lld_ldflag} ${lto_limit_threads}
 # The build occasionally uses tools linking against previously built
 # libraries (mostly libLLVM.so), but we don't want to set RUNPATHs.
 export LD_LIBRARY_PATH=%{sourcedir}/build/%{_lib}
@@ -1166,6 +1170,7 @@
 unset MALLOC_CHECK_
 %endif
 
+setarch -R \
 ninja -v %{?_smp_mflags}
 
 %if %{with thin_lto}












++++++ reproducible.patch ++++++
From: "Bernhard M. Wiedemann" <bwiedem...@suse.de>
Date: Fri, 11 Jul 2025 08:26:10 +0200
Subject: [PATCH] Drop timestamp in generated source code

Fixes #72206

This helps reproducible builds of libomp.so
probably because LLVM's LTO computed a hash of inputs
to generate its symbol names.

This patch was done while working on reproducible builds for openSUSE.
---
 
Index: openmp-15.0.7.src/docs/conf.py
===================================================================
--- a/projects/openmp/docs/conf.py
+++ b/projects/openmp/docs/conf.py
@@ -12,7 +12,6 @@
 # serve to show the default.
 
 import sys, os
-from datetime import date
 
 # If extensions (or modules to document with autodoc) are in another directory,
 # add these directories to sys.path here. If the directory is relative to the
@@ -42,7 +41,7 @@ master_doc = "index"
 
 # General information about the project.
 project = "LLVM/OpenMP"
-copyright = "2013-%d, LLVM/OpenMP" % date.today().year
+copyright = "2013-%d, LLVM/OpenMP" % 2023
 
 # The version info for the project you're documenting, acts as replacement for
 # |version| and |release|, also used in various other places throughout the
Index: openmp-15.0.7.src/runtime/tools/message-converter.pl
===================================================================
--- a/projects/openmp/runtime/tools/message-converter.pl
+++ b/projects/openmp/runtime/tools/message-converter.pl
@@ -50,7 +50,7 @@ sub _generate_comment($$$) {
     my $bulk =
         $open . " Do not edit this file! " . $close . "\n" .
         $open . " The file was generated from " . get_file( $data->{ "%meta" 
}->{ source } ) .
-            " by " . $tool . " on " . localtime() . ". " . $close . "\n";
+            " by " . $tool . ". " . $close . "\n";
     return $bulk;
 
 }; # sub _generate_comment

Reply via email to