Re: [Boost-bugs] [Boost C++ Libraries] #9161: two definitions of future_object_base in v1.53 and 1.54

Subject: Re: [Boost-bugs] [Boost C++ Libraries] #9161: two definitions of future_object_base in v1.53 and 1.54
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2013-09-27 08:43:14


#9161: two definitions of future_object_base in v1.53 and 1.54
---------------------------------+----------------------------------
  Reporter: jennifer.l.jiang@… | Owner: viboes
      Type: Bugs | Status: reopened
 Milestone: To Be Determined | Component: thread
   Version: Boost 1.54.0 | Severity: Problem
Resolution: | Keywords: BOOST_THREAD_VERSION
---------------------------------+----------------------------------
Changes (by johnmaddock):

 * status: closed => reopened
 * resolution: wontfix =>

Comment:

 As the person who suggested Jennifer file a bug report here I feel I
 should try and clarify the issue (Jennifer works for Intel: her interest
 is in testing their compiler against Boost, but of course this uncovers
 bugs in Boost as well as their compiler).

 1) In the headers I see things like:

 {{{
 #if defined BOOST_THREAD_PROVIDES_FUTURE_CONTINUATION
             typedef shared_ptr<shared_state_base> continuation_ptr_type;
 #else
             // This type shouldn't be included, but is included to
 maintain the same layout.
             typedef shared_ptr<void> continuation_ptr_type;
 #endif
 }}}

 So it appears that the intention is that the library should be binary
 compatible regards of the setting of BOOST_THREAD_VERSION? And yet that's
 clearly not the case - at least in the presence of IPO. At the very least
 this needs clearly documenting.

 2) There are many tests which explicitly test version 3 or 4 features, but
 which still try and link against a library built with version 2. Again
 this won't work in the presence of IPO, and prevents the running of tests
 with IPO enabled (which is a good thing to test BTW). So IMO the Jamfile
 is broken - you should really build 3 versions of libboost_thread (for
 versions 2, 3 and 4) and link against the right one in each test. Clearly
 that's going to be tedious to fix, but I don't see how the current
 situation can be correct either (So it might actually be better to fix 1).

 Let me know if you need someone to run the tests with Intel C++.

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/9161#comment:5>
Boost C++ Libraries <http://www.boost.org/>
Boost provides free peer-reviewed portable C++ source libraries.

This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:14 UTC