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

geos: update GEOS to 3.11 #106642

Merged
merged 1 commit into from
Jul 17, 2023
Merged

Conversation

otan
Copy link
Contributor

@otan otan commented Jul 11, 2023

All test changes are due to a change in Polygon output ordering, or GEOS
outputting a different yet valid result. Note we stop supporting windows
as a result.

Release note (general change): Spatial libraries from Cockroach
now rely on GEOS 3.11 instead of GEOS 3.8.

Epic: none
Release note (general change): Stop distributing libgeos
for (experimental) Windows build. Users can instead install GEOS
directly from source: https://libgeos.org/usage/download/.

@cockroach-teamcity
Copy link
Member

This change is Reviewable

@otan otan marked this pull request as ready for review July 12, 2023 00:07
@otan
Copy link
Contributor Author

otan commented Jul 12, 2023

hmm, not sure this was it.

@otan otan requested review from a team as code owners July 12, 2023 03:13
@blathers-crl
Copy link

blathers-crl bot commented Jul 12, 2023

It looks like your PR touches production code but doesn't add or edit any test code. Did you consider adding tests to your PR?

🦉 Hoot! I am a Blathers, a bot for CockroachDB. My owner is dev-inf.

@otan otan removed request for a team and rharding6373 July 12, 2023 03:13
@otan otan marked this pull request as draft July 12, 2023 03:13
@otan
Copy link
Contributor Author

otan commented Jul 12, 2023

i think i also need to mess with archived_cdep_repository (tests were changed with --force_build_cdeps), but can't figure out how to do that. deferring to dev-inf for help.

the tests were changed by running:

bazel test --sandbox_writable_path=/Users/otan/go/src/github.com/cockroachdb/cockroach/pkg/sql/logictest/testdata --sandbox_writable_path=/Users/otan/go/src/github.com/cockroachdb/cockroach/pkg/ccl/logictestccl/testdata --sandbox_writable_path=/Users/otan/go/src/github.com/cockroachdb/cockroach/pkg/sql/logictest --sandbox_writable_path=/Users/otan/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/exec/execbuilder/testdata //pkg/sql/logictest/tests/local/... //pkg/ccl/logictestccl/tests/local/... //pkg/sql/opt/exec/execbuilder/tests/local/... --test_env=GOTRACEBACK=all --nocache_test_results --test_arg -show-sql --test_env=COCKROACH_WORKSPACE=/Users/otan/go/src/github.com/cockroachdb/cockroach --test_arg -rewrite --test_filter geospatial_meta/ --test_sharding_strategy=disabled --test_output errors --force_build_cdeps

@otan otan force-pushed the attempt_upgrade branch 3 times, most recently from 7eec9ee to cdc50cd Compare July 12, 2023 04:29
@rickystewart
Copy link
Collaborator

Looks like the build of the prebuilt c-deps failed for Windows. Errors look like this:

