Boost logo

Boost Users :

Subject: Re: [Boost-users] compilation problems with thread/chrono & boost 1.51 & HPUX
From: Vicente J. Botet Escriba (vicente.botet_at_[hidden])
Date: 2012-09-05 07:40:42


Le 05/09/12 11:52, Avi Bahra a écrit :
>> Le 04/09/12 11:44, Avi Bahra a ?crit :
>>>>> On 3.9.2012. 10:26, Avi Bahra wrote:
>>>>>> Can any one suggest *any* hacks/workarounds that gets me pass these errors.
>>>>>> Is it possible to use gcc on HPUX with boost 1.51 ?
>>>>> The docs for boost thread 1.51 say this:
>>>>>
>>>>> Boost.Thread uses by default Boost.Chrono for the time related
>>>>> functions. For backward compatibility and also for compilers that don't
>>>>> work well with Boost.Chrono the user can define
>>>>> BOOST_THREAD_DONT_USE_CHRONO. If BOOST_THREAD_DONT_USE_SYSTEM is defined
>>>>> then BOOST_THREAD_DONT_USE_CHRONO is defined implicitly.
>>>>>
>>>>> BOOST_THREAD_USES_CHRONO is defined when Boost.Thread uses Boost.Chrono.
>>> I have already tried BOOST_THREAD_DONT_USE_CHRONO and it has no effect.
>>> It appears that some of headers files are not guarded with this.
>>>
>>> In my case
>>> $BOOST_ROOT/boost/chrono/system_clocks.hpp
>> This evidently should not be included. Could you point from where it is
>> included?
> libs/chrono/src/chrono.cpp fails to compile with errors in system_clocks.hpp
> and overflow_helpers.hpp
If you define BOOST_THREAD_DONT_USE_CHRONO, I don't see why you need

boost/chrono/system_clocks.hpp

>
>>> $BOOST_ROOT/boost/ratio/detail/overflow_helpers.hpp
>> This evidently should not be included. Could you point from where it is
>> included?
> libs/chrono/src/chrono.cpp fails to compile with errors in system_clocks.hpp
> and overflow_helpers.hpp
>
> libs/chrono/src/process_cpu_clocks.cpp fails to compile
> with error in overflow_helpers.hpp
>
>>> $BOOST_ROOT/boost/thread/future.hpp
>> Could you point where in this file the compiler fails?
>>> do not compile,
>>>
> "libs/thread/src/future.cpp"
Well I think I see what is not working. Where are you defining
BOOST_THREAD_DONT_USE_CHRONO? You need to do it the command line and
requested to don't build Boost.Chrono and a build without Boost.Chrono.

bjam define=BOOST_THREAD_DONT_USE_CHRONO --without-chrono
>>> Also Is it possible to make a request to change:
>>>
>>> $BOOST_ROOT/boost/thread/future.hpp
>>>
>>> line:603
>>> for(count_type i=0;i<count;++i)
>>> {
>>> #if defined __DECCXX || defined __SUNPRO_CC
>>> locks[i]=boost::unique_lock<boost::mutex>(futures[i].future_->mutex).move();
>>> #else
>>> locks[i]=boost::unique_lock<boost::mutex>(futures[i].future_->mutex);
>>> #endif
>>> }
>>>
>>> T0:
>>>
>>> for(count_type i=0;i<count;++i)
>>> {
>>> #if defined __DECCXX || defined __SUNPRO_CC || defined __hpux
>>> locks[i]=boost::unique_lock<boost::mutex>(futures[i].future_->mutex).move();
>>> #else
>>> locks[i]=boost::unique_lock<boost::mutex>(futures[i].future_->mutex);
>>> #endif
>>> }
>>>
>> Please could you create a ticket for that?
> created ticket 7329.
Thanks,
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