[Pkg-openssl-devel] Bug#699692: Bug#699692: "Illegal instruction" when installing (creating certificate) with Wheezy's version 1.0.1c-4 of openssl on a system with Cyrix MII / IBM 6x86
Kurt Roeckx
kurt at roeckx.be
Mon Feb 11 17:48:11 UTC 2013
On Sun, Feb 03, 2013 at 09:52:48PM +0100, Hans-Juergen Mauser wrote:
> Hello Kurt,
>
> thanks for your reply. Of course I like to help, see the required
> information (and a little bit more) attached to this mail.
>
> The "cmov" instruction by itself should not be the problem as this
> CPU supports it - but maybe the presence of cmov suggests using
> other instructions which are missing?
>
> Hope my information helps you a bit - if I can provide further
> details, don't hesitate to ask!
> Program received signal SIGILL, Illegal instruction.
> 0xb7e032b5 in OPENSSL_ia32_rdrand () at x86cpuid.s:333
> 333 x86cpuid.s: Datei oder Verzeichnis nicht gefunden.
> (gdb) bt
> #0 0xb7e032b5 in OPENSSL_ia32_rdrand () at x86cpuid.s:333
> (gdb) frame
> #0 0xb7e032b5 in OPENSSL_ia32_rdrand () at x86cpuid.s:333
> 333 in x86cpuid.s
> (gdb) info frame
> Stack level 0, frame at 0x0:
> eip = 0xb7e032b5 in OPENSSL_ia32_rdrand (x86cpuid.s:333); saved eip 0xb7e032b5
> Outermost frame: outermost
> source language asm.
> Arglist at unknown address.
> Locals at unknown address, Previous frame's sp in esp
> (gdb)
Line 333 seems to be:
.section .init
call OPENSSL_cpuid_setup
So I doubt that it's the correct line.
Just before that, there is the OPENSSL_ia32_rdrand function, that
looks like:
.globl OPENSSL_ia32_rdrand
.type OPENSSL_ia32_rdrand, at function
.align 16
OPENSSL_ia32_rdrand:
.L_OPENSSL_ia32_rdrand_begin:
movl $8,%ecx
.L019loop:
.byte 15,199,240
jc .L020break
loop .L019loop
.L020break:
cmpl $0,%eax
cmovel %ecx,%eax
ret
.size OPENSSL_ia32_rdrand,.-.L_OPENSSL_ia32_rdrand_begin
Note that is has a "cmovel" in there.
Can you run "disas" in gdb and see at which instruction is
actually points?
Kurt
More information about the Pkg-openssl-devel
mailing list