Skip to content
The Signal Belfry

/static/campanario/en/sino/sigill/

Menu

SIG-013 · Program faults

SIGILL

Illegal instruction: the CPU read something it doesn't recognize as an order.

The processor fetched the next opcode and had no idea what to do with it. The classic causes: a jump into data, code corrupted by a buffer overflow, a stack that was executable when it shouldn't be.

The modern cause is more prosaic: a binary compiled for a newer CPU — AVX-512, cryptography instructions — running on a machine that lacks them. The program doesn't even get to fail on its own: the first exotic instruction brings down the tower.

$ ./otimizado-avx512
Illegal instruction (core dumped)
(compiled with -march=native on the wrong machine)
The right binary for the wrong CPU.