geos icon indicating copy to clipboard operation
geos copied to clipboard

static build failure on linux with gcc 13

Open jayvdb opened this issue 1 year ago • 9 comments

error: failed to run custom build command for `geos-src v0.2.1 (/home/jayvdb/rust/geos/sys/geos-src)`

Caused by:
  process didn't exit successfully: `/home/jayvdb/rust/geos/target/debug/build/geos-src-2ae16c31e7b1411f/build-script-build` (exit status: 101)
  --- stdout
  cargo:rerun-if-changed=build.rs
  CMAKE_TOOLCHAIN_FILE_x86_64-unknown-linux-gnu = None
  CMAKE_TOOLCHAIN_FILE_x86_64_unknown_linux_gnu = None
  HOST_CMAKE_TOOLCHAIN_FILE = None
  CMAKE_TOOLCHAIN_FILE = None
  CMAKE_GENERATOR_x86_64-unknown-linux-gnu = None
  CMAKE_GENERATOR_x86_64_unknown_linux_gnu = None
  HOST_CMAKE_GENERATOR = None
  CMAKE_GENERATOR = None
  CMAKE_PREFIX_PATH_x86_64-unknown-linux-gnu = None
  CMAKE_PREFIX_PATH_x86_64_unknown_linux_gnu = None
  HOST_CMAKE_PREFIX_PATH = None
  CMAKE_PREFIX_PATH = None
  CMAKE_x86_64-unknown-linux-gnu = None
  CMAKE_x86_64_unknown_linux_gnu = None
  HOST_CMAKE = None
  CMAKE = None
  running: cd "/home/jayvdb/rust/geos/target/debug/build/geos-src-674cec5a58a81688/out/build" && CMAKE_PREFIX_PATH="" "cmake" "/home/jayvdb/rust/geos/sys/geos-src/source" "-DBUILD_BENCHMARKS=OFF" "-DBUILD_TESTING=OFF" "-DGEOS_ENABLE_TESTS=OFF" "-DBUILD_DOCUMENTATION=OFF" "-DCMAKE_INSTALL_LIBDIR=lib" "-DBUILD_SHARED_LIBS=OFF" "-DGEOS_BUILD_STATIC=ON" "-DGEOS_BUILD_SHARED=OFF" "-DCMAKE_INSTALL_PREFIX=/home/jayvdb/rust/geos/target/debug/build/geos-src-674cec5a58a81688/out" "-DCMAKE_C_FLAGS= -ffunction-sections -fdata-sections -fPIC -m64" "-DCMAKE_C_COMPILER=/usr/bin/cc" "-DCMAKE_CXX_FLAGS= -ffunction-sections -fdata-sections -fPIC -m64" "-DCMAKE_CXX_COMPILER=/usr/bin/c++" "-DCMAKE_ASM_FLAGS= -ffunction-sections -fdata-sections -fPIC -m64" "-DCMAKE_ASM_COMPILER=/usr/bin/cc" "-DCMAKE_BUILD_TYPE=Release"
  -- The C compiler identification is GNU 13.0.1
  -- The CXX compiler identification is GNU 13.0.1
  -- Detecting C compiler ABI info
  -- Detecting C compiler ABI info - done
  -- Check for working C compiler: /usr/bin/cc - 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: /usr/bin/c++ - skipped
  -- Detecting CXX compile features
  -- Detecting CXX compile features - done
  -- GEOS: Version 3.11.0
  -- GEOS: C API Version 1.17.0
  -- GEOS: JTS port 1.18.0
  -- GEOS: Build type: Release
  -- GEOS: Run-time output: /home/jayvdb/rust/geos/target/debug/build/geos-src-674cec5a58a81688/out/build/bin
  -- GEOS: Archives output: /home/jayvdb/rust/geos/target/debug/build/geos-src-674cec5a58a81688/out/build/lib
  -- GEOS: Require C++11
  -- GEOS: Developer mode ENABLED
  -- Looking for pow in m
  -- Looking for pow in m - found
  -- GEOS: Build geosop ON
  -- GEOS: Build astyle OFF
  -- GEOS: Configured 'dist' target
  -- GEOS: Configured 'distcheck' target
  -- Configuring done (0.3s)
  -- Generating done (0.0s)
  -- Build files have been written to: /home/jayvdb/rust/geos/target/debug/build/geos-src-674cec5a58a81688/out/build
  running: cd "/home/jayvdb/rust/geos/target/debug/build/geos-src-674cec5a58a81688/out/build" && MAKEFLAGS="-j --jobserver-fds=18,19 --jobserver-auth=18,19" "cmake" "--build" "." "--target" "install" "--config" "Release"
  [  1%] Building C object src/deps/CMakeFiles/ryu.dir/ryu/d2s.c.o
  [  1%] Built target ryu
  [  1%] Building CXX object CMakeFiles/geos.dir/src/algorithm/BoundaryNodeRule.cpp.o
  [  1%] Building CXX object CMakeFiles/geos.dir/src/algorithm/Angle.cpp.o
  [  1%] Building CXX object CMakeFiles/geos.dir/src/algorithm/Area.cpp.o
  [  2%] Building CXX object CMakeFiles/geos.dir/src/algorithm/CGAlgorithmsDD.cpp.o
  [  2%] Building CXX object CMakeFiles/geos.dir/src/algorithm/Centroid.cpp.o
  [  2%] Building CXX object CMakeFiles/geos.dir/src/algorithm/ConvexHull.cpp.o
  [  2%] Building CXX object CMakeFiles/geos.dir/src/algorithm/Distance.cpp.o
  [  3%] Building CXX object CMakeFiles/geos.dir/src/algorithm/InteriorPointArea.cpp.o
  [  3%] Building CXX object CMakeFiles/geos.dir/src/algorithm/HCoordinate.cpp.o
  [  4%] Building CXX object CMakeFiles/geos.dir/src/algorithm/Intersection.cpp.o
  [  4%] Building CXX object CMakeFiles/geos.dir/src/algorithm/Length.cpp.o
  [  4%] Building CXX object CMakeFiles/geos.dir/src/algorithm/InteriorPointLine.cpp.o
  [  4%] Building CXX object CMakeFiles/geos.dir/src/algorithm/InteriorPointPoint.cpp.o
  [  4%] Building CXX object CMakeFiles/geos.dir/src/algorithm/MinimumBoundingCircle.cpp.o
  [  4%] Building CXX object CMakeFiles/geos.dir/src/algorithm/LineIntersector.cpp.o
  [  4%] Building CXX object CMakeFiles/geos.dir/src/algorithm/NotRepresentableException.cpp.o
  [  5%] Building CXX object CMakeFiles/geos.dir/src/algorithm/MinimumDiameter.cpp.o
  [  5%] Building CXX object CMakeFiles/geos.dir/src/algorithm/Orientation.cpp.o
  [  5%] Building CXX object CMakeFiles/geos.dir/src/algorithm/PointLocation.cpp.o
  [  6%] Building CXX object CMakeFiles/geos.dir/src/algorithm/PointLocator.cpp.o
  [  6%] Building CXX object CMakeFiles/geos.dir/src/algorithm/RayCrossingCounter.cpp.o
  [  6%] Building CXX object CMakeFiles/geos.dir/src/algorithm/RayCrossingCounterDD.cpp.o
  [  6%] Building CXX object CMakeFiles/geos.dir/src/algorithm/RobustDeterminant.cpp.o
  [  7%] Building CXX object CMakeFiles/geos.dir/src/algorithm/SimplePointInRing.cpp.o
  [  7%] Building CXX object CMakeFiles/geos.dir/src/algorithm/construct/LargestEmptyCircle.cpp.o
  [  7%] Building CXX object CMakeFiles/geos.dir/src/algorithm/construct/MaximumInscribedCircle.cpp.o
  [  7%] Building CXX object CMakeFiles/geos.dir/src/algorithm/distance/DiscreteFrechetDistance.cpp.o
  [  8%] Building CXX object CMakeFiles/geos.dir/src/algorithm/distance/DiscreteHausdorffDistance.cpp.o
  [  8%] Building CXX object CMakeFiles/geos.dir/src/algorithm/distance/DistanceToPoint.cpp.o
  [  8%] Building CXX object CMakeFiles/geos.dir/src/algorithm/hull/ConcaveHull.cpp.o
  [  8%] Building CXX object CMakeFiles/geos.dir/src/algorithm/hull/ConcaveHullOfPolygons.cpp.o
  [  9%] Building CXX object CMakeFiles/geos.dir/src/algorithm/hull/HullTri.cpp.o
  [  9%] Building CXX object CMakeFiles/geos.dir/src/algorithm/hull/HullTriangulation.cpp.o
  [  9%] Building CXX object CMakeFiles/geos.dir/src/algorithm/locate/IndexedPointInAreaLocator.cpp.o
  [  9%] Building CXX object CMakeFiles/geos.dir/src/algorithm/locate/PointOnGeometryLocator.cpp.o
  [ 10%] Building CXX object CMakeFiles/geos.dir/src/algorithm/locate/SimplePointInAreaLocator.cpp.o
  [ 10%] Building CXX object CMakeFiles/geos.dir/src/edgegraph/EdgeGraph.cpp.o
  [ 10%] Building CXX object CMakeFiles/geos.dir/src/edgegraph/EdgeGraphBuilder.cpp.o
  [ 10%] Building CXX object CMakeFiles/geos.dir/src/edgegraph/HalfEdge.cpp.o
  [ 11%] Building CXX object CMakeFiles/geos.dir/src/edgegraph/MarkHalfEdge.cpp.o
  [ 11%] Building CXX object CMakeFiles/geos.dir/src/geom/Coordinate.cpp.o
  [ 11%] Building CXX object CMakeFiles/geos.dir/src/geom/CoordinateArraySequence.cpp.o
  [ 11%] Building CXX object CMakeFiles/geos.dir/src/geom/CoordinateArraySequenceFactory.cpp.o
  [ 12%] Building CXX object CMakeFiles/geos.dir/src/geom/CoordinateSequence.cpp.o
  [ 12%] Building CXX object CMakeFiles/geos.dir/src/geom/DefaultCoordinateSequenceFactory.cpp.o
  [ 12%] Building CXX object CMakeFiles/geos.dir/src/geom/Dimension.cpp.o
  [ 12%] Building CXX object CMakeFiles/geos.dir/src/geom/Geometry.cpp.o
  [ 13%] Building CXX object CMakeFiles/geos.dir/src/geom/Envelope.cpp.o
  [ 13%] Building CXX object CMakeFiles/geos.dir/src/geom/GeometryCollection.cpp.o
  [ 13%] Building CXX object CMakeFiles/geos.dir/src/geom/GeometryComponentFilter.cpp.o
  [ 14%] Building CXX object CMakeFiles/geos.dir/src/geom/GeometryFactory.cpp.o
  [ 14%] Building CXX object CMakeFiles/geos.dir/src/geom/HeuristicOverlay.cpp.o
  [ 14%] Building CXX object CMakeFiles/geos.dir/src/geom/IntersectionMatrix.cpp.o
  [ 15%] Building CXX object CMakeFiles/geos.dir/src/geom/LineSegment.cpp.o
  [ 15%] Building CXX object CMakeFiles/geos.dir/src/geom/LineString.cpp.o
  [ 15%] Building CXX object CMakeFiles/geos.dir/src/geom/LinearRing.cpp.o
  [ 15%] Building CXX object CMakeFiles/geos.dir/src/geom/Location.cpp.o
  [ 15%] Building CXX object CMakeFiles/geos.dir/src/geom/MultiLineString.cpp.o
  [ 16%] Building CXX object CMakeFiles/geos.dir/src/geom/MultiPoint.cpp.o
  [ 16%] Building CXX object CMakeFiles/geos.dir/src/geom/MultiPolygon.cpp.o
  [ 16%] Building CXX object CMakeFiles/geos.dir/src/geom/Point.cpp.o
  [ 16%] Building CXX object CMakeFiles/geos.dir/src/geom/Polygon.cpp.o
  [ 17%] Building CXX object CMakeFiles/geos.dir/src/geom/Position.cpp.o
  [ 17%] Building CXX object CMakeFiles/geos.dir/src/geom/PrecisionModel.cpp.o
  [ 17%] Building CXX object CMakeFiles/geos.dir/src/geom/Quadrant.cpp.o
  [ 17%] Building CXX object CMakeFiles/geos.dir/src/geom/Triangle.cpp.o
  [ 18%] Building CXX object CMakeFiles/geos.dir/src/geom/prep/AbstractPreparedPolygonContains.cpp.o
  [ 18%] Building CXX object CMakeFiles/geos.dir/src/geom/prep/BasicPreparedGeometry.cpp.o
  [ 18%] Building CXX object CMakeFiles/geos.dir/src/geom/prep/PreparedGeometry.cpp.o
  [ 18%] Building CXX object CMakeFiles/geos.dir/src/geom/prep/PreparedGeometryFactory.cpp.o
  [ 19%] Building CXX object CMakeFiles/geos.dir/src/geom/prep/PreparedLineString.cpp.o
  [ 19%] Building CXX object CMakeFiles/geos.dir/src/geom/prep/PreparedLineStringDistance.cpp.o
  [ 19%] Building CXX object CMakeFiles/geos.dir/src/geom/prep/PreparedLineStringIntersects.cpp.o
  [ 19%] Building CXX object CMakeFiles/geos.dir/src/geom/prep/PreparedLineStringNearestPoints.cpp.o
  [ 20%] Building CXX object CMakeFiles/geos.dir/src/geom/prep/PreparedPoint.cpp.o
  [ 20%] Building CXX object CMakeFiles/geos.dir/src/geom/prep/PreparedPolygon.cpp.o
  [ 20%] Building CXX object CMakeFiles/geos.dir/src/geom/prep/PreparedPolygonContains.cpp.o
  [ 20%] Building CXX object CMakeFiles/geos.dir/src/geom/prep/PreparedPolygonContainsProperly.cpp.o
  [ 21%] Building CXX object CMakeFiles/geos.dir/src/geom/prep/PreparedPolygonCovers.cpp.o
  [ 21%] Building CXX object CMakeFiles/geos.dir/src/geom/prep/PreparedPolygonDistance.cpp.o
  [ 21%] Building CXX object CMakeFiles/geos.dir/src/geom/prep/PreparedPolygonIntersects.cpp.o
  [ 21%] Building CXX object CMakeFiles/geos.dir/src/geom/prep/PreparedPolygonPredicate.cpp.o
  [ 22%] Building CXX object CMakeFiles/geos.dir/src/geom/util/ComponentCoordinateExtracter.cpp.o
  [ 22%] Building CXX object CMakeFiles/geos.dir/src/geom/util/CoordinateOperation.cpp.o
  [ 22%] Building CXX object CMakeFiles/geos.dir/src/geom/util/Densifier.cpp.o
  [ 22%] Building CXX object CMakeFiles/geos.dir/src/geom/util/GeometryCombiner.cpp.o
  [ 23%] Building CXX object CMakeFiles/geos.dir/src/geom/util/GeometryEditor.cpp.o
  [ 23%] Building CXX object CMakeFiles/geos.dir/src/geom/util/GeometryFixer.cpp.o
  [ 23%] Building CXX object CMakeFiles/geos.dir/src/geom/util/GeometryMapper.cpp.o
  [ 24%] Building CXX object CMakeFiles/geos.dir/src/geom/util/GeometryTransformer.cpp.o
  [ 24%] Building CXX object CMakeFiles/geos.dir/src/geom/util/LinearComponentExtracter.cpp.o
  [ 24%] Building CXX object CMakeFiles/geos.dir/src/geom/util/NoOpGeometryOperation.cpp.o
  [ 24%] Building CXX object CMakeFiles/geos.dir/src/geom/util/PointExtracter.cpp.o
  [ 25%] Building CXX object CMakeFiles/geos.dir/src/geom/util/PolygonExtracter.cpp.o
  [ 25%] Building CXX object CMakeFiles/geos.dir/src/geom/util/ShortCircuitedGeometryVisitor.cpp.o
  [ 25%] Building CXX object CMakeFiles/geos.dir/src/geom/util/SineStarFactory.cpp.o
  [ 26%] Building CXX object CMakeFiles/geos.dir/src/geomgraph/DirectedEdge.cpp.o
  [ 26%] Building CXX object CMakeFiles/geos.dir/src/geomgraph/Depth.cpp.o
  [ 26%] Building CXX object CMakeFiles/geos.dir/src/geomgraph/DirectedEdgeStar.cpp.o
  [ 26%] Building CXX object CMakeFiles/geos.dir/src/geomgraph/Edge.cpp.o
  [ 26%] Building CXX object CMakeFiles/geos.dir/src/geomgraph/EdgeEnd.cpp.o
  [ 27%] Building CXX object CMakeFiles/geos.dir/src/geomgraph/EdgeEndStar.cpp.o
  [ 27%] Building CXX object CMakeFiles/geos.dir/src/geomgraph/EdgeIntersectionList.cpp.o

  --- stderr
  CMake Warning:
    Manually-specified variables were not used by the project:

      CMAKE_ASM_COMPILER
      CMAKE_ASM_FLAGS
      GEOS_BUILD_SHARED
      GEOS_BUILD_STATIC
      GEOS_ENABLE_TESTS


  In file included from /home/jayvdb/rust/geos/sys/geos-src/source/src/geomgraph/Depth.cpp:23:
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Depth.h:115:17: error: ‘uint8_t’ has not been declared
    115 |     bool isNull(uint8_t geomIndex) const
        |                 ^~~~~~~
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Depth.h:120:17: error: ‘uint8_t’ has not been declared
    120 |     bool isNull(uint8_t geomIndex, uint8_t posIndex) const
        |                 ^~~~~~~
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Depth.h:120:36: error: ‘uint8_t’ has not been declared
    120 |     bool isNull(uint8_t geomIndex, uint8_t posIndex) const
        |                                    ^~~~~~~
  In file included from /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Label.h:25,
                   from /home/jayvdb/rust/geos/sys/geos-src/source/src/geomgraph/Depth.cpp:24:
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h:143:52: error: ‘uint32_t’ has not been declared
    143 |     bool isEqualOnSide(const TopologyLocation& le, uint32_t locIndex) const
        |                                                    ^~~~~~~~
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h:226:10: error: ‘uint8_t’ in namespace ‘std’ does not name a type; did you mean ‘wint_t’?
    226 |     std::uint8_t locationSize;
        |          ^~~~~~~
        |          wint_t
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h: In constructor ‘geos::geomgraph::TopologyLocation::TopologyLocation(geos::geom::Location, geos::geom::Location, geos::geom::Location)’:
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h:82:11: error: class ‘geos::geomgraph::TopologyLocation’ does not have any field named ‘locationSize’
     82 |         : locationSize(3)
        |           ^~~~~~~~~~~~
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h: In constructor ‘geos::geomgraph::TopologyLocation::TopologyLocation(geos::geom::Location)’:
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h:90:11: error: class ‘geos::geomgraph::TopologyLocation’ does not have any field named ‘locationSize’
     90 |         : locationSize(1)
        |           ^~~~~~~~~~~~
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h: In copy constructor ‘geos::geomgraph::TopologyLocation::TopologyLocation(const geos::geomgraph::TopologyLocation&)’:
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h:98:11: error: class ‘geos::geomgraph::TopologyLocation’ does not have any field named ‘locationSize’
     98 |         , locationSize(gl.locationSize)
        |           ^~~~~~~~~~~~
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h:98:27: error: ‘const class geos::geomgraph::TopologyLocation’ has no member named ‘locationSize’; did you mean ‘location’?
     98 |         , locationSize(gl.locationSize)
        |                           ^~~~~~~~~~~~
        |                           location
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h: In member function ‘geos::geomgraph::TopologyLocation& geos::geomgraph::TopologyLocation::operator=(const geos::geomgraph::TopologyLocation&)’:
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h:104:9: error: ‘locationSize’ was not declared in this scope; did you mean ‘location’?
    104 |         locationSize = gl.locationSize;
        |         ^~~~~~~~~~~~
        |         location
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h:104:27: error: ‘const class geos::geomgraph::TopologyLocation’ has no member named ‘locationSize’; did you mean ‘location’?
    104 |         locationSize = gl.locationSize;
        |                           ^~~~~~~~~~~~
        |                           location
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h: In member function ‘geos::geom::Location geos::geomgraph::TopologyLocation::get(std::size_t) const’:
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h:111:23: error: ‘locationSize’ was not declared in this scope; did you mean ‘location’?
    111 |         if(posIndex < locationSize) {
        |                       ^~~~~~~~~~~~
        |                       location
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h: In member function ‘bool geos::geomgraph::TopologyLocation::isNull() const’:
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h:122:36: error: ‘locationSize’ was not declared in this scope; did you mean ‘location’?
    122 |         for(std::size_t i = 0; i < locationSize; ++i) {
        |                                    ^~~~~~~~~~~~
        |                                    location
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h: In member function ‘bool geos::geomgraph::TopologyLocation::isAnyNull() const’:
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h:135:36: error: ‘locationSize’ was not declared in this scope; did you mean ‘location’?
    135 |         for(std::size_t i = 0; i < locationSize; ++i) {
        |                                    ^~~~~~~~~~~~
        |                                    location
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h: In member function ‘bool geos::geomgraph::TopologyLocation::isArea() const’:
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h:150:16: error: ‘locationSize’ was not declared in this scope; did you mean ‘location’?
    150 |         return locationSize > 1;
        |                ^~~~~~~~~~~~
        |                location
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h: In member function ‘bool geos::geomgraph::TopologyLocation::isLine() const’:
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h:155:16: error: ‘locationSize’ was not declared in this scope; did you mean ‘location’?
    155 |         return locationSize == 1;
        |                ^~~~~~~~~~~~
        |                location
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h: In member function ‘void geos::geomgraph::TopologyLocation::flip()’:
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h:160:12: error: ‘locationSize’ was not declared in this scope; did you mean ‘location’?
    160 |         if(locationSize <= 1) {
        |            ^~~~~~~~~~~~
        |            location
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h: In member function ‘void geos::geomgraph::TopologyLocation::setAllLocationsIfNull(geos::geom::Location)’:
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h:174:36: error: ‘locationSize’ was not declared in this scope; did you mean ‘location’?
    174 |         for(std::size_t i = 0; i < locationSize; ++i) {
        |                                    ^~~~~~~~~~~~
        |                                    location
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h: In member function ‘bool geos::geomgraph::TopologyLocation::allPositionsEqual(geos::geom::Location) const’:
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h:206:36: error: ‘locationSize’ was not declared in this scope; did you mean ‘location’?
    206 |         for(std::size_t i = 0; i < locationSize; ++i) {
        |                                    ^~~~~~~~~~~~
        |                                    location
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Label.h: At global scope:
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Label.h:92:19: error: expected ‘)’ before ‘geomIndex’
     92 |     Label(uint32_t geomIndex, geom::Location onLoc)
        |          ~        ^~~~~~~~~~
        |                   )
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Label.h:95:5: error: expected unqualified-id before ‘{’ token
     95 |     {
        |     ^
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Label.h:132:19: error: expected ‘)’ before ‘geomIndex’
    132 |     Label(uint32_t geomIndex, geom::Location onLoc, geom::Location leftLoc, geom::Location rightLoc)
        |          ~        ^~~~~~~~~~
        |                   )
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Label.h:178:32: error: ‘uint32_t’ has not been declared
    178 |     geom::Location getLocation(uint32_t geomIndex, uint32_t posIndex) const
        |                                ^~~~~~~~
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Label.h:178:52: error: ‘uint32_t’ has not been declared
    178 |     geom::Location getLocation(uint32_t geomIndex, uint32_t posIndex) const
        |                                                    ^~~~~~~~
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Label.h:184:32: error: ‘uint32_t’ has not been declared
    184 |     geom::Location getLocation(uint32_t geomIndex) const
        |                                ^~~~~~~~
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Label.h:190:22: error: ‘uint32_t’ has not been declared
    190 |     void setLocation(uint32_t geomIndex, uint32_t posIndex, geom::Location location)
        |                      ^~~~~~~~
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Label.h:190:42: error: ‘uint32_t’ has not been declared
    190 |     void setLocation(uint32_t geomIndex, uint32_t posIndex, geom::Location location)
        |                                          ^~~~~~~~
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Label.h:196:22: error: ‘uint32_t’ has not been declared
    196 |     void setLocation(uint32_t geomIndex, geom::Location location)
        |                      ^~~~~~~~
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Label.h:202:26: error: ‘uint32_t’ has not been declared
    202 |     void setAllLocations(uint32_t geomIndex, geom::Location location)
        |                          ^~~~~~~~
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Label.h:208:32: error: ‘uint32_t’ has not been declared
    208 |     void setAllLocationsIfNull(uint32_t geomIndex, geom::Location location)
        |                                ^~~~~~~~
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Label.h:220:17: error: ‘uint32_t’ has not been declared
    220 |     bool isNull(uint32_t geomIndex) const
        |                 ^~~~~~~~
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Label.h:231:20: error: ‘uint32_t’ has not been declared
    231 |     bool isAnyNull(uint32_t geomIndex) const
        |                    ^~~~~~~~
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Label.h:242:17: error: ‘uint32_t’ has not been declared
    242 |     bool isArea(uint32_t geomIndex) const
        |                 ^~~~~~~~
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Label.h:248:17: error: ‘uint32_t’ has not been declared
    248 |     bool isLine(uint32_t geomIndex) const
        |                 ^~~~~~~~
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Label.h:254:42: error: ‘uint32_t’ has not been declared
    254 |     bool isEqualOnSide(const Label& lbl, uint32_t side) const
        |                                          ^~~~~~~~
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Label.h:260:28: error: ‘uint32_t’ has not been declared
    260 |     bool allPositionsEqual(uint32_t geomIndex, geom::Location loc) const
        |                            ^~~~~~~~
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Label.h:269:17: error: ‘uint32_t’ has not been declared
    269 |     void toLine(uint32_t geomIndex)
        |                 ^~~~~~~~
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Label.h: In static member function ‘static geos::geomgraph::Label geos::geomgraph::Label::toLineLabel(const geos::geomgraph::Label&)’:
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Label.h:71:13: error: ‘uint32_t’ was not declared in this scope
     71 |         for(uint32_t i = 0; i < 2; i++) {
        |             ^~~~~~~~
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Label.h:29:1: note: ‘uint32_t’ is defined in header ‘<cstdint>’; did you forget to ‘#include <cstdint>’?
     28 | #include <cassert>
    +++ |+#include <cstdint>
     29 | 
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Label.h:71:29: error: ‘i’ was not declared in this scope
     71 |         for(uint32_t i = 0; i < 2; i++) {
        |                             ^
  /home/jayvdb/rust/geos/sys/geos-src/source/src/geomgraph/Depth.cpp: In member function ‘void geos::geomgraph::Depth::normalize()’:
  /home/jayvdb/rust/geos/sys/geos-src/source/src/geomgraph/Depth.cpp:43:9: error: ‘uint8_t’ was not declared in this scope
     43 |     for(uint8_t i = 0; i < 2; i++) {
        |         ^~~~~~~
  /home/jayvdb/rust/geos/sys/geos-src/source/src/geomgraph/Depth.cpp:25:1: note: ‘uint8_t’ is defined in header ‘<cstdint>’; did you forget to ‘#include <cstdint>’?
     24 | #include <geos/geomgraph/Label.h>
    +++ |+#include <cstdint>
     25 | #include <geos/geom/Location.h>
  /home/jayvdb/rust/geos/sys/geos-src/source/src/geomgraph/Depth.cpp:43:24: error: ‘i’ was not declared in this scope
     43 |     for(uint8_t i = 0; i < 2; i++) {
        |                        ^
  /home/jayvdb/rust/geos/sys/geos-src/source/src/geomgraph/Depth.cpp: In member function ‘void geos::geomgraph::Depth::add(const geos::geomgraph::Label&)’:
  /home/jayvdb/rust/geos/sys/geos-src/source/src/geomgraph/Depth.cpp:66:9: error: ‘uint8_t’ was not declared in this scope
     66 |     for(uint8_t i = 0; i < 2; i++) {
        |         ^~~~~~~
  /home/jayvdb/rust/geos/sys/geos-src/source/src/geomgraph/Depth.cpp:66:9: note: ‘uint8_t’ is defined in header ‘<cstdint>’; did you forget to ‘#include <cstdint>’?
  /home/jayvdb/rust/geos/sys/geos-src/source/src/geomgraph/Depth.cpp:66:24: error: ‘i’ was not declared in this scope
     66 |     for(uint8_t i = 0; i < 2; i++) {
        |                        ^
  /home/jayvdb/rust/geos/sys/geos-src/source/src/geomgraph/Depth.cpp:67:20: error: expected ‘;’ before ‘j’
     67 |         for(uint8_t j = 1; j < 3; j++) {
        |                    ^~
        |                    ;
  /home/jayvdb/rust/geos/sys/geos-src/source/src/geomgraph/Depth.cpp:67:28: error: ‘j’ was not declared in this scope
     67 |         for(uint8_t j = 1; j < 3; j++) {
        |                            ^
  gmake[2]: *** [CMakeFiles/geos.dir/build.make:1420: CMakeFiles/geos.dir/src/geomgraph/Depth.cpp.o] Error 1
  gmake[2]: *** Waiting for unfinished jobs....
  In file included from /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Label.h:25,
                   from /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/GraphComponent.h:26,
                   from /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Edge.h:28,
                   from /home/jayvdb/rust/geos/sys/geos-src/source/src/geomgraph/DirectedEdge.cpp:21:
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h:143:52: error: ‘uint32_t’ has not been declared
    143 |     bool isEqualOnSide(const TopologyLocation& le, uint32_t locIndex) const
        |                                                    ^~~~~~~~
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h:226:10: error: ‘uint8_t’ in namespace ‘std’ does not name a type; did you mean ‘wint_t’?
    226 |     std::uint8_t locationSize;
        |          ^~~~~~~
        |          wint_t
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h: In constructor ‘geos::geomgraph::TopologyLocation::TopologyLocation(geos::geom::Location, geos::geom::Location, geos::geom::Location)’:
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h:82:11: error: class ‘geos::geomgraph::TopologyLocation’ does not have any field named ‘locationSize’
     82 |         : locationSize(3)
        |           ^~~~~~~~~~~~
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h: In constructor ‘geos::geomgraph::TopologyLocation::TopologyLocation(geos::geom::Location)’:
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h:90:11: error: class ‘geos::geomgraph::TopologyLocation’ does not have any field named ‘locationSize’
     90 |         : locationSize(1)
        |           ^~~~~~~~~~~~
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h: In copy constructor ‘geos::geomgraph::TopologyLocation::TopologyLocation(const geos::geomgraph::TopologyLocation&)’:
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h:98:11: error: class ‘geos::geomgraph::TopologyLocation’ does not have any field named ‘locationSize’
     98 |         , locationSize(gl.locationSize)
        |           ^~~~~~~~~~~~
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h:98:27: error: ‘const class geos::geomgraph::TopologyLocation’ has no member named ‘locationSize’; did you mean ‘location’?
     98 |         , locationSize(gl.locationSize)
        |                           ^~~~~~~~~~~~
        |                           location
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h: In member function ‘geos::geomgraph::TopologyLocation& geos::geomgraph::TopologyLocation::operator=(const geos::geomgraph::TopologyLocation&)’:
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h:104:9: error: ‘locationSize’ was not declared in this scope; did you mean ‘location’?
    104 |         locationSize = gl.locationSize;
        |         ^~~~~~~~~~~~
        |         location
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h:104:27: error: ‘const class geos::geomgraph::TopologyLocation’ has no member named ‘locationSize’; did you mean ‘location’?
    104 |         locationSize = gl.locationSize;
        |                           ^~~~~~~~~~~~
        |                           location
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h: In member function ‘geos::geom::Location geos::geomgraph::TopologyLocation::get(std::size_t) const’:
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h:111:23: error: ‘locationSize’ was not declared in this scope; did you mean ‘location’?
    111 |         if(posIndex < locationSize) {
        |                       ^~~~~~~~~~~~
        |                       location
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h: In member function ‘bool geos::geomgraph::TopologyLocation::isNull() const’:
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h:122:36: error: ‘locationSize’ was not declared in this scope; did you mean ‘location’?
    122 |         for(std::size_t i = 0; i < locationSize; ++i) {
        |                                    ^~~~~~~~~~~~
        |                                    location
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h: In member function ‘bool geos::geomgraph::TopologyLocation::isAnyNull() const’:
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h:135:36: error: ‘locationSize’ was not declared in this scope; did you mean ‘location’?
    135 |         for(std::size_t i = 0; i < locationSize; ++i) {
        |                                    ^~~~~~~~~~~~
        |                                    location
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h: In member function ‘bool geos::geomgraph::TopologyLocation::isArea() const’:
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h:150:16: error: ‘locationSize’ was not declared in this scope; did you mean ‘location’?
    150 |         return locationSize > 1;
        |                ^~~~~~~~~~~~
        |                location
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h: In member function ‘bool geos::geomgraph::TopologyLocation::isLine() const’:
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h:155:16: error: ‘locationSize’ was not declared in this scope; did you mean ‘location’?
    155 |         return locationSize == 1;
        |                ^~~~~~~~~~~~
        |                location
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h: In member function ‘void geos::geomgraph::TopologyLocation::flip()’:
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h:160:12: error: ‘locationSize’ was not declared in this scope; did you mean ‘location’?
    160 |         if(locationSize <= 1) {
        |            ^~~~~~~~~~~~
        |            location
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h: In member function ‘void geos::geomgraph::TopologyLocation::setAllLocationsIfNull(geos::geom::Location)’:
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h:174:36: error: ‘locationSize’ was not declared in this scope; did you mean ‘location’?
    174 |         for(std::size_t i = 0; i < locationSize; ++i) {
        |                                    ^~~~~~~~~~~~
        |                                    location
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h: In member function ‘bool geos::geomgraph::TopologyLocation::allPositionsEqual(geos::geom::Location) const’:
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h:206:36: error: ‘locationSize’ was not declared in this scope; did you mean ‘location’?
    206 |         for(std::size_t i = 0; i < locationSize; ++i) {
        |                                    ^~~~~~~~~~~~
        |                                    location
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Label.h: At global scope:
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Label.h:92:19: error: expected ‘)’ before ‘geomIndex’
     92 |     Label(uint32_t geomIndex, geom::Location onLoc)
        |          ~        ^~~~~~~~~~
        |                   )
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Label.h:95:5: error: expected unqualified-id before ‘{’ token
     95 |     {
        |     ^
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Label.h:132:19: error: expected ‘)’ before ‘geomIndex’
    132 |     Label(uint32_t geomIndex, geom::Location onLoc, geom::Location leftLoc, geom::Location rightLoc)
        |          ~        ^~~~~~~~~~
        |                   )
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Label.h:178:32: error: ‘uint32_t’ has not been declared
    178 |     geom::Location getLocation(uint32_t geomIndex, uint32_t posIndex) const
        |                                ^~~~~~~~
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Label.h:178:52: error: ‘uint32_t’ has not been declared
    178 |     geom::Location getLocation(uint32_t geomIndex, uint32_t posIndex) const
        |                                                    ^~~~~~~~
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Label.h:184:32: error: ‘uint32_t’ has not been declared
    184 |     geom::Location getLocation(uint32_t geomIndex) const
        |                                ^~~~~~~~
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Label.h:190:22: error: ‘uint32_t’ has not been declared
    190 |     void setLocation(uint32_t geomIndex, uint32_t posIndex, geom::Location location)
        |                      ^~~~~~~~
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Label.h:190:42: error: ‘uint32_t’ has not been declared
    190 |     void setLocation(uint32_t geomIndex, uint32_t posIndex, geom::Location location)
        |                                          ^~~~~~~~
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Label.h:196:22: error: ‘uint32_t’ has not been declared
    196 |     void setLocation(uint32_t geomIndex, geom::Location location)
        |                      ^~~~~~~~
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Label.h:202:26: error: ‘uint32_t’ has not been declared
    202 |     void setAllLocations(uint32_t geomIndex, geom::Location location)
        |                          ^~~~~~~~
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Label.h:208:32: error: ‘uint32_t’ has not been declared
    208 |     void setAllLocationsIfNull(uint32_t geomIndex, geom::Location location)
        |                                ^~~~~~~~
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Label.h:220:17: error: ‘uint32_t’ has not been declared
    220 |     bool isNull(uint32_t geomIndex) const
        |                 ^~~~~~~~
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Label.h:231:20: error: ‘uint32_t’ has not been declared
    231 |     bool isAnyNull(uint32_t geomIndex) const
        |                    ^~~~~~~~
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Label.h:242:17: error: ‘uint32_t’ has not been declared
    242 |     bool isArea(uint32_t geomIndex) const
        |                 ^~~~~~~~
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Label.h:248:17: error: ‘uint32_t’ has not been declared
    248 |     bool isLine(uint32_t geomIndex) const
        |                 ^~~~~~~~
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Label.h:254:42: error: ‘uint32_t’ has not been declared
    254 |     bool isEqualOnSide(const Label& lbl, uint32_t side) const
        |                                          ^~~~~~~~
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Label.h:260:28: error: ‘uint32_t’ has not been declared
    260 |     bool allPositionsEqual(uint32_t geomIndex, geom::Location loc) const
        |                            ^~~~~~~~
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Label.h:269:17: error: ‘uint32_t’ has not been declared
    269 |     void toLine(uint32_t geomIndex)
        |                 ^~~~~~~~
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Label.h: In static member function ‘static geos::geomgraph::Label geos::geomgraph::Label::toLineLabel(const geos::geomgraph::Label&)’:
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Label.h:71:13: error: ‘uint32_t’ was not declared in this scope
     71 |         for(uint32_t i = 0; i < 2; i++) {
        |             ^~~~~~~~
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Label.h:29:1: note: ‘uint32_t’ is defined in header ‘<cstdint>’; did you forget to ‘#include <cstdint>’?
     28 | #include <cassert>
    +++ |+#include <cstdint>
     29 | 
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Label.h:71:29: error: ‘i’ was not declared in this scope
     71 |         for(uint32_t i = 0; i < 2; i++) {
        |                             ^
  In file included from /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Edge.h:29:
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Depth.h: At global scope:
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Depth.h:115:17: error: ‘uint8_t’ has not been declared
    115 |     bool isNull(uint8_t geomIndex) const
        |                 ^~~~~~~
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Depth.h:120:17: error: ‘uint8_t’ has not been declared
    120 |     bool isNull(uint8_t geomIndex, uint8_t posIndex) const
        |                 ^~~~~~~
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Depth.h:120:36: error: ‘uint8_t’ has not been declared
    120 |     bool isNull(uint8_t geomIndex, uint8_t posIndex) const
        |                                    ^~~~~~~
  In file included from /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Label.h:25,
                   from /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/GraphComponent.h:26,
                   from /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Edge.h:28,
                   from /home/jayvdb/rust/geos/sys/geos-src/source/src/geomgraph/Edge.cpp:29:
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h:143:52: error: ‘uint32_t’ has not been declared
    143 |     bool isEqualOnSide(const TopologyLocation& le, uint32_t locIndex) const
        |                                                    ^~~~~~~~
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h:226:10: error: ‘uint8_t’ in namespace ‘std’ does not name a type; did you mean ‘wint_t’?
    226 |     std::uint8_t locationSize;
        |          ^~~~~~~
        |          wint_t
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h: In constructor ‘geos::geomgraph::TopologyLocation::TopologyLocation(geos::geom::Location, geos::geom::Location, geos::geom::Location)’:
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h:82:11: error: class ‘geos::geomgraph::TopologyLocation’ does not have any field named ‘locationSize’
     82 |         : locationSize(3)
        |           ^~~~~~~~~~~~
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h: In constructor ‘geos::geomgraph::TopologyLocation::TopologyLocation(geos::geom::Location)’:
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h:90:11: error: class ‘geos::geomgraph::TopologyLocation’ does not have any field named ‘locationSize’
     90 |         : locationSize(1)
        |           ^~~~~~~~~~~~
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h: In copy constructor ‘geos::geomgraph::TopologyLocation::TopologyLocation(const geos::geomgraph::TopologyLocation&)’:
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h:98:11: error: class ‘geos::geomgraph::TopologyLocation’ does not have any field named ‘locationSize’
     98 |         , locationSize(gl.locationSize)
        |           ^~~~~~~~~~~~
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h:98:27: error: ‘const class geos::geomgraph::TopologyLocation’ has no member named ‘locationSize’; did you mean ‘location’?
     98 |         , locationSize(gl.locationSize)
        |                           ^~~~~~~~~~~~
        |                           location
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h: In member function ‘geos::geomgraph::TopologyLocation& geos::geomgraph::TopologyLocation::operator=(const geos::geomgraph::TopologyLocation&)’:
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h:104:9: error: ‘locationSize’ was not declared in this scope; did you mean ‘location’?
    104 |         locationSize = gl.locationSize;
        |         ^~~~~~~~~~~~
        |         location
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h:104:27: error: ‘const class geos::geomgraph::TopologyLocation’ has no member named ‘locationSize’; did you mean ‘location’?
    104 |         locationSize = gl.locationSize;
        |                           ^~~~~~~~~~~~
        |                           location
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h: In member function ‘geos::geom::Location geos::geomgraph::TopologyLocation::get(std::size_t) const’:
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h:111:23: error: ‘locationSize’ was not declared in this scope; did you mean ‘location’?
    111 |         if(posIndex < locationSize) {
        |                       ^~~~~~~~~~~~
        |                       location
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h: In member function ‘bool geos::geomgraph::TopologyLocation::isNull() const’:
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h:122:36: error: ‘locationSize’ was not declared in this scope; did you mean ‘location’?
    122 |         for(std::size_t i = 0; i < locationSize; ++i) {
        |                                    ^~~~~~~~~~~~
        |                                    location
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h: In member function ‘bool geos::geomgraph::TopologyLocation::isAnyNull() const’:
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h:135:36: error: ‘locationSize’ was not declared in this scope; did you mean ‘location’?
    135 |         for(std::size_t i = 0; i < locationSize; ++i) {
        |                                    ^~~~~~~~~~~~
        |                                    location
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h: In member function ‘bool geos::geomgraph::TopologyLocation::isArea() const’:
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h:150:16: error: ‘locationSize’ was not declared in this scope; did you mean ‘location’?
    150 |         return locationSize > 1;
        |                ^~~~~~~~~~~~
        |                location
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h: In member function ‘bool geos::geomgraph::TopologyLocation::isLine() const’:
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h:155:16: error: ‘locationSize’ was not declared in this scope; did you mean ‘location’?
    155 |         return locationSize == 1;
        |                ^~~~~~~~~~~~
        |                location
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h: In member function ‘void geos::geomgraph::TopologyLocation::flip()’:
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h:160:12: error: ‘locationSize’ was not declared in this scope; did you mean ‘location’?
    160 |         if(locationSize <= 1) {
        |            ^~~~~~~~~~~~
        |            location
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h: In member function ‘void geos::geomgraph::TopologyLocation::setAllLocationsIfNull(geos::geom::Location)’:
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h:174:36: error: ‘locationSize’ was not declared in this scope; did you mean ‘location’?
    174 |         for(std::size_t i = 0; i < locationSize; ++i) {
        |                                    ^~~~~~~~~~~~
        |                                    location
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h: In member function ‘bool geos::geomgraph::TopologyLocation::allPositionsEqual(geos::geom::Location) const’:
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/TopologyLocation.h:206:36: error: ‘locationSize’ was not declared in this scope; did you mean ‘location’?
    206 |         for(std::size_t i = 0; i < locationSize; ++i) {
        |                                    ^~~~~~~~~~~~
        |                                    location
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Label.h: At global scope:
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Label.h:92:19: error: expected ‘)’ before ‘geomIndex’
     92 |     Label(uint32_t geomIndex, geom::Location onLoc)
        |          ~        ^~~~~~~~~~
        |                   )
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Label.h:95:5: error: expected unqualified-id before ‘{’ token
     95 |     {
        |     ^
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Label.h:132:19: error: expected ‘)’ before ‘geomIndex’
    132 |     Label(uint32_t geomIndex, geom::Location onLoc, geom::Location leftLoc, geom::Location rightLoc)
        |          ~        ^~~~~~~~~~
        |                   )
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Label.h:178:32: error: ‘uint32_t’ has not been declared
    178 |     geom::Location getLocation(uint32_t geomIndex, uint32_t posIndex) const
        |                                ^~~~~~~~
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Label.h:178:52: error: ‘uint32_t’ has not been declared
    178 |     geom::Location getLocation(uint32_t geomIndex, uint32_t posIndex) const
        |                                                    ^~~~~~~~
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Label.h:184:32: error: ‘uint32_t’ has not been declared
    184 |     geom::Location getLocation(uint32_t geomIndex) const
        |                                ^~~~~~~~
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Label.h:190:22: error: ‘uint32_t’ has not been declared
    190 |     void setLocation(uint32_t geomIndex, uint32_t posIndex, geom::Location location)
        |                      ^~~~~~~~
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Label.h:190:42: error: ‘uint32_t’ has not been declared
    190 |     void setLocation(uint32_t geomIndex, uint32_t posIndex, geom::Location location)
        |                                          ^~~~~~~~
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Label.h:196:22: error: ‘uint32_t’ has not been declared
    196 |     void setLocation(uint32_t geomIndex, geom::Location location)
        |                      ^~~~~~~~
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Label.h:202:26: error: ‘uint32_t’ has not been declared
    202 |     void setAllLocations(uint32_t geomIndex, geom::Location location)
        |                          ^~~~~~~~
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Label.h:208:32: error: ‘uint32_t’ has not been declared
    208 |     void setAllLocationsIfNull(uint32_t geomIndex, geom::Location location)
        |                                ^~~~~~~~
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Label.h:220:17: error: ‘uint32_t’ has not been declared
    220 |     bool isNull(uint32_t geomIndex) const
        |                 ^~~~~~~~
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Label.h:231:20: error: ‘uint32_t’ has not been declared
    231 |     bool isAnyNull(uint32_t geomIndex) const
        |                    ^~~~~~~~
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Label.h:242:17: error: ‘uint32_t’ has not been declared
    242 |     bool isArea(uint32_t geomIndex) const
        |                 ^~~~~~~~
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Label.h:248:17: error: ‘uint32_t’ has not been declared
    248 |     bool isLine(uint32_t geomIndex) const
        |                 ^~~~~~~~
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Label.h:254:42: error: ‘uint32_t’ has not been declared
    254 |     bool isEqualOnSide(const Label& lbl, uint32_t side) const
        |                                          ^~~~~~~~
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Label.h:260:28: error: ‘uint32_t’ has not been declared
    260 |     bool allPositionsEqual(uint32_t geomIndex, geom::Location loc) const
        |                            ^~~~~~~~
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Label.h:269:17: error: ‘uint32_t’ has not been declared
    269 |     void toLine(uint32_t geomIndex)
        |                 ^~~~~~~~
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Label.h: In static member function ‘static geos::geomgraph::Label geos::geomgraph::Label::toLineLabel(const geos::geomgraph::Label&)’:
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Label.h:71:13: error: ‘uint32_t’ was not declared in this scope
     71 |         for(uint32_t i = 0; i < 2; i++) {
        |             ^~~~~~~~
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Label.h:29:1: note: ‘uint32_t’ is defined in header ‘<cstdint>’; did you forget to ‘#include <cstdint>’?
     28 | #include <cassert>
    +++ |+#include <cstdint>
     29 | 
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Label.h:71:29: error: ‘i’ was not declared in this scope
     71 |         for(uint32_t i = 0; i < 2; i++) {
        |                             ^
  In file included from /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Edge.h:29:
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Depth.h: At global scope:
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Depth.h:115:17: error: ‘uint8_t’ has not been declared
    115 |     bool isNull(uint8_t geomIndex) const
        |                 ^~~~~~~
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Depth.h:120:17: error: ‘uint8_t’ has not been declared
    120 |     bool isNull(uint8_t geomIndex, uint8_t posIndex) const
        |                 ^~~~~~~
  /home/jayvdb/rust/geos/sys/geos-src/source/include/geos/geomgraph/Depth.h:120:36: error: ‘uint8_t’ has not been declared
    120 |     bool isNull(uint8_t geomIndex, uint8_t posIndex) const
        |                                    ^~~~~~~
  gmake[2]: *** [CMakeFiles/geos.dir/build.make:1434: CMakeFiles/geos.dir/src/geomgraph/DirectedEdge.cpp.o] Error 1
  gmake[2]: *** [CMakeFiles/geos.dir/build.make:1462: CMakeFiles/geos.dir/src/geomgraph/Edge.cpp.o] Error 1
  gmake[1]: *** [CMakeFiles/Makefile2:226: CMakeFiles/geos.dir/all] Error 2
  gmake: *** [Makefile:156: all] Error 2
  thread 'main' panicked at '
  command did not execute successfully, got: exit status: 2

  build script failed, must exit now', /home/jayvdb/.cargo/registry/src/github.com-1ecc6299db9ec823/cmake-0.1.49/src/lib.rs:1104:5
  note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

jayvdb avatar Apr 07 '23 00:04 jayvdb

I see the same error with Clang 16.0.0

jayvdb avatar Apr 07 '23 01:04 jayvdb

gcc 12 works, but I couldnt get clang working from clang 11+

jayvdb avatar Apr 07 '23 01:04 jayvdb

I think @brendan-ward was the one implementing the static build (sorry if I'm wrong). Any idea what's going on?

GuillaumeGomez avatar Apr 07 '23 08:04 GuillaumeGomez

The static build just builds the pinned version of GEOS (git submodule for sys/geos-src/source) first, which is where this is failing. It is currently pinned to 3.11.0. It looks like initial support for GCC 13 was added in 3.11.2, so we should probably update to that version.

But in general, build issues with static are most likely build issues with GEOS as of that version.

However, it looks like there are other GCC 13 issues coming directly from GEOS that may need to be resolved first: https://github.com/libgeos/geos/issues/860#issuecomment-1499291218

Those will need to be fixed upstream and we'll need to update the pinned version to that.

For GEOS 3.11.x, it looks like the latest tested version of clang is whatever is installed on Ubuntu 20.04 (clang 1.10).

However, on GEOS main, it looks like clang 11-14 are now being tested, which suggests that for the upcoming GEOS 3.12 release that clang 11-14 should work properly.

We should probably also add a bit more documentation for the static build to indicate the supported (or at least tested) build environment.

Will try to put together a PR to bump us up to 3.11.2 and add a bit more docs shortly.

brendan-ward avatar Apr 07 '23 16:04 brendan-ward

Since GCC 13 is not yet released, it is not easy to test and probably should be out of scope here until it is released (and preferably available with installable packages for Ubuntu / Debian).

GCC 12 seems to work fine, and clang 14 appears to work for at GEOS 3.11.2.

brendan-ward avatar Apr 07 '23 17:04 brendan-ward

Thanks. gcc-13 is in debian experimental https://packages.debian.org/experimental/gcc-13 , Fedora 38 & Rawhide https://packages.fedoraproject.org/pkgs/gcc/gcc/ It is also the default compiler on opensuse tumbleweed and lots of other rolling releases. Search for "13.0" on https://repology.org/project/gcc/versions

Anyways, it would be great to get a new release of geos with https://github.com/georust/geos/pull/128 included.

jayvdb avatar Apr 07 '23 23:04 jayvdb

I made a new release.

GuillaumeGomez avatar Apr 08 '23 13:04 GuillaumeGomez

GEOS release 3.11.2 still fails to compile with gcc 13 / clang 16. But there is now version 3.11.3 which does compile with both compilers (tested on arch linux). #139

The last missing cstdint include was in include/geos/shape/fractal/HilbertEncoder.h:

$ git diff 3.11.2 3.11.3 -- include/geos/shape/fractal/HilbertEncoder.h
diff --git a/include/geos/shape/fractal/HilbertEncoder.h b/include/geos/shape/fractal/HilbertEncoder.h
index 61c0010d4..0126d3d95 100644
--- a/include/geos/shape/fractal/HilbertEncoder.h
+++ b/include/geos/shape/fractal/HilbertEncoder.h
@@ -16,6 +16,7 @@
 #pragma once
 
 #include <geos/export.h>
+#include <cstdint>
 #include <string>
 #include <vector>

vladaburian avatar Nov 14 '23 22:11 vladaburian

I've opened https://github.com/georust/geos/pull/144 to fix this by updating the bundled version to 3.12.1

weiznich avatar Feb 05 '24 16:02 weiznich