-
Notifications
You must be signed in to change notification settings - Fork 4.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Remove shared_ptr support from EOS Portable Archive #6369
Remove shared_ptr support from EOS Portable Archive #6369
Conversation
A new Pull Request was created by @davidlt for CMSSW_7_3_X. Remove shared_ptr support from EOS Portable Archive It involves the following packages: CondFormats/Serialization @ggovi, @cmsbuild, @apfeiffer1, @nclopezo can you please review it and eventually sign? Thanks. |
+1 On Thu, Nov 13, 2014 at 11:51 AM, cmsbuild notifications@github.com wrote:
Thanks, |
This pull request is fully signed and it will be integrated in one of the next CMSSW_7_3_X IBs unless changes or unless it breaks tests. |
This is the only solution I can currently offer without digging to deep. I wrote to boost mailing list, but I don't expect the answer soonish (or at all). |
I already see in Jenkins that this is failing with Boost 1.51.0 and I only tested with 1.57.0. I will look once the results are ready. |
-1 /afs/cern.ch/cms/sw/ReleaseCandidates/vol0/slc6_amd64_gcc481/external/boost/1.51.0-cms2/include/boost/archive/basic_binary_iarchive.hpp:70:7: required from 'void boost::archive::basic_binary_iarchive::load_override(T&, int) [with T = const boost::serialization::nvp > > > >; Archive = eos::portable_iarchive]' /afs/cern.ch/cms/sw/ReleaseCandidates/vol0/slc6_amd64_gcc481/external/boost/1.51.0-cms2/include/boost/archive/detail/interface_iarchive.hpp:60:9: required from 'Archive& boost::archive::detail::interface_iarchive::operator>>(T&) [with T = const boost::serialization::nvp > > > >; Archive = eos::portable_iarchive]' /afs/cern.ch/cms/sw/ReleaseCandidates/vol0/slc6_amd64_gcc481/external/boost/1.51.0-cms2/include/boost/archive/detail/interface_iarchive.hpp:67:32: required from 'Archive& boost::archive::detail::interface_iarchive::operator&(T&) [with T = const boost::serialization::nvp > > > >; Archive = eos::portable_iarchive]' tmp/slc6_amd64_gcc481/src/CondFormats/RPCObjects/src/CondFormatsRPCObjects/a/Serialization.cc:66:8: required from 'void L1RPCConeBuilder::serialize(Archive&, unsigned int) [with Archive = eos::portable_iarchive]' tmp/slc6_amd64_gcc481/src/CondFormats/RPCObjects/src/CondFormatsRPCObjects/a/Serialization.cc:69:1: required from here /afs/cern.ch/cms/sw/ReleaseCandidates/vol0/slc6_amd64_gcc481/external/boost/1.51.0-cms2/include/boost/serialization/shared_ptr.hpp:155:5: error: 'class eos::portable_iarchive' has no member named 'reset' ar.reset(t,r); ^ /afs/cern.ch/cms/sw/ReleaseCandidates/vol0/slc6_amd64_gcc481/external/boost/1.51.0-cms2/include/boost/serialization/shared_ptr.hpp: In instantiation of 'void boost::serialization::load(Archive&, boost::shared_ptr&, unsigned int) [with Archive = eos::portable_iarchive; T = std::map >]': /afs/cern.ch/cms/sw/ReleaseCandidates/vol0/slc6_amd64_gcc481/external/boost/1.51.0-cms2/include/boost/serialization/split_free.hpp:58:22: required from 'static void boost::serialization::free_loader::invoke(Archive&, T&, unsigned int) [with Archive = eos::portable_iarchive; T = boost::shared_ptr > >]' /afs/cern.ch/cms/sw/ReleaseCandidates/vol0/slc6_amd64_gcc481/external/boost/1.51.0-cms2/include/boost/serialization/split_free.hpp:74:38: required from 'void boost::serialization::split_free(Archive&, T&, unsigned int) [with Archive = eos::portable_iarchive; T = boost::shared_ptr > >]' you can see the results of the tests here: |
This pull request is fully signed and it will be integrated in one of the next CMSSW_7_3_X IBs unless changes (but tests are reportedly failing). |
`boost::archive::detail::shared_ptr_helper` has been replaced by `boost::serialization::shared_ptr_helper`. Thus `shared_ptr_helper` ctor/dtor symbols are missing from Boost Serialization library. undefined reference to `boost::archive::detail::shared_ptr_helper ::shared_ptr_helper()' undefined reference to `boost::archive::detail::shared_ptr_helper ::~shared_ptr_helper()' The new `shared_ptr_helper` implementation is in `shared_ptr_helper.cpp`, but the file is not listes in `SOURCES` in `libs/serialization/build/Jamfile.v2`. Adding it would break Boost Serialization. `boost::archive::detail::shared_ptr_helper` is valid until 1.55.0 (incl.). The patch hardcodes this fact, meaning that 1.56.0+ will not have `shared_ptr` support. Signed-off-by: David Abdurachmanov <David.Abdurachmanov@cern.ch>
579b481
to
385a325
Compare
This pull request is fully signed and it will be integrated in one of the next CMSSW_7_3_X IBs unless changes or unless it breaks tests. |
Yes, it's a correct one. My mind wants to rush things up already :)
You are serializing Seems that your first message to Boost mailing list needs to be approved by a moderator, so I don't know when exactly I will receive some feedback (if any). |
Seems I missed 1400, so I will let Jenkins test && merge it. |
Thanks, |
If all goes fine, this is the last piece needed (to compile). I could provide you a local build of CMSSW on some machine for testing. You find no issues, then we move ahead. My personal test criteria will be: compilation passing with 4.8.1 and 4.9.1, full RelVals and unit tests. This would take roughly a day to do. |
Thanks, |
This pull request is fully signed and it will be integrated in one of the next CMSSW_7_3_X IBs unless changes (tests are also fine). This pull request will be automatically merged. |
…red_ptr Remove shared_ptr support from EOS Portable Archive
Reply from Boost devs:
Seems the fix is very correct :) |
Thanks, |
Tomorrow morning I will attempt to build (locally) 0200 IB with Boost 1.57.0. |
boost::archive::detail::shared_ptr_helper
has been replaced byboost::serialization::shared_ptr_helper
. Thusshared_ptr_helper
ctor/dtor symbols are missing from Boost Serialization library.
The new
shared_ptr_helper
implementation is inshared_ptr_helper.cpp
, but the file is not listes inSOURCES
inlibs/serialization/build/Jamfile.v2
.Adding it would break Boost Serialization.
Signed-off-by: David Abdurachmanov David.Abdurachmanov@cern.ch