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, butlibc++_shared.sowas 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 Android NDK was bumped from r25 (25.2.9519653) → r27
(27.1.12297006), whoselibc++_shared.sois 16 KB-aligned, across all
native modules (sharedCode,viroreact,viroar,virocore,
reactvisioncca).
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/react-viro2.57.2.
See CHANGELOG.md for full detail.
Full Changelog: v2.57.1...v2.57.2