What configure command did you use? can you try adding --with-radosgw? Orit On Fri, 2016-03-04 at 09:41 -0500, Shehbaz Jaffer wrote: > 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. > -- 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