This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: New pthread_cond_t and hppa.
On Mon, 2017-03-06 at 09:56 -0500, Carlos O'Donell wrote:
> On 03/03/2017 08:18 PM, Torvald Riegel wrote:
> > On Fri, 2017-03-03 at 19:37 -0500, Carlos O'Donell wrote:
> >> Torvald,
> >>
> >> On hppa we had no free word to use for the newer expanded
> >> pthread_cond_t. Since the first four words of pthread_cond_t
> >> are going to be "1, 1, 1, 1" in legacy applications it looks
> >> like I need to reserve at least one of these lowest bit values
> >> for the initializer I use to decide if the old-style structure
> >> has been converted or not.
> >>
> >> What's your take on shaving 1-bit off of __wseq32 or __g1_start32?
> >
> > That's possible, but __g1_orig_size might be even easier because there
> > are already accessors to it in pthread_cond_common.c.
>
> Only the first four 32-bit words are set to {1,1,1,1} by the old static
> initializer, so I'd have to rearrange the structure, but it should work.
>
> My question is mostly along the theoretical lines of: What does it mean
> if I loose a bit on __g1_orig_size?
[CC'ing libc-alpha too]
Loosing the bit shouldn't make a difference, because we're missing 3
bits anyway in __wrefs. See the definition of
__PTHREAD_COND_MAX_GROUP_SIZE in pthread_cond_common.c. Maybe we should
add a comment that this needs to be less than or equal to the size that
g1_orig_size can hold.