Bug ID 1192192
Summary pari: gp.o varies from parallelism
Classification openSUSE
Product openSUSE Tumbleweed
Version Current
Hardware Other
OS All
Status NEW
Severity Normal
Priority P5 - None
Component Other
Assignee jengelh@inai.de
Reporter bwiedemann@suse.com
QA Contact qa-bugs@suse.de
Blocks 1102408
Found By Development
Blocker ---

Also reported upstream.

While working on reproducible builds for openSUSE, I found that
our pari-2.13.2 package build results varied between -j1 and -j4 builds.

From the logs I found that in the parallel build case, gp.o was compiled a 2nd
time without our CFLAGS but instead with flags that come from 
pari-2.13.2/config/get_cc


[1]
difflog | grep -- -o.gp.o
- /usr/bin/gcc  -c -I. -I../src/headers -I../src/language -DDL_DFLT_NAME=NULL
-O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables
-fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type 
-fno-strict-aliasing -o gp.o ../src/gp/gp.c
+ /usr/bin/gcc  -c -I. -I../src/headers -I../src/language -DDL_DFLT_NAME=NULL
-O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables
-fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type 
-fno-strict-aliasing -o gp.o ../src/gp/gp.c
+ /usr/bin/gcc  -c -I. -I../src/headers -I../src/language -DDL_DFLT_NAME=NULL
-O3 -Wall -fno-strict-aliasing -fomit-frame-pointer    -o gp.o ../src/gp/gp.c


pari-2.13.2/Olinux-x86_64/init.o also varied, likely from the same root cause.

This is probably some problem with dependencies in the build system.

We build thusly:
https://code.opensuse.org/package/pari/blob/08424e1789878449eb0ac61c5cafde2ff296a565/f/pari.spec#_104

That .o files are sometimes built without our hardening CFLAGS is a bug
independent of reproducible builds.

The previous version 2.13.1 was building reproducibly today with the old spec
file and current toolchain. But 2.13.1 also became unreproducible when building
with the current .spec file.

This indicates that one of the .spec changes triggered the new problem. The
diff is
https://code.opensuse.org/package/pari/c/08424e1789878449eb0ac61c5cafde2ff296a565

I think, the problem came from
make [...] all docpdf
because changing that to
make [...] all
make [...] docpdf

made the output reproducible again.

[1] https://github.com/bmwiedemann/reproducibleopensuse/blob/master/difflog


You are receiving this mail because: