On Fri, Feb 19, 2021 at 11:36:46AM +0200, Adrian Bunk wrote: > With the old debian/rules the test was only run with > the SSE build. > > If exact results are required and the x87 excess precision is unwanted, > test with the non-SSE build can be fixed with: > > --- debian/rules.old 2021-02-18 15:12:59.097207579 +0000 > +++ debian/rules 2021-02-18 15:13:51.537168694 +0000 > @@ -51,6 +51,10 @@ > > export DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH) > > +ifneq (,$(filter $(DEB_HOST_ARCH), i386 m68k)) > + export DEB_CXXFLAGS_MAINT_APPEND += -ffloat-store > +endif > + > # For i386 and *-i386. > ifeq ($(patsubst %-i386,i386,$(DEB_HOST_ARCH)), i386) > XAPIAN_BUILD_SSE := 1
Thanks for the report, and for tracking this down to excess precision. The upstream code is meant to address excess precision in the small number of places where it matters but I guess there's a newer instance that hasn't been caught before, or a newer testcase uncovers an existing problem (or perhaps newer GCC optimises differently and that's uncovered this.) The SSE2 build will get used by more i386 systems, so the overhead from -ffloat-store won't affect many there at least, but it is a bit of heavy hammer. I'll take a look and see if I can fix this in a more targetted way. If not applying this for bullseye seems reasonable. Or we could change the tests back to run just for the SSE2 build for now - in real world use exact results are rarely a requirement, but performance often is. Cheers, Olly