Thanks Ben.
Yeah, that’s strange. I also noticed that SetDataReadOnly didn’t exist in 10.4.132. Moreover, the V8_FATAL exception that is raised was added even later. Maybe my records about 10.4.132 are wrong, but I am sure that we built v8 last time in August 2022, so I can’t explain it.
Android Studio don’t show any error message more than the stacktrace I already shared.
My guess is that kMinimumOSPageSize was still 4KB for Android back then when I built v8 (yet I can’t explain why SetDataReadOnly is part of the stacktrace).
Is there any way for me to overwrite kMinimumOSPageSize from “outside” v8, just to test if that makes a difference?
Thanks!
> On Sep 12, 2025, at 5:20 AM, Ben Noordhuis <
in...@bnoordhuis.nl> wrote:
>
> On Fri, Sep 12, 2025 at 8:26 AM 'Mati Cohen' via v8-users
> <
v8-u...@googlegroups.com> wrote:
>>
>> Hi,
>>
>> My app is using v8 to run a JS environment. Last time I built v8 was about 3 years ago by pointing to 10.4.132.
>>
>> As per Google policy, my app needs to support 16 KB page size and I've been checking all my dependencies to meet that criteria.
>>
>> Apparently, based on my checks, my v8 build does support it and I managed to run the app on my device.
>> However, v8 is crashing as soon as I call V8::Initialize(); with the following stack trace:
>>
>> /base.apk!liben8.so (offset 0x8ad8000) (v8::base::OS::Abort()+28)
>> /base.apk!liben8.so (offset 0x8ad8000) (V8_Fatal(char const*, ...)+376)
>> /base.apk!liben8.so (offset 0x8ad8000) (v8::base::OS::SetDataReadOnly(void*, unsigned long)+52)
>> /base.apk!liben8.so (offset 0x8ad8000) (v8::internal::V8::Initialize()+1552)
>> /base.apk!liben8.so (offset 0x8ad8000) (v8::V8::Initialize(int)+28)
>> /base.apk!liben8.so (offset 0x8ad8000) (Runtime::Runtime(_JNIEnv*)+172)
>>
>> As explained at
https://www.google.com/url?q=https://developer.android.com/guide/practices/page-sizes%23check-code&source=gmail-imap&ust=1758273654000000&usg=AOvVaw2eBFhXRa0E0P-iWsikoJCW, I was trying to look for references to PAGE_SIZE and 4096 to see if I was setting up something wrong, but I didn't find anything.
>>
>> Does anyone have any knowledge about this?
>> Thanks a lot,
>> Mati
>
> V8 doesn't use PAGE_SIZE, it uses sysconf(_SC_PAGESIZE).
>
> You mention 10.4.132 but that stack trace is from a different version,
> isn't it? Because SetDataReadOnly didn't exist back then.
>
> It crashes when trying to mprotect(PROT_READ) the command line flags,
> v8_flags. v8_flags is aligned to kMinimumOSPageSize and that _should_
> be 16k on Android but you'll want to double-check that. It's defined
> in src/base/build_config.h.
>
> What error message did V8 print?
>
> --
> --
> v8-users mailing list
>
v8-u...@googlegroups.com
>
https://www.google.com/url?q=http://groups.google.com/group/v8-users&source=gmail-imap&ust=1758273654000000&usg=AOvVaw3Vi2w6FFQXBkM9c-JZXWPp
> ---
> You received this message because you are subscribed to a topic in the Google Groups "v8-users" group.
> To unsubscribe from this topic, visit
https://www.google.com/url?q=https://groups.google.com/d/topic/v8-users/7XDxoIaXdV4/unsubscribe&source=gmail-imap&ust=1758273654000000&usg=AOvVaw0flrzsS8NN-9t4czOPfrqp.
> To unsubscribe from this group and all its topics, send an email to
v8-users+u...@googlegroups.com.
> To view this discussion visit
https://www.google.com/url?q=https://groups.google.com/d/msgid/v8-users/CAHQurc-SN0whK9Y3U8%253DSEdMPOVJLfhQ7fVPcqUi_kAjDJywGeQ%2540mail.gmail.com&source=gmail-imap&ust=1758273654000000&usg=AOvVaw0W3G7qAhJMvkfEdoop6uqR.