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

Reply via email to