Re: [Boost-bugs] [Boost C++ Libraries] #11756: boost.Test: non standards compliant use of FE_* macros (unable to compile boost test library on FPU-less arches)

Subject: Re: [Boost-bugs] [Boost C++ Libraries] #11756: boost.Test: non standards compliant use of FE_* macros (unable to compile boost test library on FPU-less arches)
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2017-03-12 15:06:11


#11756: boost.Test: non standards compliant use of FE_* macros (unable to compile
boost test library on FPU-less arches)
----------------------------------+------------------------
  Reporter: bartosz.krasinski@… | Owner: renficiaud
      Type: Patches | Status: reopened
 Milestone: Boost 1.64.0 | Component: test
   Version: Boost 1.59.0 | Severity: Problem
Resolution: | Keywords:
----------------------------------+------------------------

Comment (by Jörg Krause):

 Unfortunately, trac does not accept my posting because it thinks it is
 spam. Now, my comment is lost...

 So, I rewrite...

 uClibc does have a fenv.h in the system directory path. It installs fenv.h
 to the sysroot path if it was configured with UCLIBC_HAS_FENV. However,
 this feature is only implemented for i386.

 So, uClibc does have fenv.h, but does not necessarily implements and
 installs it. Furthermore, the following macros are defined:

 * `BOOST_NO_FENV_H` is not defined
 * `__UCLIBC__` is defined
 * `__USE_GNU` is defined
 * `__GLIBC__` is defined

 However, I think it is better to check with a test program if certain
 features are available, instead of relying on a bunch of macros:

 1) check if `feclearexcept()` is available => HAS_FENV
 2) check for the macros => HAS_FENV_FE_xxx
 3) check for the GNU extension => HAS_FENV_GNU

 However, I am not familiar with the Boost build system.

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/11756#comment:59>
Boost C++ Libraries <http://www.boost.org/>
Boost provides free peer-reviewed portable C++ source libraries.

This archive was generated by hypermail 2.1.7 : 2017-03-12 15:09:25 UTC