[geos-devel] Is GEOS 3.11 C-API upward compatible with GEOS 3.9.0
Regina Obe
lr at pcorp.us
Sun Dec 5 09:12:40 PST 2021
I was always under the assumption that the C-API should be upward compatible
(only the C++ API is unstable).
Normally I can do the following:
Compile PostGIS with GEOS say 3.9.0
Launch my PostgreSQL with GEOS 3.9.0
Then launch again with newer GEOS - in this case GEOS 3.11.
So my PostGIS is compiled with GEOS 3.9.0, but it should work with GEOS
3.11.
What I am finding is it is not. I thought maybe I had the paths wrong so I
double-checked a couple of times.
This is what I get when I swap out the older GEOS 3.9.0 with newer GEOS 3.11
(main branch)
And then run any PostGIS function.
ERROR: could not load library
"C:/ming64gcc81/projects/postgresql/rel/pg14w64gcc81/lib/postgis-3.2.dll":
The specified module could not be found.
I then tried to swap with GEOS 3.10.0 and that worked okay.
POSTGIS="3.2.0dev 3.2.0beta3-2-g0b32bdd14" [EXTENSION] PGSQL="140"
GEOS="3.10.0-CAPI-1.16.0" PROJ="7.2.1" GDAL="GDAL 3.3.3, released
2021/10/25" LIBXML="2.9.9" LIBJSON="0.12" LIBPROTOBUF="1.2.1" WAGYU="0.5.0
(Internal)" TOPOLOGY RASTER
GEOS 3.10.1 - errors
ERROR: could not load library
"C:/ming64gcc81/projects/postgresql/rel/pg14w64gcc81/lib/postgis-3.2.dll":
The specified module could not be found.
Can someone confirm that? If it's just an issue with PostGIS 3.2, I guess
that is okay, though I would think it would mean just the newer features
like MakeValid would not be enabled by swapping out with a newer GEOS, but
it shouldn't break install. Also why GEOS 3.10.0 works and GEOS 3.10.1
doesn't is very concerning.
FWIW: all were built under CMake. Though I think the ENABLE_INLINE
whatever that CMAKE switch is might be different between the working and
non-working versions.
Thanks,
Regina
More information about the geos-devel
mailing list