native: finish the 64-bit foundation (coffeecatch x86_64 fix, engine ed05faa, drop armeabi-v7a)#7
Merged
Merged
Conversation
Advances coffeecatch from the 2017 pin (e64ca5a) to 9a0bdce, which carries the x86_64 ucontext fix (xroche/coffeecatch#46) plus the i386 redefinition fix against the modern NDK sysroot. Required for the x86_64 ABI: coffeecatch's legacy ucontext block #errors on x86_64 without it. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Signed-off-by: Xavier Roche <roche@httrack.com>
Advances the vendored engine from 627ae2b (3.49.12) to ed05faa (engine master), picking up fixes that land in the Android-compiled sources: a 32-bit chunked-transfer overflow guard (#593), the >=2GB file-size fix (#568), an hts_free_opt per-crawl leak fix (#585), a filter-matcher recursion-depth cap (#590/#575), --update data-loss fixes (#584/#560), scheme-aware proxy parsing with SOCKS5 support (#566/#570), and content-coding decode factored into new modules (#556). The JNI surface (htslibjni.c) is untouched. Adds the two new engine sources htscodec.c and htsproxy.c to the build; brotli/zstd stay compile-off (HTS_USEBROTLI/HTS_USEZSTD default 0), so htscodec falls back to zlib and pulls no new deps. Drops the 32-bit armeabi-v7a ABI: the build now ships arm64-v8a + x86_64 only. Play allows 64-bit-only builds and minSdk 24 already excludes almost all 32-bit-only hardware. Removes the now-dead armv7 exidx-merge linker gating and aligns Application.mk, the CI ABI matrix, and the Gradle abiFilters to the same two-ABI set. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Signed-off-by: Xavier Roche <roche@httrack.com>
The ABI finalization left the v7a default behind in both OpenSSL scripts. CI never trips over it because android.yml sets ABIS at job level, but running fetch-openssl-statics.sh with no ABIS against a tree built from the new two-ABI set dies on the missing armeabi-v7a/lib/libssl.a, and the Docker image passes no ABIS at all, so it spent a third of its OpenSSL build baking a v7a tree nothing can use. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Signed-off-by: Xavier Roche <roche@httrack.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.
Finishes the native foundation that Phase A (#5) left half-done. The coffeecatch bump to 9a0bdce carries the x86_64 ucontext fix (xroche/coffeecatch#46) and the i386 redefinition fix against the modern NDK sysroot. Without it the x86_64 ABI does not compile, which is why x86_64 was declared in
Application.mkbut built by neither the committed pin nor CI.The engine moves from 627ae2b to engine master (ed05faa). That range fixes a 32-bit chunked-transfer overflow (#593), files of 2GB and over (#568), an
hts_free_optleak on every crawl (#585), an unbounded filter-matcher recursion (#590/#575), and--updatedestroying a good mirrored copy (#584/#560), and it adds scheme-aware proxy parsing with SOCKS5 (#566/#570), all in sources Android compiles. Two new modules come with it,htscodec.candhtsproxy.c, now in the build; brotli and zstd stay compile-off, sohtscodecfalls back to zlib and pulls no new dependencies. The JNI surface is untouched.The ABI set is now arm64-v8a plus x86_64. Dropping 32-bit armeabi-v7a is safe: Play allows 64-bit-only builds, and minSdk 24 already excludes almost all 32-bit-only hardware. That leaves the armv7 exidx-merge gating dead, so it goes, and
Application.mk, the CI ABI matrix and the GradleabiFiltersnow agree on the same two ABIs.Part of #4.