[systemd-devel] Illegal CPUID instruction causes systemd core dump

Lennart Poettering lennart at poettering.net
Thu Dec 28 21:08:59 UTC 2017


On Do, 28.12.17 20:26, Reindl Harald (h.reindl at thelounge.net) wrote:

> 
> 
> Am 28.12.2017 um 20:07 schrieb tedheadster:
> > I am doing regression testing on old hardware. systemd-233 just
> > generated the following error on startup:
> > 
> > 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
> > case.
> > 
> > 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.
> > 
> > https://stackoverflow.com/questions/14266772/how-do-i-call-cpuid-in-linux#14266932
> > 
> > The Linux kernel still supports the 486 so we have to code around this
> > case, even if it is ancient hardware
> 
> don't get me wrong - i am for 15 years now in the IT and my first PC in 1999
> was a i686
> 
> i don't see how a brand new systemd and a mordern userland is supposed to
> run on 20 years or older hardware where nearly eveyr distribution these days
> is i586 or i686 only or starts to drop 32bit at all

Well, we carry compat code for m68k, hence I figure i486 support
should be OK to have, too. I figure m68k processors are even more
legacy than i486 is, and certainly require more porting work than i486
does, hence i486 support should be fine to have by a long shot.

Lennart

-- 
Lennart Poettering, Red Hat


More information about the systemd-devel mailing list