[DIAGNOSTIC – do not merge] Surface the arm64 MEOS build error#191
Closed
estebanzimanyi wants to merge 7 commits into
Closed
[DIAGNOSTIC – do not merge] Surface the arm64 MEOS build error#191estebanzimanyi wants to merge 7 commits into
estebanzimanyi wants to merge 7 commits into
Conversation
…alized API Pin MEOS at MobilityDB/MobilityDB 2c4243a265 and adapt the binding to that surface: the spatial-relationship functions drop their restr/at_value arguments and become 2-arg, the temporal multiplication MEOS calls move from mult_* to mul_*, temptype_continuous becomes temptype_supports_linear, and the rtree module follows the MeosType/MeosArray bbox API. MeosType is used directly in headers where the forward-compat alias is not visible.
LoadInternal auto-loads ICU for the named Europe/Brussels zone; when ICU has no on-disk copy and no network egress (CI test docker, edge/musl, offline) the auto-load is caught so the extension still loads with the session timezone at its default. The release/debug/reldebug test targets stage the locally-built icu.duckdb_extension into the version/platform path DuckDB autoloads from.
DuckDB runs scalar and cast bodies on TaskScheduler worker threads; MEOS keeps the session timezone, errno, PROJ context and RNGs in thread-local storage and needs meos_initialize() on each thread before first use. A thread-local guard in the scalar exec wrapper and a cast trampoline run the per-thread init (and re-install the error handler) at every entry point, so timestamp formatting on a worker no longer dereferences a NULL session_timezone.
…pected The tfloat ln/exp/log10 lifts insert one chord-error turning point on a linear segment; the MEOS pin computes it in double so the inserted instant is identical on every platform, and the 026b expected carries the three-instant result.
On macOS LP64 int64 (long) and int64_t (long long) are the same width but distinct types, so clang rejects bigint_to_set as a Set *(*)(int64_t) non-type template argument. A forwarder that casts int64_t to int64 fixes the macOS build; the cast is a no-op on Linux.
Adds the SIZEOF_LONG_LONG emission to the rendered pg_config.h so the DuckDB-Wasm (wasm32-emscripten / ILP32) build of MEOS no longer fails the pg_bitutils integer-width check.
Pin MEOS to 8569019b7b and run a verbose ninja -k0 build before the normal build step so the arm64-linux compile failure is printed to the CI log. This branch exists only to capture that error and is not a deliverable.
Member
Author
|
Diagnostic complete — surfaced the arm64 root cause (undeclared meos_pg_* functions / implicit-declaration errors under GCC 14). Reported to the consolidation session. Closing; not a deliverable. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Throwaway diagnostic branch, not a deliverable and not for merge. Pins MEOS to the settled consolidation tip
8569019b7band runs a verboseninja -k0build so the arm64-linux MEOS compile failure (which the normal build hides behind vcpkg's wrapper) is printed to the CI log. Expected to fail; it exists only to capture the exact arm64 compile error to report to the MobilityDB consolidation session. Will be closed once the error is captured.