I just attempted to build the lasted tarbar on a freshly installed and updated devuan daedalus system. Linux devuan-ceph 6.1.0-37-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.140-1 (2025-05-22) x86_64 GNU/Linux I ran ./install-deps.sh as per https://docs.ceph.com/en/latest/install/build-ceph/ but ./do_cmake.sh resulted in an error. Has anyone any experience with this error ? root@devuan-ceph:/usr/local/src/ceph-19.2.2# cat /usr/local/src/ceph-19.2.2/build/CMakeFiles/CMakeError.log Determining if the function memset_s exists failed with the following output: Change Dir: /usr/local/src/ceph-19.2.2/build/CMakeFiles/CMakeScratch/TryCompile-7e7NF3 Run Build Command(s):/usr/bin/ninja cmTC_3bf24 && [1/2] Building C object CMakeFiles/cmTC_3bf24.dir/CheckFunctionExists.c.o [2/2] Linking C executable cmTC_3bf24 FAILED: cmTC_3bf24 : && /usr/bin/gcc-12 -DCHECK_FUNCTION_EXISTS=memset_s CMakeFiles/cmTC_3bf24.dir/CheckFunctionExists.c.o -o cmTC_3bf24 && : /usr/bin/ld: CMakeFiles/cmTC_3bf24.dir/CheckFunctionExists.c.o: in function `main': CheckFunctionExists.c:(.text+0x10): undefined reference to `memset_s' collect2: error: ld returned 1 exit status ninja: build stopped: subcommand failed. Determining if the function pthread_set_name_np exists failed with the following output: Change Dir: /usr/local/src/ceph-19.2.2/build/CMakeFiles/CMakeScratch/TryCompile-swTR94 Run Build Command(s):/usr/bin/ninja cmTC_2fec2 && [1/2] Building C object CMakeFiles/cmTC_2fec2.dir/CheckFunctionExists.c.o [2/2] Linking C executable cmTC_2fec2 FAILED: cmTC_2fec2 : && /usr/bin/gcc-12 -DCHECK_FUNCTION_EXISTS=pthread_set_name_np CMakeFiles/cmTC_2fec2.dir/CheckFunctionExists.c.o -o cmTC_2fec2 -lpthread && : /usr/bin/ld: CMakeFiles/cmTC_2fec2.dir/CheckFunctionExists.c.o: in function `main': CheckFunctionExists.c:(.text+0x10): undefined reference to `pthread_set_name_np' collect2: error: ld returned 1 exit status ninja: build stopped: subcommand failed. Determining if the function pthread_get_name_np exists failed with the following output: Change Dir: /usr/local/src/ceph-19.2.2/build/CMakeFiles/CMakeScratch/TryCompile-6fkgqm Run Build Command(s):/usr/bin/ninja cmTC_13767 && [1/2] Building C object CMakeFiles/cmTC_13767.dir/CheckFunctionExists.c.o [2/2] Linking C executable cmTC_13767 FAILED: cmTC_13767 : && /usr/bin/gcc-12 -DCHECK_FUNCTION_EXISTS=pthread_get_name_np CMakeFiles/cmTC_13767.dir/CheckFunctionExists.c.o -o cmTC_13767 -lpthread && : /usr/bin/ld: CMakeFiles/cmTC_13767.dir/CheckFunctionExists.c.o: in function `main': CheckFunctionExists.c:(.text+0x10): undefined reference to `pthread_get_name_np' collect2: error: ld returned 1 exit status ninja: build stopped: subcommand failed. Determining if the function getprogname exists failed with the following output: Change Dir: /usr/local/src/ceph-19.2.2/build/CMakeFiles/CMakeScratch/TryCompile-CZhew8 Run Build Command(s):/usr/bin/ninja cmTC_6c988 && [1/2] Building C object CMakeFiles/cmTC_6c988.dir/CheckFunctionExists.c.o [2/2] Linking C executable cmTC_6c988 FAILED: cmTC_6c988 : && /usr/bin/gcc-12 -DCHECK_FUNCTION_EXISTS=getprogname CMakeFiles/cmTC_6c988.dir/CheckFunctionExists.c.o -o cmTC_6c988 && : /usr/bin/ld: CMakeFiles/cmTC_6c988.dir/CheckFunctionExists.c.o: in function `main': CheckFunctionExists.c:(.text+0x10): undefined reference to `getprogname' collect2: error: ld returned 1 exit status ninja: build stopped: subcommand failed. Determining if files valgrind/helgrind.h exist failed with the following output: Change Dir: /usr/local/src/ceph-19.2.2/build/CMakeFiles/CMakeScratch/TryCompile-gqBwr4 Run Build Command(s):/usr/bin/ninja cmTC_c5529 && [1/2] Building C object CMakeFiles/cmTC_c5529.dir/HAVE_VALGRIND_HELGRIND_H.c.o FAILED: CMakeFiles/cmTC_c5529.dir/HAVE_VALGRIND_HELGRIND_H.c.o /usr/bin/gcc-12 -o CMakeFiles/cmTC_c5529.dir/HAVE_VALGRIND_HELGRIND_H.c.o -c /usr/local/src/ceph-19.2.2/build/CMakeFiles/CMakeScratch/TryCompile-gqBwr4/HAVE_VALGRIc /usr/local/src/ceph-19.2.2/build/CMakeFiles/CMakeScratch/TryCompile-gqBwr4/HAVE_VALGRIND_HELGRIND_H.c:2:10: fatal error: valgrind/helgrind.h: No such file or directory 2 | #include <valgrind/helgrind.h> | ^~~~~~~~~~~~~~~~~~~~~ compilation terminated. ninja: build stopped: subcommand failed. Source: /* */ #include <valgrind/helgrind.h> int main(void){return 0;} Performing C SOURCE FILE Test HAVE_STAT_ST_MTIMESPEC_TV_NSEC failed with the following output: Change Dir: /usr/local/src/ceph-19.2.2/build/CMakeFiles/CMakeScratch/TryCompile-sKMpCv Run Build Command(s):/usr/bin/ninja cmTC_b96bc && [1/2] Building C object CMakeFiles/cmTC_b96bc.dir/src.c.o FAILED: CMakeFiles/cmTC_b96bc.dir/src.c.o /usr/bin/gcc-12 -DHAVE_STAT_ST_MTIMESPEC_TV_NSEC -o CMakeFiles/cmTC_b96bc.dir/src.c.o -c /usr/local/src/ceph-19.2.2/build/CMakeFiles/CMakeScratch/TryCompile-sKMpCv/c /usr/local/src/ceph-19.2.2/build/CMakeFiles/CMakeScratch/TryCompile-sKMpCv/src.c: In function ‘main’: /usr/local/src/ceph-19.2.2/build/CMakeFiles/CMakeScratch/TryCompile-sKMpCv/src.c:6:34: error: ‘struct stat’ has no member named ‘st_mtimespec’ 6 | (void)sizeof(((struct stat *)0)->st_mtimespec.tv_nsec); | ^~ ninja: build stopped: subcommand failed. Source file was: #include <sys/stat.h> int main() { (void)sizeof(((struct stat *)0)->st_mtimespec.tv_nsec); return 0; } Performing C++ SOURCE FILE Test HAVE_CXX11_ATOMIC failed with the following output: Change Dir: /usr/local/src/ceph-19.2.2/build/CMakeFiles/CMakeScratch/TryCompile-Qzk4En Run Build Command(s):/usr/bin/ninja cmTC_ba8d6 && [1/2] Building CXX object CMakeFiles/cmTC_ba8d6.dir/src.cxx.o [2/2] Linking CXX executable cmTC_ba8d6 FAILED: cmTC_ba8d6 : && /usr/bin/g++-12 -std=c++11 CMakeFiles/cmTC_ba8d6.dir/src.cxx.o -o cmTC_ba8d6 && : /usr/bin/ld: CMakeFiles/cmTC_ba8d6.dir/src.cxx.o: in function `std::atomic<tagged_ptr>::store(tagged_ptr, std::memory_order)': src.cxx:(.text._ZNSt6atomicI10tagged_ptrE5storeES0_St12memory_order[_ZNSt6atomicI10tagged_ptrE5storeES0_St12memory_order]+0x62): undefined reference to `__atomic_stor' /usr/bin/ld: CMakeFiles/cmTC_ba8d6.dir/src.cxx.o: in function `std::atomic<tagged_ptr>::load(std::memory_order) const': src.cxx:(.text._ZNKSt6atomicI10tagged_ptrE4loadESt12memory_order[_ZNKSt6atomicI10tagged_ptrE4loadESt12memory_order]+0x2d): undefined reference to `__atomic_load_16' /usr/bin/ld: CMakeFiles/cmTC_ba8d6.dir/src.cxx.o: in function `std::atomic<tagged_ptr>::compare_exchange_strong(tagged_ptr&, tagged_ptr, std::memory_order, std::memor: src.cxx:(.text._ZNSt6atomicI10tagged_ptrE23compare_exchange_strongERS0_S0_St12memory_orderS3_[_ZNSt6atomicI10tagged_ptrE23compare_exchange_strongERS0_S0_St12memory_or' collect2: error: ld returned 1 exit status ninja: build stopped: subcommand failed. Source file was: #include <atomic> #include <cstdint> #include <cstddef> #if defined(__SIZEOF_INT128__) // Boost needs 16-byte atomics for tagged pointers. // These are implemented via inline instructions on the platform // if 16-byte alignment can be proven, and are delegated to libatomic // library routines otherwise. Whether or not alignment is provably // OK for a std::atomic unfortunately depends on compiler version and // optimization levels, and also on the details of the expression. // We specifically test access via an otherwise unknown pointer here // to ensure we get the most complex case. If this access can be // done without libatomic, then all accesses can be done. struct tagged_ptr { int* ptr; std::size_t tag; }; void atomic16(std::atomic<tagged_ptr> *ptr) __attribute__ ((used)); void atomic16(std::atomic<tagged_ptr> *ptr) { tagged_ptr p{nullptr, 1}; ptr->store(p); tagged_ptr f = ptr->load(); tagged_ptr new_tag{nullptr, 0}; ptr->compare_exchange_strong(f, new_tag); } #endif int main() { #if defined(__SIZEOF_INT128__) std::atomic<tagged_ptr> ptr; atomic16(&ptr); #endif std::atomic<uint8_t> w1; std::atomic<uint16_t> w2; std::atomic<uint32_t> w4; std::atomic<uint64_t> w8; return w1 + w2 + w4 + w8; }