Boost logo

Boost :

Subject: Re: [boost] [Boost-commit] svn:boost r66442 - in trunk/boost: math/tools test test/impl
From: Jürgen Hunold (juergen.hunold_at_[hidden])
Date: 2010-11-07 15:26:53


Hi !

On Sunday, 7. November 2010 21:05:06 admin_at_[hidden] wrote:
> Author: wash
> Date: 2010-11-07 15:05:04 EST (Sun, 07 Nov 2010)
> New Revision: 66442
> URL: http://svn.boost.org/trac/boost/changeset/66442
>
> Log:
> Clang hand-holding, mostly for issues caused by Clang defining GCC macros.

I do not think that removing the inclusion of "fenv.h" for clang is the right
solution. According to
http://llvm.org/bugs/show_bug.cgi?id=6907
it is a known compiler bug that clang fails to correctly load "fenv.h" in
certain environments (several gcc versions installed...)
I've been working around this by simply adding (see below)

> Text files modified:
> trunk/boost/math/tools/config.hpp | 2 +-
> trunk/boost/test/execution_monitor.hpp | 15 ++++++++-------
> trunk/boost/test/impl/execution_monitor.ipp | 18 +++++++++---------
> 3 files changed, 18 insertions(+), 17 deletions(-)
>
> Modified: trunk/boost/math/tools/config.hpp
> ===========================================================================
> === --- trunk/boost/math/tools/config.hpp (original)
> +++ trunk/boost/math/tools/config.hpp 2010-11-07 15:05:04 EST (Sun, 07
> Nov 2010) @@ -255,7 +255,7 @@
> } // namespace tools
> }} // namespace boost namespace math
>
> -#if (defined(__linux__) && !defined(__UCLIBC__)) || defined(__QNX__) ||
> defined(__IBMCPP__) +#if (defined(__linux__) && !defined(__UCLIBC__) &&
> !defined(__clang__)) || defined(__QNX__) || defined(__IBMCPP__)
>
> #include <fenv.h>

#if defined(__clang__)
#include </usr/include/fenvh.>
#else

for my local working copies.

> return ~old_cw & BOOST_FPE_ALL;
> -#elif defined(__GLIBC__) && defined(__USE_GNU)
> +#elif defined(__GLIBC__) && defined(__USE_GNU) && !defined(BOOST_CLANG)
>
> ::feclearexcept(BOOST_FPE_ALL);

And this actually removes fp-Support from Boost.Test.

Not good.

Please find a better solution.
And/Or mark the relevant places with Todo containing a reference to the clang
bug report.

Yours,

Jürgen

-- 
* Dipl.-Math. Jürgen Hunold       ! Ingenieurgesellschaft für 
* voice: ++49 511 262926 57       ! Verkehrs- und Eisenbahnwesen mbH  
* fax  : ++49 511 262926 99       ! Lister Straße 15
* juergen.hunold_at_[hidden]        ! www.ivembh.de
* 
* Geschäftsführer:                ! Sitz des Unternehmens: Hannover
* Prof. Dr.-Ing. Thomas Siefer    ! Amtsgericht Hannover, HRB 56965
* PD Dr.-Ing. Alfons Radtke       !

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk