Everybody who includes CephxKeyServer.h must link with
CephxKeyServer.cc.
Currently, only ceph-mon and ceph-monstore-tool do that. All the
others (e.g. ceph_dencoder.cc) get away with that mistake because many
of the KeyServer methods are inline, and if they just happen to use
only the inline symbols, there is no (visible) problem.
However, during my attempts to un-inline some of these methods (to
reduce header dependencies and reduce binary bloat due to having many
copies of the same code), there were runtime linker failures in
"ceph-dencoder".
The simplest solution is to just add cephx/CephxKeyServer.cc to
auth_srcs.
Signed-off-by: Max Kellermann <max.kellermann@ionos.com>
RotatingKeyRing.cc
cephx/CephxAuthorizeHandler.cc
cephx/CephxClientHandler.cc
+ cephx/CephxKeyServer.cc
cephx/CephxProtocol.cc
cephx/CephxSessionHandler.cc
none/AuthNoneAuthorizeHandler.cc)
set(lib_mon_srcs
- ${CMAKE_SOURCE_DIR}/src/auth/cephx/CephxKeyServer.cc
${CMAKE_SOURCE_DIR}/src/auth/cephx/CephxServiceHandler.cc
${CMAKE_SOURCE_DIR}/src/auth/AuthServiceHandler.cc
Paxos.cc
add_executable(ceph-monstore-tool
ceph_monstore_tool.cc
- ../auth/cephx/CephxKeyServer.cc
../mgr/mgr_commands.cc)
target_link_libraries(ceph-monstore-tool os global Boost::program_options)
install(TARGETS ceph-monstore-tool DESTINATION bin)