cmake_minimum_required(VERSION 2.8.11)
project(Ceph)
-set(VERSION "0.90")
+set(VERSION "10.2.1")
if (NOT (CMAKE_MAJOR_VERSION LESS 3))
# Tweak policies (this one disables "missing" dependency warning)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
+
CHECK_FUNCTION_EXISTS(fallocate CEPH_HAVE_FALLOCATE)
CHECK_FUNCTION_EXISTS(posix_fadvise HAVE_POSIX_FADVISE)
CHECK_FUNCTION_EXISTS(posix_fallocate HAVE_POSIX_FALLOCATE)
CHECK_FUNCTION_EXISTS(sync_file_range HAVE_SYNC_FILE_RANGE)
CHECK_FUNCTION_EXISTS(mallinfo HAVE_MALLINFO)
CHECK_FUNCTION_EXISTS(pwritev HAVE_PWRITEV)
-CHECK_INCLUDE_FILES("arpa/inet.h" HAVE_ARPA_INET_H)
-CHECK_INCLUDE_FILES("boost/random/discrete_distribution.hpp" HAVE_BOOST_RANDOM_DISCRETE_DISTRIBUTION)
+CHECK_FUNCTION_EXISTS(splice CEPH_HAVE_SPLICE)
+CHECK_FUNCTION_EXISTS(getgrouplist HAVE_GETGROUPLIST)
+CHECK_FUNCTION_EXISTS(fdatasync HAVE_FDATASYNC)
+CHECK_FUNCTION_EXISTS(strerror_r HAVE_STRERROR_R)
+CHECK_FUNCTION_EXISTS(name_to_handle_at HAVE_NAME_TO_HANDLE_AT)
+CHECK_FUNCTION_EXISTS(pipe2 HAVE_PIPE2)
+set(CMAKE_REQUIRED_LIBRARIES pthread)
+CHECK_FUNCTION_EXISTS(pthread_spin_init HAVE_PTHREAD_SPINLOCK)
+CHECK_FUNCTION_EXISTS(eventfd HAVE_EVENTFD)
+
CHECK_INCLUDE_FILE_CXX("boost/asio/coroutine.hpp" HAVE_BOOST_ASIO_COROUTINE)
-CHECK_INCLUDE_FILES("dirent.h" HAVE_DIRENT_H)
-CHECK_INCLUDE_FILES("dlfcn.h" HAVE_DLFCN_H)
CHECK_INCLUDE_FILES("inttypes.h" HAVE_INTTYPES_H)
CHECK_INCLUDE_FILES("linux/types.h" HAVE_LINUX_TYPES_H)
-CHECK_INCLUDE_FILES("memory.h" HAVE_MEMORY_H)
-CHECK_INCLUDE_FILES("ndir.h" HAVE_NDIR_H)
-CHECK_INCLUDE_FILES("netdb.h" HAVE_NETDB_H)
-CHECK_INCLUDE_FILES("netinet/in.h" HAVE_NETINET_IN_H)
+CHECK_INCLUDE_FILES("linux/version.h" HAVE_LINUX_VERSION_H)
CHECK_INCLUDE_FILES("stdint.h" HAVE_STDINT_H)
-CHECK_INCLUDE_FILES("stdlib.h" HAVE_STDLIB_H)
-CHECK_INCLUDE_FILES("arpa/inet.h" HAVE_ARPA_INET_H)
-CHECK_INCLUDE_FILES("strings.h" HAVE_STRINGS_H)
-CHECK_INCLUDE_FILES("string.h" HAVE_STRING_H)
-CHECK_INCLUDE_FILES("syslog.h" HAVE_SYSLOG_H)
-CHECK_INCLUDE_FILES("sys/dir.h" HAVE_SYS_DIR_H)
-CHECK_INCLUDE_FILES("sys/file.h" HAVE_SYS_FILE_H)
-CHECK_INCLUDE_FILES("sys/ioctl.h" HAVE_SYS_IOCTL_H)
+CHECK_INCLUDE_FILES("arpa/nameser_compat.h" HAVE_ARPA_NAMESER_COMPAT_H)
CHECK_INCLUDE_FILES("sys/mount.h" HAVE_SYS_MOUNT_H)
-CHECK_INCLUDE_FILES("sys/ndir.h" HAVE_SYS_NDIR_H)
CHECK_INCLUDE_FILES("sys/param.h" HAVE_SYS_PARAM_H)
-CHECK_INCLUDE_FILES("sys/socket.h" HAVE_SYS_SOCKET_H)
-CHECK_INCLUDE_FILES("sys/statvfs.h" HAVE_SYS_STATVFS_H)
-CHECK_INCLUDE_FILES("sys/stat.h" HAVE_SYS_STAT_H)
-CHECK_INCLUDE_FILES("sys/time.h" HAVE_SYS_TIME_H)
CHECK_INCLUDE_FILES("sys/types.h" HAVE_SYS_TYPES_H)
CHECK_INCLUDE_FILES("sys/vfs.h" HAVE_SYS_VFS_H)
-CHECK_INCLUDE_FILES("sys/wait.h" HAVE_SYS_WAIT_H)
-CHECK_INCLUDE_FILES("sys/xattr.h" HAVE_SYS_XATTR_H)
-CHECK_INCLUDE_FILES("unistd.h" HAVE_UNISTD_H)
-CHECK_INCLUDE_FILES("utime.h" HAVE_UTIME_H)
-CHECK_INCLUDE_FILES("${CMAKE_SOURCE_DIR}/src/include/fiemap.h" HAVE_FIEMAP_H)
-CHECK_INCLUDE_FILES("fuse/fuse_lowlevel.h" HAVE_FUSE_LOWLEVEL_H)
-CHECK_INCLUDE_FILES("fuse/fuse.h" HAVE_FUSE_H)
-CHECK_INCLUDE_FILES("fcgi_config.h" HAVE_FASTCGI_CONFIG_H)
-CHECK_INCLUDE_FILES("fastcgi.h" HAVE_FASTCGI_H)
-CHECK_INCLUDE_FILES("fcgiapp.h" FASTCGI_FASTCGI_APP_DIR)
-CHECK_INCLUDE_FILES("fcgimisc.h" HAVE_FASTCGI_MISC_H)
-CHECK_INCLUDE_FILES("fcgio.h" HAVE_FASTCGIO_H)
-CHECK_INCLUDE_FILES("fcgios.h" FASTCGI_FASTCGIOS_DIR)
-CHECK_INCLUDE_FILES("fcgi_stdio.h" HAVE_FASTCGI_STDIO_H)
-CHECK_INCLUDE_FILES("keyutils.h" HAVE_KEYUTILS_H)
+CHECK_INCLUDE_FILES("sys/prctl.h" HAVE_SYS_PRCTL_H)
CHECK_INCLUDE_FILES("execinfo.h" HAVE_EXECINFO_H)
+CHECK_INCLUDE_FILES("sched.h" HAVE_SCHED)
+CHECK_INCLUDE_FILES("valgrind/helgrind.h" HAVE_VALGRIND_HELGRIND_H)
+
+include(CheckTypeSize)
+set(CMAKE_EXTRA_INCLUDE_FILES "linux/types.h")
+CHECK_TYPE_SIZE(__be16 __BE16)
+CHECK_TYPE_SIZE(__be32 __BE32)
+CHECK_TYPE_SIZE(__be64 __BE64)
+CHECK_TYPE_SIZE(__le16 __LE16)
+CHECK_TYPE_SIZE(__le32 __LE32)
+CHECK_TYPE_SIZE(__le64 __LE64)
+CHECK_TYPE_SIZE(__u8 __U8)
+CHECK_TYPE_SIZE(__u16 __U16)
+CHECK_TYPE_SIZE(__u32 __U32)
+CHECK_TYPE_SIZE(__u64 __U64)
+CHECK_TYPE_SIZE(__s8 __S8)
+CHECK_TYPE_SIZE(__s16 __S16)
+CHECK_TYPE_SIZE(__s32 __S32)
+CHECK_TYPE_SIZE(__s64 __S64)
+unset(CMAKE_EXTRA_INCLUDE_FILES)
include(CheckSymbolExists)
-CHECK_SYMBOL_EXISTS(__u8 "sys/types.h;linux/types.h" HAVE___U8)
-CHECK_SYMBOL_EXISTS(__u64 "sys/types.h;linux/types.h" HAVE___U64)
-CHECK_SYMBOL_EXISTS(__s64 "sys/types.h;linux/types.h" HAVE___S64)
-
CHECK_SYMBOL_EXISTS(res_nquery "resolv.h" HAVE_RES_NQUERY)
+CHECK_SYMBOL_EXISTS(F_SETPIPE_SZ "linux/fcntl.h" CEPH_HAVE_SETPIPE_SZ)
+CHECK_SYMBOL_EXISTS(__func__ "" HAVE_FUNC)
+CHECK_SYMBOL_EXISTS(__PRETTY_FUNCTION__ "" HAVE_PRETTY_FUNC)
include(CheckCXXSourceCompiles)
CHECK_CXX_SOURCE_COMPILES("
#include <string.h>
int main() { char x = *strerror_r(0, &x, sizeof(x)); return 0; }
" STRERROR_R_CHAR_P)
+CHECK_CXX_SOURCE_COMPILES("
+ #include <sys/stat.h>
+ #include <stdio.h>
+ int main() { struct stat foo = {}; foo.st_mtim.tv_nsec = 0;
+ return 0; }
+ " HAVE_STAT_ST_MTIM_TV_NSEC)
+CHECK_CXX_SOURCE_COMPILES("
+ #include <sys/stat.h>
+ #include <stdio.h>
+ int main() { struct stat foo = {}; foo.st_mtimespec.tv_nsec = 0;
+ return 0; }
+ " HAVE_STAT_ST_MTIMESPEC_TV_NSEC)
+CHECK_CXX_SOURCE_COMPILES("
+ int main() { float f = 12.3; int n = static_cast<int>(f); return 0; }
+ " HAVE_STATIC_CAST)
set(CEPH_MAN_DIR "share/man" CACHE STRING "Install location for man pages (relative to prefix).")
if(${WITH_FUSE})
find_package(fuse)
set(HAVE_LIBFUSE ${FUSE_FOUND})
-CHECK_FUNCTION_EXISTS(fuse_getgroups HAVE_FUSE_GETGROUPS)
endif(${WITH_FUSE})
option(WITH_XFS "XFS is here" ON)
if(${WITH_XFS})
find_package(xfs)
-set(HAVE_XFS ${XFS_FOUND})
+set(HAVE_LIBXFS ${XFS_FOUND})
endif(${WITH_XFS})
option(WITH_SPDK "Enable SPDK" OFF)
endif(WITH_SPDK)
find_package(blkid REQUIRED)
-set(HAVE_LIBBLKID ${BLKID_FOUND})
# probably fuse etc need this -- how to check? XXX
option(WITH_MDS "MDS is here" ON)
# needs mds and? XXX
-option(WITH_CLIENT "Client is here" ON)
option(WITH_LIBCEPHFS "libcephfs client library" ON)
# key-value store
option(WITH_LEVELDB "LevelDB is here" ON)
if(${WITH_LEVELDB})
find_package(leveldb REQUIRED)
-set(HAVE_LIBLEVELDB ${LEVELDB_FOUND})
find_file(HAVE_LEVELDB_FILTER_POLICY filter_policy.h PATHS /usr/include/leveldb)
endif(${WITH_LEVELDB})
option(WITH_EXPAT "EXPAT is here" ON)
if(${WITH_EXPAT})
find_package(expat REQUIRED)
-set(HAVE_EXPAT ${EXPAT_FOUND})
endif(${WITH_EXPAT})
find_package(Cython REQUIRED)
find_package(fcgi REQUIRED)
find_package(atomic_ops REQUIRED)
-set(HAVE_ATOMIC_OPS ${ATOMIC_OPS_FOUND})
message(STATUS "${ATOMIC_OPS_LIBRARIES}")
+if(NOT ${ATOMIC_OPS_FOUND})
+ set(NO_ATOMIC_OPS 1)
+endif(NOT ${ATOMIC_OPS_FOUND})
option(WITH_GPERFTOOLS "gperftools is here" ON)
if(${WITH_GPERFTOOLS})
set(HAVE_LIBTCMALLOC ${Tcmalloc_FOUND})
elseif(${ALLOCATOR} STREQUAL "jemalloc")
find_package(JeMalloc REQUIRED)
+ set(HAVE_LIBJEMALLOC ${JEMALLOC_FOUND})
endif()
else(ALLOCATOR)
find_package(tcmalloc)
set(HAVE_LIBTCMALLOC ${Tcmalloc_FOUND})
- find_package(JeMalloc)
+ if(NOT ${Tcmalloc_FOUND})
+ find_package(JeMalloc)
+ set(HAVE_LIBJEMALLOC ${JEMALLOC_FOUND})
+ endif(NOT ${Tcmalloc_FOUND})
if(NOT Tcmalloc_FOUND AND NOT JEMALLOC_FOUND)
message(WARNING "tcmalloc and jemalloc not found, falling back to libc")
set(ALLOCATOR "libc")
set(WITH_BABELTRACE ${BABELTRACE_FOUND})
set(HAVE_BABELTRACE_BABELTRACE_H ${BABELTRACE_FOUND})
set(HAVE_BABELTRACE_CTF_EVENTS_H ${BABELTRACE_FOUND})
+ set(HAVE_BABELTRACE_CTF_ITERATOR_H ${BABELTRACE_FOUND})
endif(${HAVE_BABELTRACE})
-# Now create a useable config.h
-configure_file(
- ${PROJECT_SOURCE_DIR}/src/include/config-h.in.cmake
- ${PROJECT_BINARY_DIR}/include/acconfig.h
-)
-include_directories(${PROJECT_BINARY_DIR}/include)
+option(DEBUG_GATHER "C_Gather debugging is enabled" ON)
+option(HAVE_LIBZFS "LibZFS is enabled" OFF)
+option(ENABLE_COVERAGE "Coverage is enabled" OFF)
+option(PG_DEBUG_REFS "PG Ref debugging is enabled" OFF)
add_definitions(-D__linux__)
set(Boost_USE_MULTITHREADED ON)
find_package(Boost COMPONENTS thread system regex random program_options date_time iostreams REQUIRED)
include_directories(${Boost_INCLUDE_DIRS})
+include_directories(${PROJECT_BINARY_DIR}/include)
find_package(Threads REQUIRED)
if(not_arch_x32)
message(STATUS " we are not x32")
set(HAVE_GOOD_YASM_ELF64 1)
- add_definitions("-DHAVE_GOOD_YASM_ELF64")
execute_process(COMMAND yasm -f elf64 -i
${CMAKE_SOURCE_DIR}/src/erasure-code/isa/isa-l/include/
${CMAKE_SOURCE_DIR}/src/erasure-code/isa/isa-l/erasure_code/gf_vect_dot_prod_avx2.asm.s
OUTPUT_QUIET)
if(NOT rc)
set(HAVE_BETTER_YASM_ELF64 1)
- add_definitions("-DHAVE_BETTER_YASM_ELF64")
message(STATUS " yasm can also build the isa-l stuff")
endif(NOT rc)
else(not_arch_x32)
message(FATAL_ERROR "The compiler ${CMAKE_CXX_COMPILER} has no C++11 support.")
endif()
+## detect sse support
+
+# create a tmp file with an empty main()
+set(sse_srcs "${CMAKE_BINARY_DIR}/src/erasure-code/jerasure/tmp_sse.c")
+file(WRITE ${sse_srcs} "void main() {}")
+
+# try each -msse flag
+try_compile(INTEL_SSE ${CMAKE_BINARY_DIR} ${sse_srcs}
+ COMPILE_DEFINITIONS "-msse")
+try_compile(INTEL_SSE2 ${CMAKE_BINARY_DIR} ${sse_srcs}
+ COMPILE_DEFINITIONS "-msse2")
+try_compile(INTEL_SSE3 ${CMAKE_BINARY_DIR} ${sse_srcs}
+ COMPILE_DEFINITIONS "-msse3")
+try_compile(INTEL_SSSE3 ${CMAKE_BINARY_DIR} ${sse_srcs}
+ COMPILE_DEFINITIONS "-mssse3")
+try_compile(INTEL_SSE4_1 ${CMAKE_BINARY_DIR} ${sse_srcs}
+ COMPILE_DEFINITIONS "-msse4.1")
+try_compile(INTEL_SSE4_2 ${CMAKE_BINARY_DIR} ${sse_srcs}
+ COMPILE_DEFINITIONS "-msse4.2")
+try_compile(ARM_NEON ${CMAKE_BINARY_DIR} ${sse_srcs}
+ COMPILE_DEFINITIONS "-mfpu=neon")
+try_compile(ARM_NEON2 ${CMAKE_BINARY_DIR} ${sse_srcs}
+ COMPILE_DEFINITIONS "-march=armv8-a+simd")
+try_compile(ARM_CRC ${CMAKE_BINARY_DIR} ${sse_srcs}
+ COMPILE_DEFINITIONS "-march=armv8-a+crc")
+
+# clean up tmp file
+file(REMOVE ${sse_srcs})
+
+if(ARM_CRC)
+ set(HAVE_ARMV8_CRC 1)
+ set(ARM_CRC_FLAGS "-march=armv8-a+crc -DARCH_AARCH64")
+endif(ARM_CRC)
+
+if(ARM_NEON OR ARM_NEON2)
+ set(HAVE_NEON 1)
+ if(ARM_NEON)
+ set(ARM_NEON_FLAGS "-mfpu=neon -DARM_NEON")
+ else(ARM_NEON)
+ set(ARM_NEON_FLAGS "-march=armv8-a+simd -DARCH_AARCH64 -DARM_NEON")
+ endif(ARM_NEON)
+else(ARM_NEON OR ARM_NEON2)
+ message(STATUS "Skipping target ec_jerasure_neon & ec_shec_neon: Architecture not ARM")
+endif(ARM_NEON OR ARM_NEON2)
+
+if(INTEL_SSE)
+ set(HAVE_SSE 1)
+ set(SSE3_FLAGS "-msse")
+ if (INTEL_SSE2)
+ set(HAVE_SSE2 1)
+ set(SSE3_FLAGS "${SSE3_FLAGS} -msse2")
+ endif (INTEL_SSE2)
+ if (INTEL_SSE3)
+ set(SSE3_FLAGS "${SSE3_FLAGS} -msse3")
+ endif (INTEL_SSE3)
+ if (INTEL_SSSE3)
+ set(SSE3_FLAGS "${SSE3_FLAGS} -mssse3")
+ endif (INTEL_SSSE3)
+else(INTEL_SSE)
+ message(STATUS "Skipping target ec_jerasure_sse3 & ec_shec_sse3: -msse not supported")
+endif(INTEL_SSE)
+
+if(INTEL_SSE4_1)
+ set(SSE4_FLAGS "${SSE3_FLAGS} -msse4.1")
+ if (INTEL_SSE4_2)
+ set(SSE4_FLAGS "${SSE4_FLAGS} -msse4.2")
+ endif (INTEL_SSE4_2)
+else(INTEL_SSE4_1)
+ message(STATUS "Skipping target ec_jerasure_sse4 & ec_shec_sse4: -msse4.1 not supported")
+endif(INTEL_SSE4_1)
+
set(EXTRALIBS uuid rt dl ${ATOMIC_OPS_LIBRARIES})
list(APPEND EXTRALIBS profiler)
endif(${WITH_PROFILER})
+if(${ENABLE_COVERAGE})
+ find_program(HAVE_GCOV gcov)
+ if(NOT HAVE_GCOV)
+ message(FATAL_ERROR "Coverage Enabled but gcov Not Found")
+ endif(NOT HAVE_GCOV)
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage -O0")
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fprofile-arcs -ftest-coverage")
+ list(APPEND EXTRALIBS gcov)
+endif(${ENABLE_COVERAGE})
+
if(USE_NSS)
if(NSS_FOUND)
if(NSPR_FOUND)
target_link_libraries(common profiler)
endif(${HAVE_GPERFTOOLS})
+if(${HAVE_ARMV8_CRC})
+ add_library(common_crc_aarch64 STATIC common/crc32c_aarch64.c)
+ set_target_properties(common_crc_aarch64 PROPERTIES COMPILE_FLAGS "${CMAKE_C_FLAGS} ${ARM_CRC_FLAGS}")
+ target_link_libraries(common common_crc_aarch64)
+endif(${HAVE_ARMV8_CRC})
+
add_library(common_utf8 STATIC common/utf8.c)
target_link_libraries(common json_spirit common_utf8 erasure_code rt uuid ${CRYPTO_LIBS} ${Boost_LIBRARIES} ${BLKID_LIBRARIES} ${EXECINFO_LIBRARIES})
install(TARGETS ceph-mon DESTINATION bin)
# OSD
-if(${HAVE_XFS})
+if(${HAVE_LIBXFS})
set(libos_xfs_srcs
os/filestore/XfsFileStoreBackend.cc
os/fs/XFS.cc)
-endif(${HAVE_XFS})
+endif(${HAVE_LIBXFS})
set(libos_srcs
os/ObjectStore.cc
os/Transaction.cc
cls_log_client cls_statelog_client cls_timeindex_client cls_version_client
cls_replica_log_client cls_user_client curl global expat)
- if(HAVE_BOOST_ASIO_COROUTINE)
- target_compile_definitions(rgw_a PUBLIC "HAVE_BOOST_ASIO_COROUTINE")
- endif()
-
set(radosgw_srcs
rgw/rgw_fcgi_process.cc
rgw/rgw_loadgen_process.cc
install(TARGETS radosgw-object-expirer DESTINATION bin)
endif(${WITH_RADOSGW})
+# Now create a useable config.h
+configure_file(
+ ${CMAKE_SOURCE_DIR}/src/include/config-h.in.cmake
+ ${CMAKE_BINARY_DIR}/include/acconfig.h
+)
+
# Everything you need to spin up a cluster with vstart.sh
add_custom_target(vstart DEPENDS
ceph-osd
#define CONFIG_H
/* fallocate(2) is supported */
-#cmakedefine CEPH_HAVE_FALLOCATE
+#cmakedefine CEPH_HAVE_FALLOCATE
-/* mallinfo(3) is supported */
-#cmakedefine HAVE_MALLINFO
+/* Define to 1 if you have the `posix_fadvise' function. */
+#cmakedefine HAVE_POSIX_FADVISE 1
-/* posix_fadvise is supported */
-#cmakedefine HAVE_POSIX_FADVISE
+/* Define to 1 if you have the `posix_fallocate' function. */
+#cmakedefine HAVE_POSIX_FALLOCATE 1
-/* posix_fallocate is supported */
-#cmakedefine HAVE_POSIX_FALLOCATE
+/* Define to 1 if you have the `syncfs' function. */
+#cmakedefine HAVE_SYS_SYNCFS 1
-/* Define if darwin/osx */
-#cmakedefine DARWIN
+/* sync_file_range(2) is supported */
+#cmakedefine HAVE_SYNC_FILE_RANGE
-/* Define if you want C_Gather debugging */
-#cmakedefine DEBUG_GATHER
+/* Define if you have mallinfo */
+#cmakedefine HAVE_MALLINFO
-/* Define if enabling coverage. */
-#cmakedefine ENABLE_COVERAGE
+/* Define to 1 if you have the `pwritev' function. */
+#cmakedefine HAVE_PWRITEV 1
-/* FastCGI headers are in /usr/include/fastcgi */
-#cmakedefine FASTCGI_INCLUDE_DIR
+/* Define to 1 if you have the <sys/mount.h> header file. */
+#cmakedefine HAVE_SYS_MOUNT_H 1
-/* Define to 1 if you have the <arpa/inet.h> header file. */
-#cmakedefine HAVE_ARPA_INET_H 1
+/* Define to 1 if you have the <sys/param.h> header file. */
+#cmakedefine HAVE_SYS_PARAM_H 1
-/* have boost::random::discrete_distribution */
-#cmakedefine HAVE_BOOST_RANDOM_DISCRETE_DISTRIBUTION
+/* Define to 1 if you have the <sys/types.h> header file. */
+#cmakedefine HAVE_SYS_TYPES_H 1
-/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'.
- */
-#cmakedefine HAVE_DIRENT_H 1
+/* Define to 1 if you have the <sys/vfs.h> header file. */
+#cmakedefine HAVE_SYS_VFS_H 1
-/* Define to 1 if you have the <dlfcn.h> header file. */
-#cmakedefine HAVE_DLFCN_H 1
+/* Define to 1 if you have the <execinfo.h> header file. */
+#cmakedefine HAVE_EXECINFO_H 1
-/* linux/fiemap.h was found, fiemap ioctl will be used */
-#cmakedefine HAVE_FIEMAP_H 1
+/* Define to 1 if the system has the type `__be16'. */
+#cmakedefine HAVE___BE16 1
-/* Define to 1 if you have the `fuse_getgroups' function. */
-#cmakedefine HAVE_FUSE_GETGROUPS 1
+/* Define to 1 if the system has the type `__be32'. */
+#cmakedefine HAVE___BE32 1
-/* Define to 1 if you have the <linux/types.h> header file. */
-#cmakedefine HAVE_LINUX_TYPES_H 1
+/* Define to 1 if the system has the type `__be64'. */
+#cmakedefine HAVE___BE64 1
-/* Define to 1 if you have the <inttypes.h> header file. */
-#cmakedefine HAVE_INTTYPES_H 1
+/* Define to 1 if the system has the type `__le16'. */
+#cmakedefine HAVE___LE16 1
-/* Defined if LevelDB supports bloom filters */
-#cmakedefine HAVE_LEVELDB_FILTER_POLICY
+/* Define to 1 if the system has the type `__le32'. */
+#cmakedefine HAVE___LE32 1
-/* Defined if you don't have atomic_ops */
-#cmakedefine HAVE_LIBAIO
+/* Define to 1 if the system has the type `__le64'. */
+#cmakedefine HAVE___LE64 1
-/* Define to 1 if you have the `boost_system' library (-lboost_system). */
-#cmakedefine HAVE_LIBBOOST_SYSTEM 1
+/* Define to 1 if the system has the type `__s16'. */
+#cmakedefine HAVE___S16 1
-/* Define to 1 if you have the `boost_system-mt' library (-lboost_system-mt).
- */
-#cmakedefine HAVE_LIBBOOST_SYSTEM_MT 1
+/* Define to 1 if the system has the type `__s32'. */
+#cmakedefine HAVE___S32 1
-/* Define to 1 if you have the `boost_thread' library (-lboost_thread). */
-#cmakedefine HAVE_LIBBOOST_THREAD 1
+/* Define to 1 if the system has the type `__s64'. */
+#cmakedefine HAVE___S64 1
-/* Define to 1 if you have the `boost_thread-mt' library (-lboost_thread-mt).
- */
-#cmakedefine HAVE_LIBBOOST_THREAD_MT 1
+/* Define to 1 if the system has the type `__s8'. */
+#cmakedefine HAVE___S8 1
-/* Define if you have fuse */
-#cmakedefine HAVE_LIBFUSE
+/* Define to 1 if the system has the type `__u16'. */
+#cmakedefine HAVE___U16 1
-/* Define to 1 if you have the `profiler' library (-lprofiler). */
-#cmakedefine HAVE_LIBPROFILER 1
+/* Define to 1 if the system has the type `__u32'. */
+#cmakedefine HAVE___U32 1
-/* Define to 1 if you have the `snappy' library (-lsnappy). */
-#cmakedefine HAVE_LIBSNAPPY 1
+/* Define to 1 if the system has the type `__u64'. */
+#cmakedefine HAVE___U64 1
-/* Define if you have jemalloc */
-#cmakedefine HAVE_LIBJEMALLOC
-
-/* Define if you have tcmalloc */
-#cmakedefine HAVE_LIBTCMALLOC
+/* Define to 1 if the system has the type `__u8'. */
+#cmakedefine HAVE___U8 1
-/* Define if you have tcmalloc */
-#cmakedefine HAVE_LIBTCMALLOC_MINIMAL
-
-/* Define to 1 if you have the <memory.h> header file. */
-#cmakedefine HAVE_MEMORY_H 1
+/* Define if you have res_nquery */
+#cmakedefine HAVE_RES_NQUERY
-/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */
-#cmakedefine HAVE_NDIR_H 1
+/* Defined if you don't have atomic_ops */
+#cmakedefine NO_ATOMIC_OPS
-/* Define to 1 if you have the <netdb.h> header file. */
-#cmakedefine HAVE_NETDB_H 1
+/* Defined if you have libaio */
+#cmakedefine HAVE_LIBAIO
-/* Define to 1 if you have the <netinet/in.h> header file. */
-#cmakedefine HAVE_NETINET_IN_H 1
+/* Defined if OpenLDAP enabled */
+#cmakedefine HAVE_OPENLDAP
-/* Define if you have perftools profiler enabled */
-#cmakedefine HAVE_PROFILER
+/* Define if you have fuse */
+#cmakedefine HAVE_LIBFUSE
-/* Define if you have POSIX threads libraries and header files. */
-#cmakedefine HAVE_PTHREAD
+/* Define to 1 if you have libxfs */
+#cmakedefine HAVE_LIBXFS 1
-/* Define to 1 if you have the <stdint.h> header file. */
-#cmakedefine HAVE_STDINT_H 1
+/* SPDK conditional compilation */
+#cmakedefine HAVE_SPDK
-/* Define to 1 if you have the <stdlib.h> header file. */
-#cmakedefine HAVE_STDLIB_H 1
+/* Defined if LevelDB supports bloom filters */
+#cmakedefine HAVE_LEVELDB_FILTER_POLICY
-/* Define to 1 if you have the <strings.h> header file. */
-#cmakedefine HAVE_STRINGS_H 1
+/* Define to 1 if you have the <gperftools/heap-profiler.h> header file. */
+#cmakedefine HAVE_GPERFTOOLS_HEAP_PROFILER_H 1
-/* Define to 1 if you have the <string.h> header file. */
-#cmakedefine HAVE_STRING_H 1
+/* Define to 1 if you have the <gperftools/malloc_extension.h> header file. */
+#cmakedefine HAVE_GPERFTOOLS_MALLOC_EXTENSION_H 1
-/* Define to 1 if you have the `syncfs' function. */
-#cmakedefine HAVE_SYNCFS 1
+/* Define to 1 if you have the <gperftools/profiler.h> header file. */
+#cmakedefine HAVE_GPERFTOOLS_PROFILER_H 1
-/* Define to 1 if you have the `pwritev' function. */
-#cmakedefine HAVE_PWRITEV 1
+/* Define if you have tcmalloc */
+#cmakedefine HAVE_LIBTCMALLOC
-/* sync_file_range(2) is supported */
-#cmakedefine HAVE_SYNC_FILE_RANGE
+/* Define if you have jemalloc */
+#cmakedefine HAVE_LIBJEMALLOC
-/* Define to 1 if you have the <syslog.h> header file. */
-#cmakedefine HAVE_SYSLOG_H 1
+/* Define if have curl_multi_wait() */
+#cmakedefine HAVE_CURL_MULTI_WAIT 1
-/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'.
- */
-#cmakedefine HAVE_SYS_DIR_H 1
+/* Define if using CryptoPP. */
+#cmakedefine USE_CRYPTOPP
-/* Define to 1 if you have the <sys/file.h> header file. */
-#cmakedefine HAVE_SYS_FILE_H 1
+/* Define if using NSS. */
+#cmakedefine USE_NSS
-/* Define to 1 if you have the <sys/ioctl.h> header file. */
-#cmakedefine HAVE_SYS_IOCTL_H 1
+/* Accelio conditional compilation */
+#cmakedefine HAVE_XIO
-/* Define to 1 if you have the <sys/mount.h> header file. */
-#cmakedefine HAVE_SYS_MOUNT_H 1
+/* define if radosgw enabled */
+#cmakedefine WITH_RADOSGW
-/* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR'.
- */
-#cmakedefine HAVE_SYS_NDIR_H 1
+/* define if HAVE_THREAD_SAFE_RES_QUERY */
+#cmakedefine HAVE_THREAD_SAFE_RES_QUERY
-/* Define to 1 if you have the <sys/param.h> header file. */
-#cmakedefine HAVE_SYS_PARAM_H 1
+/* define if HAVE_REENTRANT_STRSIGNAL */
+#cmakedefine HAVE_REENTRANT_STRSIGNAL
-/* Define to 1 if you have the <sys/socket.h> header file. */
-#cmakedefine HAVE_SYS_SOCKET_H 1
+/* Define if you want to use LTTng */
+#cmakedefine WITH_LTTNG
-/* Define to 1 if you have the <sys/statvfs.h> header file. */
-#cmakedefine HAVE_SYS_STATVFS_H 1
+/* Define if you want to use Babeltrace */
+#cmakedefine WITH_BABELTRACE
-/* Define to 1 if you have the <sys/stat.h> header file. */
-#cmakedefine HAVE_SYS_STAT_H 1
+/* Define to 1 if you have the <babeltrace/babeltrace.h> header file. */
+#cmakedefine HAVE_BABELTRACE_BABELTRACE_H 1
-/* we have syncfs */
-#cmakedefine HAVE_SYS_SYNCFS
+/* Define to 1 if you have the <babeltrace/ctf/events.h> header file. */
+#cmakedefine HAVE_BABELTRACE_CTF_EVENTS_H 1
-/* Define to 1 if you have the <sys/time.h> header file. */
-#cmakedefine HAVE_SYS_TIME_H 1
+/* Define to 1 if you have the <babeltrace/ctf/iterator.h> header file. */
+#cmakedefine HAVE_BABELTRACE_CTF_ITERATOR_H 1
-/* Define to 1 if you have the <sys/types.h> header file. */
-#cmakedefine HAVE_SYS_TYPES_H 1
+/* Define to 1 if you have the <arpa/nameser_compat.h> header file. */
+#cmakedefine HAVE_ARPA_NAMESER_COMPAT_H 1
-/* Define to 1 if you have the <sys/vfs.h> header file. */
-#cmakedefine HAVE_SYS_VFS_H 1
+/* FastCGI headers are in /usr/include/fastcgi */
+#cmakedefine FASTCGI_INCLUDE_DIR
-/* Define to 1 if you have <sys/wait.h> that is POSIX.1 compatible. */
-#ifndef HAVE_SYS_WAIT_H
-#cmakedefine HAVE_SYS_WAIT_H
-#endif
+/* splice(2) is supported */
+#cmakedefine CEPH_HAVE_SPLICE
-/* Define to 1 if you have the <sys/xattr.h> header file. */
-#cmakedefine HAVE_SYS_XATTR_H
+/* Define if you want C_Gather debugging */
+#cmakedefine DEBUG_GATHER
-#ifndef HAVE_UNISTD_H
-/* Define to 1 if you have the <unistd.h> header file. */
-#cmakedefine HAVE_UNISTD_H
-#endif
+/* Define to 1 if you have the `getgrouplist' function. */
+#cmakedefine HAVE_GETGROUPLIST 1
-#ifndef HAVE_UTIME_H
-/* Define to 1 if you have the <utime.h> header file. */
-#cmakedefine HAVE_UTIME_H
-#endif
+/* LTTng is disabled, so define this macro to be nothing. */
+#cmakedefine tracepoint
-/* Define if you have the <execinfo.h> header file. */
-#cmakedefine HAVE_EXECINFO_H
+/* have boost::asio::coroutine */
+#cmakedefine HAVE_BOOST_ASIO_COROUTINE
-/* Define to 1 if strerror_r returns char *. */
-#cmakedefine STRERROR_R_CHAR_P 1
+/* Define to 1 if you have fdatasync. */
+#cmakedefine HAVE_FDATASYNC 1
-/* Define to the sub-directory in which libtool stores uninstalled libraries.
- */
-#cmakedefine LT_OBJDIR
+/* Define to 1 if you have the <inttypes.h> header file. */
+#cmakedefine HAVE_INTTYPES_H 1
-/* Defined if you do not have atomic_ops */
-#cmakedefine NO_ATOMIC_OPS
+/* Defined if you have librocksdb enabled */
+#cmakedefine HAVE_LIBROCKSDB
-/* Define to 1 if your C compiler doesn't accept -c and -o together. */
-#cmakedefine NO_MINUS_C_MINUS_O
+/* Define to 1 if you have the <valgrind/helgrind.h> header file. */
+#cmakedefine HAVE_VALGRIND_HELGRIND_H 1
-/* Name of package */
-#cmakedefine PACKAGE
+/* Define to 1 if you have the <stdint.h> header file. */
+#cmakedefine HAVE_STDINT_H 1
-/* Define to the address where bug reports for this package should be sent. */
-#cmakedefine PACKAGE_BUGREPORT
+/* Define to 1 if you have the <sys/prctl.h> header file. */
+#cmakedefine HAVE_SYS_PRCTL_H 1
-/* Define to the full name of this package. */
-#cmakedefine PACKAGE_NAME
+/* Define to 1 if you have the <linux/types.h> header file. */
+#cmakedefine HAVE_LINUX_TYPES_H 1
-/* Define to the full name and version of this package. */
-#cmakedefine PACKAGE_STRING
+/* Define to 1 if you have the <linux/version.h> header file. */
+#cmakedefine HAVE_LINUX_VERSION_H 1
-/* Define to the one symbol short name of this package. */
-#cmakedefine PACKAGE_TARNAME
+/* Define to 1 if you have sched.h. */
+#cmakedefine HAVE_SCHED 1
-/* Define to the home page for this package. */
-#cmakedefine PACKAGE_URL
+/* Support SSE (Streaming SIMD Extensions) instructions */
+#cmakedefine HAVE_SSE
-/* Define to the version of this package. */
-#cmakedefine PACKAGE_VERSION
+/* Support SSE2 (Streaming SIMD Extensions 2) instructions */
+#cmakedefine HAVE_SSE2
-/* Defined if you want pg ref debugging */
-#cmakedefine PG_DEBUG_REFS
+/* Define to 1 if you have the `pipe2' function. */
+#cmakedefine HAVE_PIPE2 1
-/* Define to necessary symbol if this constant uses a non-standard name on
- your system. */
-#cmakedefine PTHREAD_CREATE_JOINABLE
+/* Support NEON instructions */
+#cmakedefine HAVE_NEON
-/* Define to 1 if you have the ANSI C header files. */
-#cmakedefine STDC_HEADERS
+/* Define if you have pthread_spin_init */
+#cmakedefine HAVE_PTHREAD_SPINLOCK
-/* Define if using CryptoPP. */
-#cmakedefine USE_CRYPTOPP
+/* name_to_handle_at exists */
+#cmakedefine HAVE_NAME_TO_HANDLE_AT
-/* Define if using NSS. */
-#cmakedefine USE_NSS
+/* we have a recent yasm and are x86_64 */
+#cmakedefine HAVE_GOOD_YASM_ELF64
-/* Version number of package */
-#cmakedefine VERSION "@VERSION@"
+/* yasm can also build the isa-l */
+#cmakedefine HAVE_BETTER_YASM_ELF64
-/* define if radosgw enabled */
-#cmakedefine WITH_RADOSGW
+/* Define to 1 if strerror_r returns char *. */
+#cmakedefine STRERROR_R_CHAR_P 1
-/* Defined if XIO */
-#cmakedefine HAVE_XIO
+/* Defined if you have libzfs enabled */
+#cmakedefine HAVE_LIBZFS
-/* Defined if LTTNG */
-#cmakedefine WITH_LTTNG 1
+/* Define if the C complier supports __func__ */
+#cmakedefine HAVE_FUNC
-/* Defined if Babeltrace */
-#cmakedefine WITH_BABELTRACE 1
+/* Define if the C complier supports __PRETTY_FUNCTION__ */
+#cmakedefine HAVE_PRETTY_FUNC
-/* Define to 1 if you have the <babeltrace/babeltrace.h> header file. */
-#cmakedefine HAVE_BABELTRACE_BABELTRACE_H 1
+/* F_SETPIPE_SZ is supported */
+#cmakedefine CEPH_HAVE_SETPIPE_SZ
-/* Define to 1 if you have the <babeltrace/ctf/events.h> header file. */
-#cmakedefine HAVE_BABELTRACE_CTF_EVENTS_H 1
+/* Have eventfd extension. */
+#cmakedefine HAVE_EVENTFD
-/* Defined if you have librocksdb enabled */
-#cmakedefine HAVE_LIBROCKSDB
+/* Define if enabling coverage. */
+#cmakedefine ENABLE_COVERAGE
-/* Defined if new gperftools */
-#cmakedefine HAVE_GPERFTOOLS_HEAP_PROFILER_H
-#cmakedefine HAVE_GPERFTOOLS_MALLOC_EXTENSION_H
-#cmakedefine HAVE_GPERFTOOLS_PROFILER_H
+/* Defined if you want pg ref debugging */
+#cmakedefine PG_DEBUG_REFS
-/* res_nquery is supported */
-#cmakedefine HAVE_RES_NQUERY
+/* Support ARMv8 CRC instructions */
+#cmakedefine HAVE_ARMV8_CRC
-/* res_query is thread safe */
-#cmakedefine HAVE_THREAD_SAFE_RES_QUERY
+/* Define if you have struct stat.st_mtimespec.tv_nsec */
+#cmakedefine HAVE_STAT_ST_MTIMESPEC_TV_NSEC
-/* Define if HAVE_REENTRANT_STRSIGNAL */
-#cmakedefine HAVE_REENTRANT_STRSIGNAL
+/* Define if you have struct stat.st_mtim.tv_nsec */
+#cmakedefine HAVE_STAT_ST_MTIM_TV_NSEC
-/* Defined if curl headers define curl_multi_wait() */
-#cmakedefine HAVE_CURL_MULTI_WAIT 1
+/* Define if compiler supports static_cast<> */
+#cmakedefine HAVE_STATIC_CAST
-/* Define if you have spdk */
-#cmakedefine HAVE_SPDK 1
+/* Version number of package */
+#cmakedefine VERSION "@VERSION@"
#endif /* CONFIG_H */