Due to node trying to bring in more recent versions of V8, I was informed about it not building on illumos (Node calls it SmartOS but it's really applicable to all illumos distros).
After some searching and debug-by-printf, I found this line: https://github.com/v8/v8/blob/main/src/sandbox/js-dispatch-table.h#L81 At first glance, this line appears to assume that pointers have all-zeroes at the top, for free use. This is not true for illumos, which sets its heap pointers starting at: #define USERLIMIT ADDRESS_C(0xfffffc7fffe00000) It gets more hard to understand, however, given that: - It's a 16-bit mask, but used with 32-bit inputs like here: https://github.com/v8/v8/blob/main/src/sandbox/js-dispatch-table-inl.h#L192-L195 - The 32-bit input has no mask collision with the 0xffff000000000000 definition of the next_entry_index variable. This feels like a bug to me, and if ones pointers have the high 16 bits set to 0, it might be an undetected one. I may be missing something, and am glad to be educated,. To my eyes, either this code did not consider getting pointers with the high-16-bits set to non-zero values, or it is plain buggy, and the kFreeEntryTag specifically in js-dispatch-table.h is mis-defined. -- -- v8-dev mailing list [email protected] http://groups.google.com/group/v8-dev --- You received this message because you are subscribed to the Google Groups "v8-dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion visit https://groups.google.com/d/msgid/v8-dev/6781ca35-76bb-4abb-bcc1-fbae680b942cn%40googlegroups.com.
