Hi, I have cloned ceph from git master branch. I am getting the following errors while build: ENVIRONMENT ---------------------- $ uname -a Linux donjaffer 4.3.0-dev #1 SMP Sun Dec 6 13:56:49 EST 2015 x86_64 x86_64 x86_64 GNU/Linux $ g++ -v Using built-in specs. COLLECT_GCC=g++ COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.9/lto-wrapper Target: x86_64-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Ubuntu 4.9.2-10ubuntu13' --with-bugurl=file:///usr/share/doc/gcc-4.9/README.Bugs --enable-languages=c,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.9 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.9 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-4.9-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-4.9-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.9-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu Thread model: posix gcc version 4.9.2 (Ubuntu 4.9.2-10ubuntu13) BUILD ERROR --------------------- $make ... CXXLD ceph-dencoder rgw/ceph_dencoder-rgw_dencoder.o: In function `RGWZoneGroup::generate_test_instances(std::list<RGWZoneGroup*, std::allocator<RGWZoneGroup*> >&)': /home/shehbaz/gsoc/ceph/ceph/src/rgw/rgw_rados.h:1095: undefined reference to `vtable for RGWZoneGroup' rgw/ceph_dencoder-rgw_dencoder.o: In function `RGWZoneParams::generate_test_instances(std::list<RGWZoneParams*, std::allocator<RGWZoneParams*> >&)': /home/shehbaz/gsoc/ceph/ceph/src/rgw/rgw_rados.h:870: undefined reference to `vtable for RGWZoneParams' rgw/ceph_dencoder-rgw_json_enc.o: In function `decode_zonegroups(std::map<std::string, RGWZoneGroup, std::less<std::string>, std::allocator<std::pair<std::string const, RGWZoneGroup> > >&, JSONObj*)': /home/shehbaz/gsoc/ceph/ceph/src/rgw/rgw_rados.h:1095: undefined reference to `vtable for RGWZoneGroup' rgw/ceph_dencoder-rgw_json_enc.o: In function `RGWSystemMetaObj::~RGWSystemMetaObj()': /home/shehbaz/gsoc/ceph/ceph/src/rgw/rgw_rados.h:763: undefined reference to `vtable for RGWSystemMetaObj' rgw/ceph_dencoder-rgw_json_enc.o: In function `RGWSystemMetaObj::~RGWSystemMetaObj()': /home/shehbaz/gsoc/ceph/ceph/src/rgw/rgw_rados.h:763: undefined reference to `vtable for RGWSystemMetaObj' rgw/ceph_dencoder-rgw_json_enc.o: In function `RGWZoneGroup::~RGWZoneGroup()': /home/shehbaz/gsoc/ceph/ceph/src/rgw/rgw_rados.h:1096: undefined reference to `vtable for RGWZoneGroup' /home/shehbaz/gsoc/ceph/ceph/src/rgw/rgw_rados.h:763: undefined reference to `vtable for RGWSystemMetaObj' rgw/ceph_dencoder-rgw_json_enc.o: In function `RGWZoneGroup::~RGWZoneGroup()': /home/shehbaz/gsoc/ceph/ceph/src/rgw/rgw_rados.h:1096: undefined reference to `vtable for RGWZoneGroup' /home/shehbaz/gsoc/ceph/ceph/src/rgw/rgw_rados.h:763: undefined reference to `vtable for RGWSystemMetaObj' rgw/ceph_dencoder-rgw_json_enc.o: In function `std::_Rb_tree<std::string, std::pair<std::string const, RGWZoneGroup>, std::_Select1st<std::pair<std::string const, RGWZoneGroup> >, std::less<std::string>, std::allocator<std::pair<std::string const, RGWZoneGroup> > >::_M_erase(std::_Rb_tree_node<std::pair<std::string const, RGWZoneGroup> >*)': /home/shehbaz/gsoc/ceph/ceph/src/rgw/rgw_rados.h:1096: undefined reference to `vtable for RGWZoneGroup' /home/shehbaz/gsoc/ceph/ceph/src/rgw/rgw_rados.h:763: undefined reference to `vtable for RGWSystemMetaObj' rgw/ceph_dencoder-rgw_json_enc.o: In function `std::_Rb_tree_iterator<std::pair<std::string const, RGWZoneGroup> > std::_Rb_tree<std::string, std::pair<std::string const, RGWZoneGroup>, std::_Select1st<std::pair<std::string const, RGWZoneGroup> >, std::less<std::string>, std::allocator<std::pair<std::string const, RGWZoneGroup> > >::_M_emplace_hint_unique<std::piecewise_construct_t const&, std::tuple<std::string const&>, std::tuple<> >(std::_Rb_tree_const_iterator<std::pair<std::string const, RGWZoneGroup> >, std::piecewise_construct_t const&, std::tuple<std::string const&>&&, std::tuple<>&&)': /home/shehbaz/gsoc/ceph/ceph/src/rgw/rgw_rados.h:1095: undefined reference to `vtable for RGWZoneGroup' /home/shehbaz/gsoc/ceph/ceph/src/rgw/rgw_rados.h:763: undefined reference to `vtable for RGWSystemMetaObj' rgw/ceph_dencoder-rgw_json_enc.o: In function `bool JSONDecoder::decode_json<RGWZoneGroup>(char const*, RGWZoneGroup&, JSONObj*, bool)': /home/shehbaz/gsoc/ceph/ceph/src/rgw/rgw_rados.h:1095: undefined reference to `vtable for RGWZoneGroup' rgw/ceph_dencoder-rgw_json_enc.o: In function `void decode_json_obj<std::string, RGWZoneGroup>(std::map<std::string, RGWZoneGroup, std::less<std::string>, std::allocator<std::pair<std::string const, RGWZoneGroup> > >&, JSONObj*)': /home/shehbaz/gsoc/ceph/ceph/src/rgw/rgw_rados.h:1095: undefined reference to `vtable for RGWZoneGroup' rgw/ceph_dencoder-rgw_json_enc.o: In function `std::_Rb_tree_iterator<std::pair<std::string const, RGWZoneGroup> > std::_Rb_tree<std::string, std::pair<std::string const, RGWZoneGroup>, std::_Select1st<std::pair<std::string const, RGWZoneGroup> >, std::less<std::string>, std::allocator<std::pair<std::string const, RGWZoneGroup> > >::_M_insert_<std::pair<std::string const, RGWZoneGroup>&>(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<std::string const, RGWZoneGroup>&)': /home/shehbaz/gsoc/ceph/ceph/src/rgw/rgw_rados.h:733: undefined reference to `vtable for RGWSystemMetaObj' /home/shehbaz/gsoc/ceph/ceph/src/rgw/rgw_rados.h:1063: undefined reference to `vtable for RGWZoneGroup' collect2: error: ld returned 1 exit status Makefile:15392: recipe for target 'ceph-dencoder' failed make[3]: *** [ceph-dencoder] Error 1 make[3]: Leaving directory '/home/shehbaz/gsoc/ceph/ceph/src' Makefile:29913: recipe for target 'all-recursive' failed make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory '/home/shehbaz/gsoc/ceph/ceph/src' Makefile:12277: recipe for target 'all' failed make[1]: *** [all] Error 2 make[1]: Leaving directory '/home/shehbaz/gsoc/ceph/ceph/src' Makefile:689: recipe for target 'all-recursive' failed make: *** [all-recursive] Error 1 shehbaz@donjaffer:~/gsoc/ceph/ceph$ INITIAL DIAGNOSTICS ------------------------------- In src/rgw/rgw_rados.h struct RGWZoneGroup : public RGWSystemMetaObj all pure virtual functions in base class should be overriden in derived class. In RGWSystemMetaObj, the following functions are defined pure virtual: virtual const string& get_pool_name(CephContext *cct) = 0; virtual const string get_default_oid(bool old_format = false) = 0; virtual const string& get_names_oid_prefix() = 0; virtual const string& get_info_oid_prefix(bool old_format = false) = 0; virtual const string& get_predefined_name(CephContext *cct) = 0; All these functions have been declared and overridden in struct RGWZoneGroup: const string& get_pool_name(CephContext *cct); const string get_default_oid(bool old_region_format = false); const string& get_info_oid_prefix(bool old_region_format = false); const string& get_names_oid_prefix(); const string& get_predefined_name(CephContext *cct); I also found a similar report here: http://ceph.predictor.org.pl/rgw_vtable.txt But a solution to the problem is not provided. Any help is much appreciated. -- Shehbaz Jaffer First Year Graduate Student Sir Edward S Rogers Sr Department of Electrical and Computer Engineering University of Toronto -- To unsubscribe from this list: send the line "unsubscribe ceph-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html