Comment 0 for bug 2002810

Revision history for this message
Robert Schiele (rschiele) wrote : tests incompatible with FTZ and DAZ

A new feature of gcc on Intel platforms is to enable the FTZ and DAZ
features available on modern Intel CPUs. Those features convert
denormal floating point values to zero to avoid expensive and slow
exception handling inside the CPU. Details can be found at
https://www.intel.com/content/www/us/en/develop/documentation/cpp-compiler-developer-guide-and-reference/top/compiler-reference/floating-point-operations/set-the-ftz-and-daz-flags.html

Some Linux distributions now started to make this flag the compiler
default and build the standard runtime libraries with this switch
turned on. On those systems test cases that rely on handling such
denormal values will fail. Compiling sbcl with this feature explicitly
turned off is not preventing this problem from happening since we use
functions from libm that is built with this switch turned on and as such
will apply the conversions nevertheless to our surprise.

We would have two options here:
1. We mark those test cases to be expected to fail on Intel
   architectures and accept the fact that this feature might be turned
   on. This is what is implemented in this patch.
2. Explicitly turn the feature off for the sbcl build _and_ replace all
   math functions from the C standard library with our own copy compiled
   with the feature turned off.