Skip to content

v2.57.2

Latest

Choose a tag to compare

@doranteseduardo doranteseduardo released this 29 Jun 20:45

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 libc++_shared.so 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 Android NDK was bumped from r25 (25.2.9519653) → r27
    (27.1.12297006)
    , whose libc++_shared.so is 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), 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/react-viro 2.57.2.

See CHANGELOG.md for full detail.

Full Changelog: v2.57.1...v2.57.2