On 2015-09-15 06:45, Arun Raghavan wrote:
On 9 September 2015 at 15:19, Michael Cree <mc...@orcon.net.nz> wrote:
Pulseaudio fails to build on the Alpha architecture due to a failure
in the volume-test of the test suite.  I had reported this to the
Debian bug tracker [1] but the maintainer has asked that I forward the
patch to this mail list.  The failure in volume-test occurs because it
is compiled with -ffast-math which implies -ffinite-math-only of which
the gcc manual states that it optimizes for floating-point arithmetic
with the assumption that arguments and results are not NaNs or
+/-infinity, and futher notes that it may result in incorrect output.
On the Alpha platform that is somewhat an understatement as the use of
non-finite floating-point arithmetic with -ffinite-math-only results in
a floating-point exception and the termination of the program.

The volume-test converts volumes into decibels (so a zero volume
becomes a negative infinity) and proceeds to add two volumes (in
decibels), thus does arithmetic with non-finite floating point numbers
despite being compiled with -ffast-math!

I attach a patch that protects against the arithmetic with non-finite
numbers for your consideration.  With that patch the test-suite passes
on Alpha.

Cheers
Michael.

[1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=798248

Thanks for the fix! I've pushed this out to our next branch (since
we're frozen for the 7.0 release, it'll only make it out in 8.0).

Hi Arun,

Thanks for picking it up, but I think this is a typical example of a bug fix that should go in 7.0 even though we're frozen. Not merging it only leads to more buggy 7.0 release, and more distro patching for downstreams.


--
David Henningsson, Canonical Ltd.
https://launchpad.net/~diwic

Reply via email to