Conversation
Arrow with ARROW_GCS=ON vendors abseil via FetchContent, but the vendored copy conflicts with the system abseil 20220623 that pacman installs as a dependency of re2 20231101: google-cloud-cpp resolves the system absl cmake config, whose headers predate absl/crc. Upstream rtools builds work precisely because their re2 (2020-08-01) predates the abseil dependency, so no system abseil exists during the arrow build. Downgrade re2 to 2023-03-01 (the last release without abseil, recipe from msys2 history) to replicate that: abseil is now only installed while building grpc, which keeps its own direct abseil-cpp dependency. Bump grpc pkgrel to rebuild it against the downgraded re2. Note that pacman version 20230301 is lower than the previously published 20231101; CI installs the freshly built package directly so builds are unaffected. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The bundled google-cloud-cpp also uses the MD5, SHA256 and HMAC-SHA256 BCrypt algorithm pseudo-handles (not just RSA), so define all of them in bcrypt-compat.h. BCryptHash itself is declared even in old mingw-w64 headers, so the macros are sufficient. On clangarm64, the xsimd 14.2.0 pinned by arrow includes the MSVC-only arm64_neon.h header on any Windows aarch64 target. This was fixed upstream in xsimd 14.3.0 (include arm_neon.h unless MSVC), so bump the version in cpp/thirdparty/versions.txt during prepare(). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
clang 20 promoted -Wmissing-template-arg-list-after-template-kw to an error by default, which rejects 'Traits::template CallSeqFactory(...)' in src/core/lib/promise/detail/basic_seq.h. Drop the template keyword, matching the fix in newer upstream grpc. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The pinned winpthreads 11.0.1 emits a reference to _gnu_exception_handler in the SEH data of its thread startup code, but current mingw-w64 deleted crt_handler.c from the CRT, so any executable linking the static winpthreads (e.g. the grpc codegen plugins) now fails with an undefined reference. Compile the old crt_handler.c (public domain, verbatim from mingw-w64 v11.0.1) and inject the object into libpthread.a/libwinpthread.a before building. Guarded so it is skipped if the CRT provides the symbol again. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This was referenced Jul 27, 2026
The freshly built grpc_cpp_plugin.exe fails with STATUS_ENTRYPOINT_NOT_FOUND when protoc invokes it during the build, because it dynamically links libstdc++-6.dll and the msys2 gcc-libs DLLs installed in the build environment come from a newer gcc that is not ABI compatible on Windows (PE has no symbol versioning). Link libgcc/libstdc++ statically, in line with the existing 'standalone plugin' intent of this recipe. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This reverts commit 0442ffb.
The toolchain repos now provide a crt package pinned at the same mingw-w64 commit as headers-git and winpthreads (r-windows/gcc-13#1, r-windows/llvm-19#2), which restores _gnu_exception_handler that the 11.0.1 static winpthreads references. Install it explicitly, since the runner image comes with the newer msys2 crt preinstalled. This replaces the crt_handler.c workaround. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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.
This adds mingw-w64-arrow 25.0.0, based on the upstream apache/arrow rtools recipe (ci/scripts/PKGBUILD @ apache-arrow-25.0.0). The build configuration (cmake flags, static-only libs, bundled AWS SDK and Thrift,
-DCURL_STATICLIB/-DUTF8PROC_STATICflags) is kept identical to upstream so that this can eventually be upstreamed, with only the CI-specific hacks removed:$ARROW_HOMEcheckout, so thepkgver()check againstr/DESCRIPTIONis dropped${MINGW_PREFIX}/bin/cmakeinstead of the hardcodedC:\Program Files\CMakepathpkgrel=8000→1, dropped the ccache makedependAlso adds the three arrow dependencies that were missing from this repo, copied verbatim from msys2/MINGW-packages:
The remaining arrow depends (bzip2, curl, re2, zlib, zstd, brotli) already exist in this repo.
🤖 Generated with Claude Code