SIGILL on Windows 7 64bit

Anonymous
2011-06-01
2013-06-06
  • Anonymous

    Anonymous - 2011-06-01

    Hello,

    I get "Program received signal SIGILL, Illegal instruction." with Boost Threads, Mingw 64 (gcc 4.5) on Windows 7 SP1.
    The problem is reproduce able with a program, that does nothing more than spawn a boost thread and join it.
    CPU is a Intel Core i7-2600, 4x 3.40GHz which has "Sandy Bridge" architecture and therefore new instructions? Could this have to do something with the error?

    The same setup/program works on Intel Core2 and Intel Core i7 (non Sandy Bridge).

    So is this MinGW or Boost bug? Or my own fault somehow?
    Thanks for any suggestions!

     
  • Kai Tietz

    Kai Tietz - 2011-06-01

    Hi,

    I assume it is related to i7-2600 CPU's instruction set.  As far as I remember uses this CPU AVX and doesn't provide SSE5.  So maybe there are instructions used, which aren't supported for this CPU.
    Could you possibly provide a debugger backtrace and provide the instruction producing this issue?

    Regards,
    Kai

     
  • Anonymous

    Anonymous - 2011-06-01

    (gdb) disassemble
    Dump of assembler code for function _ZN5boost12_GLOBALN_121thread_start_functionEPv:
       0x000000006b503ae0 <+0>:     lea    0xd909(%rip),%rax        # 0x6b5113f0 <
    gxx_personality_sj0>
       0x000000006b503ae7 <+7>:     lea    0x1473a(%rip),%rdx        # 0x6b518228 <_DTOR_LIST+720>
       0x000000006b503aee <+14>:    sub    $0x198,%rsp
       0x000000006b503af5 <+21>:    mov    %rcx,0x1a0(%rsp)
       0x000000006b503afd <+29>:    lea    0x30(%rsp),%rcx
       0x000000006b503b02 <+34>:    mov    %rbx,0x158(%rsp)
       0x000000006b503b0a <+42>:    mov    %rax,0x60(%rsp)
       0x000000006b503b0f <+47>:    mov    %rdx,0x68(%rsp)
       0x000000006b503b14 <+52>:    lea    0xb0(%rsp),%rax
       0x000000006b503b1c <+60>:    lea    0x1d2(%rip),%rdx        # 0x6b503cf5 <_ZN5boost12_GLOBAL__N_121thread_start_functionEPv+533>
       0x000000006b503b23 <+67>:    mov    %rsi,0x160(%rsp)
       0x000000006b503b2b <+75>:    mov    %rdi,0x168(%rsp)
       0x000000006b503b33 <+83>:    mov    %rax,0x70(%rsp)
       0x000000006b503b38 <+88>:    mov    %rbp,0x170(%rsp)
       0x000000006b503b40 <+96>:    mov    %rdx,0x78(%rsp)
       0x000000006b503b45 <+101>:   mov    %r12,0x178(%rsp)
       0x000000006b503b4d <+109>:   mov    %r13,0x180(%rsp)
       0x000000006b503b55 <+117>:   mov    %r14,0x188(%rsp)
       0x000000006b503b5d <+125>:   mov    %r15,0x190(%rsp)
       0x000000006b503b65 <+133>:   mov    %rsp,0x80(%rsp)
    => 0x000000006b503b6d <+141>:   vmovdqa %xmm6,0xb0(%rsp)
       0x000000006b503b76 <+150>:   vmovdqa %xmm7,0xc0(%rsp)
       0x000000006b503b7f <+159>:   vmovdqa %xmm8,0xd0(%rsp)
       0x000000006b503b88 <+168>:   vmovdqa %xmm9,0xe0(%rsp)
       0x000000006b503b91 <+177>:   vmovdqa %xmm10,0xf0(%rsp)
       0x000000006b503b9a <+186>:   vmovdqa %xmm11,0x100(%rsp)
       0x000000006b503ba3 <+195>:   vmovdqa %xmm12,0x110(%rsp)
       0x000000006b503bac <+204>:   vmovdqa %xmm13,0x120(%rsp)
       0x000000006b503bb5 <+213>:   vmovdqa %xmm14,0x130(%rsp)
       0x000000006b503bbe <+222>:   vmovdqa %xmm15,0x140(%rsp)
       0x000000006b503bc7 <+231>:   callq  0x6b512630 <_Unwind_SjLj_Register>

     
  • Anonymous

    Anonymous - 2011-06-01

    Looks like you were right as this is an AVX instruction right?
    I compiled with -march=generic -mtune=generic and also tried core2 but no luck.
    Could it help if I compile everything (Boost and my program) with corei7-avx ?

     
  • Anonymous

    Anonymous - 2011-06-01

    Although I could not resolve this issue, the good news is that if I compile everything on a machine with a different cpu it runs on the i7-2600 without problems.

     

Log in to post a comment.