On Wed, 2008-08-06 at 13:43 +1000, Jason White wrote:
> On Wed, Aug 06, 2008 at 12:57:21PM +1000, Russell Stuart wrote:
> > I tried conspy on linux-2.6-2.6.25 (the current kernel for
> > Lenny) and it worked.  Trying it on 2.6.26 is going to take
> > some time.  In the mean time could you post an strace of a 
> > run of conspy showing the problem please.
> 
> It's attached. I hope this helps.

This needs to be written down somewhere.  I am not sure this is the
right place, but it is the only place I can think of.

I suspect this was a compiler bug in the compilers used by Debian's
build machines.  Disassembling the conspy-1.4 binary in the Debian
archives, for these lines of code:

      tty_result = ioctl(tty_handle, KDGKBMODE, &keyboard_mode);
      if (tty_result == -1)
        ;
      else if (keyboard_mode != K_XLATE && keyboard_mode != K_UNICODE)

this assembler is generated:

  402009: 48 8d 94 24 20 87 00  lea    0x8720(%rsp),%rdx
  402010: 00 
  402011: 31 c0                 xor    %eax,%eax
  402013: be 44 4b 00 00        mov    $0x4b44,%esi
  402018: e8 f3 f3 ff ff        callq  401410 <[EMAIL PROTECTED]>
  40201d: 83 f8 ff              cmp    $0xffffffffffffffff,%eax
  402020: 89 c3                 mov    %eax,%ebx
  402022: 44 89 64 24 28        mov    %r12d,0x28(%rsp)
  402027: 0f 84 be 03 00 00     je     4023eb <[EMAIL PROTECTED]>
  40202d: 48 8b 84 24 20 87 00  mov    0x8720(%rsp),%rax
  402034: 00 
  402035: 48 83 f8 01           cmp    $0x1,%rax
  402039: 0f 95 c2              setne  %dl
  40203c: 48 83 f8 03           cmp    $0x3,%rax
  402040: 0f 95 c0              setne  %al
  402043: 84 d0                 test   %dl,%al

Note that at address 402039, %dl is set conditionally.  Also notice that
neither %dl, nor any alias was initialised prior.  It could of been the
value set at address 402009, but more likely it was whatever rubbish the
OS call at 402018 left in it.  This would of course be OS version
dependant, which is what we see.  (The program worked with 2.6.25, but
not 2.6.26).

The lenny compiler I am using isn't broken in the same way, so it always
produces a conspy binary that works. I am hoping the Debian builders
have been updated, and so just an upload of identical code will fix the
problem by forcing a recompile.  Not that the version I am uploading is
identical, but I haven't made any changes to fix this particular problem
either.

The upload will happen with 24 hours.




-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to