clear the FPillegal flag on fork. without this linuxemu is ham-strung as it calls all syscalls from note functions (by definition). Thus no linux procs (but the first one) can use floating point. Thanks to cinap_lenrek for the catch. -Steve Notes: Tue Sep 27 18:21:37 EDT 2011 geoff just applied the "& ~FPillegal"; i don't know what procfork() is. Reference: /n/sources/patch/applied/fp-state-on-fork Date: Tue Sep 27 14:20:58 CES 2011 Signed-off-by: steve@quintile.net Reviewed-by: geoff --- /sys/src/9/port/sysproc.c Tue Sep 27 14:17:10 2011 +++ /sys/src/9/port/sysproc.c Tue Sep 27 14:17:05 2011 @@ -180,13 +180,16 @@ if((flag&RFNOTEG) == 0) p->noteid = up->noteid; - p->fpstate = up->fpstate; + p->fpstate = up->fpstate & ~FPillegal; pid = p->pid; memset(p->time, 0, sizeof(p->time)); p->time[TReal] = MACHP(0)->ticks; kstrdup(&p->text, up->text); kstrdup(&p->user, up->user); + + procfork(p); + /* * since the bss/data segments are now shareable, * any mmu info about this process is now stale