the problematic code is at /sys/src/9/port/segment.c:483,491 for(i = 0; i < NSEG; i++) { ns = up->seg[i]; if(ns == 0 || ns == s) continue; if(newtop >= ns->base && newtop < ns->top) { qunlock(&s->lk); error(Esoverlap); } }
so either gcc is causing the math here to go funky, or 9vx really does have a odd segment layout. what does /proc/$pid/segment say? - erik