Skip to content

amd64 Linux binary triggers SIGILL due to SSE4a instructions #3067

@clin1234

Description

@clin1234
cc@pretty:~$ coredumpctl gdb
           PID: 63425 (qsv)
           UID: 1000 (cc)
           GID: 1000 (cc)
        Signal: 4 (ILL)
     Timestamp: Tue 2025-10-21 20:56:37 EDT (7min ago)
  Command Line: qsv
    Executable: /home/cc/.cargo/bin/qsv
 Control Group: /user.slice/user-1000.slice/session-2.scope
          Unit: session-2.scope
         Slice: user-1000.slice
       Session: 2
     Owner UID: 1000 (cc)
       Boot ID: bf22ec7231b64fa29edde4812d8692e9
    Machine ID: 58dfa2bab68640acb8828fbc7970aa05
      Hostname: pretty
       Storage: /var/lib/systemd/coredump/core.qsv.1000.bf22ec7231b64fa29edde4812d8692e9.63425.1761094597000000.zst (present)
  Size on Disk: 532.2K
       Message: Process 63425 (qsv) of user 1000 dumped core.
                
                Module libffi.so.8 from rpm libffi-3.5.2-1.fc44.x86_64
                Module libwayland-client.so.0 from rpm wayland-1.24.0-2.fc44.x86_64
                Stack trace of thread 63425:
                #0  0x0000561e3786e8f4 n/a (/home/cc/.cargo/bin/qsv + 0x5f0e8f4)
                #1  0x0000561e377f0f64 n/a (/home/cc/.cargo/bin/qsv + 0x5e90f64)
                #2  0x0000561e377f7177 n/a (/home/cc/.cargo/bin/qsv + 0x5e97177)
                #3  0x0000561e37759c09 n/a (/home/cc/.cargo/bin/qsv + 0x5df9c09)
                #4  0x0000561e37db5407 n/a (/home/cc/.cargo/bin/qsv + 0x6455407)
                #5  0x0000561e37759b15 n/a (/home/cc/.cargo/bin/qsv + 0x5df9b15)
                #6  0x0000561e37773a09 n/a (/home/cc/.cargo/bin/qsv + 0x5e13a09)
                #7  0x0000561e377712fd n/a (/home/cc/.cargo/bin/qsv + 0x5e112fd)
                #8  0x0000561e337e21b2 n/a (/home/cc/.cargo/bin/qsv + 0x1e821b2)
                #9  0x0000561e332d22b3 n/a (/home/cc/.cargo/bin/qsv + 0x19722b3)
                #10 0x0000561e332cf079 n/a (/home/cc/.cargo/bin/qsv + 0x196f079)
                #11 0x0000561e37db3b4e n/a (/home/cc/.cargo/bin/qsv + 0x6453b4e)
                #12 0x0000561e3380cf0a n/a (/home/cc/.cargo/bin/qsv + 0x1eacf0a)
                #13 0x00007fe8c5a0f5b5 __libc_start_call_main (libc.so.6 + 0x35b5)
                #14 0x00007fe8c5a0f668 __libc_start_main@@GLIBC_2.34 (libc.so.6 + 0x3668)
                #15 0x0000561e3317b9e5 n/a (/home/cc/.cargo/bin/qsv + 0x181b9e5)
                
                Stack trace of thread 63426:
                #0  0x00007fe8c5a8b43a alloc_new_heap (libc.so.6 + 0x7f43a)
                #1  0x00007fe8c5a8b8c9 arena_get2.part.0 (libc.so.6 + 0x7f8c9)
                #2  0x00007fe8c5a8e1e7 __libc_malloc2 (libc.so.6 + 0x821e7)
                #3  0x00007fe8c5a8e33e tcache_init.part.0 (libc.so.6 + 0x8233e)
                #4  0x00007fe8c5a8e3f9 tcache_malloc_init (libc.so.6 + 0x823f9)
                #5  0x00007fe8c5a7f81a pthread_getattr_np@@GLIBC_2.32 (libc.so.6 + 0x7381a)
                #6  0x0000561e37db3df2 n/a (/home/cc/.cargo/bin/qsv + 0x6453df2)
                #7  0x0000561e37dd50ad n/a (/home/cc/.cargo/bin/qsv + 0x64750ad)
                #8  0x00007fe8c5a7e38b start_thread (libc.so.6 + 0x7238b)
                #9  0x00007fe8c5b0146c __clone3 (libc.so.6 + 0xf546c)
                ELF object binary architecture: AMD x86-64

GNU gdb (Fedora Linux) 16.3-6.fc44
Copyright (C) 2024 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /home/cc/.cargo/bin/qsv...
(No debugging symbols found in /home/cc/.cargo/bin/qsv)
[New LWP 63425]
[New LWP 63426]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib64/libthread_db.so.1".
Core was generated by `/home/cc/.cargo/bin/qsv'.
Program terminated with signal SIGILL, Illegal instruction.
#0  0x0000561e3786e8f4 in ?? ()
[Current thread is 1 (Thread 0x7fe8c5f1ee00 (LWP 63425))]
(gdb) (gdb) disas 0x000055555b4628e0,0x000055555b4628ff
Undefined command: "".  Try "help".
(gdb) disas 0x000055555b4628e0,0x000055555b4628ff
Dump of assembler code from 0x55555b4628e0 to 0x55555b4628ff:
   0x000055555b4628e0:	
Cannot access memory at address 0x55555b4628e0
(gdb) disas 0x0000561e3786e8e0,0x0000561e3786e8ff
Dump of assembler code from 0x561e3786e8e0 to 0x561e3786e8ff:
   0x0000561e3786e8e0:	add    %al,(%rax)
   0x0000561e3786e8e2:	mov    0x8(%r8),%r12
   0x0000561e3786e8e6:	mov    %rdx,0x30(%rsp)
   0x0000561e3786e8eb:	mov    0x28(%rdi),%rdx
   0x0000561e3786e8ef:	cmove  0x70(%rbx),%r14d
=> 0x0000561e3786e8f4:	insertq $0x18,$0x20,%xmm2,%xmm1
   0x0000561e3786e8fa:	vmovd  0x75(%rbx),%xmm2
End of assembler dump.

The insertq instruction is part of SSE4a, which my modern Intel Core 12th Gen CPU does not support

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions