On Sat May 25 01:50:51 EDT 2013, lu...@proxima.alt.za wrote: > I've seen this before, although by now I've seen so many errors crop > up that I can't recall them all. > > >> === RUN TestErrors-2 > >> template.test 289408: suicide: sys: floating point in note handler > >> pc=0x0001e9c7 > >> exit status: 'template.test 289408: sys: floating point in note > >> handler pc=0x0001e9c7' > >> FAIL html/template 0.213s > > > > acid: stk() > > runtime.memmove(to=0x106dd000,fr=0x30887660,n=0x2c)+0x107 > > /usr/glenda/src/go/src/pkg/runtime/memmove_386.s:145 > > runtime.sighandler(s=0x30887660,v=0x308876e4,gp=0x106d31b0)+0x126 > > /usr/glenda/src/go/src/pkg/runtime/os_plan9_386.c:67 > > runtime.sigtramp(ureg=0x30887660,note=0x106d31b0)+0x44 > > /usr/glenda/src/go/src/pkg/runtime/sys_plan9_386.s:161 > > 0x308876e4 ?file?:0 > > acid: > > I am surprised, but also relieved that we have a resproducible mistake > outside the run.rc scope. We can focus on that.
this is not surprising. the backtrace and error seem to tell us everything we need to know. go appears doing floating point in a note handler, which is not legal in plan 9. checking the code quickly from here http://code.google.com/p/go/source/browse/src/pkg/runtime/memmove_386.s we have 144 move_33through64: 145 MOVOU (SI), X0 which is indeed floating point in memmove. a quick fix would be to comment out line 47 and make line 48 an unconditional jump. 47 // TESTL $0x4000000, runtime·cpuid_edx(SB) // check for sse2 48 JMP nosse2 // JEQ nosse2 - erik