This is the mail archive of the
libc-help@sourceware.org
mailing list for the glibc project.
Re: problem with __init_cpu_features()
- From: "Carlos O'Donell" <carlos at systemhalted dot org>
- To: The Source <thesourcehim at gmail dot com>
- Cc: "libc-help at sourceware dot org" <libc-help at sourceware dot org>, crossgcc at sourceware dot org
- Date: Thu, 19 May 2016 12:44:06 -0400
- Subject: Re: problem with __init_cpu_features()
- Authentication-results: sourceware.org; auth=none
- References: <64f1a37c-8aa5-be67-eec1-88893ec0d1cf at gmail dot com> <CAE2sS1iX_yH9mdhkfmPOu8SQyCLE5zqxPGW-hFkxKE4sjdHjcA at mail dot gmail dot com> <CAE2sS1hvZCSHRSLBANZRnfeW3A7V8kJdvU6kuVEnC6H-P=641Q at mail dot gmail dot com> <03f98607-1993-5dc3-5774-99fe01544886 at gmail dot com> <8d1c4d18-0915-ac7a-25cb-f531a323b39c at gmail dot com> <71a932f2-5e59-ed1e-910c-18b9c1e9089b at gmail dot com> <be327cad-d277-d5e9-230c-0ea6c33cbdc1 at gmail dot com>
On Thu, May 19, 2016 at 10:40 AM, The Source <thesourcehim@gmail.com> wrote:
> 1. I changed libc code slightly to avoid using cpuid inside pthread:
>
> sysdeps/unix/sysv/linux/x86/elision-conf.c
>
> Replaced all usage of HAS_RTM to 0:
>
> __elision_available = 0;//HAS_RTM;
> #ifdef ENABLE_LOCK_ELISION
> __pthread_force_elision = __libc_enable_secure ? 0 : __elision_available;
> #endif
> //if (!HAS_RTM)
> __elision_aconf.retry_try_xbegin = 0; /* Disable elision on rwlocks */
There should be no use of cpuid inside libpthread.
What is failing here?
> 2. And crash has gone from libpthread. But poped up in different place:
>
> libgcc_s: libgcc/config/i386/cpuinfo.c
>
> __cpu_indicator_init function uses cpuid
That would be a gcc bug. File a bug in their tracker.
> So cpuid pops up here and there even if everything is built for i486. Isn't
> there a way to completely get rid of it?
Nobody builds for i486 anymore, so what you're seeing is just bitrot
from an untested configuration.
Please file bugs and we'll fix everything you can find.
Cheers,
Carlos.