Skip to content

v2.57.2

Latest

Choose a tag to compare

@doranteseduardo doranteseduardo released this 29 Jun 20:46

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 prebuilt libc++_shared.so inside 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=16384 linker 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.so is 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), with libvrapi.so / libgvr*.so at 64 KB (2**16).
    Verified with Google's check_elf_alignment.sh (0 unaligned).
  • ELF segment alignment is one half of the requirement; ensure the consuming app
    also packages each .so uncompressed and 16 KB-aligned in the APK/AAB
    (AGP 8.2+ handles this automatically).
  • Pairs with @reactvision/virocore 2.57.2.

See CHANGELOG.md for full detail.