[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Monotone-devel] illegal instruction again [was: Re: monotone 0.11 t
Re: [Monotone-devel] illegal instruction again [was: Re: monotone 0.11 test failures]
Fri, 9 Apr 2004 13:40:21 +1000
On Tue, Apr 06, 2004 at 12:11:37PM -0400, graydon hoare wrote:
> Derek Scherger wrote:
> >I'm compiling against boost 1.31.0 as built by the gentoo ebuild so
> >although it was easy
> >to build, I have *no* idea how it's configured.
> >I've attached testsuite.log and can provide more info if you need it.
> sorry, I thought I'd replied to this earlier. the problem you're having
> is the same "illegal instruction" fault that others have run into, when
> the SSE2 code is built but you're not on an SSE2 platform. athlon's
> don't like SSE2. it seems my runtime detection of SSE2 doesn't work
> quite right, so you wind up executing it even though your hardware can't.
GCC appears to emit SSE2 instructions for int<->double casts when
-msse2 is enabled. Compiling lua.cc with -msse2 -O0 results in
the following evil:
Disassembly of section .gnu.linkonce.t._ZN3Lua11extract_intERi:
.. a page or so of normal instructions ..
ea: dd 9d c0 fe ff ff fstpl 0xfffffec0(%ebp)
f0: f2 0f 10 85 c0 fe ff movsd 0xfffffec0(%ebp),%xmm0
f8: f2 0f 2c c0 cvttsd2si %xmm0,%eax
Disassembly of section .gnu.linkonce.t._ZN3Lua8push_intEi:
.. more normal stuff ..
13c: f2 0f 2a 45 0c cvtsi2sd 0xc(%ebp),%xmm0
141: f2 0f 11 44 24 04 movsd %xmm0,0x4(%esp,1)
I don't know how hard it'd be to exclude -msse2 from CXXFLAGS just for
lua.cc makefile-wise, but I've tried it manually and it seems to fix the
Also, boost 1.31.0 has appeared in debian unstable. In addition to the
updated versions of the boost packages I had installed previously, I
also needed the following:
libboost-python-dev (drags in python2.3-dev)
hope this helps,