rocksdb icon indicating copy to clipboard operation
rocksdb copied to clipboard

rocksdb 10.0.1 fails to build with GCC 15

Open amadio opened this issue 10 months ago • 3 comments

I see many errors like shown below, which means missing includes for uint64_t need to be added:

FAILED: CMakeFiles/rocksdb.dir/db/blob/blob_file_meta.cc.o
/usr/bin/g++-15 -DBZIP2 -DGFLAGS=1 -DGFLAGS_IS_A_DLL=0 -DLZ4 -DNUMA -DOS_LINUX -DROCKSDB_AUXV_GETAUXVAL_PRESENT -DROCKSDB_FALLOCATE_PRESENT -DROCKSDB_IOURING_PRESENT -DROCKSDB_LIB_IO_POSIX -DROCKSDB_MALLOC_USABLE_SIZE -DROCKSDB_PLATFORM_POSIX -DROCKSDB_PTHREAD_ADAPTIVE_MUTEX -DROCKSDB_RANGESYNC_PRESENT -DROCKSDB_SCHED_GETCPU_PRESENT -DSNAPPY -DTBB -DZLIB -DZSTD -I/srv/portage/dev-libs/rocksdb-9.10.0/work/rocksdb-9.10.0 -I/srv/portage/dev-libs/rocksdb-9.10.0/work/rocksdb-9.10.0/include -isystem /srv/portage/dev-libs/rocksdb-9.10.0/work/rocksdb-9.10.0/third-party/gtest-1.8.1/fused-src  -O2 -march=native -Wl,--build-id -gdwarf-4 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -w -W -Wextra -Wall -pthread -Wsign-compare -Wshadow -Wno-unused-parameter -Wno-unused-variable -Woverloaded-virtual -Wnon-virtual-dtor -Wno-missing-field-initializers -Wno-strict-aliasing -Wno-invalid-offsetof -fno-builtin-memcmp  -DROCKSDB_USE_RTTI -std=gnu++17 -MD -MT CMakeFiles/rocksdb.dir/db/blob/blob_file_meta.cc.o -MF CMakeFiles/rocksdb.dir/db/blob/blob_file_meta.cc.o.d -o CMakeFiles/rocksdb.dir/db/blob/blob_file_meta.cc.o -c /srv/portage/dev-libs/rocksdb-9.10.0/work/rocksdb-9.10.0/db/blob/blob_file_meta.cc
In file included from /srv/portage/dev-libs/rocksdb-9.10.0/work/rocksdb-9.10.0/db/blob/blob_file_meta.cc:6:
/srv/portage/dev-libs/rocksdb-9.10.0/work/rocksdb-9.10.0/db/blob/blob_file_meta.h:28:7: error: ‘uint64_t’ has not been declared
   28 |       uint64_t blob_file_number, uint64_t total_blob_count,
      |       ^~~~~~~~
/srv/portage/dev-libs/rocksdb-9.10.0/work/rocksdb-9.10.0/db/blob/blob_file_meta.h:28:34: error: ‘uint64_t’ has not been declared
   28 |       uint64_t blob_file_number, uint64_t total_blob_count,
      |                                  ^~~~~~~~
/srv/portage/dev-libs/rocksdb-9.10.0/work/rocksdb-9.10.0/db/blob/blob_file_meta.h:29:7: error: ‘uint64_t’ has not been declared
   29 |       uint64_t total_blob_bytes, std::string checksum_method,
      |       ^~~~~~~~
/srv/portage/dev-libs/rocksdb-9.10.0/work/rocksdb-9.10.0/db/blob/blob_file_meta.h:38:7: error: ‘uint64_t’ has not been declared
   38 |       uint64_t blob_file_number, uint64_t total_blob_count,
      |       ^~~~~~~~
/srv/portage/dev-libs/rocksdb-9.10.0/work/rocksdb-9.10.0/db/blob/blob_file_meta.h:38:34: error: ‘uint64_t’ has not been declared
   38 |       uint64_t blob_file_number, uint64_t total_blob_count,
      |                                  ^~~~~~~~
/srv/portage/dev-libs/rocksdb-9.10.0/work/rocksdb-9.10.0/db/blob/blob_file_meta.h:39:7: error: ‘uint64_t’ has not been declared
   39 |       uint64_t total_blob_bytes, std::string checksum_method,
      |       ^~~~~~~~
/srv/portage/dev-libs/rocksdb-9.10.0/work/rocksdb-9.10.0/db/blob/blob_file_meta.h:54:3: error: ‘uint64_t’ does not name a type
   54 |   uint64_t GetBlobFileSize() const;
      |   ^~~~~~~~
/srv/portage/dev-libs/rocksdb-9.10.0/work/rocksdb-9.10.0/db/blob/blob_file_meta.h:15:1: note: ‘uint64_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
   14 | #include "rocksdb/rocksdb_namespace.h"
  +++ |+#include <cstdint>
   15 |

amadio avatar Feb 02 '25 13:02 amadio

Same here with Fedora 42, clang 20.

davidkennedydev avatar Mar 26 '25 00:03 davidkennedydev

Still not fixed in latest release, updated title accordingly.

amadio avatar Apr 08 '25 07:04 amadio

I'm also on Fedora 42 w/ clang 20. I'm using this quick fix:

export CXXFLAGS="$CXXFLAGS -include cstdint"

dist1ll avatar Apr 28 '25 04:04 dist1ll