2017-12-28 19:07:30 UTC
I am doing regression testing on old hardware. systemd-233 just
generated the following error on startup:
traps:systemd trap invalid opcode ip:b7d97361 sp:bfa2f6bc error:0
systemd: Caught <ILL>, dumped core as pid 78.
systemd: Freezing execution
I believe it is getting an illegal instruction trap on this first
generation 486 because it is calling "cpuid" in detect_vm_cpuid()
without first checking if the hardware supports it; it doesn't in this
The gcc compiler provides a workaround in the cpuid.h header file. You
can call __get_cpuid_max() first and check the return value > 0.
The Linux kernel still supports the 486 so we have to code around this
case, even if it is ancient hardware.