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