Using boost with PathScale v4.x under Linux
Hi there, I've compiled the last boost v1.49 against PathScale v4.x compiler under 64bit linux distribution, but when compiling certain library that uses the boost/numeric/interval/rounded_transc.hpp include file, I end up on getting some error regarding asinh(), acosh() and atanh() which were searched in the std namespace. Compiling the same library against g++ or MSVC goes pretty straight without problems. /TempData/boost_1_49_0_pathscale/boost/numeric/interval/rounded_transc.hpp: In member function 'T boost::numeric::interval_lib::rounded_transc_exact<T, Rounding>::asinh_down(const T&)': /TempData/boost_1_49_0_pathscale/boost/numeric/interval/rounded_transc.hpp:42: error: 'std::asinh' has not been declared /TempData/boost_1_49_0_pathscale/boost/numeric/interval/rounded_transc.hpp: In member function 'T boost::numeric::interval_lib::rounded_transc_exact<T, Rounding>::asinh_up(const T&)': /TempData/boost_1_49_0_pathscale/boost/numeric/interval/rounded_transc.hpp:42: error: 'std::asinh' has not been declared /TempData/boost_1_49_0_pathscale/boost/numeric/interval/rounded_transc.hpp: In member function 'T boost::numeric::interval_lib::rounded_transc_exact<T, Rounding>::acosh_down(const T&)': /TempData/boost_1_49_0_pathscale/boost/numeric/interval/rounded_transc.hpp:43: error: 'std::acosh' has not been declared /TempData/boost_1_49_0_pathscale/boost/numeric/interval/rounded_transc.hpp: In member function 'T boost::numeric::interval_lib::rounded_transc_exact<T, Rounding>::acosh_up(const T&)': /TempData/boost_1_49_0_pathscale/boost/numeric/interval/rounded_transc.hpp:43: error: 'std::acosh' has not been declared /TempData/boost_1_49_0_pathscale/boost/numeric/interval/rounded_transc.hpp: In member function 'T boost::numeric::interval_lib::rounded_transc_exact<T, Rounding>::atanh_down(const T&)': /TempData/boost_1_49_0_pathscale/boost/numeric/interval/rounded_transc.hpp:44: error: 'std::atanh' has not been declared /TempData/boost_1_49_0_pathscale/boost/numeric/interval/rounded_transc.hpp: In member function 'T boost::numeric::interval_lib::rounded_transc_exact<T, Rounding>::atanh_up(const T&)': /TempData/boost_1_49_0_pathscale/boost/numeric/interval/rounded_transc.hpp:44: error: 'std::atanh' has not been declared /TempData/boost_1_49_0_pathscale/boost/numeric/interval/rounded_transc.hpp: In member function 'T boost::numeric::interval_lib::rounded_transc_std<T, Rounding>::asinh_down(const T&)': /TempData/boost_1_49_0_pathscale/boost/numeric/interval/rounded_transc.hpp:77: error: 'std::asinh' has not been declared /TempData/boost_1_49_0_pathscale/boost/numeric/interval/rounded_transc.hpp: In member function 'T boost::numeric::interval_lib::rounded_transc_std<T, Rounding>::asinh_up(const T&)': /TempData/boost_1_49_0_pathscale/boost/numeric/interval/rounded_transc.hpp:77: error: 'std::asinh' has not been declared /TempData/boost_1_49_0_pathscale/boost/numeric/interval/rounded_transc.hpp: In member function 'T boost::numeric::interval_lib::rounded_transc_std<T, Rounding>::acosh_down(const T&)': /TempData/boost_1_49_0_pathscale/boost/numeric/interval/rounded_transc.hpp:78: error: 'std::acosh' has not been declared /TempData/boost_1_49_0_pathscale/boost/numeric/interval/rounded_transc.hpp: In member function 'T boost::numeric::interval_lib::rounded_transc_std<T, Rounding>::acosh_up(const T&)': /TempData/boost_1_49_0_pathscale/boost/numeric/interval/rounded_transc.hpp:78: error: 'std::acosh' has not been declared /TempData/boost_1_49_0_pathscale/boost/numeric/interval/rounded_transc.hpp: In member function 'T boost::numeric::interval_lib::rounded_transc_std<T, Rounding>::atanh_down(const T&)': /TempData/boost_1_49_0_pathscale/boost/numeric/interval/rounded_transc.hpp:79: error: 'std::atanh' has not been declared /TempData/boost_1_49_0_pathscale/boost/numeric/interval/rounded_transc.hpp: In member function 'T boost::numeric::interval_lib::rounded_transc_std<T, Rounding>::atanh_up(const T&)': /TempData/boost_1_49_0_pathscale/boost/numeric/interval/rounded_transc.hpp:79: error: 'std::atanh' has not been declared /TempData/boost_1_49_0_pathscale/boost/numeric/interval/rounded_transc.hpp: In member function 'T boost::numeric::interval_lib::rounded_transc_opp<T, Rounding>::asinh_down(const T&)': /TempData/boost_1_49_0_pathscale/boost/numeric/interval/rounded_transc.hpp:122: error: 'std::asinh' has not been declared /TempData/boost_1_49_0_pathscale/boost/numeric/interval/rounded_transc.hpp: In member function 'T boost::numeric::interval_lib::rounded_transc_opp<T, Rounding>::asinh_up(const T&)': /TempData/boost_1_49_0_pathscale/boost/numeric/interval/rounded_transc.hpp:122: error: 'std::asinh' has not been declared /TempData/boost_1_49_0_pathscale/boost/numeric/interval/rounded_transc.hpp: In member function 'T boost::numeric::interval_lib::rounded_transc_opp<T, Rounding>::atanh_down(const T&)': /TempData/boost_1_49_0_pathscale/boost/numeric/interval/rounded_transc.hpp:123: error: 'std::atanh' has not been declared /TempData/boost_1_49_0_pathscale/boost/numeric/interval/rounded_transc.hpp: In member function 'T boost::numeric::interval_lib::rounded_transc_opp<T, Rounding>::atanh_up(const T&)': /TempData/boost_1_49_0_pathscale/boost/numeric/interval/rounded_transc.hpp:123: error: 'std::atanh' has not been declared /TempData/boost_1_49_0_pathscale/boost/numeric/interval/rounded_transc.hpp: In member function 'T boost::numeric::interval_lib::rounded_transc_opp<T, Rounding>::acosh_down(const T&)': /TempData/boost_1_49_0_pathscale/boost/numeric/interval/rounded_transc.hpp:132: error: 'std::acosh' has not been declared /TempData/boost_1_49_0_pathscale/boost/numeric/interval/rounded_transc.hpp: In member function 'T boost::numeric::interval_lib::rounded_transc_opp<T, Rounding>::acosh_up(const T&)': /TempData/boost_1_49_0_pathscale/boost/numeric/interval/rounded_transc.hpp:132: error: 'std::acosh' has not been declared Thus, I had a look in the boost include file boost/numeric/interval/detail/bugs.hpp and look like that apply the patch below fixes the compilation error: --- numeric/interval/detail/bugs.hpp.orig 2012-02-29 10:44:06.876597264 +0100 +++ numeric/interval/detail/bugs.hpp 2012-02-29 10:18:42.831581398 +0100 @@ -25,7 +25,7 @@ #else # define BOOST_NUMERIC_INTERVAL_using_math(a) using std::a # if defined(BOOST_HAS_INV_HYPERBOLIC) -# if defined(__GLIBCPP__) || defined(__GLIBCXX__) +# if defined(__GLIBCPP__) || defined(__GLIBCXX__) || defined(__GLIBC__) # define BOOST_NUMERIC_INTERVAL_using_ahyp(a) using ::a # else # define BOOST_NUMERIC_INTERVAL_using_ahyp(a) using std::a does anyone can comment? Thanks in advance, Roberto Fichera.
participants (1)
-
Roberto Fichera