monotone-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Monotone-devel] illegal instruction again [was: Re: monotone 0.11 t


From: Jonathan Matthew
Subject: Re: [Monotone-devel] illegal instruction again [was: Re: monotone 0.11 test failures]
Date: Fri, 9 Apr 2004 13:40:21 +1000
User-agent: Mutt/1.5.5.1+cvs20040105i

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:

00000000 <_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
  f7:   ff
  f8:   f2 0f 2c c0             cvttsd2si %xmm0,%eax

and:

Disassembly of section .gnu.linkonce.t._ZN3Lua8push_intEi:

00000000 <_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
problem.

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-filesystem1.31.0
        libboost-filesystem-dev
        libboost-python1.31.0
        libboost-python-dev (drags in python2.3-dev)

hope this helps,

-jonathan.






reply via email to

[Prev in Thread] Current Thread [Next in Thread]