[Boost-bugs] [Boost C++ Libraries] #3291: Compilation problem with serialization with g++ and stlport under FreeBSD

Subject: [Boost-bugs] [Boost C++ Libraries] #3291: Compilation problem with serialization with g++ and stlport under FreeBSD
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2009-07-27 10:46:40


#3291: Compilation problem with serialization with g++ and stlport under FreeBSD
-----------------------------+----------------------------------------------
 Reporter: olegabr@… | Owner: ramey
     Type: Bugs | Status: new
Milestone: Boost 1.40.0 | Component: serialization
  Version: Boost 1.34.1 | Severity: Problem
 Keywords: |
-----------------------------+----------------------------------------------
 Compilation problem with serialization with g++ and stlport under FreeBSD.

 {{{
 #include <boost/archive/binary_iarchive.hpp>
 #include <boost/archive/binary_oarchive.hpp>

 // my code using boost::serialization

 //-------------------------------------------
 /* link with libboost_serialization */

 // hack to temporarily solve the problem with boost::serialization
 implementation vs g++ and stlport
 namespace stlp_std
 {
         using ::mbstate_t;
 }

 #include <boost/../libs/serialization/src/binary_iarchive.cpp>
 #include <boost/../libs/serialization/src/binary_oarchive.cpp>

 }}}


 I'm intensionally don't link to pre-built boost libraries. I've used the
 "include *.cpp" technique. Compillation error with g++/stlport states:


 {{{
 In file included from
 /usr/local/include/boost/archive/impl/basic_binary_iprimitive.ipp:29,
                  from ./CSSD/serialization/binary_iarchive.cpp:16,
                  from CSSD/CSSD_Config.cpp:222:
 /usr/local/include/boost/archive/codecvt_null.hpp: At global scope:
 /usr/local/include/boost/archive/codecvt_null.hpp:45: error: 'mbstate_t'
 is not a member of 'stlp_std'
 /usr/local/include/boost/archive/codecvt_null.hpp:45: error: 'mbstate_t'
 is not a member of 'stlp_std'
 /usr/local/include/boost/archive/codecvt_null.hpp:45: error: template
 argument 3 is invalid
 /usr/local/include/boost/archive/codecvt_null.hpp: In constructor
 'boost::archive::codecvt_null<char>::codecvt_null(size_t)':
 /usr/local/include/boost/archive/codecvt_null.hpp:52: error: 'mbstate_t'
 is not a member of 'stlp_std'
 /usr/local/include/boost/archive/codecvt_null.hpp:52: error: 'mbstate_t'
 is not a member of 'stlp_std'
 /usr/local/include/boost/archive/codecvt_null.hpp:52: error: template
 argument 3 is invalid
 /usr/local/include/boost/archive/codecvt_null.hpp: At global scope:
 /usr/local/include/boost/archive/codecvt_null.hpp:57: error: 'mbstate_t'
 is not a member of 'stlp_std'
 /usr/local/include/boost/archive/codecvt_null.hpp:57: error: 'mbstate_t'
 is not a member of 'stlp_std'
 /usr/local/include/boost/archive/codecvt_null.hpp:57: error: template
 argument 3 is invalid
 /usr/local/include/boost/archive/codecvt_null.hpp:61: error:
 'stlp_std::mbstate_t' has not been declared
 /usr/local/include/boost/archive/codecvt_null.hpp:71: error:
 'stlp_std::mbstate_t' has not been declared
 }}}


 I've tried to use "#if defined" code from svn trunk
 (https://svn.boost.org/trac/boost/browser/trunk/boost/archive/codecvt_null.hpp),
 but it doesn't work.

 Conclusion: it is most likely that the same problem exists in trunk
 version too.

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/3291>
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:00 UTC