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
Index: pulseaudio-6.0/src/tests/volume-test.c =================================================================== --- pulseaudio-6.0.orig/src/tests/volume-test.c +++ pulseaudio-6.0/src/tests/volume-test.c @@ -114,7 +114,10 @@ START_TEST (volume_test) { double q, qq; p = pa_sw_volume_multiply(v, w); - qq = db + db2; + if (isfinite(db) && isfinite(db2)) + qq = db + db2; + else + qq = -INFINITY; p2 = pa_sw_volume_from_dB(qq); q = l*t; p1 = pa_sw_volume_from_linear(q);