v2.57.2 — 16 KB page-size alignment (completion)
This release completes the 16 KB memory-page alignment work started in previous releases,
unblocking Google Play / Meta Quest Store submission for Android 15+ devices.
Highlights
- All bundled native libraries are now 16 KB-page aligned. v2.57.0 aligned
libopenxr_loader.so, but the prebuiltlibc++_shared.soinside the renderer
AAR was still 4 KB-aligned (2**12) and kept failing the requirement. Because
it's a prebuilt copied verbatim from the NDK sysroot, the
-Wl,-z,max-page-size=16384linker flag (which already aligns everything Viro
compiles) can't touch it — and NDK r21–r26 ship it at 4 KB. The renderer's
Android NDK was bumped from r25 → r27 (27.1.12297006), whose
libc++_shared.sois 16 KB-aligned, and the prebuilt AARs
(viro_renderer-release.aar,react_viro-release.aar) were regenerated.
Notes
- Every 64-bit (
arm64-v8a) library now reports ≥ 16 KB segment alignment —
most at 16 KB (2**14), withlibvrapi.so/libgvr*.soat 64 KB (2**16).
Verified with Google'scheck_elf_alignment.sh(0 unaligned). - ELF segment alignment is one half of the requirement; ensure the consuming app
also packages each.souncompressed and 16 KB-aligned in the APK/AAB
(AGP 8.2+ handles this automatically). - Pairs with
@reactvision/virocore2.57.2.
See CHANGELOG.md for full detail.