Source: pulseaudio
Version: 12.2-2
Severity: important
Justification: fails to build from source but built in the past.
User: [email protected]
Usertags: alpha
Tags: patch
Pulseaudio FTBFS on alpha due to the volume-test test failing due to
a floating-point exception which in turn is due to an infinity in
floating-point calculations when volume-test is compiled with finite
math options.
This is bug #798248 reappearing but in a subtlely different guise.
There the non-finite math was protected against by checking that the
arguments are finite before performing floating point calculations,
but it now seems that gcc takes the specification of finite math,
being "[a]llow optimizations for floating-point arithmetic that
assume that arguments and results are not NaNs or +-Infs" so
pedantically true, that it is fair game to optimise away any calls
to isfinite() because the argument must be finite: it was said so
on the command line!
Whatever, examination of the object code shows that the calls to
isfinite() are eliminated thus the floating-point arithmetic is no
longer protected.
Fortunately we can work out whether the arguments to the offending
arithmetic are finite by other means and I attach a patch doing
just that. With this patch pulseaudio builds to completion on
Alpha.
Cheers,
Michael.
Index: pulseaudio-12.2/src/tests/volume-test.c
===================================================================
--- pulseaudio-12.2.orig/src/tests/volume-test.c 2018-12-15 14:29:34.000000000 +1300
+++ pulseaudio-12.2/src/tests/volume-test.c 2018-12-15 16:24:38.303993387 +1300
@@ -114,7 +114,7 @@
double q, qq;
p = pa_sw_volume_multiply(v, w);
- if (isfinite(db) && isfinite(db2))
+ if (v && w)
qq = db + db2;
else
qq = -INFINITY;
_______________________________________________
pkg-pulseaudio-devel mailing list
[email protected]
https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/pkg-pulseaudio-devel