Unable to build ceph: Ubuntu 15.04 Ceph master

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux