libtool: link: ln .libs/libsystest.lax/libcommon.a/libcommon_crc_la-crc32c_intel_fast.o .libs/libsystest.lax/lt97-libcommon_crc_la-crc32c_intel_fast.o || cp .libs/libsystest.lax/libcommon.a/libcommon_crc_la-crc32c_intel_fast.o .libs/libsystest.lax/lt97-libcommon_crc_la-crc32c_intel_fast.o ./.libs/libosd.a(libosd_la-ReplicatedPG.o): In function `ReplicatedPG::do_osd_op_effects(ReplicatedPG::OpContext*)': ReplicatedPG.cc:(.text+0x1b1e9): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& boost::operator<< <char, std::char_traits<char>, unsigned long>(std::basic_ostream<char, std::char_traits<char> >&, boost::optional<unsigned long> const&)' ./.libs/libosd.a(libosd_la-ECBackend.o): In function `operator<<(std::ostream&, ECBackend::read_result_t const&)': ECBackend.cc:(.text+0x7c6): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& boost::operator<< <char, std::char_traits<char>, std::map<std::string, ceph::buffer::list, std::less<std::string>, std::allocator<std::pair<std::string const, ceph::buffer::list> > > >(std::basic_ostream<char, std::char_traits<char> >&, boost::optional<std::map<std::string, ceph::buffer::list, std::less<std::string>, std::allocator<std::pair<std::string const, ceph::buffer::list> > > > const&)' collect2: error: ld returned 1 exit status Makefile:7190: recipe for target 'ceph_filestore_dump' failed make[3]: *** [ceph_filestore_dump] Error 1 make[3]: *** Waiting for unfinished jobs.... Reproducible: Always
Created attachment 384640 [details] full build log
Attemping to verify this error, I decided to compile ceph-0.87 with the latest stable version of boost (1.55.0) 'emerge -DvN =sys-cluster/ceph-0.80.7' First problem: Emerging (8 of 10) dev-libs/fcgi-2.4.1_pre0910052249-r2::gentoo * This package has a configure.in file which has long been deprecated. Please * update it to use configure.ac instead as newer versions of autotools will die * when it finds this file. See https://bugs.gentoo.org/426262 for details. * Running autoconf --force ... [ ok ] * Running autoheader ... [ ok ] * Running automake --add-missing --copy --foreign --force-missing ... Traceback (most recent call last): File "/usr/lib/python-exec/python3.3/emerge", line 50, in <module> retval = emerge_main() File "/usr/lib64/python3.3/site-packages/_emerge/main.py", line 1070, in emerge_main return run_action(emerge_config) Synced to the latest portage tree, version bump to latest version: 'emerge -DvN =sys-cluster/ceph-0.80.7-r1' works just fine with Installed versions: 1.55.0-r2 So upgrading boost to 1.56.0-r1 is questionable, but should not block newer versions of ceph. Installed versions: 0.80.7-r1(01:38:27 PM 03/02/2015)(libaio nss -cryptopp -debug -fuse -gtk -libatomic -radosgw -static-libs -tcmalloc -xfs -zfs)
I'm not saying user should forced to upgrade to boost-1.56.0, but it's the most latest testing version.. I pushed ceph 0.87.1 and 0.93, both works with boost-1.56.0, while 0.80.8 still require boost-1.55 (same err).