Hi Boost Users, First, a great thanks to the authors of the boost serialisation library, which I have used successfully across projects and has proven invaluable. Now to my problem. I have been investigating for a little while a strange warning I get when linking on OSX; the results of my investigation can be found here [1].
The TL; DR of it is as follows: my OSX debug build has a warning (indented for ease of reading): ld: warning: direct access in function 'boost::archive::basic_text_oprimitive< std::__1::basic_ostream<char, std::__1::char_traits<char> > >::~basic_text_oprimitive()' from file 'vcpkg_installed/x64-osx/debug/lib/libboost_serialization.a(basic_text_oprimitive.o)' to global weak symbol 'std::__1::basic_ostream<char, std::__1::char_traits<char> >& std::__1::endl<char, std::__1::char_traits<char> > (std::__1::basic_ostream<char, std::__1::char_traits<char> >&)' This warning is caused by a mismatch in visibility settings between my project and vcpkg's build of boost. However, as far as I can see, both projects are using "-fvisibility=default", meaning there should be no mismatch. Also, no other warnings show up but if I change the project settings I then get hundreds of warnings (again, for details see ticket). What I find even more puzzling is that I am using all three types of archives (Text, XML and Binary). Of these three, only Text produces this warning. As the problem is with the destructors, I did a quick inventory of the destructors to see how they differ: basic_xml_oarchive.hpp: [2] BOOST_ARCHIVE_OR_WARCHIVE_DECL ~basic_xml_oarchive() BOOST_OVERRIDE; basic_text_oarchive.hpp: [3] ~basic_text_oarchive() BOOST_OVERRIDE {} basic_binary_oarchive.hpp: [4] no destructor. So my question is, should text archive also have a BOOST_ARCHIVE_OR_WARCHIVE_DECL macro, and would that fix my warning? If so I can submit a PR. Many thanks for your time. Marco [1] https://github.com/Microsoft/vcpkg/issues/4497 [2] https://github.com/boostorg/serialization/blob/develop/include/boost/archive/basic_xml_oarchive.hpp [3] https://github.com/boostorg/serialization/blob/develop/include/boost/archive/basic_text_oarchive.hpp [4] https://github.com/boostorg/serialization/blob/develop/include/boost/archive/basic_binary_oarchive.hpp -- Marco Craveiro MD, Domain Driven Consulting blog: https://mcraveiro.github.io/index.html twitter: https://twitter.com/MarcoCraveiro That the Ideas are themselves manifestations (of the Idea-Idea) and that the Idea-Idea is a-kind-of Manifestation-Idea—which is a-kind-of itself, so that the system is completely self-describing— would have been appreciated by Plato as an extremely practical joke [Plato]. -- Alan Key _______________________________________________ Boost-users mailing list Boost-users@lists.boost.org https://lists.boost.org/mailman/listinfo.cgi/boost-users