Bug #18938
closedUnable to build 11.2.0 under i686
0%
Description
Hello,
The ceph 11.2.0 tarball fail to build under i686 architecture when it succeeds under x86_64.
Here is my build commands, run from an i686 Arch Linux.
mkdir build cd build cmake \ -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_INSTALL_SYSCONFDIR=/etc \ -DCMAKE_INSTALL_SBINDIR=/usr/bin \ -DCMAKE_INSTALL_LIBDIR=/usr/lib \ -DCMAKE_INSTALL_LIBEXECDIR=/usr/lib \ -DSPHINX_BUILD=/usr/bin/sphinx-build2 \ -DWITH_SYSTEM_BOOST=ON \ -DWITH_SYSTEMD=ON \ -DWITH_EMBEDDED=OFF \ -DWITH_OPENLDAP=OFF \ -DWITH_LTTNG=OFF \ -DHAVE_BABELTRACE=OFF \ -DWITH_TESTS=OFF \ .. make
Here is the make output.
[ 1%] Building CXX object src/CMakeFiles/common.dir/crush/CrushWrapper.cc.o In file included from /build/ceph/src/ceph-11.2.0/src/include/encoding.h:25:0, from /build/ceph/src/ceph-11.2.0/src/include/uuid.h:8, from /build/ceph/src/ceph-11.2.0/src/include/types.h:21, from /build/ceph/src/ceph-11.2.0/src/msg/msg_types.h:21, from /build/ceph/src/ceph-11.2.0/src/osd/osd_types.h:31, from /build/ceph/src/ceph-11.2.0/src/crush/CrushWrapper.cc:4: /build/ceph/src/ceph-11.2.0/src/include/denc.h: In instantiation of 'typename std::enable_if<((traits:: supported == 1) && (! traits:: featured))>::type decode_nohead(size_t, T&, ceph::buffer::list::iterator&) [with T = std::__cxx11::basic_string<char>; traits = denc_traits<std::__cxx11::basic_string<char> >; typename std::enable_if<((traits:: supported == 1) && (! traits:: featured))>::type = void; size_t = unsigned int]': /build/ceph/src/ceph-11.2.0/src/crush/CrushWrapper.cc:1239:40: required from here /build/ceph/src/ceph-11.2.0/src/include/denc.h:1337:24: error: 'decode_nohead' is not a member of 'denc_traits<std::__cxx11::basic_string<char> >' traits::decode_nohead(num, o, cp); ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ make[2]: *** [src/CMakeFiles/common.dir/build.make:520: src/CMakeFiles/common.dir/crush/CrushWrapper.cc.o] Error 1 make[1]: *** [CMakeFiles/Makefile2:449: src/CMakeFiles/common.dir/all] Error 2 make: *** [Makefile:139: all] Error 2
Updated by Romain Gobinet about 7 years ago
Hello,
I almost have the same problem but on an ARM platform.
dpkg-buildpackage -j8 [...] [ 3%] Building CXX object src/cls/CMakeFiles/cls_rgw_client.dir/rgw/cls_rgw_types.cc.o /usr/bin/ranlib ../../lib/libcls_statelog_client.a cd /mnt/sda1/ceph-build/ceph/obj-arm-linux-gnueabihf/src/cls && /usr/bin/arm-linux-gnueabihf-g++ -DCEPH_LIBDIR=\"/usr/lib\" -DCEPH_PKGLIBDIR=\"/usr/lib/ceph\" -D__linux__ -isystem /mnt/sda1/ceph-build/ceph/obj-arm-linux-gnueabihf/boost/include -I/mnt/sda1/ceph-build/ceph/obj-arm-linux-gnueabihf/src/include -I/mnt/sda1/ceph-build/ceph/src -isystem /mnt/sda1/ceph-build/ceph/obj-arm-linux-gnueabihf/include -I/mnt/sda1/ceph-build/ceph/src/xxHash -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -Wtype-limits -Wignored-qualifiers -Winit-self -Wpointer-arith -Werror=format-security -fno-strict-aliasing -fsigned-char -rdynamic -Wno-unknown-pragmas -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=2 -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=2 -fstack-protector-strong -fdiagnostics-color=auto -I/usr/include/nss -I/usr/include/nspr -fPIC -DHAVE_CONFIG_H -D__CEPH__ -D_REENTRANT -D_THREAD_SAFE -D__STDC_FORMAT_MACROS -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -std=c++11 -o CMakeFiles/cls_rgw_client.dir/rgw/cls_rgw_types.cc.o -c /mnt/sda1/ceph-build/ceph/src/cls/rgw/cls_rgw_types.cc make[4]: Leaving directory '/mnt/sda1/ceph-build/ceph/obj-arm-linux-gnueabihf' In file included from /mnt/sda1/ceph-build/ceph/src/include/encoding.h:25:0, from /mnt/sda1/ceph-build/ceph/src/include/uuid.h:8, from /mnt/sda1/ceph-build/ceph/src/include/types.h:21, from /mnt/sda1/ceph-build/ceph/src/msg/Message.h:26, from /mnt/sda1/ceph-build/ceph/src/msg/Messenger.h:23, from /mnt/sda1/ceph-build/ceph/src/osdc/ObjectCacher.cc:6: /mnt/sda1/ceph-build/ceph/src/include/denc.h: In instantiation of ‘typename std::enable_if<((traits:: supported == 1) && (! traits:: featured))>::type decode_nohead(size_t, T&, ceph::buffer::list::iterator&) [with T = std::__cxx11::basic_string<char>; traits = denc_traits<std::__cxx11::basic_string<char> >; typename std::enable_if<((traits:: supported == 1) && (! traits:: featured))>::type = void; size_t = unsigned int]’: /mnt/sda1/ceph-build/ceph/src/messages/MOSDOp.h:397:41: required from here /mnt/sda1/ceph-build/ceph/src/include/denc.h:1337:24: error: ‘decode_nohead’ is not a member of ‘denc_traits<std::__cxx11::basic_string<char> >’ traits::decode_nohead(num, o, cp); ^ [...] [ 3%] Linking CXX static library ../../lib/libcls_rgw_client.a cd /mnt/sda1/ceph-build/ceph/obj-arm-linux-gnueabihf/src/cls && /usr/bin/cmake -P CMakeFiles/cls_rgw_client.dir/cmake_clean_target.cmake cd /mnt/sda1/ceph-build/ceph/obj-arm-linux-gnueabihf/src/cls && /usr/bin/cmake -E cmake_link_script CMakeFiles/cls_rgw_client.dir/link.txt --verbose=1 /usr/bin/ar qc ../../lib/libcls_rgw_client.a CMakeFiles/cls_rgw_client.dir/rgw/cls_rgw_client.cc.o CMakeFiles/cls_rgw_client.dir/rgw/cls_rgw_types.cc.o CMakeFiles/cls_rgw_client.dir/rgw/cls_rgw_ops.cc.o /usr/bin/ranlib ../../lib/libcls_rgw_client.a make[4]: Leaving directory '/mnt/sda1/ceph-build/ceph/obj-arm-linux-gnueabihf' [ 3%] Built target cls_rgw_client make[3]: Leaving directory '/mnt/sda1/ceph-build/ceph/obj-arm-linux-gnueabihf' Makefile:141: recipe for target 'all' failed make[2]: *** [all] Error 2 make[2]: Leaving directory '/mnt/sda1/ceph-build/ceph/obj-arm-linux-gnueabihf' cd /mnt/sda1/ceph-build/ceph dh_auto_build: make -j8 returned exit code 2 debian/rules:29: recipe for target 'override_dh_auto_build' failed make[1]: *** [override_dh_auto_build] Error 2 make[1]: Leaving directory '/mnt/sda1/ceph-build/ceph' debian/rules:22: recipe for target 'build' failed make: *** [build] Error 2 dpkg-buildpackage: error: debian/rules build gave error exit status 2
Romain
Updated by Kefu Chai about 7 years ago
Sebastien and Romain, have you tried with the latest master? the denc part of the source have change a considerably since then.
Updated by Romain Gobinet about 7 years ago
Hello Kefu,
Just to be accurate, here are some details :
- arch: armv7l
- bitness: 32bits
I failed to compile with this :
git branch -v * kraken 98a87fa Merge pull request #13501 from shinobu-x/wip-18371-kraken
And with this too:
https://download.ceph.com/tarballs/ceph_11.2.0.orig.tar.gz
Everytime it is related with "denc" part.
In my case i want to compile Kraken because i can't find any version of Ceph for ARM 32bits, only Jewel and arm64.
I will try with the "master" branch, just in case, but i think that the "denc" refactoring appends before the actual state of the branch "kraken".
Romain
Updated by Romain Gobinet about 7 years ago
With the "master" branch (wich compile Luminous and not Kraken by the way) i ended with the same error :
[ 4%] Building CXX object src/global/CMakeFiles/libglobal_objs.dir/signal_handler.cc.o cd /mnt/sda1/ceph-build/ceph-master/obj-arm-linux-gnueabihf/src/global && /usr/bin/arm-linux-gnueabihf-g++ -DCEPH_LIBDIR=\"/usr/lib\" -DCEPH_PKGLIBDIR=\"/usr/lib/ceph\" -D__linux__ -isystem /mnt/sda1/ceph-build/ceph-master/obj-arm-linux-gnueabihf/boost/include -I/mnt/sda1/ceph-build/ceph-master/obj-arm-linux-gnueabihf/src/include -I/mnt/sda1/ceph-build/ceph-master/src -isystem /mnt/sda1/ceph-build/ceph-master/obj-arm-linux-gnueabihf/include -I/mnt/sda1/ceph-build/ceph-master/src/xxHash -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -Wtype-limits -Wignored-qualifiers -Winit-self -Wpointer-arith -Werror=format-security -fno-strict-aliasing -fsigned-char -rdynamic -Wno-unknown-pragmas -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=2 -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=2 -fstack-protector-strong -fdiagnostics-color=auto -I/usr/include/nss -I/usr/include/nspr -I/usr/include -fPIC -DHAVE_CONFIG_H -D__CEPH__ -D_REENTRANT -D_THREAD_SAFE -D__STDC_FORMAT_MACROS -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -std=c++11 -o CMakeFiles/libglobal_objs.dir/signal_handler.cc.o -c /mnt/sda1/ceph-build/ceph-master/src/global/signal_handler.cc -- Performing Test WARNING_UNDEF_ALLOWED - Success Compiler flag -Wundef allowed -- Performing Test WARNING_SHADOW_ALLOWED -- Performing Test WARNING_SHADOW_ALLOWED - Success Compiler flag -Wshadow allowed -- Performing Test WARNING_CAST_ALIGN_ALLOWED In file included from /mnt/sda1/ceph-build/ceph-master/src/include/encoding.h:25:0, from /mnt/sda1/ceph-build/ceph-master/src/include/uuid.h:8, from /mnt/sda1/ceph-build/ceph-master/src/include/types.h:21, from /mnt/sda1/ceph-build/ceph-master/src/msg/msg_types.h:21, from /mnt/sda1/ceph-build/ceph-master/src/osd/osd_types.h:31, from /mnt/sda1/ceph-build/ceph-master/src/crush/CrushWrapper.cc:4: /mnt/sda1/ceph-build/ceph-master/src/include/denc.h: In instantiation of ‘typename std::enable_if<(traits:: supported && (! traits:: featured))>::type decode_nohead(size_t, T&, ceph::buffer::list::iterator&) [with T = std::__cxx11::basic_string<char>; traits = denc_traits<std::__cxx11::basic_string<char>, void>; typename std::enable_if<(traits:: supported && (! traits:: featured))>::type = void; size_t = unsigned int]’: /mnt/sda1/ceph-build/ceph-master/src/crush/CrushWrapper.cc:1410:40: required from here /mnt/sda1/ceph-build/ceph-master/src/include/denc.h:1385:24: error: ‘decode_nohead’ is not a member of ‘denc_traits<std::__cxx11::basic_string<char>, void>’ traits::decode_nohead(num, o, cp);
So i think there is a compiling issue on armhf/armv7l whether for Kraken or Luminous.
Romain
Updated by Sebastien Luttringer about 7 years ago
I have tried with the 12.0.0 release (not the latest master) with the same error.
The issue seems to be triggered by the call of decode_nohead function in CrushWrapper.cc. The git blame of the line give a commit back to 2012.
Sage Weil, is the developer who commited the decode_nohead function in denc.h and also in previous definition in encoding_btree.h in 10.2.x.
Maybe he could help to understand what's happening if he's arround.
Updated by Kefu Chai about 7 years ago
could you give https://github.com/ceph/ceph/pull/14099 a try?
Updated by Romain Gobinet about 7 years ago
[ 4%] Building CXX object src/CMakeFiles/crush.dir/crush/CrushWrapper.cc.o cd /mnt/sda1/ceph-build/ceph-master/obj-arm-linux-gnueabihf/src && /usr/bin/arm-linux-gnueabihf-g++ -DCEPH_LIBDIR=\"/usr/lib\" -DCEPH_PKGLIBDIR=\"/usr/lib/ceph\" -D__linux__ -isystem /mnt/sda1/ceph-build/ceph-master/obj-arm-linux-gnueabihf/boost/include -I/mnt/sda1/ceph-build/ceph-master/obj-arm-linux-gnueabihf/src/include -I/mnt/sda1/ceph-build/ceph-master/src -isystem /mnt/sda1/ceph-build/ceph-master/obj-arm-linux-gnueabihf/include -I/mnt/sda1/ceph-build/ceph-master/src/xxHash -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -Wtype-limits -Wignored-qualifiers -Winit-self -Wpointer-arith -Werror=format-security -fno-strict-aliasing -fsigned-char -rdynamic -Wno-unknown-pragmas -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=2 -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=2 -fstack-protector-strong -fdiagnostics-color=auto -I/usr/include/nss -I/usr/include/nspr -I/usr/include -fPIC -DHAVE_CONFIG_H -D__CEPH__ -D_REENTRANT -D_THREAD_SAFE -D__STDC_FORMAT_MACROS -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -std=c++11 -o CMakeFiles/crush.dir/crush/CrushWrapper.cc.o -c /mnt/sda1/ceph-build/ceph-master/src/crush/CrushWrapper.cc [...] arm-linux-gnueabihf-g++: internal compiler error: Killed (program cc1plus) Please submit a full bug report, with preprocessed source if appropriate. See <file:///usr/share/doc/gcc-5/README.Bugs> for instructions. src/CMakeFiles/crush.dir/build.make:161: recipe for target 'src/CMakeFiles/crush.dir/crush/CrushWrapper.cc.o' failed make[4]: *** [src/CMakeFiles/crush.dir/crush/CrushWrapper.cc.o] Error 4
The pull request 14099 doesn't solve the issue. (I try with the master branch)
Updated by Romain Gobinet about 7 years ago
Anyway, depending on the compilations ("dpkg-buildpackage -j8" or "dpkg-buildpackage") we reach differents errors linked with encoding and "decode_nohead". And not only in CrushWrapper.cc.
[ 4%] Building CXX object src/CMakeFiles/common-objs.dir/msg/Message.cc.o cd /mnt/sda1/ceph-build/ceph-master/obj-arm-linux-gnueabihf/src && /usr/bin/arm-linux-gnueabihf-g++ -DCEPH_LIBDIR=\"/usr/lib\" -DCEPH_PKGLIBDIR=\"/usr/lib/ceph\" -D__linux__ -isystem /mnt/sda1/ceph-build/ceph-master/obj-arm-linux-gnueabihf/boost/include -I/mnt/sda1/ceph-build/ceph-master/obj-arm-linux-gnueabihf/src/include -I/mnt/sda1/ceph-build/ceph-master/src -isystem /mnt/sda1/ceph-build/ceph-master/obj-arm-linux-gnueabihf/include -I/mnt/sda1/ceph-build/ceph-master/src/xxHash -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -Wtype-limits -Wignored-qualifiers -Winit-self -Wpointer-arith -Werror=format-security -fno-strict-aliasing -fsigned-char -rdynamic -Wno-unknown-pragmas -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=2 -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=2 -fstack-protector-strong -fdiagnostics-color=auto -I/usr/include/nss -I/usr/include/nspr -I/usr/include -fPIC -DHAVE_CONFIG_H -D__CEPH__ -D_REENTRANT -D_THREAD_SAFE -D__STDC_FORMAT_MACROS -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -std=c++11 -o CMakeFiles/common-objs.dir/msg/Message.cc.o -c /mnt/sda1/ceph-build/ceph-master/src/msg/Message.cc In file included from /mnt/sda1/ceph-build/ceph-master/src/include/encoding.h:25:0, from /mnt/sda1/ceph-build/ceph-master/src/include/uuid.h:8, from /mnt/sda1/ceph-build/ceph-master/src/include/types.h:21, from /mnt/sda1/ceph-build/ceph-master/src/msg/Message.cc:12: /mnt/sda1/ceph-build/ceph-master/src/include/denc.h: In instantiation of ‘typename std::enable_if<(traits:: supported && (! traits:: featured))>::type decode_nohead(size_t, T&, ceph::buffer::list::iterator&) [with T = std::__cxx11::basic_string<char>; traits = denc_traits<std::__cxx11::basic_string<char>, void>; typename std::enable_if<(traits:: supported && (! traits:: featured))>::type = void; size_t = unsigned int]’: /mnt/sda1/ceph-build/ceph-master/src/messages/MOSDOp.h:435:46: required from here /mnt/sda1/ceph-build/ceph-master/src/include/denc.h:1385:24: error: ‘decode_nohead’ is not a member of ‘denc_traits<std::__cxx11::basic_string<char>, void>’ traits::decode_nohead(num, o, cp); ^ /mnt/sda1/ceph-build/ceph-master/src/include/denc.h: In instantiation of ‘typename std::enable_if<(traits:: supported && (! traits:: featured))>::type decode_nohead(size_t, T&, ceph::buffer::list::iterator&) [with T = ceph::buffer::list; traits = denc_traits<ceph::buffer::list>; typename std::enable_if<(traits:: supported && (! traits:: featured))>::type = void; size_t = unsigned int]’: /mnt/sda1/ceph-build/ceph-master/src/messages/MClientCaps.h:240:51: required from here /mnt/sda1/ceph-build/ceph-master/src/include/denc.h:1385:24: error: ‘decode_nohead’ is not a member of ‘denc_traits<ceph::buffer::list>’ src/CMakeFiles/common-objs.dir/build.make:1530: recipe for target 'src/CMakeFiles/common-objs.dir/msg/Message.cc.o' failed make[4]: *** [src/CMakeFiles/common-objs.dir/msg/Message.cc.o] Error 1
Updated by Kefu Chai about 7 years ago
Romain,
arm-linux-gnueabihf-g++: internal compiler error: Killed (program cc1plus)
hmm, this is an issue of GCC. but i updated https://github.com/ceph/ceph/pull/14099 to address #18938-8
could you give it another shot? thanks!
Updated by Kefu Chai about 7 years ago
- Status changed from New to Fix Under Review
- Assignee set to Kefu Chai
Updated by Romain Gobinet about 7 years ago
Sorry, it doesn't work :
[ 4%] Building CXX object src/CMakeFiles/common-objs.dir/msg/Message.cc.o cd /mnt/sda1/ceph-build/ceph-master/obj-arm-linux-gnueabihf/src && /usr/bin/arm-linux-gnueabihf-g++ -DCEPH_LIBDIR=\"/usr/lib\" -DCEPH_PKGLIBDIR=\"/usr/lib/ceph\" -D__linux__ -isystem /mnt/sda1/ceph-build/ceph-master/obj-arm-linux-gnueabihf/boost/include -I/mnt/sda1/ceph-build/ceph-master/obj-arm-linux-gnueabihf/src/include -I/mnt/sda1/ceph-build/ceph-master/src -isystem /mnt/sda1/ceph-build/ceph-master/obj-arm-linux-gnueabihf/include -I/mnt/sda1/ceph-build/ceph-master/src/xxHash -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -Wtype-limits -Wignored-qualifiers -Winit-self -Wpointer-arith -Werror=format-security -fno-strict-aliasing -fsigned-char -rdynamic -Wno-unknown-pragmas -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=2 -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=2 -fstack-protector-strong -fdiagnostics-color=auto -I/usr/include/nss -I/usr/include/nspr -I/usr/include -fPIC -DHAVE_CONFIG_H -D__CEPH__ -D_REENTRANT -D_THREAD_SAFE -D__STDC_FORMAT_MACROS -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -std=c++11 -o CMakeFiles/common-objs.dir/msg/Message.cc.o -c /mnt/sda1/ceph-build/ceph-master/src/msg/Message.cc In file included from /mnt/sda1/ceph-build/ceph-master/src/include/encoding.h:25:0, from /mnt/sda1/ceph-build/ceph-master/src/include/uuid.h:8, from /mnt/sda1/ceph-build/ceph-master/src/include/types.h:21, from /mnt/sda1/ceph-build/ceph-master/src/msg/Message.cc:12: /mnt/sda1/ceph-build/ceph-master/src/include/denc.h: In instantiation of ‘typename std::enable_if<(traits:: supported && (! traits:: featured))>::type decode_nohead(size_t, T&, ceph::buffer::list::iterator&) [with T = ceph::buffer::list; traits = denc_traits<ceph::buffer::list>; typename std::enable_if<(traits:: supported && (! traits:: featured))>::type = void; size_t = unsigned int]’: /mnt/sda1/ceph-build/ceph-master/src/messages/MClientCaps.h:240:51: required from here /mnt/sda1/ceph-build/ceph-master/src/include/denc.h:1396:24: error: ‘decode_nohead’ is not a member of ‘denc_traits<ceph::buffer::list>’ traits::decode_nohead(num, o, cp); ^ src/CMakeFiles/common-objs.dir/build.make:1530: recipe for target 'src/CMakeFiles/common-objs.dir/msg/Message.cc.o' failed
Updated by Sebastien Luttringer about 7 years ago
Hi, is it possible to get a patch for the 11.2.0?
Updated by Kefu Chai about 7 years ago
Sorry, it doesn't work :
no, it does not. but if we look at the error messages closer. we have progress! i updated https://github.com/ceph/ceph/pull/14099 to address the new errors.
Romain, could you try it again? thanks!
Hi, is it possible to get a patch for the 11.2.0?
it's possible and we are working on it.
Updated by Romain Gobinet about 7 years ago
It seems good for the "encoding" issues ! But ...
Scanning dependencies of target build_version make[8]: Leaving directory '/mnt/sda1/ceph-build/ceph-master/obj-arm-linux-gnueabihf/src/rocksdb' make[8]: Entering directory '/mnt/sda1/ceph-build/ceph-master/obj-arm-linux-gnueabihf/src/rocksdb' [ 0%] Building CXX object CMakeFiles/build_version.dir/build_version.cc.o arm-linux-gnueabihf-g++: error: unrecognized command line option ‘-momit-leaf-frame-pointer’ CMakeFiles/build_version.dir/build.make:62: recipe for target 'CMakeFiles/build_version.dir/build_version.cc.o' failed make[8]: *** [CMakeFiles/build_version.dir/build_version.cc.o] Error 1 make[8]: Leaving directory '/mnt/sda1/ceph-build/ceph-master/obj-arm-linux-gnueabihf/src/rocksdb' CMakeFiles/Makefile2:1818: recipe for target 'CMakeFiles/build_version.dir/all' failed make[7]: *** [CMakeFiles/build_version.dir/all] Error 2 make[7]: Leaving directory '/mnt/sda1/ceph-build/ceph-master/obj-arm-linux-gnueabihf/src/rocksdb' CMakeFiles/Makefile2:2424: recipe for target 'CMakeFiles/rocksdb.dir/rule' failed make[6]: *** [CMakeFiles/rocksdb.dir/rule] Error 2 make[6]: Leaving directory '/mnt/sda1/ceph-build/ceph-master/obj-arm-linux-gnueabihf/src/rocksdb' Makefile:896: recipe for target 'rocksdb' failed make[5]: *** [rocksdb] Error 2 make[5]: Leaving directory '/mnt/sda1/ceph-build/ceph-master/obj-arm-linux-gnueabihf/src/rocksdb' src/CMakeFiles/rocksdb_ext.dir/build.make:115: recipe for target 'src/rocksdb_ext-prefix/src/rocksdb_ext-stamp/rocksdb_ext-build' failed make[4]: *** [src/rocksdb_ext-prefix/src/rocksdb_ext-stamp/rocksdb_ext-build] Error 2 make[4]: Leaving directory '/mnt/sda1/ceph-build/ceph-master/obj-arm-linux-gnueabihf' CMakeFiles/Makefile2:1544: recipe for target 'src/CMakeFiles/rocksdb_ext.dir/all' failed make[3]: *** [src/CMakeFiles/rocksdb_ext.dir/all] Error 2 make[3]: Leaving directory '/mnt/sda1/ceph-build/ceph-master/obj-arm-linux-gnueabihf' Makefile:141: recipe for target 'all' failed make[2]: *** [all] Error 2 make[2]: Leaving directory '/mnt/sda1/ceph-build/ceph-master/obj-arm-linux-gnueabihf' cd /mnt/sda1/ceph-build/ceph-master dh_auto_build: make -j1 returned exit code 2 debian/rules:29: recipe for target 'override_dh_auto_build' failed make[1]: *** [override_dh_auto_build] Error 2 make[1]: Leaving directory '/mnt/sda1/ceph-build/ceph-master' debian/rules:22: recipe for target 'build' failed make: *** [build] Error 2 dpkg-buildpackage: error: debian/rules build gave error exit status 2
Another GCC issue probably :(
Updated by Kefu Chai about 7 years ago
arm-linux-gnueabihf-g++: error: unrecognized command line option ‘-momit-leaf-frame-pointer’
not it's not, this option is not supported on all architectures, let me fix it. hold on!
Updated by Kefu Chai about 7 years ago
Romain, have you updated the rocksdb submodule?
could you post the output of following command?
cd src/rocksdb git describe
in my source tree, it's
$ git describe v4.9-728-g3b4ac807
and could you run this command under your ceph source tree?
git submodule update --init --recursive --force
it will sync up the submodules.
because we do check the availability of "-momit-leaf-frame-pointer" before using it.
Updated by Romain Gobinet about 7 years ago
It's a little bit weird :
# cd src/rocksdb/ # git describe 2.7.fb-4804-g3b4ac80 # cd - # git submodule update --init --recursive --force [...] Submodule path 'src/rocksdb': checked out '3b4ac8076bff9fd6a8b4ccbc37a1995d08981840' [...] # cd src/rocksdb # git describe 2.7.fb-4804-g3b4ac80
I've already synced the submodules when i switched from "kraken" to "master" branch. (since #2 you asked me to test with "master")
# git describe v12.0.0-1660-g72097c7 # git branch -v kraken 98a87fa Merge pull request #13501 from shinobu-x/wip-18371-kraken * master 72097c7 Merge pull request #14004 from liewegas/wip-osd-full-failsafe
Updated by Kefu Chai about 7 years ago
if the rocksdb is at 3b4ac8076bff9fd6a8b4ccbc37a1995d08981840, then we are good. could you try again after you ran "git submodule update --init --recursive --force"?
if it does not work, could you nuke your build directory and try again? i believe the commit of rocksdb referenced by ceph's master does contain https://github.com/facebook/rocksdb/commit/4e35ffdfab1c86487cdad33d8eebf29ee3ceee04, which addresses the issue you run into.
Updated by gyorgy kiss about 7 years ago
Hi,
I'm happy that found this bug thread :) not I'm the only crazy to try build on arm.
$ git branch -v- kraken 98a87fa Merge pull request #13501 from shinobu-x/wip-18371-kraken
$ git describe
v11.2.0-67-g98a87fa
/src/rocksdb $ git describe
2.7.fb-4607-ga0deec9
But I have a little different error message on end:
I gave a ./run-make-check.sh from copied git. This is a correct way?
[ 4%] Building CXX object src/librados/CMakeFiles/librados_objs.dir/IoCtxImpl.cc.o
In file included from /home/pi/ceph_kraken/ceph/src/include/encoding.h:25:0,
from /home/pi/ceph_kraken/ceph/src/include/uuid.h:8,
from /home/pi/ceph_kraken/ceph/src/include/types.h:21,
from /home/pi/ceph_kraken/ceph/src/msg/Message.h:26,
from /home/pi/ceph_kraken/ceph/src/msg/Messenger.h:23,
from /home/pi/ceph_kraken/ceph/src/osdc/ObjectCacher.cc:6:
/home/pi/ceph_kraken/ceph/src/include/denc.h: In instantiation of ‘typename std::enable_if<((traits:: supported 1) && (! traits:: featured))>::type decode_nohead(size_t, T&, ceph::buffer::list::iterator&) [with T = std::basic_string<char>; traits = denc_traits<std::basic_string<char> >; typename std::enable_if<((traits:: supported 1) && (! traits:: featured))>::type = void; size_t = unsigned int]’:
/home/pi/ceph_kraken/ceph/src/messages/MOSDOp.h:397:41: required from here
/home/pi/ceph_kraken/ceph/src/include/denc.h:1337:35: error: ‘decode_nohead’ is not a member of ‘denc_traits<std::basic_string<char> >’
traits::decode_nohead(num, o, cp);
^
In file included from /home/pi/ceph_kraken/ceph/src/include/encoding.h:25:0,
from /home/pi/ceph_kraken/ceph/src/common/entity_name.h:22,
from /home/pi/ceph_kraken/ceph/src/common/config.h:26,
from /home/pi/ceph_kraken/ceph/src/common/dout.h:20,
from /home/pi/ceph_kraken/ceph/src/include/Context.h:19,
from /home/pi/ceph_kraken/ceph/src/common/Cond.h:22,
from /home/pi/ceph_kraken/ceph/src/librados/IoCtxImpl.h:18,
from /home/pi/ceph_kraken/ceph/src/librados/IoCtxImpl.cc:17:
/home/pi/ceph_kraken/ceph/src/include/denc.h: In instantiation of ‘typename std::enable_if<((traits:: supported 1) && (! traits:: featured))>::type decode_nohead(size_t, T&, ceph::buffer::list::iterator&) [with T = std::basic_string<char>; traits = denc_traits<std::basic_string<char> >; typename std::enable_if<((traits:: supported 1) && (! traits:: featured))>::type = void; size_t = unsigned int]’:
/home/pi/ceph_kraken/ceph/src/messages/MOSDOp.h:397:41: required from here
/home/pi/ceph_kraken/ceph/src/include/denc.h:1337:35: error: ‘decode_nohead’ is not a member of ‘denc_traits<std::basic_string<char> >’
traits::decode_nohead(num, o, cp);
^
src/osdc/CMakeFiles/osdc_rbd_objs.dir/build.make:62: recipe for target 'src/osdc/CMakeFiles/osdc_rbd_objs.dir/ObjectCacher.cc.o' failed
make3: * [src/osdc/CMakeFiles/osdc_rbd_objs.dir/ObjectCacher.cc.o] Error 1
CMakeFiles/Makefile2:3471: recipe for target 'src/osdc/CMakeFiles/osdc_rbd_objs.dir/all' failed
make2: [src/osdc/CMakeFiles/osdc_rbd_objs.dir/all] Error 2
make2: Waiting for unfinished jobs....
[ 4%] Building CXX object src/librados/CMakeFiles/librados_objs.dir/RadosXattrIter.cc.o
[ 4%] Building CXX object src/librados/CMakeFiles/librados_objs.dir/RadosClient.cc.o
src/librados/CMakeFiles/librados_objs.dir/build.make:62: recipe for target 'src/librados/CMakeFiles/librados_objs.dir/IoCtxImpl.cc.o' failed
make3: [src/librados/CMakeFiles/librados_objs.dir/IoCtxImpl.cc.o] Error 1
make3: Waiting for unfinished jobs....
In file included from /home/pi/ceph_kraken/ceph/src/include/encoding.h:25:0,
from /home/pi/ceph_kraken/ceph/src/common/entity_name.h:22,
from /home/pi/ceph_kraken/ceph/src/common/config.h:26,
from /home/pi/ceph_kraken/ceph/src/librados/RadosClient.cc:26:
/home/pi/ceph_kraken/ceph/src/include/denc.h: In instantiation of ‘typename std::enable_if<((traits:: supported 1) && (! traits:: featured))>::type decode_nohead(size_t, T&, ceph::buffer::list::iterator&) [with T = std::basic_string<char>; traits = denc_traits<std::basic_string<char> >; typename std::enable_if<((traits:: supported 1) && (! traits:: featured))>::type = void; size_t = unsigned int]’:
/home/pi/ceph_kraken/ceph/src/messages/MOSDOp.h:397:41: required from here
/home/pi/ceph_kraken/ceph/src/include/denc.h:1337:35: error: ‘decode_nohead’ is not a member of ‘denc_traits<std::basic_string<char> >’
traits::decode_nohead(num, o, cp);
^
src/librados/CMakeFiles/librados_objs.dir/build.make:110: recipe for target 'src/librados/CMakeFiles/librados_objs.dir/RadosClient.cc.o' failed
make3: [src/librados/CMakeFiles/librados_objs.dir/RadosClient.cc.o] Error 1
CMakeFiles/Makefile2:3552: recipe for target 'src/librados/CMakeFiles/librados_objs.dir/all' failed
make2: [src/librados/CMakeFiles/librados_objs.dir/all] Error 2
CMakeFiles/Makefile2:243: recipe for target 'CMakeFiles/tests.dir/rule' failed
make1: [CMakeFiles/tests.dir/rule] Error 2
Makefile:186: recipe for target 'tests' failed
make: ** [tests] Error 2
Updated by gyorgy kiss about 7 years ago
Oh sorry, I'm not formatted correctly my last message. Shame on me.
Updated by Romain Gobinet about 7 years ago
Kefu,
There was an issue with my source tree, so i create a fresh one (with https://github.com/ceph/ceph/pull/14099 applied). I confirm that the commit of rocksdb referenced by ceph's master does contain https://github.com/facebook/rocksdb/commit/4e35ffdfab1c86487cdad33d8eebf29ee3ceee04 .
But i can't explain why a "git submodule ... --force" doesn't to the trick.
By the way there is another issue with ARM compilation ;)
Here are the output :
[ 20%] Building CXX object src/osd/CMakeFiles/osd.dir/OSD.cc.o cd /mnt/sda1/ceph-build/ceph-master-reloaded/obj-arm-linux-gnueabihf/src/osd && /usr/bin/arm-linux-gnueabihf-g++ -DCEPH_LIBDIR=\"/usr/lib\" -DCEPH_PKGLIBDIR=\"/usr/lib/ceph\" -D__linux__ -isystem /mnt/sda1/ceph-build/ceph-master-reloaded/obj-arm-linux-gnueabihf/boost/include -I/mnt/sda1/ceph-build/ceph-master-reloaded/obj-arm-linux-gnueabihf/src/include -I/mnt/sda1/ceph-build/ceph-master-reloaded/src -isystem /mnt/sda1/ceph-build/ceph-master-reloaded/obj-arm-linux-gnueabihf/include -I/mnt/sda1/ceph-build/ceph-master-reloaded/src/xxHash -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -Wtype-limits -Wignored-qualifiers -Winit-self -Wpointer-arith -Werror=format-security -fno-strict-aliasing -fsigned-char -rdynamic -Wno-unknown-pragmas -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=2 -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=2 -fstack-protector-strong -fdiagnostics-color=auto -I/usr/include/nss -I/usr/include/nspr -I/usr/include -fPIC -DHAVE_CONFIG_H -D__CEPH__ -D_REENTRANT -D_THREAD_SAFE -D__STDC_FORMAT_MACROS -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -std=c++11 -o CMakeFiles/osd.dir/OSD.cc.o -c /mnt/sda1/ceph-build/ceph-master-reloaded/src/osd/OSD.cc arm-linux-gnueabihf-g++: internal compiler error: Killed (program cc1plus) Please submit a full bug report, with preprocessed source if appropriate. See <file:///usr/share/doc/gcc-5/README.Bugs> for instructions. src/osd/CMakeFiles/osd.dir/build.make:65: recipe for target 'src/osd/CMakeFiles/osd.dir/OSD.cc.o' failed
It seems to be a GCC problem :(
Updated by Romain Gobinet about 7 years ago
Ok ... shame on me, after reading the kernel log :
Out of memory: Kill process 15983 (cc1plus) score 671 or sacrifice child
I try to compile on a small SBC and i forgot to setup a swap ...
I will do what is necessary and keep you informed.
Updated by Romain Gobinet about 7 years ago
It's better with swap :) It takes a very long time to compile on such a small device.
And it failed again (sig) but in a diferent way this time and further than before (39% !!) :
[ 39%] Building CXX object src/librbd/CMakeFiles/rbd_internal.dir/io/ImageRequest.cc.o cd /mnt/sda1/ceph-build/ceph-master-reloaded/obj-arm-linux-gnueabihf/src/librbd && /usr/bin/arm-linux-gnueabihf-g++ -DCEPH_LIBDIR=\"/usr/lib\" -DCEPH_PKGLIBDIR=\"/usr/lib/ceph\" -D__linux__ -isystem /mnt/sda1/ceph-build/ceph-master-reloaded/obj-arm-linux-gnueabihf/boost/include -I/mnt/sda1/ceph-build/ceph-master-reloaded/obj-arm-linux-gnueabihf/src/include -I/mnt/sda1/ceph-build/ceph-master-reloaded/src -isystem /mnt/sda1/ceph-build/ceph-master-reloaded/obj-arm-linux-gnueabihf/include -I/mnt/sda1/ceph-build/ceph-master-reloaded/src/xxHash -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -Wtype-limits -Wignored-qualifiers -Winit-self -Wpointer-arith -Werror=format-security -fno-strict-aliasing -fsigned-char -rdynamic -Wno-unknown-pragmas -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=2 -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=2 -fstack-protector-strong -fdiagnostics-color=auto -I/usr/include/nss -I/usr/include/nspr -I/usr/include -fPIC -DHAVE_CONFIG_H -D__CEPH__ -D_REENTRANT -D_THREAD_SAFE -D__STDC_FORMAT_MACROS -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -std=c++11 -o CMakeFiles/rbd_internal.dir/io/ImageRequest.cc.o -c /mnt/sda1/ceph-build/ceph-master-reloaded/src/librbd/io/ImageRequest.cc /mnt/sda1/ceph-build/ceph-master-reloaded/src/librbd/io/ImageRequest.cc: In instantiation of ‘int librbd::io::ImageRequest<ImageCtxT>::clip_request() [with ImageCtxT = librbd::ImageCtx]’: /mnt/sda1/ceph-build/ceph-master-reloaded/src/librbd/io/ImageRequest.cc:832:28: required from here /mnt/sda1/ceph-build/ceph-master-reloaded/src/librbd/io/ImageRequest.cc:184:20: error: cannot convert ‘size_t* {aka unsigned int*}’ to ‘uint64_t* {aka long long unsigned int*}’ for argument ‘3’ to ‘int librbd::clip_io(librbd::ImageCtx*, uint64_t, uint64_t*)’ int r = clip_io(get_image_ctx(&m_image_ctx), image_extent.first, &clip_len); ^ src/librbd/CMakeFiles/rbd_internal.dir/build.make:1025: recipe for target 'src/librbd/CMakeFiles/rbd_internal.dir/io/ImageRequest.cc.o' failed make[4]: *** [src/librbd/CMakeFiles/rbd_internal.dir/io/ImageRequest.cc.o] Error 1 make[4]: Leaving directory '/mnt/sda1/ceph-build/ceph-master-reloaded/obj-arm-linux-gnueabihf' CMakeFiles/Makefile2:19974: recipe for target 'src/librbd/CMakeFiles/rbd_internal.dir/all' failed make[3]: *** [src/librbd/CMakeFiles/rbd_internal.dir/all] Error 2
Updated by gyorgy kiss about 7 years ago
Hi Romain, Kefu,
I have made a total new local source:
git clone git://github.com/ceph/ceph git submodule update --init --recursive --force git apply --stat {path}/14099.patch
but as far I see, something different on end:
ceph $ git describe v12.0.0-1788-gb894dc6 ceph/src/rocksdb $ git describe 2.7.fb-4804-g3b4ac80
Can you help me, what have I made wrong?
Thanks
Updated by Romain Gobinet about 7 years ago
Nothing wrong, i've almost the same here !
v12.0.0-1739-g9de1f1a and 2.7.fb-4804-g3b4ac80, that's great but it failed to compile.
Updated by gyorgy kiss about 7 years ago
Thanks Romain,
The only difference yet I see, my compile process fails at 4%... (encoding, nohead. etc.) My git apply for 14099 is correct so? (that changed some files as far I see :) )..
Updated by gyorgy kiss about 7 years ago
Hi,
An interesting status:
on brand new hdd, new source taken.
git clone https://github.com/ceph/ceph
git apply {path}/14099.patch
and now check what we have:
ceph $ git describe
v12.0.0-1788-gb894dc6
ceph/src/rocksdb $ git describe
v12.0.0-1788-gb894dc
That should be without submodule update?
now I gave out easy: dpkg-buildpackage -j8
let see :)
Updated by Kefu Chai about 7 years ago
good news, everyone! we are close.
@Romain, since https://github.com/ceph/ceph/pull/14099 is pulled by Sage into his testing branch for testing, and the new issue resides in RBD, i am posting another fix at https://github.com/ceph/ceph/pull/14159.
you need to apply both fixes to try to compile Ceph on ARM32.
@gyorgy, i agree with Romain, you did nothing wrong at #18938-24. the reason that the compilation error'ed out earlier than Romain is probably the uncertainness caused by parallelism, where one of the compilation jobs reached the decode_nohead issue earlier. just you were not lucky in that run. and in #18938-27, you didn't update the submodule, which will lead to a build failure earlier =(
Updated by gyorgy kiss about 7 years ago
Hi Kefu, Hi Romain
I gave a try:
pi@node1:~/dev/ceph_kraken $ git clone git://github.com/ceph/ceph Cloning into 'ceph'... remote: Counting objects: 484034, done. remote: Compressing objects: 100% (10/10), done. remote: Total 484034 (delta 5), reused 0 (delta 0), pack-reused 484024 Receiving objects: 100% (484034/484034), 193.98 MiB | 1.34 MiB/s, done. Resolving deltas: 100% (381406/381406), done. Checking connectivity... done. pi@node1:~/dev/ceph_kraken $ git submodule update --init --recursive --force ... pi@node1:~/dev/ceph_kraken/ceph $ git apply --stat ../../../14099.patch src/include/denc.h | 13 ++++++++----- src/include/denc.h | 19 +++++++++++++++++++ src/test/encoding.cc | 34 ++++++++++++++++++++++++++++++++++ 3 files changed, 61 insertions(+), 5 deletions(-) pi@node1:~/dev/ceph_kraken/ceph $ git apply --stat ../../../14159.patch src/librbd/io/ImageRequest.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) pi@node1:~/dev/ceph_kraken/ceph $ git describe v12.0.0-1803-g52468ae pi@node1:~/dev/ceph_kraken/ceph/src/rocksdb $ git describe 2.7.fb-4804-g3b4ac80 pi@node1:~/dev/ceph_kraken/ceph $ vi install-deps.sh (insert raspbian as known os) pi@node1:~/dev/ceph_kraken/ceph $ ./run-make-check.sh Checking hostname sanity... OK [ 2%] Building CXX object src/osdc/CMakeFiles/osdc_rbd_objs.dir/Striper.cc.o In file included from /home/pi/dev/ceph_kraken/ceph/src/include/encoding.h:25:0 ... fail ...
ok something was wrong. I nuked everything again...
next shoot, lets see without parallism, and on the good-old way:
pi@node1:~/dev/ceph_kraken $ git clone git://github.com/ceph/ceph pi@node1:~/dev/ceph_kraken $ git submodule update --init --recursive --force pi@node1:~/dev/ceph_kraken/ceph $ git apply --stat ../../../14099.patch pi@node1:~/dev/ceph_kraken/ceph $ git apply --stat ../../../14159.patch pi@node1:~/dev/ceph_kraken/ceph $ dpkg-buildpackage
it runs now, :) I will send the result.
Updated by gyorgy kiss about 7 years ago
Hello,
here is my result...
what should I check now?
[ 1%] Building CXX object src/CMakeFiles/common-objs.dir/crush/CrushWrapper.cc.o cd /home/pi/dev/ceph_kraken/ceph/obj-arm-linux-gnueabihf/src && /usr/bin/c++ -DCEPH_LIBDIR=\"/usr/lib\" -DCEPH_PKGLIBDIR=\"/usr/lib/ceph\" -D__linux__ -isystem /home/pi/dev/ceph_kraken/ceph/obj-arm-linux-gnueabihf/boost/include -I/home/pi/dev/ceph_kraken/ceph/obj-arm-linux-gnueabihf/src/include -I/home/pi/dev/ceph_kraken/ceph/src -isystem /home/pi/dev/ceph_kraken/ceph/obj-arm-linux-gnueabihf/include -I/home/pi/dev/ceph_kraken/ceph/src/xxHash -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -Wall -Wtype-limits -Wignored-qualifiers -Winit-self -Wpointer-arith -Werror=format-security -fno-strict-aliasing -fsigned-char -rdynamic -Wno-unknown-pragmas -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=2 -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=2 -fstack-protector-strong -fdiagnostics-color=auto -I/usr/include/nss -I/usr/include/nspr -I/usr/include -fno-builtin-malloc -fno-builtin-calloc -fno-builtin-realloc -fno-builtin-free -fPIC -DHAVE_CONFIG_H -D__CEPH__ -D_REENTRANT -D_THREAD_SAFE -D__STDC_FORMAT_MACROS -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -std=c++11 -o CMakeFiles/common-objs.dir/crush/CrushWrapper.cc.o -c /home/pi/dev/ceph_kraken/ceph/src/crush/CrushWrapper.cc In file included from /home/pi/dev/ceph_kraken/ceph/src/include/encoding.h:25:0, from /home/pi/dev/ceph_kraken/ceph/src/include/uuid.h:8, from /home/pi/dev/ceph_kraken/ceph/src/include/types.h:21, from /home/pi/dev/ceph_kraken/ceph/src/msg/msg_types.h:21, from /home/pi/dev/ceph_kraken/ceph/src/osd/osd_types.h:31, from /home/pi/dev/ceph_kraken/ceph/src/crush/CrushWrapper.cc:4: /home/pi/dev/ceph_kraken/ceph/src/include/denc.h: In instantiation of ‘typename std::enable_if<(traits:: supported && (! traits:: featured))>::type decode_nohead(size_t, T&, ceph::buffer::list::iterator&) [with T = std::basic_string<char>; traits = denc_traits<std::basic_string<char>, void>; typename std::enable_if<(traits:: supported && (! traits:: featured))>::type = void; size_t = unsigned int]’: /home/pi/dev/ceph_kraken/ceph/src/crush/CrushWrapper.cc:1412:40: required from here /home/pi/dev/ceph_kraken/ceph/src/include/denc.h:1398:35: error: ‘decode_nohead’ is not a member of ‘denc_traits<std::basic_string<char>, void>’ traits::decode_nohead(num, o, cp); ^ src/CMakeFiles/common-objs.dir/build.make:546: recipe for target 'src/CMakeFiles/common-objs.dir/crush/CrushWrapper.cc.o' failed make[4]: *** [src/CMakeFiles/common-objs.dir/crush/CrushWrapper.cc.o] Error 1 make[4]: Leaving directory '/home/pi/dev/ceph_kraken/ceph/obj-arm-linux-gnueabihf' CMakeFiles/Makefile2:764: recipe for target 'src/CMakeFiles/common-objs.dir/all' failed make[3]: *** [src/CMakeFiles/common-objs.dir/all] Error 2 make[3]: Leaving directory '/home/pi/dev/ceph_kraken/ceph/obj-arm-linux-gnueabihf' Makefile:141: recipe for target 'all' failed make[2]: *** [all] Error 2 make[2]: Leaving directory '/home/pi/dev/ceph_kraken/ceph/obj-arm-linux-gnueabihf' cd /home/pi/dev/ceph_kraken/ceph dh_auto_build: make -j1 returned exit code 2 debian/rules:33: recipe for target 'override_dh_auto_build' failed make[1]: *** [override_dh_auto_build] Error 2 make[1]: Leaving directory '/home/pi/dev/ceph_kraken/ceph' debian/rules:26: recipe for target 'build' failed make: *** [build] Error 2 dpkg-buildpackage: error: debian/rules build gave error exit status 2 pi@node1:~/dev/ceph_kraken/ceph $
Updated by Romain Gobinet about 7 years ago
Hi Kefu,
The pull request 14159do the job but the compilation failed another way, hare are some traces.
The first compilation thread gave this :
[ 69%] Building CXX object src/test/rbd_mirror/CMakeFiles/unittest_rbd_mirror.dir/test_mock_PoolWatcher.cc.o cd /mnt/sda1/ceph-build/ceph-master-reloaded/obj-arm-linux-gnueabihf/src/test/rbd_mirror && /usr/bin/arm-linux-gnueabihf-g++ -DCEPH_LIBDIR=\"/usr/lib\" -DCEPH_PKGLIBDIR=\"/usr/lib/ceph\" -D__linux__ -isystem /mnt/sda1/ceph-build/ceph-master-reloaded/obj-arm-linux-gnueabihf/boost/include -I/mnt/sda1/ceph-build/ceph-master-reloaded/obj-arm-linux-gnueabihf/src/include -I/mnt/sda1/ceph-build/ceph-master-reloaded/src -isystem /mnt/sda1/ceph-build/ceph-master-reloaded/obj-arm-linux-gnueabihf/include -I/mnt/sda1/ceph-build/ceph-master-reloaded/src/xxHash -I/mnt/sda1/ceph-build/ceph-master-reloaded/src/googletest/googlemock/include -I/mnt/sda1/ceph-build/ceph-master-reloaded/src/googletest/googletest/include -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -Wtype-limits -Wignored-qualifiers -Winit-self -Wpointer-arith -Werror=format-security -fno-strict-aliasing -fsigned-char -rdynamic -Wno-unknown-pragmas -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=2 -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=2 -fstack-protector-strong -fdiagnostics-color=auto -I/usr/include/nss -I/usr/include/nspr -I/usr/include -fPIE -DHAVE_CONFIG_H -D__CEPH__ -D_REENTRANT -D_THREAD_SAFE -D__STDC_FORMAT_MACROS -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -I/mnt/sda1/ceph-build/ceph-master-reloaded/src/googletest/googlemock/include -I/mnt/sda1/ceph-build/ceph-master-reloaded/obj-arm-linux-gnueabihf/src/googletest/googlemock/include -I/mnt/sda1/ceph-build/ceph-master-reloaded/src/googletest/googletest/include -I/mnt/sda1/ceph-build/ceph-master-reloaded/obj-arm-linux-gnueabihf/src/googletest/googletest/include -fno-strict-aliasing -std=c++11 -o CMakeFiles/unittest_rbd_mirror.dir/test_mock_PoolWatcher.cc.o -c /mnt/sda1/ceph-build/ceph-master-reloaded/src/test/rbd_mirror/test_mock_PoolWatcher.cc CMakeFiles/unittest_librbd.dir/exclusive_lock/test_mock_PostAcquireRequest.cc.o:(.rodata+0x3e98): multiple definition of `typeinfo name for librbd::Journal<librbd::ImageCtx>::ReplayHandler' CMakeFiles/unittest_librbd.dir/test_mock_Journal.cc.o:(.rodata+0x65a4): first defined here CMakeFiles/unittest_librbd.dir/exclusive_lock/test_mock_PostAcquireRequest.cc.o: In function `manage_small': /mnt/sda1/ceph-build/ceph-master-reloaded/obj-arm-linux-gnueabihf/boost/include/boost/function/function_base.hpp:303: multiple definition of `typeinfo for librbd::Journal<librbd::ImageCtx>::ReplayHandler' CMakeFiles/unittest_librbd.dir/test_mock_Journal.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/obj-arm-linux-gnueabihf/boost/include/boost/type_index/stl_type_index.hpp:203: first defined here CMakeFiles/unittest_librbd.dir/exclusive_lock/test_mock_PostAcquireRequest.cc.o: In function `testing::internal::scoped_ptr<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::~scoped_ptr()': /mnt/sda1/ceph-build/ceph-master-reloaded/src/googletest/googletest/include/gtest/internal/gtest-port.h:1120: multiple definition of `typeinfo name for librbd::Journal<librbd::ImageCtx>::MetadataListener' CMakeFiles/unittest_librbd.dir/test_mock_Journal.cc.o:/usr/include/c++/5/bits/basic_ios.h:282: first defined here CMakeFiles/unittest_librbd.dir/exclusive_lock/test_mock_PostAcquireRequest.cc.o: In function `manage_small': /mnt/sda1/ceph-build/ceph-master-reloaded/obj-arm-linux-gnueabihf/boost/include/boost/function/function_base.hpp:303: multiple definition of `typeinfo for librbd::Journal<librbd::ImageCtx>::MetadataListener' CMakeFiles/unittest_librbd.dir/test_mock_Journal.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/obj-arm-linux-gnueabihf/boost/include/boost/function/function_base.hpp:303: first defined here CMakeFiles/unittest_librbd.dir/exclusive_lock/test_mock_PostAcquireRequest.cc.o: In function `Cond::~Cond()': /mnt/sda1/ceph-build/ceph-master-reloaded/src/common/Cond.h:44: multiple definition of `typeinfo name for librbd::Journal<librbd::ImageCtx>::C_OpEventSafe' CMakeFiles/unittest_librbd.dir/test_mock_Journal.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/src/test/librbd/test_mock_Journal.cc:56: first defined here CMakeFiles/unittest_librbd.dir/exclusive_lock/test_mock_PostAcquireRequest.cc.o: In function `manage': /mnt/sda1/ceph-build/ceph-master-reloaded/obj-arm-linux-gnueabihf/boost/include/boost/function/function_base.hpp:399: multiple definition of `typeinfo for librbd::Journal<librbd::ImageCtx>::C_OpEventSafe' CMakeFiles/unittest_librbd.dir/test_mock_Journal.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/obj-arm-linux-gnueabihf/boost/include/boost/function/function_base.hpp:303: first defined here CMakeFiles/unittest_librbd.dir/exclusive_lock/test_mock_PostAcquireRequest.cc.o: In function `testing::AssertionResult::message() const': /mnt/sda1/ceph-build/ceph-master-reloaded/src/googletest/googletest/include/gtest/gtest.h:298: multiple definition of `typeinfo name for librbd::Journal<librbd::ImageCtx>::C_IOEventSafe' CMakeFiles/unittest_librbd.dir/test_mock_Journal.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/src/test/journal/mock/MockJournaler.h:83: first defined here CMakeFiles/unittest_librbd.dir/exclusive_lock/test_mock_PostAcquireRequest.cc.o: In function `manage_small': /mnt/sda1/ceph-build/ceph-master-reloaded/obj-arm-linux-gnueabihf/boost/include/boost/function/function_base.hpp:307: multiple definition of `typeinfo for librbd::Journal<librbd::ImageCtx>::C_IOEventSafe' CMakeFiles/unittest_librbd.dir/test_mock_Journal.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/obj-arm-linux-gnueabihf/boost/include/boost/function/function_base.hpp:401: first defined here CMakeFiles/unittest_librbd.dir/exclusive_lock/test_mock_PostAcquireRequest.cc.o: In function `testing::AssertionResult testing::internal::EqHelper<true>::Compare<int, int>(char const*, char const*, int const&, int const&, testing::internal::EnableIf<!testing::internal::is_pointer<int>::value>::type*)': /mnt/sda1/ceph-build/ceph-master-reloaded/src/googletest/googletest/include/gtest/gtest.h:1459: multiple definition of `typeinfo name for librbd::Journal<librbd::ImageCtx>::C_ReplayProcessSafe' CMakeFiles/unittest_librbd.dir/test_mock_Journal.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/src/test/journal/mock/MockJournaler.h:58: first defined here CMakeFiles/unittest_librbd.dir/exclusive_lock/test_mock_PostAcquireRequest.cc.o: In function `manage_small': /mnt/sda1/ceph-build/ceph-master-reloaded/obj-arm-linux-gnueabihf/boost/include/boost/function/function_base.hpp:286: multiple definition of `typeinfo for librbd::Journal<librbd::ImageCtx>::C_ReplayProcessSafe' CMakeFiles/unittest_librbd.dir/test_mock_Journal.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/obj-arm-linux-gnueabihf/boost/include/boost/function/function_base.hpp:307: first defined here CMakeFiles/unittest_librbd.dir/operation/test_mock_DisableFeaturesRequest.cc.o:(.rodata+0x3418): multiple definition of `typeinfo name for librbd::AsyncRequest<librbd::ImageCtx>' CMakeFiles/unittest_librbd.dir/test_mock_fixture.cc.o:(.rodata+0x1b7c): first defined here CMakeFiles/unittest_librbd.dir/operation/test_mock_DisableFeaturesRequest.cc.o: In function `~C_StateCallbackAdapter': /mnt/sda1/ceph-build/ceph-master-reloaded/src/librbd/Utils.h:59: multiple definition of `typeinfo for librbd::AsyncRequest<librbd::ImageCtx>' CMakeFiles/unittest_librbd.dir/test_mock_fixture.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/src/test/librados_test_stub/MockTestMemIoCtxImpl.h:155: first defined here CMakeFiles/unittest_librbd.dir/operation/test_mock_DisableFeaturesRequest.cc.o: In function `rados_state_callback<librbd::operation::DisableFeaturesRequest<librbd::(anonymous namespace)::MockOperationImageCtx>, &librbd::operation::DisableFeaturesRequest<librbd::(anonymous namespace)::MockOperationImageCtx>::handle_set_features, true>': /mnt/sda1/ceph-build/ceph-master-reloaded/src/librbd/Utils.h:38: multiple definition of `typeinfo name for librbd::operation::Request<librbd::ImageCtx>' CMakeFiles/unittest_librbd.dir/test_mock_fixture.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/src/googletest/googlemock/include/gmock/gmock-matchers.h:339: first defined here CMakeFiles/unittest_librbd.dir/operation/test_mock_DisableFeaturesRequest.cc.o: In function `~C_StateCallbackAdapter': /mnt/sda1/ceph-build/ceph-master-reloaded/src/librbd/Utils.h:59: multiple definition of `typeinfo for librbd::operation::Request<librbd::ImageCtx>' CMakeFiles/unittest_librbd.dir/test_mock_fixture.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/src/test/librados_test_stub/MockTestMemIoCtxImpl.h:155: first defined here CMakeFiles/unittest_librbd.dir/operation/test_mock_DisableFeaturesRequest.cc.o: In function `rados_state_callback<librbd::operation::DisableFeaturesRequest<librbd::(anonymous namespace)::MockOperationImageCtx>, &librbd::operation::DisableFeaturesRequest<librbd::(anonymous namespace)::MockOperationImageCtx>::handle_set_features, true>': /mnt/sda1/ceph-build/ceph-master-reloaded/src/librbd/Utils.h:43: multiple definition of `typeinfo name for librbd::operation::Request<librbd::ImageCtx>::C_CommitOpEvent' CMakeFiles/unittest_librbd.dir/test_mock_fixture.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/src/test/librados_test_stub/MockTestMemIoCtxImpl.h:172: first defined here CMakeFiles/unittest_librbd.dir/operation/test_mock_DisableFeaturesRequest.cc.o: In function `~C_CallbackAdapter': /mnt/sda1/ceph-build/ceph-master-reloaded/src/librbd/Utils.h:46: multiple definition of `typeinfo for librbd::operation::Request<librbd::ImageCtx>::C_CommitOpEvent' CMakeFiles/unittest_librbd.dir/test_mock_fixture.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/src/googletest/googlemock/include/gmock/gmock-matchers.h:345: first defined here CMakeFiles/unittest_librbd.dir/operation/test_mock_DisableFeaturesRequest.cc.o: In function `send_close_journal': /mnt/sda1/ceph-build/ceph-master-reloaded/src/librbd/operation/DisableFeaturesRequest.cc:351: multiple definition of `typeinfo name for librbd::operation::Request<librbd::ImageCtx>::C_AppendOpEvent' CMakeFiles/unittest_librbd.dir/test_mock_fixture.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/src/googletest/googletest/include/gtest/internal/gtest-linked_ptr.h:93: first defined here CMakeFiles/unittest_librbd.dir/operation/test_mock_DisableFeaturesRequest.cc.o: In function `~MonomorphicImpl': /mnt/sda1/ceph-build/ceph-master-reloaded/src/googletest/googlemock/include/gmock/gmock-actions.h:438: multiple definition of `typeinfo for librbd::operation::Request<librbd::ImageCtx>::C_AppendOpEvent' CMakeFiles/unittest_librbd.dir/test_mock_fixture.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/src/googletest/googlemock/include/gmock/gmock-matchers.h:345: first defined here CMakeFiles/unittest_librbd.dir/operation/test_mock_DisableFeaturesRequest.cc.o: In function `C_StateCallbackAdapter': /mnt/sda1/ceph-build/ceph-master-reloaded/src/librbd/Utils.h:62: multiple definition of `typeinfo name for librbd::AsyncObjectThrottle<librbd::ImageCtx>' CMakeFiles/unittest_librbd.dir/test_mock_fixture.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/src/googletest/googlemock/include/gmock/gmock-matchers.h:252: first defined here CMakeFiles/unittest_librbd.dir/operation/test_mock_DisableFeaturesRequest.cc.o: In function `~gmock_Impl': /mnt/sda1/ceph-build/ceph-master-reloaded/src/test/librbd/test_mock_fixture.h:41: multiple definition of `typeinfo for librbd::AsyncObjectThrottle<librbd::ImageCtx>' CMakeFiles/unittest_librbd.dir/test_mock_fixture.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/src/googletest/googlemock/include/gmock/gmock-matchers.h:3732: first defined here CMakeFiles/unittest_librbd.dir/operation/test_mock_EnableFeaturesRequest.cc.o:(.rodata+0x3020): multiple definition of `typeinfo name for librbd::AsyncRequest<librbd::ImageCtx>' CMakeFiles/unittest_librbd.dir/test_mock_fixture.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/src/googletest/googlemock/include/gmock/gmock-matchers.h:3732: first defined here CMakeFiles/unittest_librbd.dir/operation/test_mock_EnableFeaturesRequest.cc.o: In function `~gmock_Impl': /mnt/sda1/ceph-build/ceph-master-reloaded/src/test/librbd/test_mock_fixture.h:41: multiple definition of `typeinfo for librbd::AsyncRequest<librbd::ImageCtx>' CMakeFiles/unittest_librbd.dir/test_mock_fixture.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/src/test/librados_test_stub/MockTestMemIoCtxImpl.h:155: first defined here CMakeFiles/unittest_librbd.dir/operation/test_mock_EnableFeaturesRequest.cc.o: In function `expect_block_requests': /mnt/sda1/ceph-build/ceph-master-reloaded/src/test/librbd/operation/test_mock_EnableFeaturesRequest.cc:232: multiple definition of `typeinfo name for librbd::operation::Request<librbd::ImageCtx>' CMakeFiles/unittest_librbd.dir/test_mock_fixture.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/src/googletest/googlemock/include/gmock/gmock-matchers.h:339: first defined here CMakeFiles/unittest_librbd.dir/operation/test_mock_EnableFeaturesRequest.cc.o: In function `~gmock_Impl': /mnt/sda1/ceph-build/ceph-master-reloaded/src/test/librbd/test_mock_fixture.h:41: multiple definition of `typeinfo for librbd::operation::Request<librbd::ImageCtx>' CMakeFiles/unittest_librbd.dir/test_mock_fixture.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/src/test/librados_test_stub/MockTestMemIoCtxImpl.h:155: first defined here CMakeFiles/unittest_librbd.dir/operation/test_mock_EnableFeaturesRequest.cc.o: In function `testing::internal::MatcherBase<int>::~MatcherBase()': /mnt/sda1/ceph-build/ceph-master-reloaded/src/googletest/googlemock/include/gmock/gmock-matchers.h:294: multiple definition of `typeinfo name for librbd::operation::Request<librbd::ImageCtx>::C_CommitOpEvent' CMakeFiles/unittest_librbd.dir/test_mock_fixture.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/src/test/librados_test_stub/MockTestMemIoCtxImpl.h:172: first defined here CMakeFiles/unittest_librbd.dir/operation/test_mock_EnableFeaturesRequest.cc.o: In function `void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char const*>(char const*, char const*, std::forward_iterator_tag)': /usr/include/c++/5/bits/basic_string.tcc:210: multiple definition of `typeinfo for librbd::operation::Request<librbd::ImageCtx>::C_CommitOpEvent' CMakeFiles/unittest_librbd.dir/test_mock_fixture.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/src/googletest/googlemock/include/gmock/gmock-matchers.h:345: first defined here CMakeFiles/unittest_librbd.dir/operation/test_mock_EnableFeaturesRequest.cc.o: In function `testing::Matcher<int>::Matcher(int)': /mnt/sda1/ceph-build/ceph-master-reloaded/src/googletest/googlemock/include/gmock/gmock-matchers.h:294: multiple definition of `typeinfo name for librbd::operation::Request<librbd::ImageCtx>::C_AppendOpEvent' CMakeFiles/unittest_librbd.dir/test_mock_fixture.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/src/googletest/googletest/include/gtest/internal/gtest-linked_ptr.h:93: first defined here CMakeFiles/unittest_librbd.dir/operation/test_mock_EnableFeaturesRequest.cc.o: In function `void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char const*>(char const*, char const*, std::forward_iterator_tag)': /usr/include/c++/5/bits/basic_string.tcc:215: multiple definition of `typeinfo for librbd::operation::Request<librbd::ImageCtx>::C_AppendOpEvent' CMakeFiles/unittest_librbd.dir/test_mock_fixture.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/src/googletest/googlemock/include/gmock/gmock-matchers.h:345: first defined here CMakeFiles/unittest_librbd.dir/operation/test_mock_EnableFeaturesRequest.cc.o: In function `librbd::AsyncRequest<librbd::MockImageCtx>::finish(int)': /mnt/sda1/ceph-build/ceph-master-reloaded/src/librbd/AsyncRequest.h:59: multiple definition of `typeinfo name for librbd::AsyncObjectThrottle<librbd::ImageCtx>' CMakeFiles/unittest_librbd.dir/test_mock_fixture.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/src/googletest/googlemock/include/gmock/gmock-matchers.h:252: first defined here CMakeFiles/unittest_librbd.dir/operation/test_mock_EnableFeaturesRequest.cc.o: In function `void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char const*>(char const*, char const*, std::forward_iterator_tag)': /usr/include/c++/5/bits/basic_string.tcc:221: multiple definition of `typeinfo for librbd::AsyncObjectThrottle<librbd::ImageCtx>' [...many pages of this...] CMakeFiles/unittest_librbd.dir/operation/test_mock_SnapshotRollbackRequest.cc.o: In function `manage': /mnt/sda1/ceph-build/ceph-master-reloaded/obj-arm-linux-gnueabihf/boost/include/boost/function/function_base.hpp:404: multiple definition of `typeinfo for librbd::operation::Request<librbd::MockImageCtx>::C_CommitOpEvent' CMakeFiles/unittest_librbd.dir/test_mock_fixture.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/src/googletest/googlemock/include/gmock/gmock-matchers.h:328: first defined here CMakeFiles/unittest_librbd.dir/operation/test_mock_SnapshotRollbackRequest.cc.o: In function `expect_get_object_name': /mnt/sda1/ceph-build/ceph-master-reloaded/src/test/librbd/operation/test_mock_SnapshotRollbackRequest.cc:124: multiple definition of `typeinfo name for librbd::operation::Request<librbd::MockImageCtx>::C_AppendOpEvent' CMakeFiles/unittest_librbd.dir/test_mock_fixture.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/src/googletest/googlemock/include/gmock/internal/gmock-internal-utils.h:296: first defined here CMakeFiles/unittest_librbd.dir/operation/test_mock_SnapshotRollbackRequest.cc.o: In function `manager': /mnt/sda1/ceph-build/ceph-master-reloaded/obj-arm-linux-gnueabihf/boost/include/boost/function/function_base.hpp:360: multiple definition of `typeinfo for librbd::operation::Request<librbd::MockImageCtx>::C_AppendOpEvent' CMakeFiles/unittest_librbd.dir/test_mock_fixture.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/src/googletest/googlemock/include/gmock/gmock-matchers.h:859: first defined here collect2: error: ld returned 1 exit status src/test/librbd/CMakeFiles/unittest_librbd.dir/build.make:1208: recipe for target 'bin/unittest_librbd' failed make[4]: *** [bin/unittest_librbd] Error 1 make[4]: Leaving directory '/mnt/sda1/ceph-build/ceph-master-reloaded/obj-arm-linux-gnueabihf' CMakeFiles/Makefile2:15017: recipe for target 'src/test/librbd/CMakeFiles/unittest_librbd.dir/all' failed make[3]: *** [src/test/librbd/CMakeFiles/unittest_librbd.dir/all] Error 2
The second one :
[...] CMakeFiles/unittest_rbd_mirror.dir/test_mock_ImageReplayer.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/src/tools/rbd_mirror/ImageReplayer.cc:96: first defined here CMakeFiles/unittest_rbd_mirror.dir/test_mock_ImageSyncThrottler.cc.o: In function `std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)': /usr/include/c++/5/ostream:561: multiple definition of `typeinfo name for rbd::mirror::ImageSyncThrottler<librbd::ImageCtx>::C_SyncHolder' CMakeFiles/unittest_rbd_mirror.dir/test_mock_ImageReplayer.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/src/tools/rbd_mirror/ImageReplayer.cc:1536: first defined here CMakeFiles/unittest_rbd_mirror.dir/test_mock_ImageSyncThrottler.cc.o: In function `operator()': /mnt/sda1/ceph-build/ceph-master-reloaded/src/test/rbd_mirror/test_mock_ImageSyncThrottler.cc:73: multiple definition of `typeinfo for rbd::mirror::ImageSyncThrottler<librbd::ImageCtx>::C_SyncHolder' CMakeFiles/unittest_rbd_mirror.dir/test_mock_ImageReplayer.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/src/tools/rbd_mirror/ImageReplayer.cc:110: first defined here collect2: error: ld returned 1 exit status src/test/rbd_mirror/CMakeFiles/unittest_rbd_mirror.dir/build.make:581: recipe for target 'bin/unittest_rbd_mirror' failed make[4]: *** [bin/unittest_rbd_mirror] Error 1 make[4]: Leaving directory '/mnt/sda1/ceph-build/ceph-master-reloaded/obj-arm-linux-gnueabihf' CMakeFiles/Makefile2:18078: recipe for target 'src/test/rbd_mirror/CMakeFiles/unittest_rbd_mirror.dir/all' failed make[3]: *** [src/test/rbd_mirror/CMakeFiles/unittest_rbd_mirror.dir/all] Error 2
RG
Updated by Kefu Chai about 7 years ago
@gyorgy, i think https://github.com/ceph/ceph/pull/14099 should address your issue. could you double check it?
@Romain, looks like a bug in GCC, see https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=608029. what is the GCC version you are using?
Updated by Romain Gobinet about 7 years ago
Hi !
I've done a mono threaded retry (just in case ...) :
[ 53%] Building CXX object src/tools/rbd/CMakeFiles/rbd.dir/action/Import.cc.o cd /mnt/sda1/ceph-build/ceph-master-reloaded/obj-arm-linux-gnueabihf/src/tools/rbd && /usr/bin/arm-linux-gnueabihf-g++ -DCEPH_LIBDIR=\"/usr/lib\" -DCEPH_PKGLIBDIR=\"/usr/lib/ceph\" -D__linux__ -isystem /mnt/sda1/ceph-build/ceph-master-reloaded/obj-arm-linux-gnueabihf/boost/include -I/mnt/sda1/ceph-build/ceph-master-reloaded/obj-arm-linux-gnueabihf/src/include -I/mnt/sda1/ceph-build/ceph-master-reloaded/src -isystem /mnt/sda1/ceph-build/ceph-master-reloaded/obj-arm-linux-gnueabihf/include -I/mnt/sda1/ceph-build/ceph-master-reloaded/src/xxHash -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -Wtype-limits -Wignored-qualifiers -Winit-self -Wpointer-arith -Werror=format-security -fno-strict-aliasing -fsigned-char -rdynamic -Wno-unknown-pragmas -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=2 -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=2 -fstack-protector-strong -fdiagnostics-color=auto -I/usr/include/nss -I/usr/include/nspr -I/usr/include -fPIE -DHAVE_CONFIG_H -D__CEPH__ -D_REENTRANT -D_THREAD_SAFE -D__STDC_FORMAT_MACROS -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -std=c++11 -o CMakeFiles/rbd.dir/action/Import.cc.o -c /mnt/sda1/ceph-build/ceph-master-reloaded/src/tools/rbd/action/Import.cc /mnt/sda1/ceph-build/ceph-master-reloaded/src/tools/rbd/action/Import.cc: In function ‘int rbd::action::import::skip_tag(int, uint64_t)’: /mnt/sda1/ceph-build/ceph-master-reloaded/src/tools/rbd/action/Import.cc:262:43: error: no matching function for call to ‘min(uint64_t&, unsigned int)’ uint64_t len = min(length, sizeof(buf)); ^ In file included from /usr/include/c++/5/bits/stl_tree.h:63:0, from /usr/include/c++/5/set:60, from /mnt/sda1/ceph-build/ceph-master-reloaded/src/tools/rbd/ArgumentTypes.h:8, from /mnt/sda1/ceph-build/ceph-master-reloaded/src/tools/rbd/action/Import.cc:4: /usr/include/c++/5/bits/stl_algobase.h:195:5: note: candidate: template<class _Tp> const _Tp& std::min(const _Tp&, const _Tp&) min(const _Tp& __a, const _Tp& __b) ^ /usr/include/c++/5/bits/stl_algobase.h:195:5: note: template argument deduction/substitution failed: /mnt/sda1/ceph-build/ceph-master-reloaded/src/tools/rbd/action/Import.cc:262:43: note: deduced conflicting types for parameter ‘const _Tp’ (‘long long unsigned int’ and ‘unsigned int’) uint64_t len = min(length, sizeof(buf)); [...] /mnt/sda1/ceph-build/ceph-master-reloaded/src/tools/rbd/action/Import.cc: In function ‘int rbd::action::import::do_import_v1(int, librbd::Image&, uint64_t, size_t, rbd::utils::ProgressContext&)’: /mnt/sda1/ceph-build/ceph-master-reloaded/src/tools/rbd/action/Import.cc:609:28: error: no matching function for call to ‘min(size_t&, uint64_t&)’ reqlen = min(reqlen, size); ^ In file included from /usr/include/c++/5/bits/stl_tree.h:63:0, from /usr/include/c++/5/set:60, from /mnt/sda1/ceph-build/ceph-master-reloaded/src/tools/rbd/ArgumentTypes.h:8, from /mnt/sda1/ceph-build/ceph-master-reloaded/src/tools/rbd/action/Import.cc:4: /usr/include/c++/5/bits/stl_algobase.h:195:5: note: candidate: template<class _Tp> const _Tp& std::min(const _Tp&, const _Tp&) min(const _Tp& __a, const _Tp& __b) ^ /usr/include/c++/5/bits/stl_algobase.h:195:5: note: template argument deduction/substitution failed: /mnt/sda1/ceph-build/ceph-master-reloaded/src/tools/rbd/action/Import.cc:609:28: note: deduced conflicting types for parameter ‘const _Tp’ (‘unsigned int’ and ‘uint64_t {aka long long unsigned int}’) reqlen = min(reqlen, size); ^ In file included from /usr/include/c++/5/bits/stl_tree.h:63:0, from /usr/include/c++/5/set:60, from /mnt/sda1/ceph-build/ceph-master-reloaded/src/tools/rbd/ArgumentTypes.h:8, from /mnt/sda1/ceph-build/ceph-master-reloaded/src/tools/rbd/action/Import.cc:4: /usr/include/c++/5/bits/stl_algobase.h:243:5: note: candidate: template<class _Tp, class _Compare> const _Tp& std::min(const _Tp&, const _Tp&, _Compare) min(const _Tp& __a, const _Tp& __b, _Compare __comp) ^ /usr/include/c++/5/bits/stl_algobase.h:243:5: note: template argument deduction/substitution failed: /mnt/sda1/ceph-build/ceph-master-reloaded/src/tools/rbd/action/Import.cc:609:28: note: deduced conflicting types for parameter ‘const _Tp’ (‘unsigned int’ and ‘uint64_t {aka long long unsigned int}’) reqlen = min(reqlen, size); ^ In file included from /usr/include/c++/5/algorithm:62:0, from /mnt/sda1/ceph-build/ceph-master-reloaded/obj-arm-linux-gnueabihf/boost/include/boost/any.hpp:17, from /mnt/sda1/ceph-build/ceph-master-reloaded/src/tools/rbd/ArgumentTypes.h:11, from /mnt/sda1/ceph-build/ceph-master-reloaded/src/tools/rbd/action/Import.cc:4: /usr/include/c++/5/bits/stl_algo.h:3445:5: note: candidate: template<class _Tp> _Tp std::min(std::initializer_list<_Tp>) min(initializer_list<_Tp> __l) ^ /usr/include/c++/5/bits/stl_algo.h:3445:5: note: template argument deduction/substitution failed: /mnt/sda1/ceph-build/ceph-master-reloaded/src/tools/rbd/action/Import.cc:609:28: note: mismatched types ‘std::initializer_list<_Tp>’ and ‘unsigned int’ reqlen = min(reqlen, size); ^ In file included from /usr/include/c++/5/algorithm:62:0, from /mnt/sda1/ceph-build/ceph-master-reloaded/obj-arm-linux-gnueabihf/boost/include/boost/any.hpp:17, from /mnt/sda1/ceph-build/ceph-master-reloaded/src/tools/rbd/ArgumentTypes.h:11, from /mnt/sda1/ceph-build/ceph-master-reloaded/src/tools/rbd/action/Import.cc:4: /usr/include/c++/5/bits/stl_algo.h:3451:5: note: candidate: template<class _Tp, class _Compare> _Tp std::min(std::initializer_list<_Tp>, _Compare) min(initializer_list<_Tp> __l, _Compare __comp) ^ /usr/include/c++/5/bits/stl_algo.h:3451:5: note: template argument deduction/substitution failed: /mnt/sda1/ceph-build/ceph-master-reloaded/src/tools/rbd/action/Import.cc:609:28: note: mismatched types ‘std::initializer_list<_Tp>’ and ‘unsigned int’ reqlen = min(reqlen, size); ^ src/tools/rbd/CMakeFiles/rbd.dir/build.make:497: recipe for target 'src/tools/rbd/CMakeFiles/rbd.dir/action/Import.cc.o' failed make[4]: *** [src/tools/rbd/CMakeFiles/rbd.dir/action/Import.cc.o] Error 1 make[4]: Leaving directory '/mnt/sda1/ceph-build/ceph-master-reloaded/obj-arm-linux-gnueabihf' CMakeFiles/Makefile2:19538: recipe for target 'src/tools/rbd/CMakeFiles/rbd.dir/all' failed make[3]: *** [src/tools/rbd/CMakeFiles/rbd.dir/all] Error 2 make[3]: Leaving directory '/mnt/sda1/ceph-build/ceph-master-reloaded/obj-arm-linux-gnueabihf' Makefile:141: recipe for target 'all' failed make[2]: *** [all] Error 2 make[2]: Leaving directory '/mnt/sda1/ceph-build/ceph-master-reloaded/obj-arm-linux-gnueabihf' cd /mnt/sda1/ceph-build/ceph-master-reloaded dh_auto_build: make -j1 returned exit code 2 debian/rules:33: recipe for target 'override_dh_auto_build' failed make[1]: *** [override_dh_auto_build] Error 2 make[1]: Leaving directory '/mnt/sda1/ceph-build/ceph-master-reloaded' debian/rules:26: recipe for target 'build' failed make: *** [build] Error 2 dpkg-buildpackage: error: debian/rules build gave error exit status 2
Here is my gcc/lib's/utils version :
ii gcc 4:5.3.1-1ubuntu1 armhf GNU C compiler ii gcc-5 5.4.0-6ubuntu1~16.04.4 armhf GNU C compiler ii gcc-5-base:armhf 5.4.0-6ubuntu1~16.04.4 armhf GCC, the GNU Compiler Collection (base package) ii gcc-6-base:armhf 6.0.1-0ubuntu1 armhf GCC, the GNU Compiler Collection (base package) ii libgcc-5-dev:armhf 5.4.0-6ubuntu1~16.04.4 armhf GCC support library (development files) ii libgcc1:armhf 1:6.0.1-0ubuntu1 armhf GCC support library ii g++ 4:5.3.1-1ubuntu1 armhf GNU C++ compiler ii g++-5 5.4.0-6ubuntu1~16.04.4 armhf GNU C++ compiler ii libstdc++-5-dev:armhf 5.4.0-6ubuntu1~16.04.4 armhf GNU Standard C++ Library v3 (development files) ii libstdc++6:armhf 5.4.0-6ubuntu1~16.04.4 armhf GNU Standard C++ Library v3 ii libc-bin 2.23-0ubuntu7 armhf GNU C Library: Binaries ii libc-dev-bin 2.23-0ubuntu7 armhf GNU C Library: Development binaries ii libc6:armhf 2.23-0ubuntu7 armhf GNU C Library: Shared libraries ii libc6-dbg:armhf 2.23-0ubuntu7 armhf GNU C Library: detached debugging symbols ii libc6-dev:armhf 2.23-0ubuntu7 armhf GNU C Library: Development Libraries and Header Files ii cmake 3.5.1-1ubuntu3 armhf cross-platform, open-source make system ii cmake-data 3.5.1-1ubuntu3 all CMake data files (modules, templates and documentation) ii make 4.1-6 armhf utility for directing compilation
Updated by Kefu Chai about 7 years ago
https://github.com/ceph/ceph/pull/14202 is posted to address the above building .
Updated by gyorgy kiss about 7 years ago
Hi,
I double checked the source. It should be applied as far I see in source files.
I think there is the main difference for me: I am on raspbian base. I have cmake newer(?) but everthing other is much lower than Romain. Than my plan now change to ubuntu too (at least for a test, I dont want to update all dependencies for raspbian, I will play with ceph :) )
there the gcc and others:
ii gcc 4:4.9.2-2 armhf GNU C compiler ii gcc-4.6-base:armhf 4.6.4-5+rpi1 armhf GCC, the GNU Compiler Collection (base package) ii gcc-4.7-base:armhf 4.7.3-11+rpi1 armhf GCC, the GNU Compiler Collection (base package) ii gcc-4.8-base:armhf 4.8.4-1 armhf GCC, the GNU Compiler Collection (base package) ii gcc-4.9 4.9.2-10 armhf GNU C compiler ii gcc-4.9-base:armhf 4.9.2-10 armhf GCC, the GNU Compiler Collection (base package) ii libgcc-4.9-dev:armhf 4.9.2-10 armhf GCC support library (development files) ii libgcc1:armhf 1:4.9.2-10 armhf GCC support library ii gcc 4:4.9.2-2 armhf GNU C compiler ii gcc-4.6-base:armhf 4.6.4-5+rpi1 armhf GCC, the GNU Compiler Collection (base package) ii gcc-4.7-base:armhf 4.7.3-11+rpi1 armhf GCC, the GNU Compiler Collection (base package) ii gcc-4.8-base:armhf 4.8.4-1 armhf GCC, the GNU Compiler Collection (base package) ii gcc-4.9 4.9.2-10 armhf GNU C compiler ii gcc-4.9-base:armhf 4.9.2-10 armhf GCC, the GNU Compiler Collection (base package) ii libgcc-4.9-dev:armhf 4.9.2-10 armhf GCC support library (development files) ii libgcc1:armhf 1:4.9.2-10 armhf GCC support library ii libc-bin 2.19-18+deb8u7 armhf GNU C Library: Binaries ii libc-dev-bin 2.19-18+deb8u7 armhf GNU C Library: Development binaries ii libc6:armhf 2.19-18+deb8u7 armhf GNU C Library: Shared libraries ii libc6-dbg:armhf 2.19-18+deb8u7 armhf GNU C Library: detached debugging symbols ii libc6-dev:armhf 2.19-18+deb8u7 armhf GNU C Library: Development Libraries and Header Files ii make 4.0-8.1 armhf utility for directing compilation i libstdc++-4.9-dev:armhf 4.9.2-10 armhf GNU Standard C++ Library v3 (development files) ii libstdc++6:armhf 4.9.2-10 armhf ii g++ 4:4.9.2-2 armhf GNU C++ compiler ii g++-4.9 4.9.2-10 armhf GNU C++ compiler ii cmake 3.6.2-2~bpo8+1 armhf cross-platform, open-source make system ii cmake-data 3.6.2-2~bpo8+1 all
Updated by Sebastien Luttringer about 7 years ago
Hi Kefu,
Did you progress on patch for 11.2.0?
I see the bug status was moved to Need Review, but I can't review nothing about the original BR (intel x86 / 11.2.0) or I missing something?
Cheers,
Updated by Kefu Chai about 7 years ago
@Sebastien, two PRs mentioned above
have been merged into master.
and https://github.com/ceph/ceph/pull/14202 is pending on review.
normally, we want to fix bugs on master and backport the fixes to stable branch later.
Updated by Kefu Chai about 7 years ago
@gyorgy i am not sure why your building env failed to build the ceph source. and BTW, as #18938-37 put, the first two fixes have been merged.
i have cmake 3.7.2 in my linux box. and i think gcc 4.9 is good enough for building the ceph master branch at the moment. as i don't have a arm32 machine around, i need to prepare a cross building env to reproduce your issue. i will give it a try later on, but it's not the first priority at this moment, so you might need to wait if the master just does not build for you.
Updated by Romain Gobinet about 7 years ago
The result of PR 14202:
[ 80%] Linking CXX executable ../../../bin/unittest_librbd cd /mnt/sda1/ceph-build/ceph-master-reloaded/obj-arm-linux-gnueabihf/src/test/librbd && /usr/bin/cmake -E cmake_link_script CMakeFiles/unittest_librbd.dir/link.txt --verbose=1 /usr/bin/arm-linux-gnueabihf-g++ -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -Wtype-limits -Wignored-qualifiers -Winit-self -Wpointer-arith -Werror=format-security -fno-strict-aliasing -fsigned-char -rdynamic -Wno-unknown-pragmas -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=2 -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=2 -fstack-protector-strong -fdiagnostics-color=auto -I/usr/include/nss -I/usr/include/nspr -I/usr/include -Wl,-Bsymbolic-functions -Wl,-z,relro -pie CMakeFiles/unittest_librbd.dir/test_BlockGuard.cc.o CMakeFiles/unittest_librbd.dir/test_Groups.cc.o CMakeFiles/unittest_librbd.dir/test_main.cc.o CMakeFiles/unittest_librbd.dir/test_mock_fixture.cc.o CMakeFiles/unittest_librbd.dir/test_mock_ExclusiveLock.cc.o CMakeFiles/unittest_librbd.dir/test_mock_Journal.cc.o CMakeFiles/unittest_librbd.dir/test_mock_ManagedLock.cc.o CMakeFiles/unittest_librbd.dir/test_mock_ObjectMap.cc.o CMakeFiles/unittest_librbd.dir/exclusive_lock/test_mock_PreAcquireRequest.cc.o CMakeFiles/unittest_librbd.dir/exclusive_lock/test_mock_PostAcquireRequest.cc.o CMakeFiles/unittest_librbd.dir/exclusive_lock/test_mock_PreReleaseRequest.cc.o CMakeFiles/unittest_librbd.dir/image/test_mock_RefreshRequest.cc.o CMakeFiles/unittest_librbd.dir/image/test_mock_RemoveRequest.cc.o CMakeFiles/unittest_librbd.dir/io/test_mock_ImageRequest.cc.o CMakeFiles/unittest_librbd.dir/journal/test_mock_OpenRequest.cc.o CMakeFiles/unittest_librbd.dir/journal/test_mock_PromoteRequest.cc.o CMakeFiles/unittest_librbd.dir/journal/test_mock_Replay.cc.o CMakeFiles/unittest_librbd.dir/managed_lock/test_mock_AcquireRequest.cc.o CMakeFiles/unittest_librbd.dir/managed_lock/test_mock_BreakRequest.cc.o CMakeFiles/unittest_librbd.dir/managed_lock/test_mock_GetLockerRequest.cc.o CMakeFiles/unittest_librbd.dir/managed_lock/test_mock_ReacquireRequest.cc.o CMakeFiles/unittest_librbd.dir/managed_lock/test_mock_ReleaseRequest.cc.o CMakeFiles/unittest_librbd.dir/mirror/test_mock_DisableRequest.cc.o CMakeFiles/unittest_librbd.dir/object_map/test_mock_InvalidateRequest.cc.o CMakeFiles/unittest_librbd.dir/object_map/test_mock_LockRequest.cc.o CMakeFiles/unittest_librbd.dir/object_map/test_mock_RefreshRequest.cc.o CMakeFiles/unittest_librbd.dir/object_map/test_mock_ResizeRequest.cc.o CMakeFiles/unittest_librbd.dir/object_map/test_mock_SnapshotCreateRequest.cc.o CMakeFiles/unittest_librbd.dir/object_map/test_mock_SnapshotRemoveRequest.cc.o CMakeFiles/unittest_librbd.dir/object_map/test_mock_SnapshotRollbackRequest.cc.o CMakeFiles/unittest_librbd.dir/object_map/test_mock_UnlockRequest.cc.o CMakeFiles/unittest_librbd.dir/object_map/test_mock_UpdateRequest.cc.o CMakeFiles/unittest_librbd.dir/operation/test_mock_DisableFeaturesRequest.cc.o CMakeFiles/unittest_librbd.dir/operation/test_mock_EnableFeaturesRequest.cc.o CMakeFiles/unittest_librbd.dir/operation/test_mock_Request.cc.o CMakeFiles/unittest_librbd.dir/operation/test_mock_ResizeRequest.cc.o CMakeFiles/unittest_librbd.dir/operation/test_mock_SnapshotCreateRequest.cc.o CMakeFiles/unittest_librbd.dir/operation/test_mock_SnapshotProtectRequest.cc.o CMakeFiles/unittest_librbd.dir/operation/test_mock_SnapshotRemoveRequest.cc.o CMakeFiles/unittest_librbd.dir/operation/test_mock_SnapshotRollbackRequest.cc.o CMakeFiles/unittest_librbd.dir/operation/test_mock_SnapshotUnprotectRequest.cc.o CMakeFiles/unittest_librbd.dir/watcher/test_mock_RewatchRequest.cc.o ../../CMakeFiles/common_texttable_obj.dir/common/TextTable.cc.o -o ../../../bin/unittest_librbd ../../../lib/libcls_rbd.so.1.0.0 ../../../lib/libcls_rbd_client.a ../../../lib/libcls_lock.so.1.0.0 ../../../lib/libcls_lock_client.a ../../../lib/libjournal.a ../../../lib/libjournal_test_mock.a ../../../lib/libcls_journal.so.1.0.0 ../../../lib/libcls_journal_client.a ../../../lib/librados_test_stub.a ../../../lib/librados.so.2.0.0 ../../../lib/librbd_test.a ../../../lib/librbd_test_mock.a ../../../lib/librbd_api.a ../../../lib/librbd_internal.a ../../../lib/librbd_types.a ../../../lib/libosdc.a ../../../lib/libglobal.a ../../../lib/libgmock_main.a ../../../lib/libgmock.a ../../../lib/libgtest.a -lpthread -ldl ../../../lib/libradostest.a ../../../lib/libceph-common.so.0 ../../../lib/liberasure_code.a ../../../boost/lib/libboost_thread.a ../../../boost/lib/libboost_system.a ../../../boost/lib/libboost_regex.a ../../../boost/lib/libboost_random.a ../../../boost/lib/libboost_program_options.a ../../../boost/lib/libboost_date_time.a ../../../boost/lib/libboost_iostreams.a -lblkid -lssl3 -lsmime3 -lnss3 -lnssutil3 -lplds4 -lplc4 -lnspr4 -lpthread -lz -Wl,-Bstatic -latomic_ops -Wl,-Bdynamic -lpthread -lrt -ldl -lresolv -libverbs ../../../lib/libjson_spirit.a ../../../lib/libcommon_utf8.a -Wl,-rpath,/mnt/sda1/ceph-build/ceph-master-reloaded/obj-arm-linux-gnueabihf/lib CMakeFiles/unittest_librbd.dir/exclusive_lock/test_mock_PostAcquireRequest.cc.o:(.rodata+0x3e98): multiple definition of `typeinfo name for librbd::Journal<librbd::ImageCtx>::ReplayHandler' CMakeFiles/unittest_librbd.dir/test_mock_Journal.cc.o:(.rodata+0x65a4): first defined here CMakeFiles/unittest_librbd.dir/exclusive_lock/test_mock_PostAcquireRequest.cc.o: In function `manage_small': /mnt/sda1/ceph-build/ceph-master-reloaded/obj-arm-linux-gnueabihf/boost/include/boost/function/function_base.hpp:303: multiple definition of `typeinfo for librbd::Journal<librbd::ImageCtx>::ReplayHandler' CMakeFiles/unittest_librbd.dir/test_mock_Journal.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/obj-arm-linux-gnueabihf/boost/include/boost/type_index/stl_type_index.hpp:203: first defined here CMakeFiles/unittest_librbd.dir/exclusive_lock/test_mock_PostAcquireRequest.cc.o: In function `testing::internal::scoped_ptr<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::~scoped_ptr()': /mnt/sda1/ceph-build/ceph-master-reloaded/src/googletest/googletest/include/gtest/internal/gtest-port.h:1120: multiple definition of `typeinfo name for librbd::Journal<librbd::ImageCtx>::MetadataListener' CMakeFiles/unittest_librbd.dir/test_mock_Journal.cc.o:/usr/include/c++/5/bits/basic_ios.h:282: first defined here CMakeFiles/unittest_librbd.dir/exclusive_lock/test_mock_PostAcquireRequest.cc.o: In function `manage_small': /mnt/sda1/ceph-build/ceph-master-reloaded/obj-arm-linux-gnueabihf/boost/include/boost/function/function_base.hpp:303: multiple definition of `typeinfo for librbd::Journal<librbd::ImageCtx>::MetadataListener' CMakeFiles/unittest_librbd.dir/test_mock_Journal.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/obj-arm-linux-gnueabihf/boost/include/boost/function/function_base.hpp:303: first defined here CMakeFiles/unittest_librbd.dir/exclusive_lock/test_mock_PostAcquireRequest.cc.o: In function `Cond::~Cond()': /mnt/sda1/ceph-build/ceph-master-reloaded/src/common/Cond.h:44: multiple definition of `typeinfo name for librbd::Journal<librbd::ImageCtx>::C_OpEventSafe' CMakeFiles/unittest_librbd.dir/test_mock_Journal.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/src/test/librbd/test_mock_Journal.cc:56: first defined here CMakeFiles/unittest_librbd.dir/exclusive_lock/test_mock_PostAcquireRequest.cc.o: In function `manage': /mnt/sda1/ceph-build/ceph-master-reloaded/obj-arm-linux-gnueabihf/boost/include/boost/function/function_base.hpp:399: multiple definition of `typeinfo for librbd::Journal<librbd::ImageCtx>::C_OpEventSafe' CMakeFiles/unittest_librbd.dir/test_mock_Journal.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/obj-arm-linux-gnueabihf/boost/include/boost/function/function_base.hpp:303: first defined here CMakeFiles/unittest_librbd.dir/exclusive_lock/test_mock_PostAcquireRequest.cc.o: In function `testing::AssertionResult::message() const': /mnt/sda1/ceph-build/ceph-master-reloaded/src/googletest/googletest/include/gtest/gtest.h:298: multiple definition of `typeinfo name for librbd::Journal<librbd::ImageCtx>::C_IOEventSafe' CMakeFiles/unittest_librbd.dir/test_mock_Journal.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/src/test/journal/mock/MockJournaler.h:83: first defined here CMakeFiles/unittest_librbd.dir/exclusive_lock/test_mock_PostAcquireRequest.cc.o: In function `manage_small': /mnt/sda1/ceph-build/ceph-master-reloaded/obj-arm-linux-gnueabihf/boost/include/boost/function/function_base.hpp:307: multiple definition of `typeinfo for librbd::Journal<librbd::ImageCtx>::C_IOEventSafe' CMakeFiles/unittest_librbd.dir/test_mock_Journal.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/obj-arm-linux-gnueabihf/boost/include/boost/function/function_base.hpp:401: first defined here CMakeFiles/unittest_librbd.dir/exclusive_lock/test_mock_PostAcquireRequest.cc.o: In function `testing::AssertionResult testing::internal::EqHelper<true>::Compare<int, int>(char const*, char const*, int const&, int const&, testing::internal::EnableIf<!testing::internal::is_pointer<int>::value>::type*)': /mnt/sda1/ceph-build/ceph-master-reloaded/src/googletest/googletest/include/gtest/gtest.h:1459: multiple definition of `typeinfo name for librbd::Journal<librbd::ImageCtx>::C_ReplayProcessSafe' CMakeFiles/unittest_librbd.dir/test_mock_Journal.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/src/test/journal/mock/MockJournaler.h:58: first defined here CMakeFiles/unittest_librbd.dir/exclusive_lock/test_mock_PostAcquireRequest.cc.o: In function `manage_small': /mnt/sda1/ceph-build/ceph-master-reloaded/obj-arm-linux-gnueabihf/boost/include/boost/function/function_base.hpp:286: multiple definition of `typeinfo for librbd::Journal<librbd::ImageCtx>::C_ReplayProcessSafe' CMakeFiles/unittest_librbd.dir/test_mock_Journal.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/obj-arm-linux-gnueabihf/boost/include/boost/function/function_base.hpp:307: first defined here CMakeFiles/unittest_librbd.dir/operation/test_mock_DisableFeaturesRequest.cc.o:(.rodata+0x3418): multiple definition of `typeinfo name for librbd::AsyncRequest<librbd::ImageCtx>' CMakeFiles/unittest_librbd.dir/test_mock_fixture.cc.o:(.rodata+0x1b7c): first defined here CMakeFiles/unittest_librbd.dir/operation/test_mock_DisableFeaturesRequest.cc.o: In function `~C_StateCallbackAdapter': /mnt/sda1/ceph-build/ceph-master-reloaded/src/librbd/Utils.h:59: multiple definition of `typeinfo for librbd::AsyncRequest<librbd::ImageCtx>' CMakeFiles/unittest_librbd.dir/test_mock_fixture.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/src/test/librados_test_stub/MockTestMemIoCtxImpl.h:155: first defined here CMakeFiles/unittest_librbd.dir/operation/test_mock_DisableFeaturesRequest.cc.o: In function `rados_state_callback<librbd::operation::DisableFeaturesRequest<librbd::(anonymous namespace)::MockOperationImageCtx>, &librbd::operation::DisableFeaturesRequest<librbd::(anonymous namespace)::MockOperationImageCtx>::handle_set_features, true>': /mnt/sda1/ceph-build/ceph-master-reloaded/src/librbd/Utils.h:38: multiple definition of `typeinfo name for librbd::operation::Request<librbd::ImageCtx>' CMakeFiles/unittest_librbd.dir/test_mock_fixture.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/src/googletest/googlemock/include/gmock/gmock-matchers.h:339: first defined here CMakeFiles/unittest_librbd.dir/operation/test_mock_DisableFeaturesRequest.cc.o: In function `~C_StateCallbackAdapter': /mnt/sda1/ceph-build/ceph-master-reloaded/src/librbd/Utils.h:59: multiple definition of `typeinfo for librbd::operation::Request<librbd::ImageCtx>' CMakeFiles/unittest_librbd.dir/test_mock_fixture.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/src/test/librados_test_stub/MockTestMemIoCtxImpl.h:155: first defined here CMakeFiles/unittest_librbd.dir/operation/test_mock_DisableFeaturesRequest.cc.o: In function `rados_state_callback<librbd::operation::DisableFeaturesRequest<librbd::(anonymous namespace)::MockOperationImageCtx>, &librbd::operation::DisableFeaturesRequest<librbd::(anonymous namespace)::MockOperationImageCtx>::handle_set_features, true>': /mnt/sda1/ceph-build/ceph-master-reloaded/src/librbd/Utils.h:43: multiple definition of `typeinfo name for librbd::operation::Request<librbd::ImageCtx>::C_CommitOpEvent' CMakeFiles/unittest_librbd.dir/test_mock_fixture.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/src/test/librados_test_stub/MockTestMemIoCtxImpl.h:172: first defined here CMakeFiles/unittest_librbd.dir/operation/test_mock_DisableFeaturesRequest.cc.o: In function `~C_CallbackAdapter': /mnt/sda1/ceph-build/ceph-master-reloaded/src/librbd/Utils.h:46: multiple definition of `typeinfo for librbd::operation::Request<librbd::ImageCtx>::C_CommitOpEvent' CMakeFiles/unittest_librbd.dir/test_mock_fixture.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/src/googletest/googlemock/include/gmock/gmock-matchers.h:345: first defined here CMakeFiles/unittest_librbd.dir/operation/test_mock_DisableFeaturesRequest.cc.o: In function `send_close_journal': /mnt/sda1/ceph-build/ceph-master-reloaded/src/librbd/operation/DisableFeaturesRequest.cc:351: multiple definition of `typeinfo name for librbd::operation::Request<librbd::ImageCtx>::C_AppendOpEvent' CMakeFiles/unittest_librbd.dir/test_mock_fixture.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/src/googletest/googletest/include/gtest/internal/gtest-linked_ptr.h:93: first defined here CMakeFiles/unittest_librbd.dir/operation/test_mock_DisableFeaturesRequest.cc.o: In function `~MonomorphicImpl': /mnt/sda1/ceph-build/ceph-master-reloaded/src/googletest/googlemock/include/gmock/gmock-actions.h:438: multiple definition of `typeinfo for librbd::operation::Request<librbd::ImageCtx>::C_AppendOpEvent' CMakeFiles/unittest_librbd.dir/test_mock_fixture.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/src/googletest/googlemock/include/gmock/gmock-matchers.h:345: first defined here CMakeFiles/unittest_librbd.dir/operation/test_mock_DisableFeaturesRequest.cc.o: In function `C_StateCallbackAdapter': /mnt/sda1/ceph-build/ceph-master-reloaded/src/librbd/Utils.h:62: multiple definition of `typeinfo name for librbd::AsyncObjectThrottle<librbd::ImageCtx>' CMakeFiles/unittest_librbd.dir/test_mock_fixture.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/src/googletest/googlemock/include/gmock/gmock-matchers.h:252: first defined here CMakeFiles/unittest_librbd.dir/operation/test_mock_DisableFeaturesRequest.cc.o: In function `~gmock_Impl': /mnt/sda1/ceph-build/ceph-master-reloaded/src/test/librbd/test_mock_fixture.h:41: multiple definition of `typeinfo for librbd::AsyncObjectThrottle<librbd::ImageCtx>' CMakeFiles/unittest_librbd.dir/test_mock_fixture.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/src/googletest/googlemock/include/gmock/gmock-matchers.h:3732: first defined here CMakeFiles/unittest_librbd.dir/operation/test_mock_EnableFeaturesRequest.cc.o:(.rodata+0x3020): multiple definition of `typeinfo name for librbd::AsyncRequest<librbd::ImageCtx>' CMakeFiles/unittest_librbd.dir/test_mock_fixture.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/src/googletest/googlemock/include/gmock/gmock-matchers.h:3732: first defined here CMakeFiles/unittest_librbd.dir/operation/test_mock_EnableFeaturesRequest.cc.o: In function `~gmock_Impl': /mnt/sda1/ceph-build/ceph-master-reloaded/src/test/librbd/test_mock_fixture.h:41: multiple definition of `typeinfo for librbd::AsyncRequest<librbd::ImageCtx>' CMakeFiles/unittest_librbd.dir/test_mock_fixture.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/src/test/librados_test_stub/MockTestMemIoCtxImpl.h:155: first defined here CMakeFiles/unittest_librbd.dir/operation/test_mock_EnableFeaturesRequest.cc.o: In function `expect_block_requests': /mnt/sda1/ceph-build/ceph-master-reloaded/src/test/librbd/operation/test_mock_EnableFeaturesRequest.cc:232: multiple definition of `typeinfo name for librbd::operation::Request<librbd::ImageCtx>' CMakeFiles/unittest_librbd.dir/test_mock_fixture.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/src/googletest/googlemock/include/gmock/gmock-matchers.h:339: first defined here CMakeFiles/unittest_librbd.dir/operation/test_mock_EnableFeaturesRequest.cc.o: In function `~gmock_Impl': /mnt/sda1/ceph-build/ceph-master-reloaded/src/test/librbd/test_mock_fixture.h:41: multiple definition of `typeinfo for librbd::operation::Request<librbd::ImageCtx>' CMakeFiles/unittest_librbd.dir/test_mock_fixture.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/src/test/librados_test_stub/MockTestMemIoCtxImpl.h:155: first defined here CMakeFiles/unittest_librbd.dir/operation/test_mock_EnableFeaturesRequest.cc.o: In function `testing::internal::MatcherBase<int>::~MatcherBase()': /mnt/sda1/ceph-build/ceph-master-reloaded/src/googletest/googlemock/include/gmock/gmock-matchers.h:294: multiple definition of `typeinfo name for librbd::operation::Request<librbd::ImageCtx>::C_CommitOpEvent' CMakeFiles/unittest_librbd.dir/test_mock_fixture.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/src/test/librados_test_stub/MockTestMemIoCtxImpl.h:172: first defined here CMakeFiles/unittest_librbd.dir/operation/test_mock_EnableFeaturesRequest.cc.o: In function `void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char const*>(char const*, char const*, std::forward_iterator_tag)': /usr/include/c++/5/bits/basic_string.tcc:210: multiple definition of `typeinfo for librbd::operation::Request<librbd::ImageCtx>::C_CommitOpEvent' CMakeFiles/unittest_librbd.dir/test_mock_fixture.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/src/googletest/googlemock/include/gmock/gmock-matchers.h:345: first defined here CMakeFiles/unittest_librbd.dir/operation/test_mock_EnableFeaturesRequest.cc.o: In function `testing::Matcher<int>::Matcher(int)': /mnt/sda1/ceph-build/ceph-master-reloaded/src/googletest/googlemock/include/gmock/gmock-matchers.h:294: multiple definition of `typeinfo name for librbd::operation::Request<librbd::ImageCtx>::C_AppendOpEvent' CMakeFiles/unittest_librbd.dir/test_mock_fixture.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/src/googletest/googletest/include/gtest/internal/gtest-linked_ptr.h:93: first defined here CMakeFiles/unittest_librbd.dir/operation/test_mock_EnableFeaturesRequest.cc.o: In function `void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char const*>(char const*, char const*, std::forward_iterator_tag)': /usr/include/c++/5/bits/basic_string.tcc:215: multiple definition of `typeinfo for librbd::operation::Request<librbd::ImageCtx>::C_AppendOpEvent' CMakeFiles/unittest_librbd.dir/test_mock_fixture.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/src/googletest/googlemock/include/gmock/gmock-matchers.h:345: first defined here CMakeFiles/unittest_librbd.dir/operation/test_mock_EnableFeaturesRequest.cc.o: In function `librbd::AsyncRequest<librbd::MockImageCtx>::finish(int)': /mnt/sda1/ceph-build/ceph-master-reloaded/src/librbd/AsyncRequest.h:59: multiple definition of `typeinfo name for librbd::AsyncObjectThrottle<librbd::ImageCtx>' CMakeFiles/unittest_librbd.dir/test_mock_fixture.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/src/googletest/googlemock/include/gmock/gmock-matchers.h:252: first defined here CMakeFiles/unittest_librbd.dir/operation/test_mock_EnableFeaturesRequest.cc.o: In function `void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char const*>(char const*, char const*, std::forward_iterator_tag)': /usr/include/c++/5/bits/basic_string.tcc:221: multiple definition of `typeinfo for librbd::AsyncObjectThrottle<librbd::ImageCtx>' CMakeFiles/unittest_librbd.dir/test_mock_fixture.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/src/googletest/googlemock/include/gmock/gmock-matchers.h:3732: first defined here CMakeFiles/unittest_librbd.dir/operation/test_mock_Request.cc.o:(.rodata+0x18e4): multiple definition of `typeinfo name for librbd::operation::Request<librbd::ImageCtx>' CMakeFiles/unittest_librbd.dir/test_mock_fixture.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/src/googletest/googlemock/include/gmock/gmock-matchers.h:339: first defined here CMakeFiles/unittest_librbd.dir/operation/test_mock_Request.cc.o: In function `finish': /mnt/sda1/ceph-build/ceph-master-reloaded/src/googletest/googlemock/include/gmock/gmock-generated-function-mockers.h:85: multiple definition of `typeinfo for librbd::operation::Request<librbd::ImageCtx>' CMakeFiles/unittest_librbd.dir/test_mock_fixture.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/src/test/librados_test_stub/MockTestMemIoCtxImpl.h:155: first defined here CMakeFiles/unittest_librbd.dir/operation/test_mock_Request.cc.o: In function `librbd::operation::TestMockOperationRequest::expect_send_op(librbd::operation::MockRequest&, int)': /mnt/sda1/ceph-build/ceph-master-reloaded/src/googletest/googlemock/include/gmock/gmock-generated-function-mockers.h:85: multiple definition of `typeinfo name for librbd::operation::Request<librbd::ImageCtx>::C_CommitOpEvent' CMakeFiles/unittest_librbd.dir/test_mock_fixture.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/src/test/librados_test_stub/MockTestMemIoCtxImpl.h:172: first defined here CMakeFiles/unittest_librbd.dir/operation/test_mock_Request.cc.o: In function `~AsyncRequest': /mnt/sda1/ceph-build/ceph-master-reloaded/src/googletest/googlemock/include/gmock/gmock-generated-function-mockers.h:85: multiple definition of `typeinfo for librbd::operation::Request<librbd::ImageCtx>::C_CommitOpEvent' CMakeFiles/unittest_librbd.dir/test_mock_fixture.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/src/googletest/googlemock/include/gmock/gmock-matchers.h:345: first defined here CMakeFiles/unittest_librbd.dir/operation/test_mock_Request.cc.o: In function `testing::internal::linked_ptr<testing::ActionInterface<void ()> >::~linked_ptr()': /mnt/sda1/ceph-build/ceph-master-reloaded/src/googletest/googlemock/include/gmock/gmock-generated-function-mockers.h:85: multiple definition of `typeinfo name for librbd::operation::Request<librbd::ImageCtx>::C_AppendOpEvent' CMakeFiles/unittest_librbd.dir/test_mock_fixture.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/src/googletest/googletest/include/gtest/internal/gtest-linked_ptr.h:93: first defined here CMakeFiles/unittest_librbd.dir/operation/test_mock_Request.cc.o: In function `~C_CommitOpEvent': /mnt/sda1/ceph-build/ceph-master-reloaded/src/googletest/googlemock/include/gmock/gmock-matchers.h:324: multiple definition of `typeinfo for librbd::operation::Request<librbd::ImageCtx>::C_AppendOpEvent' CMakeFiles/unittest_librbd.dir/test_mock_fixture.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/src/googletest/googlemock/include/gmock/gmock-matchers.h:345: first defined here CMakeFiles/unittest_librbd.dir/operation/test_mock_SnapshotRollbackRequest.cc.o:(.rodata+0x3518): multiple definition of `typeinfo name for librbd::AsyncRequest<librbd::ImageCtx>' CMakeFiles/unittest_librbd.dir/test_mock_fixture.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/src/googletest/googlemock/include/gmock/gmock-matchers.h:3732: first defined here CMakeFiles/unittest_librbd.dir/operation/test_mock_SnapshotRollbackRequest.cc.o: In function `void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char const*>(char const*, char const*, std::forward_iterator_tag)': /usr/include/c++/5/bits/basic_string.tcc:223: multiple definition of `typeinfo for librbd::AsyncRequest<librbd::ImageCtx>' CMakeFiles/unittest_librbd.dir/test_mock_fixture.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/src/test/librados_test_stub/MockTestMemIoCtxImpl.h:155: first defined here CMakeFiles/unittest_librbd.dir/operation/test_mock_SnapshotRollbackRequest.cc.o: In function `testing::internal::linked_ptr<testing::CardinalityInterface const>::~linked_ptr()': /mnt/sda1/ceph-build/ceph-master-reloaded/src/googletest/googletest/include/gtest/internal/gtest-linked_ptr.h:153: multiple definition of `typeinfo name for librbd::operation::Request<librbd::ImageCtx>' CMakeFiles/unittest_librbd.dir/test_mock_fixture.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/src/googletest/googlemock/include/gmock/gmock-matchers.h:339: first defined here CMakeFiles/unittest_librbd.dir/operation/test_mock_SnapshotRollbackRequest.cc.o: In function `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_data(char*)': /usr/include/c++/5/bits/basic_string.h:127: multiple definition of `typeinfo for librbd::operation::Request<librbd::ImageCtx>' CMakeFiles/unittest_librbd.dir/test_mock_fixture.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/src/test/librados_test_stub/MockTestMemIoCtxImpl.h:155: first defined here CMakeFiles/unittest_librbd.dir/operation/test_mock_SnapshotRollbackRequest.cc.o: In function `testing::internal::TypedExpectation<void ()>::WillOnce(testing::Action<void ()> const&)': /mnt/sda1/ceph-build/ceph-master-reloaded/src/googletest/googlemock/include/gmock/gmock-spec-builders.h:1000: multiple definition of `typeinfo name for librbd::operation::Request<librbd::ImageCtx>::C_CommitOpEvent' CMakeFiles/unittest_librbd.dir/test_mock_fixture.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/src/test/librados_test_stub/MockTestMemIoCtxImpl.h:172: first defined here CMakeFiles/unittest_librbd.dir/operation/test_mock_SnapshotRollbackRequest.cc.o: In function `std::char_traits<char>::copy(char*, char const*, unsigned int)': /usr/include/c++/5/bits/char_traits.h:290: multiple definition of `typeinfo for librbd::operation::Request<librbd::ImageCtx>::C_CommitOpEvent' CMakeFiles/unittest_librbd.dir/test_mock_fixture.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/src/googletest/googlemock/include/gmock/gmock-matchers.h:345: first defined here CMakeFiles/unittest_librbd.dir/operation/test_mock_SnapshotRollbackRequest.cc.o: In function `testing::internal::TypedExpectation<void ()>::Times(int)': /mnt/sda1/ceph-build/ceph-master-reloaded/src/googletest/googlemock/include/gmock/gmock-spec-builders.h:932: multiple definition of `typeinfo name for librbd::operation::Request<librbd::ImageCtx>::C_AppendOpEvent' CMakeFiles/unittest_librbd.dir/test_mock_fixture.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/src/googletest/googletest/include/gtest/internal/gtest-linked_ptr.h:93: first defined here CMakeFiles/unittest_librbd.dir/operation/test_mock_SnapshotRollbackRequest.cc.o: In function `void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char const*>(char const*, char const*, std::forward_iterator_tag)': /usr/include/c++/5/bits/basic_string.tcc:237: multiple definition of `typeinfo for librbd::operation::Request<librbd::ImageCtx>::C_AppendOpEvent' CMakeFiles/unittest_librbd.dir/test_mock_fixture.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/src/googletest/googlemock/include/gmock/gmock-matchers.h:345: first defined here CMakeFiles/unittest_librbd.dir/operation/test_mock_SnapshotRollbackRequest.cc.o: In function `expect_get_current_size': /mnt/sda1/ceph-build/ceph-master-reloaded/src/test/librbd/operation/test_mock_SnapshotRollbackRequest.cc:129: multiple definition of `typeinfo name for librbd::AsyncRequest<librbd::MockImageCtx>' CMakeFiles/unittest_librbd.dir/test_mock_fixture.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/src/googletest/googlemock/include/gmock/internal/gmock-internal-utils.h:296: first defined here CMakeFiles/unittest_librbd.dir/operation/test_mock_SnapshotRollbackRequest.cc.o: In function `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_local_data()': /usr/include/c++/5/bits/basic_string.h:141: multiple definition of `typeinfo for librbd::AsyncRequest<librbd::MockImageCtx>' CMakeFiles/unittest_librbd.dir/test_mock_fixture.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/src/googletest/googlemock/include/gmock/gmock-matchers.h:3732: first defined here CMakeFiles/unittest_librbd.dir/operation/test_mock_SnapshotRollbackRequest.cc.o: In function `testing::internal::Expect(bool, char const*, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)': /mnt/sda1/ceph-build/ceph-master-reloaded/src/googletest/googlemock/include/gmock/internal/gmock-internal-utils.h:296: multiple definition of `typeinfo name for librbd::AsyncObjectThrottle<librbd::ImageCtx>' CMakeFiles/unittest_librbd.dir/test_mock_fixture.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/src/googletest/googlemock/include/gmock/gmock-matchers.h:252: first defined here CMakeFiles/unittest_librbd.dir/operation/test_mock_SnapshotRollbackRequest.cc.o: In function `void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char const*>(char const*, char const*, std::__false_type)': /usr/include/c++/5/bits/basic_string.h:195: multiple definition of `typeinfo for librbd::AsyncObjectThrottle<librbd::ImageCtx>' CMakeFiles/unittest_librbd.dir/test_mock_fixture.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/src/googletest/googlemock/include/gmock/gmock-matchers.h:3732: first defined here CMakeFiles/unittest_librbd.dir/operation/test_mock_SnapshotRollbackRequest.cc.o: In function `testing::internal::linked_ptr<testing::ActionInterface<unsigned long long ()> >::linked_ptr(testing::internal::linked_ptr<testing::ActionInterface<unsigned long long ()> > const&)': /mnt/sda1/ceph-build/ceph-master-reloaded/src/googletest/googletest/include/gtest/internal/gtest-linked_ptr.h:158: multiple definition of `typeinfo name for librbd::AsyncObjectThrottle<librbd::MockImageCtx>' CMakeFiles/unittest_librbd.dir/test_mock_fixture.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/src/googletest/googlemock/include/gmock/internal/gmock-internal-utils.h:296: first defined here CMakeFiles/unittest_librbd.dir/operation/test_mock_SnapshotRollbackRequest.cc.o: In function `manage': /mnt/sda1/ceph-build/ceph-master-reloaded/obj-arm-linux-gnueabihf/boost/include/boost/function/function_base.hpp:399: multiple definition of `typeinfo for librbd::AsyncObjectThrottle<librbd::MockImageCtx>' CMakeFiles/unittest_librbd.dir/test_mock_fixture.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/src/googletest/googletest/include/gtest/internal/gtest-linked_ptr.h:93: first defined here CMakeFiles/unittest_librbd.dir/operation/test_mock_SnapshotRollbackRequest.cc.o: In function `testing::internal::linked_ptr<testing::ActionInterface<unsigned long long ()> >::depart()': /mnt/sda1/ceph-build/ceph-master-reloaded/src/googletest/googletest/include/gtest/internal/gtest-linked_ptr.h:205: multiple definition of `typeinfo name for librbd::operation::Request<librbd::MockImageCtx>' CMakeFiles/unittest_librbd.dir/test_mock_fixture.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/src/googletest/googlemock/include/gmock/internal/gmock-internal-utils.h:296: first defined here CMakeFiles/unittest_librbd.dir/operation/test_mock_SnapshotRollbackRequest.cc.o: In function `manage': /mnt/sda1/ceph-build/ceph-master-reloaded/obj-arm-linux-gnueabihf/boost/include/boost/function/function_base.hpp:401: multiple definition of `typeinfo for librbd::operation::Request<librbd::MockImageCtx>' CMakeFiles/unittest_librbd.dir/test_mock_fixture.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/src/googletest/googlemock/include/gmock/gmock-matchers.h:3732: first defined here CMakeFiles/unittest_librbd.dir/operation/test_mock_SnapshotRollbackRequest.cc.o: In function `testing::internal::MatcherBase<unsigned long long>::MatcherBase(testing::internal::MatcherBase<unsigned long long> const&)': /mnt/sda1/ceph-build/ceph-master-reloaded/src/googletest/googlemock/include/gmock/gmock-matchers.h:252: multiple definition of `typeinfo name for librbd::operation::Request<librbd::MockImageCtx>::C_CommitOpEvent' CMakeFiles/unittest_librbd.dir/test_mock_fixture.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/src/googletest/googlemock/include/gmock/internal/gmock-internal-utils.h:296: first defined here CMakeFiles/unittest_librbd.dir/operation/test_mock_SnapshotRollbackRequest.cc.o: In function `manage': /mnt/sda1/ceph-build/ceph-master-reloaded/obj-arm-linux-gnueabihf/boost/include/boost/function/function_base.hpp:404: multiple definition of `typeinfo for librbd::operation::Request<librbd::MockImageCtx>::C_CommitOpEvent' CMakeFiles/unittest_librbd.dir/test_mock_fixture.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/src/googletest/googlemock/include/gmock/gmock-matchers.h:328: first defined here CMakeFiles/unittest_librbd.dir/operation/test_mock_SnapshotRollbackRequest.cc.o: In function `expect_get_object_name': /mnt/sda1/ceph-build/ceph-master-reloaded/src/test/librbd/operation/test_mock_SnapshotRollbackRequest.cc:124: multiple definition of `typeinfo name for librbd::operation::Request<librbd::MockImageCtx>::C_AppendOpEvent' CMakeFiles/unittest_librbd.dir/test_mock_fixture.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/src/googletest/googlemock/include/gmock/internal/gmock-internal-utils.h:296: first defined here CMakeFiles/unittest_librbd.dir/operation/test_mock_SnapshotRollbackRequest.cc.o: In function `manager': /mnt/sda1/ceph-build/ceph-master-reloaded/obj-arm-linux-gnueabihf/boost/include/boost/function/function_base.hpp:360: multiple definition of `typeinfo for librbd::operation::Request<librbd::MockImageCtx>::C_AppendOpEvent' CMakeFiles/unittest_librbd.dir/test_mock_fixture.cc.o:/mnt/sda1/ceph-build/ceph-master-reloaded/src/googletest/googlemock/include/gmock/gmock-matchers.h:859: first defined here collect2: error: ld returned 1 exit status src/test/librbd/CMakeFiles/unittest_librbd.dir/build.make:1208: recipe for target 'bin/unittest_librbd' failed make[4]: *** [bin/unittest_librbd] Error 1 make[4]: Leaving directory '/mnt/sda1/ceph-build/ceph-master-reloaded/obj-arm-linux-gnueabihf' CMakeFiles/Makefile2:15017: recipe for target 'src/test/librbd/CMakeFiles/unittest_librbd.dir/all' failed make[3]: *** [src/test/librbd/CMakeFiles/unittest_librbd.dir/all] Error 2 make[3]: Leaving directory '/mnt/sda1/ceph-build/ceph-master-reloaded/obj-arm-linux-gnueabihf' Makefile:141: recipe for target 'all' failed make[2]: *** [all] Error 2
Updated by Kefu Chai about 7 years ago
i think we violate the ODR in the librbd's tests, and the some of the template classes are instantiated multiple times with the same template parameters. the instantiated template classes are included by different compilation units. when we try to link them, the linker gave up at seeing multiple definitions of the same symbol.
the GCC on ARM with the default settings follows the C++ standard, and hence fails.
as the fix is not obvious to me at this moment, will take a look later on.
Updated by Kefu Chai about 7 years ago
- Project changed from Ceph to rbd
- Status changed from Fix Under Review to New
- Assignee deleted (
Kefu Chai)
Updated by Kefu Chai almost 7 years ago
i am able to reproduce this issue with gcc-6.3
$ /usr/bin/arm-linux-gnueabihf-gcc --version arm-linux-gnueabihf-gcc (Debian 6.3.0-12) 6.3.0 20170406
Updated by Kefu Chai almost 7 years ago
https://github.com/ceph/ceph/pull/14881 : the side-product of my adventure.
Updated by Kefu Chai almost 7 years ago
i think the reason of the link failure is that some compilation units of unittest_librbd are including the ".cc" files which have explicit template instantiation.
src/test/librbd/operation/test_mock_DisableFeaturesRequest.cc:#include "librbd/AsyncObjectThrottle.cc" src/test/librbd/operation/test_mock_EnableFeaturesRequest.cc:#include "librbd/AsyncObjectThrottle.cc" src/test/librbd/operation/test_mock_SnapshotRollbackRequest.cc:#include "librbd/AsyncObjectThrottle.cc" src/test/librbd/test_mock_fixture.cc:#include "librbd/AsyncObjectThrottle.cc"
that's why we have errors like
multiple definition of `typeinfo name for librbd::AsyncObjectThrottle<librbd::ImageCtx>'
so we need to
- move the explicit template instantiations out of .cc file, or
- move the template implementation code out of the .cc file, and let the tests include the file which implements the template class.
Updated by Kefu Chai almost 7 years ago
- Status changed from New to Fix Under Review
- Assignee set to Kefu Chai
Updated by Kefu Chai almost 7 years ago
the reason why we only need to guard
template class librbd::AsyncObjectThrottle<librbd::ImageCtx>; template class librbd::Journal<librbd::ImageCtx>; template class librbd::operation::DisableFeaturesRequest<librbd::ImageCtx>; template class librbd::operation::Request<librbd::ImageCtx>;
is that all the template classes above have "key function"[1,2], and it is required3 to emit type_info as a strong symbol with key function to comply to ARM's C++ ABI spec2.
quote from ARM's ABI spec2:
These std::type_info functions should not be inline by default, as doing so makes the relocatable file platform- specific. A C++ system must provide an option or default (Q-o-I) to force them out of line.
this practically requires that we need to enforce ODR when it comes to type_info on ARM and platforms4 that does not have week symbols. but this is not required on all other C++ ABIs. take Itanium for example, it's allowed to be put into COMDAT5. clang's source code6 is a good references.
And we are not alone, see [7].
[1] https://itanium-cxx-abi.github.io/cxx-abi/abi.html#vague-vtable
[2] http://infocenter.arm.com/help/topic/com.arm.doc.ihi0041e/IHI0041E_cppabi.pdf
[3] https://libcxxabi.llvm.org, search for "Frequently asked questions"
[4] https://gcc.gnu.org/ml/gcc/2001-01/msg01487.html
[5] https://itanium-cxx-abi.github.io/cxx-abi/abi.html#vague-rtti
[6] https://github.com/llvm-mirror/clang/blob/master/include/clang/Basic/TargetCXXABI.h#L255
[7] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=608029
Updated by Kefu Chai almost 7 years ago
- Status changed from Fix Under Review to Resolved
Updated by Sebastien Luttringer almost 7 years ago
Hello Kefu,
I applied https://github.com/ceph/ceph/pull/14891.patch to ceph 11.2.0 tarball and that doesn't fix building on i686.
[ 5%] Building CXX object src/CMakeFiles/common_util_obj.dir/common/util.cc.o In file included from /build/ceph/src/ceph-11.2.0/src/include/encoding.h:25:0, from /build/ceph/src/ceph-11.2.0/src/include/uuid.h:8, from /build/ceph/src/ceph-11.2.0/src/include/types.h:21, from /build/ceph/src/ceph-11.2.0/src/msg/Message.h:26, from /build/ceph/src/ceph-11.2.0/src/msg/Messenger.h:23, from /build/ceph/src/ceph-11.2.0/src/osdc/ObjectCacher.cc:6: /build/ceph/src/ceph-11.2.0/src/include/denc.h: In instantiation of ‘typename std::enable_if<((traits:: supported == 1) && (! t raits:: featured))>::type decode_nohead(size_t, T&, ceph::buffer::list::iterator&) [with T = std::__cxx11::basic_string<char>; traits = denc_traits<std::__cxx11::basic_string<char> >; typename std::enable_if<((traits:: supported == 1) && (! traits:: feat ured))>::type = void; size_t = unsigned int]’: /build/ceph/src/ceph-11.2.0/src/messages/MOSDOp.h:397:41: required from here /build/ceph/src/ceph-11.2.0/src/include/denc.h:1337:24: error: ‘decode_nohead’ is not a member of ‘denc_traits<std::__cxx11::ba sic_string<char> >’ traits::decode_nohead(num, o, cp); ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ make[2]: *** [src/osdc/CMakeFiles/osdc_rbd_objs.dir/build.make:63: src/osdc/CMakeFiles/osdc_rbd_objs.dir/ObjectCacher.cc.o] Err or 1 make[1]: *** [CMakeFiles/Makefile2:2805: src/osdc/CMakeFiles/osdc_rbd_objs.dir/all] Error 2 make[1]: *** Waiting for unfinished jobs.... [ 5%] Building CXX object src/CMakeFiles/mon_common_objs.dir/auth/cephx/CephxSessionHandler.cc.o [ 5%] Building CXX object src/CMakeFiles/mon_common_objs.dir/erasure-code/ErasureCodePlugin.cc.o [ 5%] Built target common_util_obj [ 5%] Building CXX object src/json_spirit/CMakeFiles/json_spirit.dir/json_spirit_writer.cpp.o [ 5%] Built target mon_common_objs [ 5%] Linking CXX static library ../../lib/libjson_spirit.a [ 5%] Built target json_spirit make: *** [Makefile:141: all] Error 2
Updated by Kefu Chai over 6 years ago
- Status changed from Resolved to New
Sorry, Sebastien ! i missed your latest comment. seems i fixed the issue reported by Romain, but not yours. i am reopening this ticket.
Updated by Jason Dillaman over 6 years ago
- Status changed from New to Won't Fix
Closing since 11.x.y is an EOLed release.