[16:39:15 ](https://teamcity.cockroachdb.com/buildConfiguration/Internal_Release_BuildAndPublishCdeps/10886613?buildTab=log&focusLine=3261&logView=flowAware&linesState=3261)    CMakeFiles/geos.dir/objects.a(IndexedFacetDistance.cpp.obj):IndexedFacetDistance.cpp:(.text+0x6ec): undefined reference to `__imp_pthread_mutex_lock'
[16:39:15 ](https://teamcity.cockroachdb.com/buildConfiguration/Internal_Release_BuildAndPublishCdeps/10886613?buildTab=log&focusLine=3262&logView=flowAware&linesState=3262)    CMakeFiles/geos.dir/objects.a(IndexedFacetDistance.cpp.obj):IndexedFacetDistance.cpp:(.text+0x70d): undefined reference to `__imp_pthread_mutex_unlock'
[16:39:15 ](https://teamcity.cockroachdb.com/buildConfiguration/Internal_Release_BuildAndPublishCdeps/10886613?buildTab=log&focusLine=3263&logView=flowAware&linesState=3263)    CMakeFiles/geos.dir/objects.a(IndexedFacetDistance.cpp.obj):IndexedFacetDistance.cpp:(.text+0x2287): undefined reference to `__imp_pthread_mutex_unlock'

AFAICT these are all pthread related. Problem is pthread is UNIX and not Windows. Maybe you need to pass some extra configuration argument for the Windows build so it doesn't think it has the option to use pthread?

@otan
Copy link
Contributor Author

otan commented Jul 12, 2023

is there a way i can locally test building this vs windows

@otan
Copy link
Contributor Author

otan commented Jul 12, 2023

(i can't see any reference to threads in https://github.com/libgeos/geos/blob/3.11.2/src/operation/distance/IndexedFacetDistance.cpp so a bit confuddled)

@rickystewart
Copy link
Collaborator

is there a way i can locally test building this vs windows

bazel build c-deps:libgeos --force_build_cdeps --config crosswindows I think is sufficient. (Must run inside the builder image or a Linux machine, alternatively I think you can use ./dev build geos --cross=windows -- --force_build_cdeps)

@otan
Copy link
Contributor Author

otan commented Jul 12, 2023

i have no idea, not sure where the pthread references are coming from. disabling test builds prevents the pthreads check in cmake (BUILD_TESTING=OFF), but they're still coming from somewhere.

edit: i think it's libgeos/geos@3fcbd1e, which i'm not sure is safe to remove.

try locally with: ./dev build geos --cross=windows -- --force_build_cdeps (takes ~180s)

full stack, in case someone wants to pick this up: ``` CMakeFiles/geos.dir/objects.a(MaximumInscribedCircle.cpp.obj):MaximumInscribedCircle.cpp:(.text+0x15b): undefined reference to `__imp_pthread_mutex_destroy' CMakeFiles/geos.dir/objects.a(MaximumInscribedCircle.cpp.obj):MaximumInscribedCircle.cpp:(.text+0x1a61): undefined reference to `__imp_pthread_mutex_destroy' CMakeFiles/geos.dir/objects.a(MaximumInscribedCircle.cpp.obj):MaximumInscribedCircle.cpp:(.text+0x1b0f): undefined reference to `__imp_pthread_mutex_destroy' CMakeFiles/geos.dir/objects.a(MaximumInscribedCircle.cpp.obj):MaximumInscribedCircle.cpp:(.text$_ZN4geos9algorithm9construct22MaximumInscribedCircleD1Ev[_ZN4geos9algorithm9construct22MaximumInscribedCircleD1Ev]+0x34): undefined reference to `__imp_pthread_mutex_destroy' CMakeFiles/geos.dir/objects.a(IndexedPointInAreaLocator.cpp.obj):IndexedPointInAreaLocator.cpp:(.text+0x740): undefined reference to `__imp_pthread_mutex_init' CMakeFiles/geos.dir/objects.a(IndexedPointInAreaLocator.cpp.obj):IndexedPointInAreaLocator.cpp:(.text+0x998): undefined reference to `__imp_pthread_mutex_destroy' CMakeFiles/geos.dir/objects.a(IndexedPointInAreaLocator.cpp.obj):IndexedPointInAreaLocator.cpp:(.text+0xb41): undefined reference to `__imp_pthread_mutex_init' CMakeFiles/geos.dir/objects.a(IndexedPointInAreaLocator.cpp.obj):IndexedPointInAreaLocator.cpp:(.text+0xba4): undefined reference to `__imp_pthread_mutex_destroy' CMakeFiles/geos.dir/objects.a(IndexedPointInAreaLocator.cpp.obj):IndexedPointInAreaLocator.cpp:(.text+0xbe6): undefined reference to `__imp_pthread_mutex_destroy' CMakeFiles/geos.dir/objects.a(IndexedPointInAreaLocator.cpp.obj):IndexedPointInAreaLocator.cpp:(.text+0xc0a): undefined reference to `__imp_pthread_mutex_destroy' CMakeFiles/geos.dir/objects.a(IndexedPointInAreaLocator.cpp.obj):IndexedPointInAreaLocator.cpp:(.text+0xc20): undefined reference to `__imp_pthread_mutex_init' CMakeFiles/geos.dir/objects.a(IndexedPointInAreaLocator.cpp.obj):IndexedPointInAreaLocator.cpp:(.text+0xca1): undefined reference to `__imp_pthread_mutex_init' CMakeFiles/geos.dir/objects.a(IndexedPointInAreaLocator.cpp.obj):IndexedPointInAreaLocator.cpp:(.text+0xd00): undefined reference to `__imp_pthread_mutex_destroy' CMakeFiles/geos.dir/objects.a(IndexedPointInAreaLocator.cpp.obj):IndexedPointInAreaLocator.cpp:(.text+0xed9): undefined reference to `__imp_pthread_mutex_lock' CMakeFiles/geos.dir/objects.a(IndexedPointInAreaLocator.cpp.obj):IndexedPointInAreaLocator.cpp:(.text+0xef1): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(IndexedPointInAreaLocator.cpp.obj):IndexedPointInAreaLocator.cpp:(.text+0x13c5): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(IndexedPointInAreaLocator.cpp.obj):IndexedPointInAreaLocator.cpp:(.text+0x16cd): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(IndexedPointInAreaLocator.cpp.obj):IndexedPointInAreaLocator.cpp:(.text$_ZN4geos9algorithm6locate25IndexedPointInAreaLocatorD1Ev[_ZN4geos9algorithm6locate25IndexedPointInAreaLocatorD1Ev]+0x2b): undefined reference to `__imp_pthread_mutex_destroy' CMakeFiles/geos.dir/objects.a(IndexedPointInAreaLocator.cpp.obj):IndexedPointInAreaLocator.cpp:(.text$_ZN4geos9algorithm6locate25IndexedPointInAreaLocatorD0Ev[_ZN4geos9algorithm6locate25IndexedPointInAreaLocatorD0Ev]+0x2f): undefined reference to `__imp_pthread_mutex_destroy' CMakeFiles/geos.dir/objects.a(IndexedPointInAreaLocator.cpp.obj):IndexedPointInAreaLocator.cpp:(.text$_ZN4geos5index7strtree19TemplateSTRtreeImplINS_9algorithm6locate25IndexedPointInAreaLocator11SegmentViewENS1_14IntervalTraitsEED2Ev[_ZN4geos5index7strtree19TemplateSTRtreeImplINS_9algorithm6locate25IndexedPointInAreaLocator11SegmentViewENS1_14IntervalTraitsEED2Ev]+0x21): undefined reference to `__imp_pthread_mutex_destroy' CMakeFiles/geos.dir/objects.a(PreparedLineString.cpp.obj):PreparedLineString.cpp:(.text+0x166): undefined reference to `__imp_pthread_mutex_destroy' CMakeFiles/geos.dir/objects.a(PreparedLineString.cpp.obj):PreparedLineString.cpp:(.text+0x475): undefined reference to `__imp_pthread_mutex_destroy' CMakeFiles/geos.dir/objects.a(PreparedLineString.cpp.obj):PreparedLineString.cpp:(.text$_ZN4geos6noding34MCIndexSegmentSetMutualIntersectorD0Ev[_ZN4geos6noding34MCIndexSegmentSetMutualIntersectorD0Ev]+0x3c): more undefined references to `__imp_pthread_mutex_destroy' follow CMakeFiles/geos.dir/objects.a(FastNodingValidator.cpp.obj):FastNodingValidator.cpp:(.text+0xe1): undefined reference to `__imp_pthread_mutex_init' CMakeFiles/geos.dir/objects.a(FastNodingValidator.cpp.obj):FastNodingValidator.cpp:(.text+0x1a7): undefined reference to `__imp_pthread_mutex_destroy' CMakeFiles/geos.dir/objects.a(FastNodingValidator.cpp.obj):FastNodingValidator.cpp:(.text+0x204): undefined reference to `__imp_pthread_mutex_destroy' CMakeFiles/geos.dir/objects.a(FastNodingValidator.cpp.obj):FastNodingValidator.cpp:(.text+0x23e): undefined reference to `__imp_pthread_mutex_destroy' CMakeFiles/geos.dir/objects.a(FastNodingValidator.cpp.obj):FastNodingValidator.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPKNS0_5chain13MonotoneChainENS1_14EnvelopeTraitsEED1Ev[_ZN4geos5index7strtree15TemplateSTRtreeIPKNS0_5chain13MonotoneChainENS1_14EnvelopeTraitsEED1Ev]+0x22): undefined reference to `__imp_pthread_mutex_destroy' CMakeFiles/geos.dir/objects.a(FastNodingValidator.cpp.obj):FastNodingValidator.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPKNS0_5chain13MonotoneChainENS1_14EnvelopeTraitsEED0Ev[_ZN4geos5index7strtree15TemplateSTRtreeIPKNS0_5chain13MonotoneChainENS1_14EnvelopeTraitsEED0Ev]+0x20): undefined reference to `__imp_pthread_mutex_destroy' CMakeFiles/geos.dir/objects.a(FastNodingValidator.cpp.obj):FastNodingValidator.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPKNS0_5chain13MonotoneChainENS1_14EnvelopeTraitsEE5queryEPKNS_4geom8EnvelopeERSt6vectorIPvSaISE_EE[_ZN4geos5index7strtree15TemplateSTRtreeIPKNS0_5chain13MonotoneChainENS1_14EnvelopeTraitsEE5queryEPKNS_4geom8EnvelopeERSt6vectorIPvSaISE_EE]+0x205): undefined reference to `__imp_pthread_mutex_lock' CMakeFiles/geos.dir/objects.a(FastNodingValidator.cpp.obj):FastNodingValidator.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPKNS0_5chain13MonotoneChainENS1_14EnvelopeTraitsEE5queryEPKNS_4geom8EnvelopeERSt6vectorIPvSaISE_EE[_ZN4geos5index7strtree15TemplateSTRtreeIPKNS0_5chain13MonotoneChainENS1_14EnvelopeTraitsEE5queryEPKNS_4geom8EnvelopeERSt6vectorIPvSaISE_EE]+0x21e): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(FastNodingValidator.cpp.obj):FastNodingValidator.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPKNS0_5chain13MonotoneChainENS1_14EnvelopeTraitsEE5queryEPKNS_4geom8EnvelopeERSt6vectorIPvSaISE_EE[_ZN4geos5index7strtree15TemplateSTRtreeIPKNS0_5chain13MonotoneChainENS1_14EnvelopeTraitsEE5queryEPKNS_4geom8EnvelopeERSt6vectorIPvSaISE_EE]+0x972): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(FastNodingValidator.cpp.obj):FastNodingValidator.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPKNS0_5chain13MonotoneChainENS1_14EnvelopeTraitsEE5queryEPKNS_4geom8EnvelopeERSt6vectorIPvSaISE_EE[_ZN4geos5index7strtree15TemplateSTRtreeIPKNS0_5chain13MonotoneChainENS1_14EnvelopeTraitsEE5queryEPKNS_4geom8EnvelopeERSt6vectorIPvSaISE_EE]+0xb71): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(FastNodingValidator.cpp.obj):FastNodingValidator.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPKNS0_5chain13MonotoneChainENS1_14EnvelopeTraitsEE6removeEPKNS_4geom8EnvelopeEPv[_ZN4geos5index7strtree15TemplateSTRtreeIPKNS0_5chain13MonotoneChainENS1_14EnvelopeTraitsEE6removeEPKNS_4geom8EnvelopeEPv]+0x53): undefined reference to `__imp_pthread_mutex_lock' CMakeFiles/geos.dir/objects.a(FastNodingValidator.cpp.obj):FastNodingValidator.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPKNS0_5chain13MonotoneChainENS1_14EnvelopeTraitsEE6removeEPKNS_4geom8EnvelopeEPv[_ZN4geos5index7strtree15TemplateSTRtreeIPKNS0_5chain13MonotoneChainENS1_14EnvelopeTraitsEE6removeEPKNS_4geom8EnvelopeEPv]+0x71): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(FastNodingValidator.cpp.obj):FastNodingValidator.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPKNS0_5chain13MonotoneChainENS1_14EnvelopeTraitsEE6removeEPKNS_4geom8EnvelopeEPv[_ZN4geos5index7strtree15TemplateSTRtreeIPKNS0_5chain13MonotoneChainENS1_14EnvelopeTraitsEE6removeEPKNS_4geom8EnvelopeEPv]+0x890): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(FastNodingValidator.cpp.obj):FastNodingValidator.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPKNS0_5chain13MonotoneChainENS1_14EnvelopeTraitsEE6removeEPKNS_4geom8EnvelopeEPv[_ZN4geos5index7strtree15TemplateSTRtreeIPKNS0_5chain13MonotoneChainENS1_14EnvelopeTraitsEE6removeEPKNS_4geom8EnvelopeEPv]+0xa95): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(FastNodingValidator.cpp.obj):FastNodingValidator.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPKNS0_5chain13MonotoneChainENS1_14EnvelopeTraitsEE5queryEPKNS_4geom8EnvelopeERNS0_11ItemVisitorE[_ZN4geos5index7strtree15TemplateSTRtreeIPKNS0_5chain13MonotoneChainENS1_14EnvelopeTraitsEE5queryEPKNS_4geom8EnvelopeERNS0_11ItemVisitorE]+0x1a7): undefined reference to `__imp_pthread_mutex_lock' CMakeFiles/geos.dir/objects.a(FastNodingValidator.cpp.obj):FastNodingValidator.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPKNS0_5chain13MonotoneChainENS1_14EnvelopeTraitsEE5queryEPKNS_4geom8EnvelopeERNS0_11ItemVisitorE[_ZN4geos5index7strtree15TemplateSTRtreeIPKNS0_5chain13MonotoneChainENS1_14EnvelopeTraitsEE5queryEPKNS_4geom8EnvelopeERNS0_11ItemVisitorE]+0x1c0): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(FastNodingValidator.cpp.obj):FastNodingValidator.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPKNS0_5chain13MonotoneChainENS1_14EnvelopeTraitsEE5queryEPKNS_4geom8EnvelopeERNS0_11ItemVisitorE[_ZN4geos5index7strtree15TemplateSTRtreeIPKNS0_5chain13MonotoneChainENS1_14EnvelopeTraitsEE5queryEPKNS_4geom8EnvelopeERNS0_11ItemVisitorE]+0x912): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(FastNodingValidator.cpp.obj):FastNodingValidator.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPKNS0_5chain13MonotoneChainENS1_14EnvelopeTraitsEE5queryEPKNS_4geom8EnvelopeERNS0_11ItemVisitorE[_ZN4geos5index7strtree15TemplateSTRtreeIPKNS0_5chain13MonotoneChainENS1_14EnvelopeTraitsEE5queryEPKNS_4geom8EnvelopeERNS0_11ItemVisitorE]+0xb11): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(FastSegmentSetIntersectionFinder.cpp.obj):FastSegmentSetIntersectionFinder.cpp:(.text+0x60): undefined reference to `__imp_pthread_mutex_init' CMakeFiles/geos.dir/objects.a(IteratedNoder.cpp.obj):IteratedNoder.cpp:(.text+0xcb): undefined reference to `__imp_pthread_mutex_init' CMakeFiles/geos.dir/objects.a(IteratedNoder.cpp.obj):IteratedNoder.cpp:(.text+0x1c2): undefined reference to `__imp_pthread_mutex_destroy' CMakeFiles/geos.dir/objects.a(IteratedNoder.cpp.obj):IteratedNoder.cpp:(.text+0x212): undefined reference to `__imp_pthread_mutex_destroy' CMakeFiles/geos.dir/objects.a(MCIndexNoder.cpp.obj):MCIndexNoder.cpp:(.text+0x876): undefined reference to `__imp_pthread_mutex_lock' CMakeFiles/geos.dir/objects.a(MCIndexNoder.cpp.obj):MCIndexNoder.cpp:(.text+0x894): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(MCIndexNoder.cpp.obj):MCIndexNoder.cpp:(.text+0x11a2): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(MCIndexNoder.cpp.obj):MCIndexNoder.cpp:(.text+0x146a): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(MCIndexNoder.cpp.obj):MCIndexNoder.cpp:(.text$_ZN4geos6noding12MCIndexNoderD1Ev[_ZN4geos6noding12MCIndexNoderD1Ev]+0x2a): undefined reference to `__imp_pthread_mutex_destroy' CMakeFiles/geos.dir/objects.a(MCIndexNoder.cpp.obj):MCIndexNoder.cpp:(.text$_ZN4geos6noding12MCIndexNoderD0Ev[_ZN4geos6noding12MCIndexNoderD0Ev]+0x2a): undefined reference to `__imp_pthread_mutex_destroy' CMakeFiles/geos.dir/objects.a(MCIndexSegmentSetMutualIntersector.cpp.obj):MCIndexSegmentSetMutualIntersector.cpp:(.text+0x924): undefined reference to `__imp_pthread_mutex_lock' CMakeFiles/geos.dir/objects.a(MCIndexSegmentSetMutualIntersector.cpp.obj):MCIndexSegmentSetMutualIntersector.cpp:(.text+0x942): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(MCIndexSegmentSetMutualIntersector.cpp.obj):MCIndexSegmentSetMutualIntersector.cpp:(.text+0x1212): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(MCIndexSegmentSetMutualIntersector.cpp.obj):MCIndexSegmentSetMutualIntersector.cpp:(.text+0x14da): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(MCIndexSegmentSetMutualIntersector.cpp.obj):MCIndexSegmentSetMutualIntersector.cpp:(.text$_ZN4geos6noding34MCIndexSegmentSetMutualIntersectorD1Ev[_ZN4geos6noding34MCIndexSegmentSetMutualIntersectorD1Ev]+0x38): undefined reference to `__imp_pthread_mutex_destroy' CMakeFiles/geos.dir/objects.a(SnappingNoder.cpp.obj):SnappingNoder.cpp:(.text+0x1bf): undefined reference to `__imp_pthread_mutex_init' CMakeFiles/geos.dir/objects.a(SnappingNoder.cpp.obj):SnappingNoder.cpp:(.text+0x269): undefined reference to `__imp_pthread_mutex_destroy' CMakeFiles/geos.dir/objects.a(SnappingNoder.cpp.obj):SnappingNoder.cpp:(.text+0x2b5): undefined reference to `__imp_pthread_mutex_destroy' CMakeFiles/geos.dir/objects.a(MCIndexSnapRounder.cpp.obj):MCIndexSnapRounder.cpp:(.text+0x412): undefined reference to `__imp_pthread_mutex_init' CMakeFiles/geos.dir/objects.a(MCIndexSnapRounder.cpp.obj):MCIndexSnapRounder.cpp:(.text+0x5e4): undefined reference to `__imp_pthread_mutex_destroy' CMakeFiles/geos.dir/objects.a(MCIndexSnapRounder.cpp.obj):MCIndexSnapRounder.cpp:(.text+0x635): undefined reference to `__imp_pthread_mutex_destroy' CMakeFiles/geos.dir/objects.a(SnapRoundingNoder.cpp.obj):SnapRoundingNoder.cpp:(.text+0x510): undefined reference to `__imp_pthread_mutex_init' CMakeFiles/geos.dir/objects.a(SnapRoundingNoder.cpp.obj):SnapRoundingNoder.cpp:(.text+0x5e5): undefined reference to `__imp_pthread_mutex_destroy' CMakeFiles/geos.dir/objects.a(SnapRoundingNoder.cpp.obj):SnapRoundingNoder.cpp:(.text+0x66b): undefined reference to `__imp_pthread_mutex_destroy' CMakeFiles/geos.dir/objects.a(BufferBuilder.cpp.obj):BufferBuilder.cpp:(.text+0x9a): undefined reference to `__imp_pthread_mutex_init' CMakeFiles/geos.dir/objects.a(BufferBuilder.cpp.obj):BufferBuilder.cpp:(.text+0x477): undefined reference to `__imp_pthread_mutex_init' CMakeFiles/geos.dir/objects.a(BufferBuilder.cpp.obj):BufferBuilder.cpp:(.text+0x1103): undefined reference to `__imp_pthread_mutex_destroy' CMakeFiles/geos.dir/objects.a(BufferBuilder.cpp.obj):BufferBuilder.cpp:(.text+0x1f79): undefined reference to `__imp_pthread_mutex_destroy' CMakeFiles/geos.dir/objects.a(OffsetCurve.cpp.obj):OffsetCurve.cpp:(.text+0x1580): undefined reference to `__imp_pthread_mutex_destroy' CMakeFiles/geos.dir/objects.a(OffsetCurve.cpp.obj):OffsetCurve.cpp:(.text+0x166f): undefined reference to `__imp_pthread_mutex_destroy' CMakeFiles/geos.dir/objects.a(SegmentMCIndex.cpp.obj):SegmentMCIndex.cpp:(.text+0x78d): undefined reference to `__imp_pthread_mutex_init' CMakeFiles/geos.dir/objects.a(SegmentMCIndex.cpp.obj):SegmentMCIndex.cpp:(.text+0x8b4): undefined reference to `__imp_pthread_mutex_destroy' CMakeFiles/geos.dir/objects.a(SegmentMCIndex.cpp.obj):SegmentMCIndex.cpp:(.text+0xa97): undefined reference to `__imp_pthread_mutex_lock' CMakeFiles/geos.dir/objects.a(SegmentMCIndex.cpp.obj):SegmentMCIndex.cpp:(.text+0xab0): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(SegmentMCIndex.cpp.obj):SegmentMCIndex.cpp:(.text+0x1202): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(SegmentMCIndex.cpp.obj):SegmentMCIndex.cpp:(.text+0x1401): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(FacetSequenceTreeBuilder.cpp.obj):FacetSequenceTreeBuilder.cpp:(.text+0x4f5): undefined reference to `__imp_pthread_mutex_init' CMakeFiles/geos.dir/objects.a(FacetSequenceTreeBuilder.cpp.obj):FacetSequenceTreeBuilder.cpp:(.text+0x83f): undefined reference to `__imp_pthread_mutex_lock' CMakeFiles/geos.dir/objects.a(FacetSequenceTreeBuilder.cpp.obj):FacetSequenceTreeBuilder.cpp:(.text+0x85d): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(FacetSequenceTreeBuilder.cpp.obj):FacetSequenceTreeBuilder.cpp:(.text+0x1046): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(FacetSequenceTreeBuilder.cpp.obj):FacetSequenceTreeBuilder.cpp:(.text+0x1258): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(FacetSequenceTreeBuilder.cpp.obj):FacetSequenceTreeBuilder.cpp:(.text+0x12b0): undefined reference to `__imp_pthread_mutex_destroy' CMakeFiles/geos.dir/objects.a(FacetSequenceTreeBuilder.cpp.obj):FacetSequenceTreeBuilder.cpp:(.text+0x12e3): undefined reference to `__imp_pthread_mutex_destroy' CMakeFiles/geos.dir/objects.a(FacetSequenceTreeBuilder.cpp.obj):FacetSequenceTreeBuilder.cpp:(.text$_ZN4geos9operation8distance24FacetSequenceTreeBuilder17FacetSequenceTreeD1Ev[_ZN4geos9operation8distance24FacetSequenceTreeBuilder17FacetSequenceTreeD1Ev]+0x3f): undefined reference to `__imp_pthread_mutex_destroy' CMakeFiles/geos.dir/objects.a(FacetSequenceTreeBuilder.cpp.obj):FacetSequenceTreeBuilder.cpp:(.text$_ZN4geos9operation8distance24FacetSequenceTreeBuilder17FacetSequenceTreeD0Ev[_ZN4geos9operation8distance24FacetSequenceTreeBuilder17FacetSequenceTreeD0Ev]+0x38): undefined reference to `__imp_pthread_mutex_destroy' CMakeFiles/geos.dir/objects.a(FacetSequenceTreeBuilder.cpp.obj):FacetSequenceTreeBuilder.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_9operation8distance13FacetSequenceENS1_14EnvelopeTraitsEE5queryEPKNS_4geom8EnvelopeERNS0_11ItemVisitorE[_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_9operation8distance13FacetSequenceENS1_14EnvelopeTraitsEE5queryEPKNS_4geom8EnvelopeERNS0_11ItemVisitorE]+0x1a7): undefined reference to `__imp_pthread_mutex_lock' CMakeFiles/geos.dir/objects.a(FacetSequenceTreeBuilder.cpp.obj):FacetSequenceTreeBuilder.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_9operation8distance13FacetSequenceENS1_14EnvelopeTraitsEE5queryEPKNS_4geom8EnvelopeERNS0_11ItemVisitorE[_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_9operation8distance13FacetSequenceENS1_14EnvelopeTraitsEE5queryEPKNS_4geom8EnvelopeERNS0_11ItemVisitorE]+0x1c0): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(FacetSequenceTreeBuilder.cpp.obj):FacetSequenceTreeBuilder.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_9operation8distance13FacetSequenceENS1_14EnvelopeTraitsEE5queryEPKNS_4geom8EnvelopeERNS0_11ItemVisitorE[_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_9operation8distance13FacetSequenceENS1_14EnvelopeTraitsEE5queryEPKNS_4geom8EnvelopeERNS0_11ItemVisitorE]+0x912): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(FacetSequenceTreeBuilder.cpp.obj):FacetSequenceTreeBuilder.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_9operation8distance13FacetSequenceENS1_14EnvelopeTraitsEE5queryEPKNS_4geom8EnvelopeERNS0_11ItemVisitorE[_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_9operation8distance13FacetSequenceENS1_14EnvelopeTraitsEE5queryEPKNS_4geom8EnvelopeERNS0_11ItemVisitorE]+0xb11): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(FacetSequenceTreeBuilder.cpp.obj):FacetSequenceTreeBuilder.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_9operation8distance13FacetSequenceENS1_14EnvelopeTraitsEE6removeEPKNS_4geom8EnvelopeEPv[_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_9operation8distance13FacetSequenceENS1_14EnvelopeTraitsEE6removeEPKNS_4geom8EnvelopeEPv]+0x53): undefined reference to `__imp_pthread_mutex_lock' CMakeFiles/geos.dir/objects.a(FacetSequenceTreeBuilder.cpp.obj):FacetSequenceTreeBuilder.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_9operation8distance13FacetSequenceENS1_14EnvelopeTraitsEE6removeEPKNS_4geom8EnvelopeEPv[_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_9operation8distance13FacetSequenceENS1_14EnvelopeTraitsEE6removeEPKNS_4geom8EnvelopeEPv]+0x71): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(FacetSequenceTreeBuilder.cpp.obj):FacetSequenceTreeBuilder.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_9operation8distance13FacetSequenceENS1_14EnvelopeTraitsEE6removeEPKNS_4geom8EnvelopeEPv[_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_9operation8distance13FacetSequenceENS1_14EnvelopeTraitsEE6removeEPKNS_4geom8EnvelopeEPv]+0x890): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(FacetSequenceTreeBuilder.cpp.obj):FacetSequenceTreeBuilder.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_9operation8distance13FacetSequenceENS1_14EnvelopeTraitsEE6removeEPKNS_4geom8EnvelopeEPv[_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_9operation8distance13FacetSequenceENS1_14EnvelopeTraitsEE6removeEPKNS_4geom8EnvelopeEPv]+0xa95): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(FacetSequenceTreeBuilder.cpp.obj):FacetSequenceTreeBuilder.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_9operation8distance13FacetSequenceENS1_14EnvelopeTraitsEE5queryEPKNS_4geom8EnvelopeERSt6vectorIPvSaISF_EE[_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_9operation8distance13FacetSequenceENS1_14EnvelopeTraitsEE5queryEPKNS_4geom8EnvelopeERSt6vectorIPvSaISF_EE]+0x205): undefined reference to `__imp_pthread_mutex_lock' CMakeFiles/geos.dir/objects.a(FacetSequenceTreeBuilder.cpp.obj):FacetSequenceTreeBuilder.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_9operation8distance13FacetSequenceENS1_14EnvelopeTraitsEE5queryEPKNS_4geom8EnvelopeERSt6vectorIPvSaISF_EE[_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_9operation8distance13FacetSequenceENS1_14EnvelopeTraitsEE5queryEPKNS_4geom8EnvelopeERSt6vectorIPvSaISF_EE]+0x21e): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(FacetSequenceTreeBuilder.cpp.obj):FacetSequenceTreeBuilder.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_9operation8distance13FacetSequenceENS1_14EnvelopeTraitsEE5queryEPKNS_4geom8EnvelopeERSt6vectorIPvSaISF_EE[_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_9operation8distance13FacetSequenceENS1_14EnvelopeTraitsEE5queryEPKNS_4geom8EnvelopeERSt6vectorIPvSaISF_EE]+0x972): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(FacetSequenceTreeBuilder.cpp.obj):FacetSequenceTreeBuilder.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_9operation8distance13FacetSequenceENS1_14EnvelopeTraitsEE5queryEPKNS_4geom8EnvelopeERSt6vectorIPvSaISF_EE[_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_9operation8distance13FacetSequenceENS1_14EnvelopeTraitsEE5queryEPKNS_4geom8EnvelopeERSt6vectorIPvSaISF_EE]+0xb71): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(IndexedFacetDistance.cpp.obj):IndexedFacetDistance.cpp:(.text+0x6ec): undefined reference to `__imp_pthread_mutex_lock' CMakeFiles/geos.dir/objects.a(IndexedFacetDistance.cpp.obj):IndexedFacetDistance.cpp:(.text+0x70d): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(IndexedFacetDistance.cpp.obj):IndexedFacetDistance.cpp:(.text+0x2287): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(IndexedFacetDistance.cpp.obj):IndexedFacetDistance.cpp:(.text+0x2882): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(IndexedFacetDistance.cpp.obj):IndexedFacetDistance.cpp:(.text+0x2e01): undefined reference to `__imp_pthread_mutex_lock' CMakeFiles/geos.dir/objects.a(IndexedFacetDistance.cpp.obj):IndexedFacetDistance.cpp:(.text+0x2e22): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(IndexedFacetDistance.cpp.obj):IndexedFacetDistance.cpp:(.text+0x4997): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(IndexedFacetDistance.cpp.obj):IndexedFacetDistance.cpp:(.text+0x4f91): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(EdgeNodingBuilder.cpp.obj):EdgeNodingBuilder.cpp:(.text+0xe6): undefined reference to `__imp_pthread_mutex_init' CMakeFiles/geos.dir/objects.a(EdgeNodingBuilder.cpp.obj):EdgeNodingBuilder.cpp:(.text+0x1ba): undefined reference to `__imp_pthread_mutex_destroy' CMakeFiles/geos.dir/objects.a(EdgeNodingBuilder.cpp.obj):EdgeNodingBuilder.cpp:(.text+0x2ef): undefined reference to `__imp_pthread_mutex_destroy' CMakeFiles/geos.dir/objects.a(EdgeNodingBuilder.cpp.obj):EdgeNodingBuilder.cpp:(.text+0x34c): undefined reference to `__imp_pthread_mutex_destroy' CMakeFiles/geos.dir/objects.a(EdgeNodingBuilder.cpp.obj):EdgeNodingBuilder.cpp:(.text+0x41a): undefined reference to `__imp_pthread_mutex_destroy' CMakeFiles/geos.dir/objects.a(OverlayNG.cpp.obj):OverlayNG.cpp:(.text+0x14fb): undefined reference to `__imp_pthread_mutex_destroy' CMakeFiles/geos.dir/objects.a(OverlayNG.cpp.obj):OverlayNG.cpp:(.text+0x155e): more undefined references to `__imp_pthread_mutex_destroy' follow CMakeFiles/geos.dir/objects.a(HoleAssigner.cpp.obj):HoleAssigner.cpp:(.text+0x320): undefined reference to `__imp_pthread_mutex_lock' CMakeFiles/geos.dir/objects.a(HoleAssigner.cpp.obj):HoleAssigner.cpp:(.text+0x339): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(HoleAssigner.cpp.obj):HoleAssigner.cpp:(.text+0xa92): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(HoleAssigner.cpp.obj):HoleAssigner.cpp:(.text+0xc91): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(HoleAssigner.cpp.obj):HoleAssigner.cpp:(.text+0xfb7): undefined reference to `__imp_pthread_mutex_lock' CMakeFiles/geos.dir/objects.a(HoleAssigner.cpp.obj):HoleAssigner.cpp:(.text+0xfd1): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(HoleAssigner.cpp.obj):HoleAssigner.cpp:(.text+0x1716): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(HoleAssigner.cpp.obj):HoleAssigner.cpp:(.text+0x190b): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(HoleAssigner.cpp.obj):HoleAssigner.cpp:(.text+0x19ac): undefined reference to `__imp_pthread_mutex_init' CMakeFiles/geos.dir/objects.a(HoleAssigner.cpp.obj):HoleAssigner.cpp:(.text+0x1c06): undefined reference to `__imp_pthread_mutex_destroy' CMakeFiles/geos.dir/objects.a(HoleAssigner.cpp.obj):HoleAssigner.cpp:(.text+0x1cb7): undefined reference to `__imp_pthread_mutex_lock' CMakeFiles/geos.dir/objects.a(HoleAssigner.cpp.obj):HoleAssigner.cpp:(.text+0x1cd9): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(HoleAssigner.cpp.obj):HoleAssigner.cpp:(.text+0x2440): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(HoleAssigner.cpp.obj):HoleAssigner.cpp:(.text+0x2647): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(HoleAssigner.cpp.obj):HoleAssigner.cpp:(.text+0x288e): undefined reference to `__imp_pthread_mutex_lock' CMakeFiles/geos.dir/objects.a(HoleAssigner.cpp.obj):HoleAssigner.cpp:(.text+0x28a7): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(HoleAssigner.cpp.obj):HoleAssigner.cpp:(.text+0x3022): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(HoleAssigner.cpp.obj):HoleAssigner.cpp:(.text+0x321c): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(HoleAssigner.cpp.obj):HoleAssigner.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPNS_9operation10polygonize8EdgeRingENS1_14EnvelopeTraitsEED1Ev[_ZN4geos5index7strtree15TemplateSTRtreeIPNS_9operation10polygonize8EdgeRingENS1_14EnvelopeTraitsEED1Ev]+0x22): undefined reference to `__imp_pthread_mutex_destroy' CMakeFiles/geos.dir/objects.a(HoleAssigner.cpp.obj):HoleAssigner.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPNS_9operation10polygonize8EdgeRingENS1_14EnvelopeTraitsEED0Ev[_ZN4geos5index7strtree15TemplateSTRtreeIPNS_9operation10polygonize8EdgeRingENS1_14EnvelopeTraitsEED0Ev]+0x20): undefined reference to `__imp_pthread_mutex_destroy' CMakeFiles/geos.dir/objects.a(HoleAssigner.cpp.obj):HoleAssigner.cpp:(.text$_ZN4geos5index7strtree19TemplateSTRtreeImplIPNS_9operation10polygonize8EdgeRingENS1_14EnvelopeTraitsEED2Ev[_ZN4geos5index7strtree19TemplateSTRtreeImplIPNS_9operation10polygonize8EdgeRingENS1_14EnvelopeTraitsEED2Ev]+0x21): undefined reference to `__imp_pthread_mutex_destroy' CMakeFiles/geos.dir/objects.a(HoleAssigner.cpp.obj):HoleAssigner.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPNS_9operation10polygonize8EdgeRingENS1_14EnvelopeTraitsEE5queryEPKNS_4geom8EnvelopeERNS0_11ItemVisitorE[_ZN4geos5index7strtree15TemplateSTRtreeIPNS_9operation10polygonize8EdgeRingENS1_14EnvelopeTraitsEE5queryEPKNS_4geom8EnvelopeERNS0_11ItemVisitorE]+0x1a7): undefined reference to `__imp_pthread_mutex_lock' CMakeFiles/geos.dir/objects.a(HoleAssigner.cpp.obj):HoleAssigner.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPNS_9operation10polygonize8EdgeRingENS1_14EnvelopeTraitsEE5queryEPKNS_4geom8EnvelopeERNS0_11ItemVisitorE[_ZN4geos5index7strtree15TemplateSTRtreeIPNS_9operation10polygonize8EdgeRingENS1_14EnvelopeTraitsEE5queryEPKNS_4geom8EnvelopeERNS0_11ItemVisitorE]+0x1c0): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(HoleAssigner.cpp.obj):HoleAssigner.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPNS_9operation10polygonize8EdgeRingENS1_14EnvelopeTraitsEE5queryEPKNS_4geom8EnvelopeERNS0_11ItemVisitorE[_ZN4geos5index7strtree15TemplateSTRtreeIPNS_9operation10polygonize8EdgeRingENS1_14EnvelopeTraitsEE5queryEPKNS_4geom8EnvelopeERNS0_11ItemVisitorE]+0x912): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(HoleAssigner.cpp.obj):HoleAssigner.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPNS_9operation10polygonize8EdgeRingENS1_14EnvelopeTraitsEE5queryEPKNS_4geom8EnvelopeERNS0_11ItemVisitorE[_ZN4geos5index7strtree15TemplateSTRtreeIPNS_9operation10polygonize8EdgeRingENS1_14EnvelopeTraitsEE5queryEPKNS_4geom8EnvelopeERNS0_11ItemVisitorE]+0xb11): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(HoleAssigner.cpp.obj):HoleAssigner.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPNS_9operation10polygonize8EdgeRingENS1_14EnvelopeTraitsEE6removeEPKNS_4geom8EnvelopeEPv[_ZN4geos5index7strtree15TemplateSTRtreeIPNS_9operation10polygonize8EdgeRingENS1_14EnvelopeTraitsEE6removeEPKNS_4geom8EnvelopeEPv]+0x53): undefined reference to `__imp_pthread_mutex_lock' CMakeFiles/geos.dir/objects.a(HoleAssigner.cpp.obj):HoleAssigner.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPNS_9operation10polygonize8EdgeRingENS1_14EnvelopeTraitsEE6removeEPKNS_4geom8EnvelopeEPv[_ZN4geos5index7strtree15TemplateSTRtreeIPNS_9operation10polygonize8EdgeRingENS1_14EnvelopeTraitsEE6removeEPKNS_4geom8EnvelopeEPv]+0x71): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(HoleAssigner.cpp.obj):HoleAssigner.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPNS_9operation10polygonize8EdgeRingENS1_14EnvelopeTraitsEE6removeEPKNS_4geom8EnvelopeEPv[_ZN4geos5index7strtree15TemplateSTRtreeIPNS_9operation10polygonize8EdgeRingENS1_14EnvelopeTraitsEE6removeEPKNS_4geom8EnvelopeEPv]+0x890): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(HoleAssigner.cpp.obj):HoleAssigner.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPNS_9operation10polygonize8EdgeRingENS1_14EnvelopeTraitsEE6removeEPKNS_4geom8EnvelopeEPv[_ZN4geos5index7strtree15TemplateSTRtreeIPNS_9operation10polygonize8EdgeRingENS1_14EnvelopeTraitsEE6removeEPKNS_4geom8EnvelopeEPv]+0xa95): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(HoleAssigner.cpp.obj):HoleAssigner.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPNS_9operation10polygonize8EdgeRingENS1_14EnvelopeTraitsEE5queryEPKNS_4geom8EnvelopeERSt6vectorIPvSaISE_EE[_ZN4geos5index7strtree15TemplateSTRtreeIPNS_9operation10polygonize8EdgeRingENS1_14EnvelopeTraitsEE5queryEPKNS_4geom8EnvelopeERSt6vectorIPvSaISE_EE]+0x205): undefined reference to `__imp_pthread_mutex_lock' CMakeFiles/geos.dir/objects.a(HoleAssigner.cpp.obj):HoleAssigner.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPNS_9operation10polygonize8EdgeRingENS1_14EnvelopeTraitsEE5queryEPKNS_4geom8EnvelopeERSt6vectorIPvSaISE_EE[_ZN4geos5index7strtree15TemplateSTRtreeIPNS_9operation10polygonize8EdgeRingENS1_14EnvelopeTraitsEE5queryEPKNS_4geom8EnvelopeERSt6vectorIPvSaISE_EE]+0x21e): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(HoleAssigner.cpp.obj):HoleAssigner.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPNS_9operation10polygonize8EdgeRingENS1_14EnvelopeTraitsEE5queryEPKNS_4geom8EnvelopeERSt6vectorIPvSaISE_EE[_ZN4geos5index7strtree15TemplateSTRtreeIPNS_9operation10polygonize8EdgeRingENS1_14EnvelopeTraitsEE5queryEPKNS_4geom8EnvelopeERSt6vectorIPvSaISE_EE]+0x972): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(HoleAssigner.cpp.obj):HoleAssigner.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPNS_9operation10polygonize8EdgeRingENS1_14EnvelopeTraitsEE5queryEPKNS_4geom8EnvelopeERSt6vectorIPvSaISE_EE[_ZN4geos5index7strtree15TemplateSTRtreeIPNS_9operation10polygonize8EdgeRingENS1_14EnvelopeTraitsEE5queryEPKNS_4geom8EnvelopeERSt6vectorIPvSaISE_EE]+0xb71): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(CascadedPolygonUnion.cpp.obj):CascadedPolygonUnion.cpp:(.text+0xc18): undefined reference to `__imp_pthread_mutex_init' CMakeFiles/geos.dir/objects.a(CascadedPolygonUnion.cpp.obj):CascadedPolygonUnion.cpp:(.text+0xe6a): undefined reference to `__imp_pthread_mutex_lock' CMakeFiles/geos.dir/objects.a(CascadedPolygonUnion.cpp.obj):CascadedPolygonUnion.cpp:(.text+0xe93): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(CascadedPolygonUnion.cpp.obj):CascadedPolygonUnion.cpp:(.text+0x1046): undefined reference to `__imp_pthread_mutex_destroy' CMakeFiles/geos.dir/objects.a(CascadedPolygonUnion.cpp.obj):CascadedPolygonUnion.cpp:(.text+0x216c): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(CascadedPolygonUnion.cpp.obj):CascadedPolygonUnion.cpp:(.text+0x24ca): undefined reference to `__imp_pthread_mutex_destroy' CMakeFiles/geos.dir/objects.a(CascadedPolygonUnion.cpp.obj):CascadedPolygonUnion.cpp:(.text+0x24e9): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(CascadedPolygonUnion.cpp.obj):CascadedPolygonUnion.cpp:(.text+0x2552): undefined reference to `__imp_pthread_mutex_destroy' CMakeFiles/geos.dir/objects.a(CascadedPolygonUnion.cpp.obj):CascadedPolygonUnion.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom8GeometryENS1_14EnvelopeTraitsEED1Ev[_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom8GeometryENS1_14EnvelopeTraitsEED1Ev]+0x22): undefined reference to `__imp_pthread_mutex_destroy' CMakeFiles/geos.dir/objects.a(CascadedPolygonUnion.cpp.obj):CascadedPolygonUnion.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom8GeometryENS1_14EnvelopeTraitsEED0Ev[_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom8GeometryENS1_14EnvelopeTraitsEED0Ev]+0x20): undefined reference to `__imp_pthread_mutex_destroy' CMakeFiles/geos.dir/objects.a(CascadedPolygonUnion.cpp.obj):CascadedPolygonUnion.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom8GeometryENS1_14EnvelopeTraitsEE5queryEPKNS3_8EnvelopeERNS0_11ItemVisitorE[_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom8GeometryENS1_14EnvelopeTraitsEE5queryEPKNS3_8EnvelopeERNS0_11ItemVisitorE]+0x1a7): undefined reference to `__imp_pthread_mutex_lock' CMakeFiles/geos.dir/objects.a(CascadedPolygonUnion.cpp.obj):CascadedPolygonUnion.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom8GeometryENS1_14EnvelopeTraitsEE5queryEPKNS3_8EnvelopeERNS0_11ItemVisitorE[_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom8GeometryENS1_14EnvelopeTraitsEE5queryEPKNS3_8EnvelopeERNS0_11ItemVisitorE]+0x1c0): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(CascadedPolygonUnion.cpp.obj):CascadedPolygonUnion.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom8GeometryENS1_14EnvelopeTraitsEE5queryEPKNS3_8EnvelopeERNS0_11ItemVisitorE[_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom8GeometryENS1_14EnvelopeTraitsEE5queryEPKNS3_8EnvelopeERNS0_11ItemVisitorE]+0x912): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(CascadedPolygonUnion.cpp.obj):CascadedPolygonUnion.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom8GeometryENS1_14EnvelopeTraitsEE5queryEPKNS3_8EnvelopeERNS0_11ItemVisitorE[_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom8GeometryENS1_14EnvelopeTraitsEE5queryEPKNS3_8EnvelopeERNS0_11ItemVisitorE]+0xb11): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(CascadedPolygonUnion.cpp.obj):CascadedPolygonUnion.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom8GeometryENS1_14EnvelopeTraitsEE6removeEPKNS3_8EnvelopeEPv[_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom8GeometryENS1_14EnvelopeTraitsEE6removeEPKNS3_8EnvelopeEPv]+0x53): undefined reference to `__imp_pthread_mutex_lock' CMakeFiles/geos.dir/objects.a(CascadedPolygonUnion.cpp.obj):CascadedPolygonUnion.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom8GeometryENS1_14EnvelopeTraitsEE6removeEPKNS3_8EnvelopeEPv[_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom8GeometryENS1_14EnvelopeTraitsEE6removeEPKNS3_8EnvelopeEPv]+0x71): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(CascadedPolygonUnion.cpp.obj):CascadedPolygonUnion.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom8GeometryENS1_14EnvelopeTraitsEE6removeEPKNS3_8EnvelopeEPv[_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom8GeometryENS1_14EnvelopeTraitsEE6removeEPKNS3_8EnvelopeEPv]+0x890): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(CascadedPolygonUnion.cpp.obj):CascadedPolygonUnion.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom8GeometryENS1_14EnvelopeTraitsEE6removeEPKNS3_8EnvelopeEPv[_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom8GeometryENS1_14EnvelopeTraitsEE6removeEPKNS3_8EnvelopeEPv]+0xa95): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(CascadedPolygonUnion.cpp.obj):CascadedPolygonUnion.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom8GeometryENS1_14EnvelopeTraitsEE5queryEPKNS3_8EnvelopeERSt6vectorIPvSaISD_EE[_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom8GeometryENS1_14EnvelopeTraitsEE5queryEPKNS3_8EnvelopeERSt6vectorIPvSaISD_EE]+0x205): undefined reference to `__imp_pthread_mutex_lock' CMakeFiles/geos.dir/objects.a(CascadedPolygonUnion.cpp.obj):CascadedPolygonUnion.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom8GeometryENS1_14EnvelopeTraitsEE5queryEPKNS3_8EnvelopeERSt6vectorIPvSaISD_EE[_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom8GeometryENS1_14EnvelopeTraitsEE5queryEPKNS3_8EnvelopeERSt6vectorIPvSaISD_EE]+0x21e): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(CascadedPolygonUnion.cpp.obj):CascadedPolygonUnion.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom8GeometryENS1_14EnvelopeTraitsEE5queryEPKNS3_8EnvelopeERSt6vectorIPvSaISD_EE[_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom8GeometryENS1_14EnvelopeTraitsEE5queryEPKNS3_8EnvelopeERSt6vectorIPvSaISD_EE]+0x972): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(CascadedPolygonUnion.cpp.obj):CascadedPolygonUnion.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom8GeometryENS1_14EnvelopeTraitsEE5queryEPKNS3_8EnvelopeERSt6vectorIPvSaISD_EE[_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom8GeometryENS1_14EnvelopeTraitsEE5queryEPKNS3_8EnvelopeERSt6vectorIPvSaISD_EE]+0xb71): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(IndexedNestedHoleTester.cpp.obj):IndexedNestedHoleTester.cpp:(.text+0x40a): undefined reference to `__imp_pthread_mutex_lock' CMakeFiles/geos.dir/objects.a(IndexedNestedHoleTester.cpp.obj):IndexedNestedHoleTester.cpp:(.text+0x423): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(IndexedNestedHoleTester.cpp.obj):IndexedNestedHoleTester.cpp:(.text+0xb76): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(IndexedNestedHoleTester.cpp.obj):IndexedNestedHoleTester.cpp:(.text+0xdc1): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(IndexedNestedPolygonTester.cpp.obj):IndexedNestedPolygonTester.cpp:(.text+0x41e): undefined reference to `__imp_pthread_mutex_destroy' CMakeFiles/geos.dir/objects.a(IndexedNestedPolygonTester.cpp.obj):IndexedNestedPolygonTester.cpp:(.text+0x648): undefined reference to `__imp_pthread_mutex_init' CMakeFiles/geos.dir/objects.a(IndexedNestedPolygonTester.cpp.obj):IndexedNestedPolygonTester.cpp:(.text+0x700): undefined reference to `__imp_pthread_mutex_destroy' CMakeFiles/geos.dir/objects.a(IndexedNestedPolygonTester.cpp.obj):IndexedNestedPolygonTester.cpp:(.text+0xb1c): undefined reference to `__imp_pthread_mutex_lock' CMakeFiles/geos.dir/objects.a(IndexedNestedPolygonTester.cpp.obj):IndexedNestedPolygonTester.cpp:(.text+0xb35): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(IndexedNestedPolygonTester.cpp.obj):IndexedNestedPolygonTester.cpp:(.text+0x1296): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(IndexedNestedPolygonTester.cpp.obj):IndexedNestedPolygonTester.cpp:(.text+0x14e1): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(IndexedNestedPolygonTester.cpp.obj):IndexedNestedPolygonTester.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom7PolygonENS1_14EnvelopeTraitsEED1Ev[_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom7PolygonENS1_14EnvelopeTraitsEED1Ev]+0x22): undefined reference to `__imp_pthread_mutex_destroy' CMakeFiles/geos.dir/objects.a(IndexedNestedPolygonTester.cpp.obj):IndexedNestedPolygonTester.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom7PolygonENS1_14EnvelopeTraitsEED0Ev[_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom7PolygonENS1_14EnvelopeTraitsEED0Ev]+0x20): undefined reference to `__imp_pthread_mutex_destroy' CMakeFiles/geos.dir/objects.a(IndexedNestedPolygonTester.cpp.obj):IndexedNestedPolygonTester.cpp:(.text$_ZNSt8_Rb_treeIPKN4geos4geom7PolygonESt4pairIKS4_NS0_9algorithm6locate25IndexedPointInAreaLocatorEESt10_Select1stISA_ESt4lessIS4_ESaISA_EE8_M_eraseEPSt13_Rb_tree_nodeISA_E[_ZNSt8_Rb_treeIPKN4geos4geom7PolygonESt4pairIKS4_NS0_9algorithm6locate25IndexedPointInAreaLocatorEESt10_Select1stISA_ESt4lessIS4_ESaISA_EE8_M_eraseEPSt13_Rb_tree_nodeISA_E]+0x13): undefined reference to `__imp_pthread_mutex_destroy' CMakeFiles/geos.dir/objects.a(IndexedNestedPolygonTester.cpp.obj):IndexedNestedPolygonTester.cpp:(.text$_ZNSt8_Rb_treeIPKN4geos4geom7PolygonESt4pairIKS4_NS0_9algorithm6locate25IndexedPointInAreaLocatorEESt10_Select1stISA_ESt4lessIS4_ESaISA_EE8_M_eraseEPSt13_Rb_tree_nodeISA_E[_ZNSt8_Rb_treeIPKN4geos4geom7PolygonESt4pairIKS4_NS0_9algorithm6locate25IndexedPointInAreaLocatorEESt10_Select1stISA_ESt4lessIS4_ESaISA_EE8_M_eraseEPSt13_Rb_tree_nodeISA_E]+0x190): undefined reference to `__imp_pthread_mutex_destroy' CMakeFiles/geos.dir/objects.a(IndexedNestedPolygonTester.cpp.obj):IndexedNestedPolygonTester.cpp:(.text$_ZNSt8_Rb_treeIPKN4geos4geom7PolygonESt4pairIKS4_NS0_9algorithm6locate25IndexedPointInAreaLocatorEESt10_Select1stISA_ESt4lessIS4_ESaISA_EE8_M_eraseEPSt13_Rb_tree_nodeISA_E[_ZNSt8_Rb_treeIPKN4geos4geom7PolygonESt4pairIKS4_NS0_9algorithm6locate25IndexedPointInAreaLocatorEESt10_Select1stISA_ESt4lessIS4_ESaISA_EE8_M_eraseEPSt13_Rb_tree_nodeISA_E]+0x1ee): undefined reference to `__imp_pthread_mutex_destroy' CMakeFiles/geos.dir/objects.a(IndexedNestedPolygonTester.cpp.obj):IndexedNestedPolygonTester.cpp:(.text$_ZNSt8_Rb_treeIPKN4geos4geom7PolygonESt4pairIKS4_NS0_9algorithm6locate25IndexedPointInAreaLocatorEESt10_Select1stISA_ESt4lessIS4_ESaISA_EE8_M_eraseEPSt13_Rb_tree_nodeISA_E[_ZNSt8_Rb_treeIPKN4geos4geom7PolygonESt4pairIKS4_NS0_9algorithm6locate25IndexedPointInAreaLocatorEESt10_Select1stISA_ESt4lessIS4_ESaISA_EE8_M_eraseEPSt13_Rb_tree_nodeISA_E]+0x24c): more undefined references to `__imp_pthread_mutex_destroy' follow CMakeFiles/geos.dir/objects.a(IndexedNestedPolygonTester.cpp.obj):IndexedNestedPolygonTester.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom7PolygonENS1_14EnvelopeTraitsEE5queryEPKNS3_8EnvelopeERNS0_11ItemVisitorE[_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom7PolygonENS1_14EnvelopeTraitsEE5queryEPKNS3_8EnvelopeERNS0_11ItemVisitorE]+0x1a7): undefined reference to `__imp_pthread_mutex_lock' CMakeFiles/geos.dir/objects.a(IndexedNestedPolygonTester.cpp.obj):IndexedNestedPolygonTester.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom7PolygonENS1_14EnvelopeTraitsEE5queryEPKNS3_8EnvelopeERNS0_11ItemVisitorE[_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom7PolygonENS1_14EnvelopeTraitsEE5queryEPKNS3_8EnvelopeERNS0_11ItemVisitorE]+0x1c0): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(IndexedNestedPolygonTester.cpp.obj):IndexedNestedPolygonTester.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom7PolygonENS1_14EnvelopeTraitsEE5queryEPKNS3_8EnvelopeERNS0_11ItemVisitorE[_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom7PolygonENS1_14EnvelopeTraitsEE5queryEPKNS3_8EnvelopeERNS0_11ItemVisitorE]+0x912): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(IndexedNestedPolygonTester.cpp.obj):IndexedNestedPolygonTester.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom7PolygonENS1_14EnvelopeTraitsEE5queryEPKNS3_8EnvelopeERNS0_11ItemVisitorE[_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom7PolygonENS1_14EnvelopeTraitsEE5queryEPKNS3_8EnvelopeERNS0_11ItemVisitorE]+0xb11): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(IndexedNestedPolygonTester.cpp.obj):IndexedNestedPolygonTester.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom7PolygonENS1_14EnvelopeTraitsEE6removeEPKNS3_8EnvelopeEPv[_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom7PolygonENS1_14EnvelopeTraitsEE6removeEPKNS3_8EnvelopeEPv]+0x53): undefined reference to `__imp_pthread_mutex_lock' CMakeFiles/geos.dir/objects.a(IndexedNestedPolygonTester.cpp.obj):IndexedNestedPolygonTester.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom7PolygonENS1_14EnvelopeTraitsEE6removeEPKNS3_8EnvelopeEPv[_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom7PolygonENS1_14EnvelopeTraitsEE6removeEPKNS3_8EnvelopeEPv]+0x71): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(IndexedNestedPolygonTester.cpp.obj):IndexedNestedPolygonTester.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom7PolygonENS1_14EnvelopeTraitsEE6removeEPKNS3_8EnvelopeEPv[_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom7PolygonENS1_14EnvelopeTraitsEE6removeEPKNS3_8EnvelopeEPv]+0x890): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(IndexedNestedPolygonTester.cpp.obj):IndexedNestedPolygonTester.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom7PolygonENS1_14EnvelopeTraitsEE6removeEPKNS3_8EnvelopeEPv[_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom7PolygonENS1_14EnvelopeTraitsEE6removeEPKNS3_8EnvelopeEPv]+0xa95): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(IndexedNestedPolygonTester.cpp.obj):IndexedNestedPolygonTester.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom7PolygonENS1_14EnvelopeTraitsEE5queryEPKNS3_8EnvelopeERSt6vectorIPvSaISD_EE[_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom7PolygonENS1_14EnvelopeTraitsEE5queryEPKNS3_8EnvelopeERSt6vectorIPvSaISD_EE]+0x205): undefined reference to `__imp_pthread_mutex_lock' CMakeFiles/geos.dir/objects.a(IndexedNestedPolygonTester.cpp.obj):IndexedNestedPolygonTester.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom7PolygonENS1_14EnvelopeTraitsEE5queryEPKNS3_8EnvelopeERSt6vectorIPvSaISD_EE[_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom7PolygonENS1_14EnvelopeTraitsEE5queryEPKNS3_8EnvelopeERSt6vectorIPvSaISD_EE]+0x21e): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(IndexedNestedPolygonTester.cpp.obj):IndexedNestedPolygonTester.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom7PolygonENS1_14EnvelopeTraitsEE5queryEPKNS3_8EnvelopeERSt6vectorIPvSaISD_EE[_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom7PolygonENS1_14EnvelopeTraitsEE5queryEPKNS3_8EnvelopeERSt6vectorIPvSaISD_EE]+0x972): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(IndexedNestedPolygonTester.cpp.obj):IndexedNestedPolygonTester.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom7PolygonENS1_14EnvelopeTraitsEE5queryEPKNS3_8EnvelopeERSt6vectorIPvSaISD_EE[_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom7PolygonENS1_14EnvelopeTraitsEE5queryEPKNS3_8EnvelopeERSt6vectorIPvSaISD_EE]+0xb71): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(IsSimpleOp.cpp.obj):IsSimpleOp.cpp:(.text+0x996): undefined reference to `__imp_pthread_mutex_init' CMakeFiles/geos.dir/objects.a(IsSimpleOp.cpp.obj):IsSimpleOp.cpp:(.text+0xa78): undefined reference to `__imp_pthread_mutex_destroy' CMakeFiles/geos.dir/objects.a(IsSimpleOp.cpp.obj):IsSimpleOp.cpp:(.text+0xf16): undefined reference to `__imp_pthread_mutex_init' CMakeFiles/geos.dir/objects.a(IsSimpleOp.cpp.obj):IsSimpleOp.cpp:(.text+0xff8): undefined reference to `__imp_pthread_mutex_destroy' CMakeFiles/geos.dir/objects.a(IsValidOp.cpp.obj):IsValidOp.cpp:(.text+0x14e4): undefined reference to `__imp_pthread_mutex_init' CMakeFiles/geos.dir/objects.a(IsValidOp.cpp.obj):IsValidOp.cpp:(.text+0x15a1): undefined reference to `__imp_pthread_mutex_destroy' CMakeFiles/geos.dir/objects.a(IsValidOp.cpp.obj):IsValidOp.cpp:(.text+0x1b1e): undefined reference to `__imp_pthread_mutex_destroy' CMakeFiles/geos.dir/objects.a(IsValidOp.cpp.obj):IsValidOp.cpp:(.text+0x1b5c): undefined reference to `__imp_pthread_mutex_destroy' CMakeFiles/geos.dir/objects.a(IsValidOp.cpp.obj):IsValidOp.cpp:(.text+0x23e3): undefined reference to `__imp_pthread_mutex_destroy' CMakeFiles/geos.dir/objects.a(IsValidOp.cpp.obj):IsValidOp.cpp:(.text+0x2449): undefined reference to `__imp_pthread_mutex_init' CMakeFiles/geos.dir/objects.a(IsValidOp.cpp.obj):IsValidOp.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom10LinearRingENS1_14EnvelopeTraitsEED1Ev[_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom10LinearRingENS1_14EnvelopeTraitsEED1Ev]+0x22): undefined reference to `__imp_pthread_mutex_destroy' CMakeFiles/geos.dir/objects.a(IsValidOp.cpp.obj):IsValidOp.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom10LinearRingENS1_14EnvelopeTraitsEED0Ev[_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom10LinearRingENS1_14EnvelopeTraitsEED0Ev]+0x20): undefined reference to `__imp_pthread_mutex_destroy' CMakeFiles/geos.dir/objects.a(IsValidOp.cpp.obj):IsValidOp.cpp:(.text$_ZN4geos5index7strtree19TemplateSTRtreeImplIPKNS_4geom10LinearRingENS1_14EnvelopeTraitsEED2Ev[_ZN4geos5index7strtree19TemplateSTRtreeImplIPKNS_4geom10LinearRingENS1_14EnvelopeTraitsEED2Ev]+0x21): undefined reference to `__imp_pthread_mutex_destroy' CMakeFiles/geos.dir/objects.a(IsValidOp.cpp.obj):IsValidOp.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom10LinearRingENS1_14EnvelopeTraitsEE5queryEPKNS3_8EnvelopeERNS0_11ItemVisitorE[_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom10LinearRingENS1_14EnvelopeTraitsEE5queryEPKNS3_8EnvelopeERNS0_11ItemVisitorE]+0x1a7): undefined reference to `__imp_pthread_mutex_lock' CMakeFiles/geos.dir/objects.a(IsValidOp.cpp.obj):IsValidOp.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom10LinearRingENS1_14EnvelopeTraitsEE5queryEPKNS3_8EnvelopeERNS0_11ItemVisitorE[_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom10LinearRingENS1_14EnvelopeTraitsEE5queryEPKNS3_8EnvelopeERNS0_11ItemVisitorE]+0x1c0): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(IsValidOp.cpp.obj):IsValidOp.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom10LinearRingENS1_14EnvelopeTraitsEE5queryEPKNS3_8EnvelopeERNS0_11ItemVisitorE[_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom10LinearRingENS1_14EnvelopeTraitsEE5queryEPKNS3_8EnvelopeERNS0_11ItemVisitorE]+0x912): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(IsValidOp.cpp.obj):IsValidOp.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom10LinearRingENS1_14EnvelopeTraitsEE5queryEPKNS3_8EnvelopeERNS0_11ItemVisitorE[_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom10LinearRingENS1_14EnvelopeTraitsEE5queryEPKNS3_8EnvelopeERNS0_11ItemVisitorE]+0xb11): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(IsValidOp.cpp.obj):IsValidOp.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom10LinearRingENS1_14EnvelopeTraitsEE6removeEPKNS3_8EnvelopeEPv[_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom10LinearRingENS1_14EnvelopeTraitsEE6removeEPKNS3_8EnvelopeEPv]+0x53): undefined reference to `__imp_pthread_mutex_lock' CMakeFiles/geos.dir/objects.a(IsValidOp.cpp.obj):IsValidOp.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom10LinearRingENS1_14EnvelopeTraitsEE6removeEPKNS3_8EnvelopeEPv[_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom10LinearRingENS1_14EnvelopeTraitsEE6removeEPKNS3_8EnvelopeEPv]+0x71): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(IsValidOp.cpp.obj):IsValidOp.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom10LinearRingENS1_14EnvelopeTraitsEE6removeEPKNS3_8EnvelopeEPv[_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom10LinearRingENS1_14EnvelopeTraitsEE6removeEPKNS3_8EnvelopeEPv]+0x890): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(IsValidOp.cpp.obj):IsValidOp.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom10LinearRingENS1_14EnvelopeTraitsEE6removeEPKNS3_8EnvelopeEPv[_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom10LinearRingENS1_14EnvelopeTraitsEE6removeEPKNS3_8EnvelopeEPv]+0xa95): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(IsValidOp.cpp.obj):IsValidOp.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom10LinearRingENS1_14EnvelopeTraitsEE5queryEPKNS3_8EnvelopeERSt6vectorIPvSaISD_EE[_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom10LinearRingENS1_14EnvelopeTraitsEE5queryEPKNS3_8EnvelopeERSt6vectorIPvSaISD_EE]+0x205): undefined reference to `__imp_pthread_mutex_lock' CMakeFiles/geos.dir/objects.a(IsValidOp.cpp.obj):IsValidOp.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom10LinearRingENS1_14EnvelopeTraitsEE5queryEPKNS3_8EnvelopeERSt6vectorIPvSaISD_EE[_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom10LinearRingENS1_14EnvelopeTraitsEE5queryEPKNS3_8EnvelopeERSt6vectorIPvSaISD_EE]+0x21e): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(IsValidOp.cpp.obj):IsValidOp.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom10LinearRingENS1_14EnvelopeTraitsEE5queryEPKNS3_8EnvelopeERSt6vectorIPvSaISD_EE[_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom10LinearRingENS1_14EnvelopeTraitsEE5queryEPKNS3_8EnvelopeERSt6vectorIPvSaISD_EE]+0x972): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(IsValidOp.cpp.obj):IsValidOp.cpp:(.text$_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom10LinearRingENS1_14EnvelopeTraitsEE5queryEPKNS3_8EnvelopeERSt6vectorIPvSaISD_EE[_ZN4geos5index7strtree15TemplateSTRtreeIPKNS_4geom10LinearRingENS1_14EnvelopeTraitsEE5queryEPKNS3_8EnvelopeERSt6vectorIPvSaISD_EE]+0xb71): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(PolygonTopologyAnalyzer.cpp.obj):PolygonTopologyAnalyzer.cpp:(.text+0x1a94): undefined reference to `__imp_pthread_mutex_init' CMakeFiles/geos.dir/objects.a(PolygonTopologyAnalyzer.cpp.obj):PolygonTopologyAnalyzer.cpp:(.text+0x1b55): undefined reference to `__imp_pthread_mutex_destroy' CMakeFiles/geos.dir/objects.a(PolygonTopologyAnalyzer.cpp.obj):PolygonTopologyAnalyzer.cpp:(.text+0x1cd6): undefined reference to `__imp_pthread_mutex_destroy' CMakeFiles/geos.dir/objects.a(MinimumClearance.cpp.obj):MinimumClearance.cpp:(.text+0x1272): undefined reference to `__imp_pthread_mutex_lock' CMakeFiles/geos.dir/objects.a(MinimumClearance.cpp.obj):MinimumClearance.cpp:(.text+0x1293): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(MinimumClearance.cpp.obj):MinimumClearance.cpp:(.text+0x21e5): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(MinimumClearance.cpp.obj):MinimumClearance.cpp:(.text+0x32d8): undefined reference to `__imp_pthread_mutex_unlock' CMakeFiles/geos.dir/objects.a(PolygonHoleJoiner.cpp.obj):PolygonHoleJoiner.cpp:(.text+0x2037): undefined reference to `__imp_pthread_mutex_init' CMakeFiles/geos.dir/objects.a(PolygonHoleJoiner.cpp.obj):PolygonHoleJoiner.cpp:(.text+0x21d4): undefined reference to `__imp_pthread_mutex_destroy' CMakeFiles/geos.dir/objects.a(PolygonHoleJoiner.cpp.obj):PolygonHoleJoiner.cpp:(.text+0x223b): undefined reference to `__imp_pthread_mutex_destroy' CMakeFiles/geos.dir/objects.a(PolygonHoleJoiner.cpp.obj):PolygonHoleJoiner.cpp:(.text+0x28bc): undefined reference to `__imp_pthread_mutex_destroy' CMakeFiles/geos.dir/objects.a(PolygonHoleJoiner.cpp.obj):PolygonHoleJoiner.cpp:(.text$_ZN4geos11triangulate7polygon17PolygonHoleJoinerD1Ev[_ZN4geos11triangulate7polygon17PolygonHoleJoinerD1Ev]+0xca): undefined reference to `__imp_pthread_mutex_destroy' CMakeFiles/geos.dir/objects.a(PolygonNoder.cpp.obj):PolygonNoder.cpp:(.text+0x929): undefined reference to `__imp_pthread_mutex_init' CMakeFiles/geos.dir/objects.a(PolygonNoder.cpp.obj):PolygonNoder.cpp:(.text+0xa6b): undefined reference to `__imp_pthread_mutex_destroy' CMakeFiles/geos.dir/objects.a(PolygonNoder.cpp.obj):PolygonNoder.cpp:(.text+0xaca): undefined reference to `__imp_pthread_mutex_destroy' ```

