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