Boost logo

Boost Users :

Subject: Re: [Boost-users] [1.52.0] Beta release candidates available
From: Lemay.Steve (Steve.Lemay_at_[hidden])
Date: 2012-10-09 17:56:06


Currently, we are experimenting with qcc (gcc) 4.7.1 but do not have a shippable Dinkum C++11 STL to compile with.

SGL
steven.lemay_at_[hidden]<mailto:steven.lemay_at_[hidden]>

From: boost-users-bounces_at_[hidden] [mailto:boost-users-bounces_at_[hidden]] On Behalf Of Vicente J. Botet Escriba
Sent: Sunday, October 07, 2012 7:18 AM
To: boost-users_at_[hidden]
Subject: Re: [Boost-users] [1.52.0] Beta release candidates available

Le 06/10/12 15:01, Vicente J. Botet Escriba a écrit :
Le 05/10/12 17:56, Lemay.Steve a écrit :

Here's the first problem that pops up for me... QNXNTO gcc 4.7.1

qcc.compile.c++ D:\boostBuild_QCC_1_52_0_beta1\boost\bin.v2\libs\chrono\build\qcc\release\link-static\target-os-qnxnto\threadapi-pthread\threading-multi\chrono.o
In file included from ./boost/chrono/chrono.hpp:11:0,
                  from ./boost/chrono/detail/inlined/chrono.hpp:13,
                  from libs\chrono\src\chrono.cpp:14:
./boost/chrono/duration.hpp: In static member function 'static constexpr float boost::chrono::detail::chrono_numeric_limits<float, true>::lowest()':
./boost/chrono/duration.hpp:355:56: error: call to non-constexpr function 'static std::numeric_limits<float>::_Ty std::numeric_limits<float>::max()'
./boost/chrono/duration.hpp: In static member function 'static constexpr double boost::chrono::detail::chrono_numeric_limits<double, true>::lowest()':
./boost/chrono/duration.hpp:363:57: error: call to non-constexpr function 'static std::numeric_limits<double>::_Ty std::numeric_limits<double>::max()'
./boost/chrono/duration.hpp: In static member function 'static constexpr long double boost::chrono::detail::chrono_numeric_limits<long double, true>::lowest()':
./boost/chrono/duration.hpp:371:61: error: call to non-constexpr function 'static std::numeric_limits<long double>::_Ty std::numeric_limits<long double>::max()'
cc: d:/qnxsdk/qnxsdk6.5-001/host/win32/x86/usr/lib/gcc/i486-pc-nto-qnx6.5.0/4.7.1/cc1plus caught signal 1

     "QCC" -Wc,-ftemplate-depth-128 -DFD_SETSIZE=2048 -march=k8-sse3 -mtune=k8-sse3 -mmmx -msse3 -mfpmath=sse -mno-3dnow -mstackrealign -Wc,-fPIC,-std=c++0x,-std=gnu++0x -O3 -Wc,-finline-functions -Wc,-Wno-inline -Wc,-Wall -DBOOST_ALL_NO_LIB=1 -DBOOST_All_STATIC_LINK=1 -DBOOST_SYSTEM_NO_DEPRECATED -DBOOST_SYSTEM_STATIC_LINK=1 -DNDEBUG -I"." -c -o "D:\boostBuild_QCC_1_52_0_beta1\boost\bin.v2\libs\chrono\build\qcc\release\link-static\target-os-qnxnto\threadapi-pthread\threading-multi\chrono.o" "libs\chrono\src\chrono.cpp"

...failed qcc.compile.c++ D:\boostBuild_QCC_1_52_0_beta1\boost\bin.v2\libs\chrono\build\qcc\release\link-static\target-os-qnxnto\threadapi-pthread\threading-multi\chrono.o...
common.copy D:\boost\include\boost\checked_delete.hpp
D:\boost_1_52_0_beta1\boost\checked_delete.hpp
         1 file(s) copied.
common.copy D:\boost\include\boost\chrono.hpp
D:\boost_1_52_0_beta1\boost\chrono.hpp
         1 file(s) copied.
qcc.compile.c++ D:\boostBuild_QCC_1_52_0_beta1\boost\bin.v2\libs\chrono\build\qcc\release\link-static\target-os-qnxnto\threadapi-pthread\threading-multi\process_cpu_clocks.o
In file included from ./boost/chrono/process_cpu_clocks.hpp:18:0,
                  from ./boost/chrono/detail/inlined/process_cpu_clocks.hpp:19,
                  from libs\chrono\src\process_cpu_clocks.cpp:17:
./boost/chrono/duration.hpp: In static member function 'static constexpr float boost::chrono::detail::chrono_numeric_limits<float, true>::lowest()':
./boost/chrono/duration.hpp:355:56: error: call to non-constexpr function 'static std::numeric_limits<float>::_Ty std::numeric_limits<float>::max()'
./boost/chrono/duration.hpp: In static member function 'static constexpr double boost::chrono::detail::chrono_numeric_limits<double, true>::lowest()':
./boost/chrono/duration.hpp:363:57: error: call to non-constexpr function 'static std::numeric_limits<double>::_Ty std::numeric_limits<double>::max()'
./boost/chrono/duration.hpp: In static member function 'static constexpr long double boost::chrono::detail::chrono_numeric_limits<long double, true>::lowest()':
./boost/chrono/duration.hpp:371:61: error: call to non-constexpr function 'static std::numeric_limits<long double>::_Ty std::numeric_limits<long double>::max()'
cc: d:/qnxsdk/qnxsdk6.5-001/host/win32/x86/usr/lib/gcc/i486-pc-nto-qnx6.5.0/4.7.1/cc1plus caught signal 1

Are you linking with a c++11 standard library? Could you do it?
Please could you create a ticket?
Hi, I have created https://svn.boost.org/trac/boost/ticket/7479 and https://svn.boost.org/trac/boost/ticket/7478 for a similar issue with Boost.ratio.

I would try to take care of this tomorrow. BTW, Is there a macro to know if the standard library supports constexpr? Which macro can be used to get rid of this issue?
I have committed fixes for this issue https://svn.boost.org/trac/boost/changeset/80897 and a partial solution for 7478 with https://svn.boost.org/trac/boost/changeset/80896 ( Currently there are no macros BOOST_NO_CXX11_U16STRING and BOOST_NO_CXX11_U32STRING signaling that the standard library doesn't provides std::u16string or std::u32string. The committed change avoids the compile error when Boost.Config will provide these macros. In the mean time the user needs to define them explicitly while using Boost.Ratio in these conditions. )

Please could you check either the trunk or apply the patches associated to the tickets?

Best,
Vicente



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