Confused by the <fenv> implementation, causing gsl build issues

Rich Felker dalias at aerifal.cx
Fri Oct 19 18:07:47 UTC 2012


On Sun, Oct 14, 2012 at 12:04:29PM +0200, Thomas Petazzoni wrote:
> Hello,
> 
> uClibc provides a UCLIBC_HAS_FENV option that can be enabled on any
> architecture. As soon as this option is enabled, the <fenv.h> header is
> included, which make applications and libraries think that function
> such as feenableexcept() or fesetround() are available. However, on
> ARM, those function are in fact not implemented by uClibc.

The functions should always be implemented, possibly as no-ops if the
arch does not support exceptions or rounding modes (in which case 0 is
the only argument to them that does not invoke UB). The presence of
the macro definitions for each exception and rounding mode are the
standards-conformant way to indicate to applications which features
are available; all of them except FE_TONEAREST (==0) should be left
undefined on archs with no fpu.

Rich


More information about the uClibc mailing list