This is the mail archive of the libc-help@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Fwd: libpthread.so illegal cpuid on 486


On 09/29/2014 03:54 PM, Daniel Goertzen wrote:
> After a long struggle trying to get glibc-2.19 running on my 486
> embedded systems, I discovered that libpthread.so was invoking the
> "cpuid" instruction.  This instruction is not present on most 486 cpus
> and will cause the program to fail with "Illegal instruction."
> 
> My system used to work fine with glibc-2.17; it looks like the problem
> arrived with the new lock elision stuff.  I tried building with
> --disable-lock-elision but the cpuid-based checks are still performed.
> 
> Am I doing something wrong?

You are doing nothing wrong.

> Is this a bug?

Yes, it's a bug.

If the "HAS_RTM" check is the only thing that's breaking i486,
then you could try this patch:
https://sourceware.org/ml/libc-alpha/2014-09/msg00662.html
Which removes the cpuid call to check for elision initialization.
It should be checked in as soon as s390 maintainer ACKs.

That isn't all the cpuid calls though, there is one in sysconf
for getting cache information, so you may wish to test if
sysconf for _SC_LEVEL1_ICACHE_SIZE crashes and report that
bug also. For i486 we'll have to just return an error indicating
we couldn't figure it out.

> Is glibc leaving the 486 behind?

We had no explicit intention of removing i486's from our supported
machine list. Please follow along with the release schedule and
help test 486 :-)

Cheers,
Carlos.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]