Open jayvdb opened 1 year ago
I see the same error with Clang 16.0.0
gcc 12 works, but I couldnt get clang working from clang 11+
I think @brendan-ward was the one implementing the static build (sorry if I'm wrong). Any idea what's going on?
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.
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.
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.
I made a new release.
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>
I've opened https://github.com/georust/geos/pull/144 to fix this by updating the bundled version to 3.12.1