On 11/29/2016 06:01 PM, Tobias Hansen wrote: > On 11/29/2016 03:53 PM, Doug Torrance wrote: >> Control: reassign -1 src:givaro >> >> On 11/29/2016 09:58 AM, Tobias Hansen wrote: >>> I think I figured out at least the test failures with "Illegal >>> instruction" on i386. The problem is that givaro is built using cpu >>> extensions that are not allowed. >>> >>> Jerome figured out in [1] that the problem happens when givaro code is >>> called. And sure enough: >>> >>> objdump -S /usr/lib/i386-linux-gnu/libgivaro.so.9.0.0 | grep >>> '\b\(ymm\|zmm\|vfm\)' >>> 15411: c4 e3 79 6b 8b a4 29 vfmaddsd >>> %xmm2,-0x1d65c(%ebx),%xmm0,%xmm1 >>> 154d1: c4 e3 69 6b 8b ac 29 vfmaddsd >>> %xmm0,-0x1d654(%ebx),%xmm2,%xmm1 >>> >>> And in the i386 build logs for givaro there are these flags: >>> -mmmx -mpopcnt -msse -msse2 -msse3 -msse4.1 -msse4.2 -msse4a -mavx >>> -mfma4 -mfpmath=sse >>> >>> Do you have time in the next days to disable these flags? Otherwise I >>> can do it. (I'm not sure if some of these flags (mmx, sse ?) are allowed >>> on i386 and didn't find that info. Ximin, do you know this?) >> >> Sure, I can take a look. I think it should be a simple --disable-simd >> in d/rules (we did the same in fflas-ffpack). >> >> Doug > > Thanks! I tried building it but now there seems to be an issue similar > to [1]: > > FAIL: test-ringarith > ==================== > > 997167681959697!=997167682008849 failed (at line 123) > x y failed ! > MEDmax failed ! > FAIL test-ringarith (exit status: 255) > > And it even fails when setting the flag -ffp-contract=off . > Note that now the failure seems to be related to ModularExtended<double> > instead of ModularExtended<float> (MEDmax instead of MEFmax in the error > message). > > Best, > Tobias > > [1] https://github.com/linbox-team/givaro/issues/25
Ok, a workaround is to set -ffloat-store (like the Fedora package). I pushed this change to the git repo. Can I upload this? Best, Tobias