@otan
Copy link
Contributor Author

otan commented Jul 12, 2023

reading online, the "correct" answer seems to be let mingw compile it, instead of a unix makefile
alternatively, the answer may be to not build GEOS for windows.

@otan
Copy link
Contributor Author

otan commented Jul 12, 2023

trying this:

diff --git a/c-deps/BUILD.bazel b/c-deps/BUILD.bazel
index 058a693aa95..43b4ec54788 100644
--- a/c-deps/BUILD.bazel
+++ b/c-deps/BUILD.bazel
@@ -168,7 +168,10 @@ cmake(
         },
         "//conditions:default": {},
     }),
-    generate_args = ["-GUnix Makefiles"],
+    generate_args = select({
+        "@io_bazel_rules_go//go/platform:windows": ["-GMinGW Makefiles"],
+        "//conditions:default": ["-GUnix Makefiles"],
+    }),
     lib_source = "@geos//:all",
     out_lib_dir = select({
         "@io_bazel_rules_go//go/platform:windows": "bin",

yields this:

+ cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_SYSTEM_NAME=Windows -DBUILD_GEOSOP=OFF -DBUILD_TESTING=OFF -DGEOS_BUILD_DEVELOPER=OFF -DCMAKE_TOOLCHAIN_FILE=crosstool_bazel.cmake -DCMAKE_INSTALL_PREFIX=/home/roach/.cache/bazel/_bazel_roach/cc377fc379544923cc7508dd261e4a48/sandbox/processwrapper-sandbox/1/execroot/com_github_cockroachdb_cockroach/bazel-out/aarch64-fastbuild/bin/c-deps/libgeos_foreign -DCMAKE_PREFIX_PATH=/home/roach/.cache/bazel/_bazel_roach/cc377fc379544923cc7508dd261e4a48/sandbox/processwrapper-sandbox/1/execroot/com_github_cockroachdb_cockroach/bazel-out/aarch64-fastbuild/bin/c-deps/libgeos_foreign.ext_build_deps -DCMAKE_RANLIB= -G 'MinGW Makefiles' /home/roach/.cache/bazel/_bazel_roach/cc377fc379544923cc7508dd261e4a48/sandbox/processwrapper-sandbox/1/execroot/com_github_cockroachdb_cockroach/external/geos
CMake Error: Could not create named generator MinGW Makefiles

Generators
  Green Hills MULTI            = Generates Green Hills MULTI files
                                 (experimental, work-in-progress).
* Unix Makefiles               = Generates standard UNIX makefiles.
  Ninja                        = Generates build.ninja files.
  Ninja Multi-Config           = Generates build-<Config>.ninja files.
  Watcom WMake                 = Generates Watcom WMake makefiles.
  CodeBlocks - Ninja           = Generates CodeBlocks project files.
  CodeBlocks - Unix Makefiles  = Generates CodeBlocks project files.
  CodeLite - Ninja             = Generates CodeLite project files.
  CodeLite - Unix Makefiles    = Generates CodeLite project files.
  Eclipse CDT4 - Ninja         = Generates Eclipse CDT 4.0 project files.
  Eclipse CDT4 - Unix Makefiles= Generates Eclipse CDT 4.0 project files.
  Kate - Ninja                 = Generates Kate project files.
  Kate - Unix Makefiles        = Generates Kate project files.
  Sublime Text 2 - Ninja       = Generates Sublime Text 2 project files.
  Sublime Text 2 - Unix Makefiles
                               = Generates Sublime Text 2 project files.

Copy link
Collaborator

@sumeerbhola sumeerbhola left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looks good -- only one real comment.
someone from sql should probably also review.

Reviewed 8 of 15 files at r1.
Reviewable status: :shipit: complete! 0 of 0 LGTMs obtained (waiting on @cockroach-dev-inf, @otan, and @rickystewart)


pkg/geo/geoindex/testdata/s2_geometry line 278 at r1 (raw file):

Previously, otan (Oliver Tan) wrote…

this output has changed, but since we have "spilled" i think it's functionally equivalent.

I don't think it is equivalent. The exceedsBoundsCellID does not mean this will match everything. It will only match other shapes that exceeded the bounds. Do you have your cell visualizer handy -- I realize this is geometry and not geography, so these cells are not very meaningful visually, but I am curious what the original output and the new output look like and if the new output subsumes the original.


pkg/sql/logictest/testdata/logic_test/geospatial line 5744 at r2 (raw file):

SELECT ST_AsText(ST_UnaryUnion(ST_GeomFromText('MULTIPOLYGON(((0 0,4 0,4 4,0 4,0 0),(1 1,2 1,2 2,1 2,1 1)), ((-1 -1,-1 -2,-2 -2,-2 -1,-1 -1)))')));
----
MULTIPOLYGON (((-1 -1, -1 -2, -2 -2, -2 -1, -1 -1)), ((0 0, 4 0, 4 4, 0 4, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1)))

should I be paying attention to changes in this file or is this all output ordering changes (a quick glance at a couple of the diffs suggested output ordering).

@otan otan marked this pull request as ready for review July 14, 2023 06:39
@otan otan requested a review from a team as a code owner July 14, 2023 06:39
All test changes are due to a change in Polygon output ordering, or GEOS
outputting a different yet valid result. Note we stop supporting windows
as a result.

Release note (general change): Spatial libraries from Cockroach
now rely on GEOS 3.11 instead of GEOS 3.8.

Epic: none
Release note (general change): Stop distributing `libgeos`
for (experimental) Windows build. Users can instead install GEOS
directly from source: https://libgeos.org/usage/download/.
@otan otan requested a review from a team July 14, 2023 06:46
Copy link
Collaborator

@sumeerbhola sumeerbhola left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewable status: :shipit: complete! 0 of 0 LGTMs obtained (waiting on @cockroach-dev-inf and @otan)


pkg/geo/geoindex/testdata/s2_geometry line 278 at r1 (raw file):

Previously, otan (Oliver Tan) wrote…

hmm, i think it's actually just my M1 macbook which does this, reverting

So with this reverted change, does this test now fail on your M1 macbook?

@otan
Copy link
Contributor Author

otan commented Jul 16, 2023

pkg/geo/geoindex/testdata/s2_geometry line 278 at r1 (raw file):

Previously, sumeerbhola wrote…

So with this reverted change, does this test now fail on your M1 macbook?

yep. do you think it's something that should hold the upgrade? given it's missing a larger segment and that on the second filter with the actual function it'll probably return no matches anyway i think it's ok.

here's a doc with the difference: https://docs.google.com/document/d/1rbUklNf6oPJ7UTKaYkibmpKo8CvNJvqYj_W-rZfBaHQ/edit#heading=h.wegu1acu3nf

Copy link
Collaborator

@sumeerbhola sumeerbhola left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

:lgtm:

Reviewable status: :shipit: complete! 1 of 0 LGTMs obtained (waiting on @cockroach-dev-inf and @otan)


pkg/geo/geoindex/testdata/s2_geometry line 278 at r1 (raw file):

Previously, otan (Oliver Tan) wrote…

yep. do you think it's something that should hold the upgrade? given it's missing a larger segment and that on the second filter with the actual function it'll probably return no matches anyway i think it's ok.

here's a doc with the difference: https://docs.google.com/document/d/1rbUklNf6oPJ7UTKaYkibmpKo8CvNJvqYj_W-rZfBaHQ/edit#heading=h.wegu1acu3nf

Fine to merge. Could you create an issue to track this even if we deem it "extremely low priority".

@otan
Copy link
Contributor Author

otan commented Jul 17, 2023

bors r=sumeerbhola,rickystewart

issue incoming

@otan
Copy link
Contributor Author

otan commented Jul 17, 2023

#106954

@craig
Copy link
Contributor

craig bot commented Jul 17, 2023

Build succeeded:

@craig craig bot merged commit c07cb84 into cockroachdb:master Jul 17, 2023
2 checks passed
@mgartner
Copy link
Collaborator

I had to manually run ./dev build libgeos in order for geospatial features to work on a newly built binary. Is that intended, or should that step run automatically?

@rickystewart
Copy link
Collaborator

Is that intended, or should that step run automatically?

By design, the GEOS library and the cockroach binary are separate, use dynamic linking, etc, and building cockroach does not also build GEOS. You will encounter issues trying to use a too-old version of GEOS with a too-new version of cockroach.

@msirek
Copy link
Contributor

msirek commented Aug 26, 2023

@otan Are there any plans to backport this to 23.1.x or 23.1.9-rc? That would fix #108982

@otan
Copy link
Contributor Author

otan commented Aug 27, 2023

It's a fairly large change so I'm going with no unless it's super critical

rail added a commit to rail/cockroach that referenced this pull request Feb 5, 2024
In cockroachdb#106642 we stopped shipping libgeos on Windows, but didn't update the
bincheck test to reflect the change.

Epic: none
Release note: None
craig bot pushed a commit that referenced this pull request Feb 6, 2024
117117: kv: log slow requests on replica level in addition to range level r=shralex a=shralex

Previously, slow requests were only logged at the range level, but the logs did not indicate which replica is slow. Moreover, the SlowRPC metric attempted to represent the number of requests currently being retried, however it was done on the range level and therefore missed a second level of replica-level retries being done underneath.

This PR adds logging on the replica level, removes a confusing log line, and changes the metric to count the number of slow requests in a simpler manner.

Epic: https://cockroachlabs.atlassian.net/browse/CRDB-33510
Fixes: #114431

117693: changefeedccl: add observability metrics into sarama code r=rharding6373 a=wenyihu6

Now that this patch (#117544) has been merged, sarama now acknowledges and
reacts to kafka server's throttling messages by slowing down. To provide better
observability into sarama code, this patch adds a metrics registry interceptor
and a new metrics `changefeed.kafka_throttling_hist_nanos` which tracks time (in
nanos) spent in sarama's throttling when cockroachdb exceed the kafka quota.

Fixes: #117618

Release note: changefeed.kafka_throttling_hist_nanos has now been added to
metrics to monitor sarama throttling behavior resulting from exceeding kafka
quota.

118372: sql: fix flake in TestTxnContentionEventsTable r=yuzefovich a=michae2

In causeContention we deliberately hold a transaction open using pg_sleep to block an update statement. The timing we're trying to achieve is:

1. transaction insert
2. update starts and blocks
3. transaction held open using pg_sleep

We were using a WaitGroup to order (2) after (1), but there was no synchronization to ensure (3) came after (2).

This commit adds a retry loop that checks `crdb_internal.cluster_queries` to ensure (3) comes after (2).

Fixes: #118236

Release note: None

118760: builtins: allow VIEWACTIVITY priv to use crdb_internal.request_statem… r=xinhaoz a=xinhaoz

…ent_bundle

Previously only those with the VIEWACTIVITY role could use the crdb_internal.request_statement_bundle builtin. We should allow the VIEWACTIVITY privilege as well since role options are now deprecated. This allow also allow stmt bundle requests to be made from db-console for users with this granted privilege.

Epic: none
Fixes: #118759

Release note (bug fix): Those with VIEWACTIVITY privilege can now request statement bundles using crdb_internal.requets_statement_bundle or via db-console's sql activity page.

118767: release: confirm yum install r=celiala a=rail

This adds `-y` flag to install `yum` without user prompt.

Epic: none
Release note: None

118789: jobs,application_api: replace calls to `skip.Stress` with `skip.Duress` r=celiala a=rickystewart

`skip.Duress()` seems like it should have been used in this case as it gives more time under both `race` and `deadlock`. This will give these tests some extra time if they run in a heavyweight configuration but not "under stress".

Epic: CRDB-8308
Release note: None

118792: kvfollowerreadsccl: skip test under `race` not `stressrace` r=celiala a=rickystewart

Epic: CRDB-8308
Release note: None

118797: bincheck: do not run geos tests on Windows r=celiala a=rail

In #106642 we stopped shipping libgeos on Windows, but didn't update the bincheck test to reflect the change.

Epic: none
Release note: None

Co-authored-by: shralex <[email protected]>
Co-authored-by: Wenyi Hu <[email protected]>
Co-authored-by: Michael Erickson <[email protected]>
Co-authored-by: Xin Hao Zhang <[email protected]>
Co-authored-by: Rail Aliiev <[email protected]>
Co-authored-by: Ricky Stewart <[email protected]>
blathers-crl bot pushed a commit that referenced this pull request Feb 6, 2024
In #106642 we stopped shipping libgeos on Windows, but didn't update the
bincheck test to reflect the change.

Epic: none
Release note: None
wenyihu6 pushed a commit to wenyihu6/cockroach that referenced this pull request Feb 21, 2024
In cockroachdb#106642 we stopped shipping libgeos on Windows, but didn't update the
bincheck test to reflect the change.

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

Successfully merging this pull request may close these issues.

7 participants