https://bugzilla.suse.com/show_bug.cgi?id=1204697 Bug ID: 1204697 Summary: [Surm, LTO, reproducible build] The changes to ensure a reproducible Build broke testsuite package Classification: openSUSE Product: openSUSE Tumbleweed Version: Current Hardware: All OS: openSUSE Tumbleweed Status: NEW Severity: Major Priority: P5 - None Component: Other Assignee: bwiedemann@suse.com Reporter: eich@suse.com QA Contact: qa-bugs@suse.de CC: hpc-bugs@suse.de, mjambor@suse.com Found By: Development Blocker: --- Flags: needinfo?(mjambor@suse.com) The change introduced by https://build.opensuse.org/request/show/990637 made the build of the Slurm testsuite package reproducible but broke the object files which can no longer be used to link a binary. find -type f -name "*.[ao]" -print | while read f; do # drop non-deterministic lto bits from .o files strip -p --discard-locals -R .gnu.lto_* -R .gnu.debuglto_* -N __gnu_lto_v1 $f done gets applied to two object files which are included in the testsuite package. These objects cannot be built at runtime (of the testsuite) unless we ship a load of header files. The steps required to make this work would be awkward. Unfortunately, these objects cannot be linked into a binary any more, one gets: $ gcc test24.4.prog.c -g -pthread -o test24.4.prog -I/srv/slurm-testsuite -I/srv/slurm-testsuite -I/usr/include -Wl,-rpath=/usr/lib64/slurm -L/usr/lib64/slurm -lslurmfull -lresolv -ldl -lm -export-dynamic /srv/slurm-testsuite/src/slurmctld/locks.o /srv/slurm-testsuite/src/sshare/process.o Error /usr/lib64/gcc/x86_64-suse-linux/12/../../../../x86_64-suse-linux/bin/ld: /srv/slurm-testsuite/src/slurmctld/locks.o: plugin needed to handle lto object /usr/lib64/gcc/x86_64-suse-linux/12/../../../../x86_64-suse-linux/bin/ld: /srv/slurm-testsuite/src/sshare/process.o: plugin needed to handle lto object /usr/lib64/gcc/x86_64-suse-linux/12/../../../../x86_64-suse-linux/bin/ld: /tmp/cclpErBu.o: in function `main': /home/slurm-testsuite/testsuite/expect/test24.4.prog.c:543: undefined reference to `long_flag' /usr/lib64/gcc/x86_64-suse-linux/12/../../../../x86_64-suse-linux/bin/ld: /home/slurm-testsuite/testsuite/expect/test24.4.prog.c:545: undefined reference to `process' collect2: error: ld returned 1 exit status Thus, we need to find a different solution. Since we do allow shipping of static libraries, which obviously need to be reproducible but also need to work still, we should be able to apply the same post-processing to these objects to make them reproducible. The toolchain team may be able to help here. -- You are receiving this mail because: You are on the CC list for the bug.