This is the mail archive of the
libc-help@sourceware.org
mailing list for the glibc project.
Re: pthread_cond_* does not compile on i386
- From: "Carlos O'Donell" <carlos at systemhalted dot org>
- To: "Gilles Carry" <Gilles dot Carry at bull dot net>
- Cc: libc-help at sourceware dot org
- Date: Tue, 6 May 2008 07:36:15 -0400
- Subject: Re: pthread_cond_* does not compile on i386
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:sender:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references:x-google-sender-auth; bh=+JsQb4CyjpF89VTLS6HdjIe+9m/OIRZW31RmssEVokM=; b=OSoTEBXyd1z6q/4PaKDkxoHXyZu5UcBnRY7/ylZu/tLhDakpC//oT+DUHIkk/CnogF2mxvCjAW6TAY0GIytKXZoRJLY1cUoUHaOTv0MdRYNDoWqQ3zYjUn+cgepNEzsRWet0OHESYTqcZa29q8GJr0WtG7U6b8wI8ZrRnhUlokY=
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:sender:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references:x-google-sender-auth; b=JFC33+bAoPzcTeLKmbnzR4tw0w2hkohMWCXe4qrCFt5YzPEexlQateLYtmwwnxwddB25ZGLZP3vzWECDQxNB38Q52qJIofoLxLv6aneHRN9s0pINOOKA2ew0cb5o4fdsvEkAgnILeLi7QoXkG6YS5aIw6T+K2f7hGFbz9yeWzvw=
- References: <48185CA9.8010607@bull.net> <119aab440805020625l2562d043h42bed595f477d577@mail.gmail.com> <481EAF50.2000509@bull.net> <119aab440805050540k5d2613a3w2202da1355963cc9@mail.gmail.com> <481F133E.6000805@bull.net> <119aab440805051756q2651dc4cr12cca53d9175ea3f@mail.gmail.com> <48201209.3070800@bull.net>
On Tue, May 6, 2008 at 4:08 AM, Gilles Carry <Gilles.Carry@bull.net> wrote:
> I don't know if there are specific rules for this but it would make sense
> to me that C code is the reference.
I agree with you.
> Actually, i386 lacks some macros used in C code:
> pthread_cond_broadcast.c: lll_futex_requeue
> pthread_cond_signal.c: lll_futex_wake_unlock
Unfortunately lowlevellock.h doesn't have a generic equivalent, but
ARM, MIPS and HPPA all use *almost* exactly the same code, relying on
atomic.h primitives to write the higher level functions.
I suggest you copy the missing functions from one of these ports, and
verify that the required atomic primitive exists and is actually
atomic.
That should get you to a working state.
Cheers,
Carlos.