Opened 12 years ago

Closed 11 years ago

#4480 closed Patches (fixed)

OpenVMS patches for compiler issues workarounds

Reported by: artyomtnk@… Owned by: viboes
Milestone: Boost 1.49.0 Component: thread
Version: Boost 1.43.0 Severity: Problem
Keywords: Cc: viboes

Description

Hello,

This patch provides fixes for OpenVMS platform/DECCXX compiler.

It is very important for the organization I work for to submit them to upstream Boost in order to make an upgrade to future Boost versions simpler.

This patch related to ticket: #4473

Thanks,

Artyom

Attachments (1)

thread.patch (2.3 KB ) - added by artyomtnk@… 12 years ago.

Download all attachments as: .zip

Change History (8)

by artyomtnk@…, 12 years ago

Attachment: thread.patch added

comment:1 by viboes, 12 years ago

Cc: viboes added

Please, could you provide the compile errors you get?

comment:2 by artyomtnk@…, 12 years ago

Please, could you provide the compile errors you get?

I'll provide them as soon as I get to OpenVMS (I think on Sunday)

comment:3 by alan.antonuk@…, 11 years ago

Not sure if you're still looking for the compile errors (these changes still seem applicable in boost 1.46.1 on OpenVMS v8.3 on Alpha, with C++ V7.3-015)

For the change in the future.hpp file, the errors I get without the fixes are:

                        locks[i]=boost::unique_lock<boost::mutex>(futures[i].future->mutex);
.................................^
%CXX-W-REFTEMPORARY, initial value of reference to non-const must be an
          lvalue
at line number 422 in file BOOST_1_46_1:[boost.thread]future.hpp;1

                        locks[i]=boost::unique_lock<boost::mutex>(futures[i].future->mutex);
................................^
%CXX-E-INASPEFUN, "boost::unique_lock<Mutex>
          &boost::unique_lock<Mutex>::operator=(boost::unique_lock<Mutex> &)
          [with Mutex=boost::mutex]" is inaccessible
at line number 422 in file BOOST_1_46_1:[boost.thread]future.hpp;1

The errors in thread_data.hpp:

            this_thread::sleep(get_system_time()+rel_time);
................................................^
%CXX-E-NOMATOPRFUN, no operator "+" matches these operands
            operand types are: boost::system_time + const boost::system_time
          detected during instantiation of "void
                    boost::this_thread::sleep(const TimeDuration &) [with
                    TimeDuration=boost::system_time]" at line 346 of
                    "BOOST_1_46_1:[boost.thread.detail]thread.hpp;1"
at line number 138 in file BOOST_1_46_1:[boost.thread.pthread]thread_data.hpp;1

        void sleep(const system_time& st)
.............^
%CXX-E-SPECALINLTMPFUN, specific definition of inline template function must
          precede its first use
at line number 320 in file BOOST_1_46_1:[libs.thread.src.pthread]thread.cpp;1

I haven't been able to repro the error in thread.cpp

comment:4 by viboes, 11 years ago

Milestone: Boost 1.44.0To Be Determined
Owner: changed from Anthony Williams to viboes
Status: newassigned

comment:5 by viboes, 11 years ago

Milestone: To Be DeterminedBoost 1.49.0

Committed in trunk revision 75787 (sleep part).

comment:6 by viboes, 11 years ago

Committed in trunk revision 75788 (future move part).

comment:7 by viboes, 11 years ago

Resolution: fixed
Status: assignedclosed

Committed in release at #76291

Note: See TracTickets for help on using tickets.