Skip to content
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

Build failure with Boost 1.63 #2

Closed
jwakely opened this issue Feb 17, 2017 · 5 comments
Closed

Build failure with Boost 1.63 #2

jwakely opened this issue Feb 17, 2017 · 5 comments

Comments

@jwakely
Copy link
Contributor

jwakely commented Feb 17, 2017

In file included from /usr/include/boost/archive/detail/interface_iarchive.hpp:22:0,
                 from /usr/include/boost/archive/detail/common_iarchive.hpp:23,
                 from /usr/include/boost/archive/basic_text_iarchive.hpp:30,
                 from /usr/include/boost/archive/text_iarchive.hpp:24,
                 from /builddir/build/BUILD/stdair-1.00.2/stdair/command/CmdBomSerialiser.cpp:8:
/usr/include/boost/archive/detail/iserializer.hpp: In instantiation of 'static void boost::archive::detail::heap_allocation<T>::doesnt_have_new_operator::invoke_delete(T*) [with T = stdair::FlightDate]':
/usr/include/boost/archive/detail/iserializer.hpp:265:33:   required from 'static void boost::archive::detail::heap_allocation<T>::invoke_delete(T*) [with T = stdair::FlightDate]'
/usr/include/boost/archive/detail/iserializer.hpp:273:26:   required from 'boost::archive::detail::heap_allocation<T>::~heap_allocation() [with T = stdair::FlightDate]'
/usr/include/boost/archive/detail/iserializer.hpp:294:36:   required from 'void* boost::archive::detail::pointer_iserializer<Archive, T>::heap_allocation() const [with Archive = boost::archive::text_iarchive; T = stdair::FlightDate]'
/builddir/build/BUILD/stdair-1.00.2/stdair/command/CmdBomSerialiser.cpp:259:1:   required from here
/usr/include/boost/archive/detail/iserializer.hpp:246:17: error: 'virtual stdair::FlightDate::~FlightDate()' is protected within this context
                 delete t;
                 ^~~~~~
In file included from /builddir/build/BUILD/stdair-1.00.2/stdair/command/CmdBomSerialiser.cpp:18:0:
/builddir/build/BUILD/stdair-1.00.2/stdair/bom/FlightDate.hpp:197:13: note: declared protected here
     virtual ~FlightDate();
             ^

It looks like stdair::FlightDate tries to solve this with a friend declaration:

friend class boost::serialization::access;

but Boost.Serialization has changed so that the destructor is needed by some internal type now.

@rosset
Copy link

rosset commented Jul 29, 2017

still happening with boost-1.64

https://kojipkgs.fedoraproject.org//work/tasks/5238/20875238/build.log

@rosset
Copy link

rosset commented Jul 31, 2017

