Bug #16783
closedBuild fails if you disable radosgw (--without-radosgw) during linking
0%
Description
Attempting to build Ceph v10.2.2 with the configure option --without-radosgw leads to linking failure for "rbd-mirror":
rgw/ceph_dencoder-rgw_dencoder.o: In function `RGWZoneGroup::generate_test_instances(std::list<RGWZoneGroup*, std::allocator<RGWZoneGroup*> >&)': /home/rkeene/devel/aurae/node/root/packages/ceph/workdir-1750225706283291201813622/src/rgw/rgw_rados.h:1096: 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/rkeene/devel/aurae/node/root/packages/ceph/workdir-1750225706283291201813622/src/rgw/rgw_rados.h:871: 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/rkeene/devel/aurae/node/root/packages/ceph/workdir-1750225706283291201813622/src/rgw/rgw_rados.h:1096: undefined reference to `vtable for RGWZoneGroup' rgw/ceph_dencoder-rgw_json_enc.o: In function `RGWSystemMetaObj::~RGWSystemMetaObj()': /home/rkeene/devel/aurae/node/root/packages/ceph/workdir-1750225706283291201813622/src/rgw/rgw_rados.h:764: undefined reference to `vtable for RGWSystemMetaObj' rgw/ceph_dencoder-rgw_json_enc.o: In function `RGWSystemMetaObj::~RGWSystemMetaObj()': /home/rkeene/devel/aurae/node/root/packages/ceph/workdir-1750225706283291201813622/src/rgw/rgw_rados.h:764: 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/rkeene/devel/aurae/node/root/packages/ceph/workdir-1750225706283291201813622/src/rgw/rgw_rados.h:1064: undefined reference to `vtable for RGWZoneGroup' /home/rkeene/devel/aurae/node/root/packages/ceph/workdir-1750225706283291201813622/src/rgw/rgw_rados.h:764: 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/rkeene/devel/aurae/node/root/packages/ceph/workdir-1750225706283291201813622/src/rgw/rgw_rados.h:1096: undefined reference to `vtable for RGWZoneGroup' /home/rkeene/devel/aurae/node/root/packages/ceph/workdir-1750225706283291201813622/src/rgw/rgw_rados.h:764: 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_insert_<std::pair<std::string const, RGWZoneGroup>&>(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<std::string const, RGWZoneGroup>&)': /home/rkeene/devel/aurae/node/root/packages/ceph/workdir-1750225706283291201813622/src/rgw/rgw_rados.h:734: undefined reference to `vtable for RGWSystemMetaObj' /home/rkeene/devel/aurae/node/root/packages/ceph/workdir-1750225706283291201813622/src/rgw/rgw_rados.h:1064: undefined reference to `vtable for RGWZoneGroup' rgw/ceph_dencoder-rgw_json_enc.o: In function `RGWZoneGroup::~RGWZoneGroup()': /home/rkeene/devel/aurae/node/root/packages/ceph/workdir-1750225706283291201813622/src/rgw/rgw_rados.h:1064: undefined reference to `vtable for RGWZoneGroup' /home/rkeene/devel/aurae/node/root/packages/ceph/workdir-1750225706283291201813622/src/rgw/rgw_rados.h:764: 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/rkeene/devel/aurae/node/root/packages/ceph/workdir-1750225706283291201813622/src/rgw/rgw_rados.h:1096: 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/rkeene/devel/aurae/node/root/packages/ceph/workdir-1750225706283291201813622/src/rgw/rgw_rados.h:1096: undefined reference to `vtable for RGWZoneGroup' rgw/ceph_dencoder-rgw_json_enc.o: In function `RGWZoneGroup::~RGWZoneGroup()': /home/rkeene/devel/aurae/node/root/packages/ceph/workdir-1750225706283291201813622/src/rgw/rgw_rados.h:1064: undefined reference to `vtable for RGWZoneGroup' /home/rkeene/devel/aurae/node/root/packages/ceph/workdir-1750225706283291201813622/src/rgw/rgw_rados.h:764: undefined reference to `vtable for RGWSystemMetaObj' collect2: error: ld returned 1 exit status make[5]: *** [ceph-dencoder] Error 1 make[5]: *** Waiting for unfinished jobs.... make[5]: Leaving directory `/home/rkeene/devel/aurae/node/root/packages/ceph/workdir-1750225706283291201813622/src' make[4]: *** [all-recursive] Error 1 make[4]: Leaving directory `/home/rkeene/devel/aurae/node/root/packages/ceph/workdir-1750225706283291201813622/src' make[3]: *** [all] Error 2 make[3]: Leaving directory `/home/rkeene/devel/aurae/node/root/packages/ceph/workdir-1750225706283291201813622/src' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory `/home/rkeene/devel/aurae/node/root/packages/ceph/workdir-1750225706283291201813622'
This previously worked in Ceph 0.94.7
Updated by David Disseldorp over 7 years ago
- Assignee set to David Disseldorp
Will put this on my queue. I see this on the master branch too (cmake -DWITH_RADOSGW=0), be it with a different undefined symbol while linking:
../lib/librbd_types.a(Types.cc.o): In function `cls::rbd::decode(cls::rbd::SnapshotNamespaceOnDisk&, ceph::buffer::list::iterator&)':
/home/ddiss/isms/ceph/src/cls/rbd/cls_rbd_types.h:311: undefined reference to `cls::rbd::SnapshotNamespaceOnDisk::decode(ceph::buffer::list::iterator&)'
../lib/librbd_types.a(Types.cc.o): In function `cls::rbd::encode(cls::rbd::SnapshotNamespaceOnDisk const&, ceph::buffer::list&, unsigned long)':
/home/ddiss/isms/ceph/src/cls/rbd/cls_rbd_types.h:311: undefined reference to `cls::rbd::SnapshotNamespaceOnDisk::encode(ceph::buffer::list&) const'
../lib/librbd_types.a(Types.cc.o): In function `librbd::journal::SnapCreateEvent::dump(ceph::Formatter*) const':
/home/ddiss/isms/ceph/src/librbd/journal/Types.cc:173: undefined reference to `cls::rbd::SnapshotNamespaceOnDisk::dump(ceph::Formatter*) const'
../lib/librbd_types.a(Types.cc.o): In function `librbd::mirroring_watcher::ImageUpdatedPayload::dump(ceph::Formatter*) const':
/home/ddiss/isms/ceph/src/librbd/mirroring_watcher/Types.cc:90: undefined reference to `cls::rbd::operator<<(std::ostream&, cls::rbd::MirrorImageState const&)'
../lib/librbd_types.a(Types.cc.o): In function `librbd::mirroring_watcher::ModeUpdatedPayload::dump(ceph::Formatter*) const':
/home/ddiss/isms/ceph/src/librbd/mirroring_watcher/Types.cc:71: undefined reference to `cls::rbd::operator<<(std::ostream&, cls::rbd::MirrorMode const&)'
../lib/librbd_types.a(WatchNotifyTypes.cc.o): In function `cls::rbd::encode(cls::rbd::SnapshotNamespaceOnDisk const&, ceph::buffer::list&, unsigned long)':
/home/ddiss/isms/ceph/src/cls/rbd/cls_rbd_types.h:311: undefined reference to `cls::rbd::SnapshotNamespaceOnDisk::encode(ceph::buffer::list&) const'
../lib/librbd_types.a(WatchNotifyTypes.cc.o): In function `librbd::watch_notify::SnapCreatePayload::dump(ceph::Formatter*) const':
/home/ddiss/isms/ceph/src/librbd/WatchNotifyTypes.cc:260: undefined reference to `cls::rbd::SnapshotNamespaceOnDisk::dump(ceph::Formatter*) const'
../lib/librbd_types.a(WatchNotifyTypes.cc.o): In function `cls::rbd::decode(cls::rbd::SnapshotNamespaceOnDisk&, ceph::buffer::list::iterator&)':
/home/ddiss/isms/ceph/src/cls/rbd/cls_rbd_types.h:311: undefined reference to `cls::rbd::SnapshotNamespaceOnDisk::decode(ceph::buffer::list::iterator&)'
collect2: error: ld returned 1 exit status
src/CMakeFiles/ceph-dencoder.dir/build.make:140: recipe for target 'bin/ceph-dencoder' failed
make2: *** [bin/ceph-dencoder] Error 1
Updated by David Disseldorp over 7 years ago
Similarly, radosgw fails to build when configured --without-openldap:
CXXLD radosgw
CXXLD radosgw-admin
./.libs/librgw.so: undefined reference to `parse_rgw_ldap_bindpw(CephContext*)'
collect2: error: ld returned 1 exit status
Makefile:16990: recipe for target 'radosgw' failed
make[3]: * [radosgw] Error 1
make[3]: Waiting for unfinished jobs....
./.libs/librgw.so: undefined reference to `parse_rgw_ldap_bindpw(CephContext)'
collect2: error: ld returned 1 exit status
Makefile:16998: recipe for target 'radosgw-admin' failed
make[3]: * [radosgw-admin] Error 1
make[3]: Leaving directory '/home/ddiss/isms/ceph/src'
Makefile:30931: recipe for target 'all-recursive' failed
make[2]: [all-recursive] Error 1
make[2]: Leaving directory '/home/ddiss/isms/ceph/src'
Makefile:12636: recipe for target 'all' failed
make[1]: ** [all] Error 2
make[1]: Leaving directory '/home/ddiss/isms/ceph/src'
Makefile:692: recipe for target 'all-r
Updated by Roy Keene over 7 years ago
The failure when compiling without OpenLDAP is new in 10.2.3 -- it worked in 10.2.2 (which is what this bug report is against). The OpenLDAP failure was reported as bug #17438 on 29-SEP-2016.
Updated by David Disseldorp almost 4 years ago
- Status changed from New to Won't Fix
I've not looked at this since my initial report and no longer build without rgw. closing as won't fix.