Bugzilla – Bug 1146634
pcc does not build reproducibly with LTO
Last modified: 2023-04-06 15:44:57 UTC
/usr/lib64/pcc/x86_64-suse-linux-gnu/1.0.0.RELEASE/lib/*.o differ e.g. +Contents of section .gnu.lto_.profile.23efe723a460f453: + 0000 789ce360 60044220 0000005d 000b x..``.B ...].. /usr/lib64/pcc/x86_64-suse-linux-gnu/1.0.0.RELEASE/lib/crt0.o differs in ELF section .gnu.lto_.icf.23efe723a460f453 /usr/lib64/pcc/x86_64-suse-linux-gnu/1.0.0.RELEASE/lib/crt0.o: file format elf64-x86-64 +Contents of section .gnu.lto_.icf.23efe723a460f453: + 0000 789ce360 6064e060 40004686 cecf6fba x..``d.`@.F...o. + 0010 1819000e db0306 ....... The .a files are fine, though, because they are stripped by https://github.com/openSUSE/brp-check-suse/blob/master/brp-15-strip-debug#L40
This also affects perl-XML-Parser /usr/share/doc/packages/perl-XML-Parser/Expat/Expat.o maybe that file should not be in there? also racket /usr/lib64/racket/mzdyn3m.o and clisp /usr/lib64/clisp-2.49.92/zlib/zlib.o The latter both have other reproducibility issues as well
(In reply to Bernhard Wiedemann from comment #1) > This also affects perl-XML-Parser > /usr/share/doc/packages/perl-XML-Parser/Expat/Expat.o > maybe that file should not be in there? Good catch! In fact, there are a couple of files that should not be in the doc section. I just submitted a fix here: https://build.opensuse.org/request/show/725122 Please, let me know if that fixes the LTO build in ppc.
Thanks Pedro. perl-XML-Parser is fine now. Still a problem with pcc and racket though.
https://github.com/openSUSE/brp-check-suse/pull/29 helped with pcc reproducibility in my tests.
There is a new racket version 7.4: https://racket-lang.org/ You can ask the maitainers to update the package. The osc maintainer command returns: toganm, KGronlund, olszewst
May I ask you why do the packages distribute *.o files in RPM?
That's the runtime startup code of the PCC compiler. It's purpose is similar to the crt*.o files distributed by gcc packages.
This is an autogenerated message for OBS integration: This bug (1146634) was mentioned in https://build.opensuse.org/request/show/774512 Factory / brp-check-suse
solved for pcc. Only thing left is a rebuild for Factory pcc package.