Some symbols from the crc32, arch and fmt libs
are re-exported by libceph-common:
FAILED: bin/unittest_time.exe
ld.lld: error: fmt::v9::format_error::~format_error() was replaced
llvm throws errors because of the duplicate symbols.
One workaround is to use objects instead of static libs
for the libs. For libfmt we'll use the header-only version.
Signed-off-by: Lucian Petrut <lpetrut@cloudbasesolutions.com>
list(APPEND arch_srcs ppc.c)
endif()
-add_library(arch STATIC ${arch_srcs})
+add_library(arch OBJECT ${arch_srcs})
crc32c_aarch64.c)
endif(HAVE_INTEL)
-add_library(crc32 STATIC ${crc32_srcs})
+add_library(crc32 OBJECT ${crc32_srcs})
+
if(HAVE_ARMV8_CRC)
set_target_properties(crc32 PROPERTIES
COMPILE_FLAGS "${CMAKE_C_FLAGS} ${ARMV8_CRC_COMPILE_FLAGS}")
PUBLIC
${crimson_common_public_deps}
PRIVATE
- crc32
+ crc32 arch
${crimson_common_deps}
OpenSSL::Crypto)
cmake -D CMAKE_PREFIX_PATH=$depsDirs \
-D MINGW_LINK_DIRECTORIES="$linkDirs" \
-D CMAKE_TOOLCHAIN_FILE="$MINGW_CMAKE_FILE" \
+ -D WITH_FMT_HEADER_ONLY=ON \
-D WITH_LIBCEPHSQLITE=OFF \
-D WITH_RDMA=OFF -D WITH_OPENLDAP=OFF \
-D WITH_GSSAPI=OFF -D WITH_XFS=OFF \