[ 94%] Building CXX object stdair/CMakeFiles/stdairlib.dir/service/ServiceAbstract.cpp.o
cd /builddir/build/BUILD/stdair-1.00.5/stdair && /usr/lib64/ccache/c++ -Dstdairlib_EXPORTS -I/builddir/build/BUILD/stdair-1.00.5 -I/usr/include/python2.7 -I/usr/include/mysql -I/usr/include/soci -I/usr/include/soci/mysql -I/usr/include/soci/sqlite3 -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m64 -mtune=generic -DBOOST_VERSION=106400 -g -fPIC -o CMakeFiles/stdairlib.dir/service/ServiceAbstract.cpp.o -c /builddir/build/BUILD/stdair-1.00.5/stdair/service/ServiceAbstract.cpp
In file included from /usr/include/boost/archive/detail/interface_iarchive.hpp:22:0,
from /usr/include/boost/archive/detail/common_iarchive.hpp:23,
from /usr/include/boost/archive/basic_text_iarchive.hpp:30,
from /usr/include/boost/archive/text_iarchive.hpp:24,
from /builddir/build/BUILD/stdair-1.00.5/stdair/command/CmdBomSerialiser.cpp:8:
/usr/include/boost/archive/detail/iserializer.hpp: In instantiation of 'static void boost::archive::detail::heap_allocation::doesnt_have_new_operator::invoke_delete(T*) [with T = stdair::FlightDate]':
/usr/include/boost/archive/detail/iserializer.hpp:265:33: required from 'static void boost::archive::detail::heap_allocation::invoke_delete(T*) [with T = stdair::FlightDate]'
/usr/include/boost/archive/detail/iserializer.hpp:273:26: required from 'boost::archive::detail::heap_allocation::~heap_allocation() [with T = stdair::FlightDate]'
/usr/include/boost/archive/detail/iserializer.hpp:294:36: required from 'void* boost::archive::detail::pointer_iserializer<Archive, T>::heap_allocation() const [with Archive = boost::archive::text_iarchive; T = stdair::FlightDate]'
/builddir/build/BUILD/stdair-1.00.5/stdair/command/CmdBomSerialiser.cpp:259:1: required from here
/usr/include/boost/archive/detail/iserializer.hpp:246:17: error: 'virtual stdair::FlightDate::~FlightDate()' is protected within this context
delete t;
^~~~~~
In file included from /builddir/build/BUILD/stdair-1.00.5/stdair/command/CmdBomSerialiser.cpp:18:0:
/builddir/build/BUILD/stdair-1.00.5/stdair/bom/FlightDate.hpp:201:13: note: declared protected here
virtual ~FlightDate();
^
In file included from /usr/include/boost/archive/detail/interface_iarchive.hpp:22:0,
from /usr/include/boost/archive/detail/common_iarchive.hpp:23,
from /usr/include/boost/archive/basic_text_iarchive.hpp:30,
from /usr/include/boost/archive/text_iarchive.hpp:24,
from /builddir/build/BUILD/stdair-1.00.5/stdair/command/CmdBomSerialiser.cpp:8:
/usr/include/boost/archive/detail/iserializer.hpp: In instantiation of 'static void boost::archive::detail::heap_allocation::doesnt_have_new_operator::invoke_delete(T*) [with T = stdair::Inventory]':
/usr/include/boost/archive/detail/iserializer.hpp:265:33: required from 'static void boost::archive::detail::heap_allocation::invoke_delete(T*) [with T = stdair::Inventory]'
/usr/include/boost/archive/detail/iserializer.hpp:273:26: required from 'boost::archive::detail::heap_allocation::~heap_allocation() [with T = stdair::Inventory]'
/usr/include/boost/archive/detail/iserializer.hpp:294:36: required from 'void* boost::archive::detail::pointer_iserializer<Archive, T>::heap_allocation() const [with Archive = boost::archive::text_iarchive; T = stdair::Inventory]'
/builddir/build/BUILD/stdair-1.00.5/stdair/command/CmdBomSerialiser.cpp:259:1: required from here
/usr/include/boost/archive/detail/iserializer.hpp:246:17: error: 'virtual stdair::Inventory::~Inventory()' is protected within this context
delete t;
^~~~~~
In file included from /builddir/build/BUILD/stdair-1.00.5/stdair/command/CmdBomSerialiser.cpp:17:0:
/builddir/build/BUILD/stdair-1.00.5/stdair/bom/Inventory.hpp:191:13: note: declared protected here
virtual ~Inventory();
^
make[2]: *** [stdair/CMakeFiles/stdairlib.dir/build.make:2586: stdair/CMakeFiles/stdairlib.dir/command/CmdBomSerialiser.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: Leaving directory '/builddir/build/BUILD/stdair-1.00.5'
make[1]: Leaving directory '/builddir/build/BUILD/stdair-1.00.5'
make[1]: *** [CMakeFiles/Makefile2:368: stdair/CMakeFiles/stdairlib.dir/all] Error 2
make: *** [Makefile:166: all] Error 2

@da115115
Copy link
Member

da115115 commented Aug 6, 2017

Similar to freeorion/freeorion#1289

With the -std=c++1z option, passed to C++, the project compiles correctly. So, I guess that Boost developers have dropped support for older C++ compilers.
A directive should be added for CMake:
set_property(TARGET tgt PROPERTY CXX_STANDARD 11)

@da115115
Copy link
Member

da115115 commented Aug 6, 2017

Build on Fedora Rawhide: https://koji.fedoraproject.org/koji/taskinfo?taskID=21078603

@da115115 da115115 closed this as completed Aug 6, 2017
@rosset
Copy link

rosset commented Aug 7, 2017

great, thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants