TileDB: Fails to build with GCC-13

 [21/482] Building CXX object tiledb/CMakeFiles/TILEDB_CORE_OBJECTS_STATIC.dir/sm/c_api/tiledb.cc.obj
  FAILED: tiledb/CMakeFiles/TILEDB_CORE_OBJECTS_STATIC.dir/sm/c_api/tiledb.cc.obj 
  D:\M\msys64\ucrt64\bin\g++.exe -DFMT_SHARED -DSPDLOG_COMPILED_LIB -DSPDLOG_FMT_EXTERNAL -DSPDLOG_FMT_EXTERNAL=1 -DSPDLOG_SHARED_LIB -DTILEDB_CORE_OBJECTS_EXPORTS -DTILEDB_STATIC_DEFINE -DTILEDB_STATS -D_FILE_OFFSET_BITS=64 -IC:/_/B/src/TileDB-2.15.3/tiledb/.. -IC:/_/B/src/TileDB-2.15.3/tiledb/../tiledb/sm/c_api -IC:/_/B/src/TileDB-2.15.3/tiledb/../external/include -IC:/_/B/src/TileDB-2.15.3/tiledb/../external/include/bitshuffle -IC:/_/B/src/TileDB-2.15.3/tiledb/../external/include/blosc -IC:/_/B/src/TileDB-2.15.3/external/blosc/include -IC:/_/B/src/build-UCRT64/tiledb/.. -IC:/_/B/src/TileDB-2.15.3/tiledb/../tiledb/sm/cpp_api -IC:/_/B/src/build-UCRT64/tiledb -march=nocona -msahf -mtune=generic -O2 -pipe -O3 -DNDEBUG -std=c++17 -fvisibility=hidden -Wall -Wextra -O3 -Wno-literal-suffix -mavx2 -MD -MT tiledb/CMakeFiles/TILEDB_CORE_OBJECTS_STATIC.dir/sm/c_api/tiledb.cc.obj -MF tiledb\CMakeFiles\TILEDB_CORE_OBJECTS_STATIC.dir\sm\c_api\tiledb.cc.obj.d -o tiledb/CMakeFiles/TILEDB_CORE_OBJECTS_STATIC.dir/sm/c_api/tiledb.cc.obj -c C:/_/B/src/TileDB-2.15.3/tiledb/sm/c_api/tiledb.cc
  In file included from C:/_/B/src/TileDB-2.15.3/tiledb/api/c_api_support/c_api_support.h:40,
                   from C:/_/B/src/TileDB-2.15.3/tiledb/sm/c_api/tiledb.cc:44:
  C:/_/B/src/TileDB-2.15.3/tiledb/api/c_api_support/exception_wrapper/exception_wrapper.h: In instantiation of 'constexpr const auto tiledb::api::api_entry_with_context<tiledb::api::tiledb_query_add_update_value>':
  C:/_/B/src/TileDB-2.15.3/tiledb/sm/c_api/tiledb.cc:5686:41:   required from 'constexpr const auto api_entry<tiledb::api::tiledb_query_add_update_value>'
  C:/_/B/src/TileDB-2.15.3/tiledb/sm/c_api/tiledb.cc:7032:10:   required from here
  C:/_/B/src/TileDB-2.15.3/tiledb/api/c_api_support/exception_wrapper/exception_wrapper.h:638:29: error: incomplete type 'tiledb::api::CAPIFunctionContext<tiledb::api::tiledb_query_add_update_value>' used in nested name specifier
    638 |     CAPIFunctionContext<f>::function_with_context;
        |                             ^~~~~~~~~~~~~~~~~~~~~
  C:/_/B/src/TileDB-2.15.3/tiledb/api/c_api_support/exception_wrapper/exception_wrapper.h: In instantiation of 'constexpr const auto tiledb::api::api_entry_with_context<tiledb::api::tiledb_consolidation_plan_get_num_nodes>':
  C:/_/B/src/TileDB-2.15.3/tiledb/sm/c_api/tiledb.cc:5686:41:   required from 'constexpr const auto api_entry<tiledb::api::tiledb_consolidation_plan_get_num_nodes>'
  C:/_/B/src/TileDB-2.15.3/tiledb/sm/c_api/tiledb.cc:8155:10:   required from here
  C:/_/B/src/TileDB-2.15.3/tiledb/api/c_api_support/exception_wrapper/exception_wrapper.h:638:29: error: incomplete type 'tiledb::api::CAPIFunctionContext<tiledb::api::tiledb_consolidation_plan_get_num_nodes>' used in nested name specifier
  C:/_/B/src/TileDB-2.15.3/tiledb/api/c_api_support/exception_wrapper/exception_wrapper.h: In instantiation of 'constexpr const auto tiledb::api::api_entry_with_context<tiledb::api::tiledb_consolidation_plan_get_num_fragments>':
  C:/_/B/src/TileDB-2.15.3/tiledb/sm/c_api/tiledb.cc:5686:41:   required from 'constexpr const auto api_entry<tiledb::api::tiledb_consolidation_plan_get_num_fragments>'
  C:/_/B/src/TileDB-2.15.3/tiledb/sm/c_api/tiledb.cc:8164:10:   required from here
  C:/_/B/src/TileDB-2.15.3/tiledb/api/c_api_support/exception_wrapper/exception_wrapper.h:638:29: error: incomplete type 'tiledb::api::CAPIFunctionContext<tiledb::api::tiledb_consolidation_plan_get_num_fragments>' used in nested name specifier
  C:/_/B/src/TileDB-2.15.3/tiledb/api/c_api_support/exception_wrapper/exception_wrapper.h: In instantiation of 'constexpr const auto tiledb::api::api_entry_with_context<tiledb::api::tiledb_consolidation_plan_get_fragment_uri>':
  C:/_/B/src/TileDB-2.15.3/tiledb/sm/c_api/tiledb.cc:5686:41:   required from 'constexpr const auto api_entry<tiledb::api::tiledb_consolidation_plan_get_fragment_uri>'
  C:/_/B/src/TileDB-2.15.3/tiledb/sm/c_api/tiledb.cc:8174:10:   required from here
  C:/_/B/src/TileDB-2.15.3/tiledb/api/c_api_support/exception_wrapper/exception_wrapper.h:638:29: error: incomplete type 'tiledb::api::CAPIFunctionContext<tiledb::api::tiledb_consolidation_plan_get_fragment_uri>' used in nested name specifier

About this issue

  • Original URL
  • State: closed
  • Created a year ago
  • Comments: 17 (10 by maintainers)

Commits related to this issue

Most upvoted comments

@MehdiChinoune would you mind to point us to the bootstrap (or cmake) configuration line in order to know what options are enabled? We’ve tried this with default options on both Ubuntu and Debian using gcc-13, but haven’t managed to reproduce.

# ../bootstrap  --prefix=/usr/local  --enable-serialization

root@544b90dedcbe:/work/build-g++13# g++-13 --version
g++-13 (Debian 13.1.0-3) 13.1.0
Copyright (C) 2023 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

root@544b90dedcbe:/work/build-g++13# 

(if we’re not able to reproduce on either Ubuntu or a fresh Debian (in a container) using gcc-13 with your config line, then I’ll get a windows mingw system set up and try to debug)

We use cmake instead of bootstrap. https://github.com/msys2/MINGW-packages/blob/master/mingw-w64-tiledb/PKGBUILD#L64