Boost logo

Boost Users :

Subject: [Boost-users] Linux build of boost using Intel C++ compiler 11.1 or 11.0 and g++ 4.3.3
From: Bill O'Hara (billtohara_at_[hidden])
Date: 2009-08-25 14:01:04


Hi,
I guess this may be a known problem but I wonder if there is any
straightforward workaround.

I need to install boost on our development machines which run Linux and have
g++ 4.3.3 installed. We are wondering about also support the Intel c++
compiler (version 11.1). When trying to build boost 1.39 we get many errors
during compilation due to g++ builtins like __builtin_isfinite not being
found. Example below.

Perhaps I've missed something but using the intel toolset when building
still seems to involve using these g++ specific features. Is there a
workaround?

Thanks
Bill

For example:

    "icpc" -c -xc++ -O3 -w1 -inline-level=2 -pthread -fPIC
-DBOOST_ALL_NO_LIB=1 -DBOOST_MATH_TR1_DYN_LINK=1 -DNDEBUG -I"." -c -o
"bin.v2/libs/math/build/intel-linux-11.1/release/threading-multi/lround.o"
"libs/math/build/../src/tr1/lround.cpp"

...failed intel-linux.compile.c++
bin.v2/libs/math/build/intel-linux-11.1/release/threading-multi/lround.o...
intel-linux.compile.c++
bin.v2/libs/math/build/intel-linux-11.1/release/threading-multi/nextafter.o
/usr/include/c++/4.3.3/cmath(522): error: identifier "__builtin_isfinite" is
undefined
        return __builtin_isfinite(__type(__f));
               ^
          detected during:
            instantiation of
"__gnu_cxx::__enable_if<std::__is_arithmetic<_Tp>::__value, int>::__type
std::isfinite(_Tp) [with _Tp=double]" at line 262 of
"./boost/math/special_functions/fpclassify.hpp"
            instantiation of "bool boost::math::detail::isfinite_impl(T,
const boost::math::detail::native_tag &) [with T=double]" at line 310 of
"./boost/math/special_functions/fpclassify.hpp"
            instantiation of "bool boost::math::isfinite(T) [with T=double]"
at line 56 of "./boost/math/special_functions/next.hpp"
            instantiation of "T boost::math::float_next(const T &, const
Policy &) [with T=double, Policy=c_policies::c_policy]" at line 153 of
"./boost/math/special_functions/next.hpp"
            instantiation of "T boost::math::nextafter(const T &, const T &,
const Policy &) [with T=double, Policy=c_policies::c_policy]" at line 27 of
"libs/math/build/../src/tr1/c_policy.hpp"
            instantiation of "T c_policies::nextafter(const T &, const T &)
[with T=double]" at line 15 of "libs/math/build/../src/tr1/nextafter.cpp"

compilation aborted for libs/math/build/../src/tr1/nextafter.cpp (code 2)



Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net