I've done some further research on this issue;
First of all, the reason I was interested in this, was because a recent change in OpenSmalltalk cog-spur, made me debug the cog-spur executable on OpenIndiana, and I noticed addresses like: /usr/bin/squeak $HOME/v5/Squeak6.0alpha-20532-64bit.image JIT codezone 0x7fffae411000 0x7fffae56f000 mmap 0x7fffae600000 0x7fffa5000000 Note that the mmap result pointers are in the range 0x7fffa5000000. In the past on OpenIndiana I had addresses like: 0xffff80ffbf6b0000 ! So in my understanding what I observed was the result of recent OpenIndiana systems that now have /etc/system.d/reserve_bits_for_tagged_pointers Effectively I think the spidermonkey setting is now changing the memory layout of virtual addresses, for most applications, including OpenSmalltalk, on OpenIndiana. Anyway, this is not in itself a problem. After investigating "link editor mapfile" and the difference between AT&T SVR4 syntax, which was the old syntax which in my understanding is still used on Illumos, I experimented with adding in a oi-userland Makefile : LD_MAP_COGVM = -M map.cogvm CONFIGURE_ENV.64 += LD_OPTIONS="$(LD_OPTIONS) $(LD_MAP_COGVM)" This works fine because LD_OPTIONS is passed to the Illumos traditional "ld" (link editor) which accepts old-style mapfiles. However, all of this is not really essential I think now, to the "OpenSmalltalk cog-vm" issue. I have meanwhile discovered that another difference is that in the old OpenSmalltalk code, there was a page-alligned argument being passed to the mmap() call. That code was recently (2-3 weeks ago) removed, and when I restore that piece of code, the cog-spur is working again as before - also when /etc/system.d/reserve_bits_for_tagged_pointers is applied. So as a summary, I think a change in the Spur mmap() based memory management for OpenSmalltalk, made me observe the results of the /etc/system.d/reserve_bits_for_tagged_pointers, and I incorrectly thought I had to investigate that in order to fix my OpenSmalltalk issue, which turns out to be a different issue ... Anyway it's an interesting and subtle difference between Linux virtual address memory layout and OpenIndiana/Illumos layout. Regards, David Stes _______________________________________________ oi-dev mailing list [email protected] https://openindiana.org/mailman/listinfo/oi-dev
