Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

pgRouting 3.7.0 fails to compile under mingw64 gcc 13.2 #2680

Open
robe2 opened this issue Nov 19, 2024 · 1 comment
Open

pgRouting 3.7.0 fails to compile under mingw64 gcc 13.2 #2680

robe2 opened this issue Nov 19, 2024 · 1 comment
Labels

Comments

@robe2
Copy link
Member

robe2 commented Nov 19, 2024

I'm in the middle of switching my old mingw gcc 8.1 chain to my new mingw gcc 13.2 chain

Problem
While compiling and regressing works fine under my gcc 8.1 chain, it's failing at 59% of compile.
I've also tried pgRouting 3.6.2 and pgRouting 3.5.1, to rule out it was recent changes, and those fail as well.

This is compiling against PG17. I haven't tried yet compiling with other versions of PostgreSQL.

Here is the output

[ 59%] Built target bellman_ford
make -f src/cpp_common/CMakeFiles/cpp_common.dir/build.make src/cpp_common/CMakeFiles/cpp_common.dir/depend
make[2]: Entering directory '/projects/pgrouting/pgrouting-git/buildv3.7.0w64'
C:/ming64/mingw64/bin/cmake.exe -E cmake_depends "Unix Makefiles" C:/ming64/projects/pgrouting/pgrouting-git C:/ming64/projects/pgrouting/pgrouting-git/src/cpp_common C:/ming64/projects/pgrouting/pgrouting-git/buildv3.7.0w64 C:/ming64/projects/pgrouting/pgrouting-git/buildv3.7.0w64/src/cpp_common C:/ming64/projects/pgrouting/pgrouting-git/buildv3.7.0w64/src/cpp_common/CMakeFiles/cpp_common.dir/DependInfo.cmake "--color="
make[2]: Leaving directory '/projects/pgrouting/pgrouting-git/buildv3.7.0w64'
make -f src/cpp_common/CMakeFiles/cpp_common.dir/build.make src/cpp_common/CMakeFiles/cpp_common.dir/build
make[2]: Entering directory '/projects/pgrouting/pgrouting-git/buildv3.7.0w64'
[ 59%] Building CXX object src/cpp_common/CMakeFiles/cpp_common.dir/Dmatrix.cpp.obj
cd C:/ming64/projects/pgrouting/pgrouting-git/buildv3.7.0w64/src/cpp_common && C:/ming64/mingw64/bin/c++.exe -DBOOST_ALLOW_DEPRECATED_HEADERS -DPGSQL_VERSION=17000 -DPROJECT_VERSION="3.7.0" @CMakeFiles/cpp_common.dir/includes_CXX.rsp -frounding-math -O3 -DNDEBUG -std=gnu++14 -Wsign-conversion -MD -MT src/cpp_common/CMakeFiles/cpp_common.dir/Dmatrix.cpp.obj -MF CMakeFiles/cpp_common.dir/Dmatrix.cpp.obj.d -o CMakeFiles/cpp_common.dir/Dmatrix.cpp.obj -c C:/ming64/projects/pgrouting/pgrouting-git/src/cpp_common/Dmatrix.cpp
In file included from C:/ming64/projects/pgrouting/pgrouting-git/src/cpp_common/Dmatrix.cpp:25:
C:/ming64/projects/pgrouting/pgrouting-git/include/cpp_common/Dmatrix.hpp:49:64: error: 'int64_t' was not declared in this scope
49 | explicit Dmatrix(const std::map<std::pair<double, double>, int64_t> &euclidean_data);
| ^~~~~~~
C:/ming64/projects/pgrouting/pgrouting-git/include/cpp_common/Dmatrix.hpp:37:1: note: 'int64_t' is defined in header ''; did you forget to '#include '?
36 | #include
+++ |+#include
37 |
C:/ming64/projects/pgrouting/pgrouting-git/include/cpp_common/Dmatrix.hpp:49:71: error: template argument 2 is invalid
49 | explicit Dmatrix(const std::map<std::pair<double, double>, int64_t> &euclidean_data);
| ^
C:/ming64/projects/pgrouting/pgrouting-git/include/cpp_common/Dmatrix.hpp:49:71: error: template argument 4 is invalid
C:/ming64/projects/pgrouting/pgrouting-git/include/cpp_common/Dmatrix.hpp:70:17: error: 'int64_t' has not been declared
70 | bool has_id(int64_t id) const;
| ^~~~~~~
C:/ming64/projects/pgrouting/pgrouting-git/include/cpp_common/Dmatrix.hpp:77:22: error: 'int64_t' has not been declared
77 | size_t get_index(int64_t id) const;
| ^~~~~~~
C:/ming64/projects/pgrouting/pgrouting-git/include/cpp_common/Dmatrix.hpp:84:5: error: 'int64_t' does not name a type
84 | int64_t get_id(size_t idx) const;
| ^~~~~~~
C:/ming64/projects/pgrouting/pgrouting-git/include/cpp_common/Dmatrix.hpp:84:5: note: 'int64_t' is defined in header ''; did you forget to '#include '?
C:/ming64/projects/pgrouting/pgrouting-git/include/cpp_common/Dmatrix.hpp:104:21: error: 'int64_t' has not been declared
104 | double distance(int64_t i, int64_t j) const {
| ^~~~~~~
C:/ming64/projects/pgrouting/pgrouting-git/include/cpp_common/Dmatrix.hpp:104:32: error: 'int64_t' has not been declared
104 | double distance(int64_t i, int64_t j) const {
| ^~~~~~~
C:/ming64/projects/pgrouting/pgrouting-git/include/cpp_common/Dmatrix.hpp:120:17: error: 'int64_t' was not declared in this scope
120 | std::vector<int64_t> ids;
| ^~~~~~~
C:/ming64/projects/pgrouting/pgrouting-git/include/cpp_common/Dmatrix.hpp:120:17: note: 'int64_t' is defined in header ''; did you forget to '#include '?
C:/ming64/projects/pgrouting/pgrouting-git/include/cpp_common/Dmatrix.hpp:120:24: error: template argument 1 is invalid
120 | std::vector<int64_t> ids;
| ^
C:/ming64/projects/pgrouting/pgrouting-git/include/cpp_common/Dmatrix.hpp:120:24: error: template argument 2 is invalid
C:/ming64/projects/pgrouting/pgrouting-git/include/cpp_common/Dmatrix.hpp: In member function 'size_t pgrouting::tsp::Dmatrix::size() const':
C:/ming64/projects/pgrouting/pgrouting-git/include/cpp_common/Dmatrix.hpp:90:37: error: request for member 'size' in '((const pgrouting::tsp::Dmatrix*)this)->pgrouting::tsp::Dmatrix::ids', which is of non-class type 'const int'
90 | size_t size() const {return ids.size();}

@robe2 robe2 added the bug label Nov 19, 2024
@robe2
Copy link
Member Author

robe2 commented Nov 19, 2024

Sorry forgot to include this top part:

-- CMAKE_BUILD_TYPE Release
-- The C compiler identification is GNU 13.2.0
-- The CXX compiler identification is GNU 13.2.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: C:/ming64/mingw64/bin/cc.exe - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: C:/ming64/mingw64/bin/c++.exe - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found Git: C:/ming64/msys/usr/bin/git.exe (found version "2.44.0")
-- DOXYGEN_MINIMUM_VERSION=1.7
-- SPHINX_MINIMUM_VERSION=4.0
-- POSTGRESQL_MINIMUM_VERSION=13.0.0
-- BOOST_MINIMUM_VERSION=1.56.0
-- POSTGIS_MINIMUM_VERSION=3.0.0
-- Found Boost: C:/ming64/projects/boost/rel-1_86_0w64/lib/cmake/Boost-1.86.0/BoostConfig.cmake (found suitable version "1.86.0", minimum required is "1.56.0")
-- Found Perl: C:/ming64/msys/usr/bin/perl.exe (found version "5.38.2")
-- POSTGRESQL_PG_CONFIG is C:/ming64/projects/postgresql/rel/pg17w64/bin/pg_config.exe
-- POSTGRESQL_EXECUTABLE is C:/ming64/projects/postgresql/rel/pg17w64/bin/postgres.exe
-- POSTGRESQL_VERSION_STRING in FindPostgreSQL.cmake is PostgreSQL 17.0
-- POSTGRESQL_INCLUDE_DIR: C:/ming64/projects/postgresql/rel/pg17w64/include/server
-- POSTGRESQL_LIBRARIES: C:/ming64/projects/POSTGR1/rel/pg17w64/lib
-- POSTGRESQL_VERSION_STRING=PostgreSQL 17.0
-- POSTGRESQL_VERSION=17.0
-- PGSQL_VERSION=17000
-- PGSQL_VERSION=17000
-- LIBRARY_INSTALL_PATH C:/ming64/projects/POSTGR
1/rel/pg17w64/lib
-- Performing Test C_COMPILER_SUPPORTS_ROUNDING_MATH
-- Performing Test C_COMPILER_SUPPORTS_ROUNDING_MATH - Success
-- Performing Test CXX_COMPILER_SUPPORTS_ROUNDING_MATH
-- Performing Test CXX_COMPILER_SUPPORTS_ROUNDING_MATH - Success
-- Configuring done (4.6s)
-- Generating done (0.5s)

I added #include <cstdint> to include/cpp_common/Dmatrix.hpp as you suggested and that seems to have done the trick.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant