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-11 18:12:36


#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 <joerg.krause@…>):

 I figured something out!

 It is working for version 1.61.0 (and 1.62.0) for this toolchain because
 Buildroot is patching config/platform/linux.hpp:


 {{{
 +// uClibc has no support for fenv.h, and also a few architectures
 +// don't have fenv.h support at all (or incomplete support) even with
 +// glibc.
 +
 +//
 +#if defined(__UCLIBC__) || defined(__nios2__) || defined(__microblaze__)
 +# define BOOST_NO_FENV_H
 +#endif
 }}}

 Now let me explain my confusion about `BOOST_NO_FENV_H`:

 When I wrote `BOOST_NO_FENV_H` '''is''' defined it was because of I was
 building a patched "in-tree" boost. When I wrote `BOOST_NO_FENV_H` is
 '''not''' defined it was because of I was building an unpatched "out-of-
 tree" version of boost. Note, Buildroot applies patches to in-tree
 packages, but does not apply the patches to out-of-tree packages. In this
 case, I was using the git clone for an out-of-tree build. Therefore, the
 git clone does not had the patch applied, and `BOOST_NO_FENV_H` was not
 set by the patch. May bad, sorry!

 In short, for an unpatched boost `BOOST_NO_FENV_H` is '''not''' defined
 for that toolchain.

 ----

 Nevertheless, I did a git bisect (with the patch applied) for the test
 submodule: bisect says that eec86d1fbe68aea190ce05a080d20e1569fb82a9 (trac
 11756: fix usage of floating point exception macros) is the bad commit.
 That means: when `BOOST_NO_FENV_H` is set because of the patch, boost
 compiles before this commit, but not after.

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/11756#comment:52>
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-11 18:17:05 UTC