This is the mail archive of the libc-alpha@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: [PATCH v2 3/3] nptl: Define __PTHREAD_MUTEX_{NUSERS_AFTER_KIND,USE_UNION}


On Fri, Nov 3, 2017 at 8:25 AM, H.J. Lu <hjl.tools@gmail.com> wrote:
> On Thu, Nov 2, 2017 at 5:14 AM, Adhemerval Zanella
> <adhemerval.zanella@linaro.org> wrote:
>> Ping.
>>
>> On 26/10/2017 15:14, Adhemerval Zanella wrote:
>>> Changes from previous version:
>>>
>>>   - Fixed __nusers placement for __PTHREAD_MUTEX_NUSERS_AFTER_KIND.
>>>   - Fixed typos.
>>>
>>> ---
>>>
>>> This patch adds two new internal defines to set the internal
>>> pthread_mutex_t layout required by the supported ABIS:
>>>
>>>   1. __PTHREAD_MUTEX_NUSERS_AFTER_KIND which control whether to define
>>>      __nusers fields before or after __kind.  The preferred value for
>>>      is 0 for new ports and it sets __nusers before __kind.
>>>
>>>   2. __PTHREAD_MUTEX_USE_UNION which control whether internal __spins and
>>>      __list members will be place inside an union for linuxthreads
>>>      compatibility.  The preferred value is 0 for ports and it sets
>>>      to not use an union to define both fields.
>>>
>>> It fixes the wrong offsets value for __kind value on x86_64-linux-gnu-x32.
>>> Checked with a make check run-built-tests=no on all afected ABIs.
>>>
>>> Signed-off-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>
>>>
>>>       [BZ #22298]
>>>       * nptl/allocatestack.c (allocate_stack): Check if
>>>       __PTHREAD_MUTEX_HAVE_PREV is non-zero, instead if
>>>       __PTHREAD_MUTEX_HAVE_PREV is defined.
>>>       * nptl/descr.h (pthread): Likewise.
>>>       * nptl/nptl-init.c (__pthread_initialize_minimal_internal):
>>>       Likewise.
>>>       * nptl/pthread_create.c (START_THREAD_DEFN): Likewise.
>>>       * sysdeps/nptl/fork.c (__libc_fork): Likewise.
>>>       * sysdeps/nptl/pthread.h (PTHREAD_MUTEX_INITIALIZER): Likewise.
>>>       * sysdeps/nptl/bits/thread-shared-types.h
>>>       (__PTHREAD_MUTEX_NUSERS_AFTER_KIND, __PTHREAD_MUTEX_USE_UNION): New
>>>       defines.
>>>       (__pthread_internal_list): Check __PTHREAD_MUTEX_USE_UNION instead
>>>       of __WORDSIZE for internal layout.
>>>       (__pthread_mutex_s): Check __PTHREAD_MUTEX_NUSERS_AFTER_KIND instead
>>>       of __WORDSIZE for internal __nusers layout and __PTHREAD_MUTEX_USE_UNION
>>>       instead of __WORDSIZE whether to use an union for __spins and __list
>>>       fields.
>>>       (__PTHREAD_MUTEX_HAVE_PREV): Define also for __PTHREAD_MUTEX_USE_UNION
>>>       case.
>>>       * sysdeps/aarch64/nptl/bits/pthreadtypes-arch.h
>>>       (__PTHREAD_MUTEX_NUSERS_AFTER_KIND, __PTHREAD_MUTEX_USE_UNION): New
>>>       defines.
>>>       * sysdeps/alpha/nptl/bits/pthreadtypes-arch.h
>>>       (__PTHREAD_MUTEX_NUSERS_AFTER_KIND, __PTHREAD_MUTEX_USE_UNION): New
>>>       defines.
>>>       * sysdeps/arm/nptl/bits/pthreadtypes-arch.h
>>>       (__PTHREAD_MUTEX_NUSERS_AFTER_KIND, __PTHREAD_MUTEX_USE_UNION): New
>>>       defines.
>>>       * sysdeps/hppa/nptl/bits/pthreadtypes-arch.h
>>>       (__PTHREAD_MUTEX_NUSERS_AFTER_KIND, __PTHREAD_MUTEX_USE_UNION): New
>>>       defines.
>>>       * sysdeps/ia64/nptl/bits/pthreadtypes-arch.h
>>>       (__PTHREAD_MUTEX_NUSERS_AFTER_KIND, __PTHREAD_MUTEX_USE_UNION): New
>>>       defines.
>>>       * sysdeps/m68k/nptl/bits/pthreadtypes-arch.h
>>>       (__PTHREAD_MUTEX_NUSERS_AFTER_KIND, __PTHREAD_MUTEX_USE_UNION): New
>>>       defines.
>>>       * sysdeps/microblaze/nptl/bits/pthreadtypes-arch.h
>>>       (__PTHREAD_MUTEX_NUSERS_AFTER_KIND, __PTHREAD_MUTEX_USE_UNION): New
>>>       defines.
>>>       * sysdeps/mips/nptl/bits/pthreadtypes-arch.h
>>>       (__PTHREAD_MUTEX_NUSERS_AFTER_KIND, __PTHREAD_MUTEX_USE_UNION): New
>>>       defines.
>>>       * sysdeps/nios2/nptl/bits/pthreadtypes-arch.h
>>>       (__PTHREAD_MUTEX_NUSERS_AFTER_KIND, __PTHREAD_MUTEX_USE_UNION): New
>>>       defines.
>>>       * sysdeps/powerpc/nptl/bits/pthreadtypes-arch.h
>>>       (__PTHREAD_MUTEX_NUSERS_AFTER_KIND, __PTHREAD_MUTEX_USE_UNION): New
>>>       defines.
>>>       * sysdeps/s390/nptl/bits/pthreadtypes-arch.h
>>>       (__PTHREAD_MUTEX_NUSERS_AFTER_KIND, __PTHREAD_MUTEX_USE_UNION): New
>>>       defines.
>>>       * sysdeps/sh/nptl/bits/pthreadtypes-arch.h
>>>       (__PTHREAD_MUTEX_NUSERS_AFTER_KIND, __PTHREAD_MUTEX_USE_UNION): New
>>>       defines.
>>>       * sysdeps/sparc/nptl/bits/pthreadtypes-arch.h
>>>       (__PTHREAD_MUTEX_NUSERS_AFTER_KIND, __PTHREAD_MUTEX_USE_UNION): New
>>>       defines.
>>>       * sysdeps/tile/nptl/bits/pthreadtypes-arch.h
>>>       (__PTHREAD_MUTEX_NUSERS_AFTER_KIND, __PTHREAD_MUTEX_USE_UNION): New
>>>       defines.
>>>       * sysdeps/x86/nptl/bits/pthreadtypes-arch.h
>>>       (__PTHREAD_MUTEX_NUSERS_AFTER_KIND, __PTHREAD_MUTEX_USE_UNION): New
>>>       defines.

> LGTM.
>
> Thanks.
>
> --
> H.J.

Are you going to check in your patches to fix BZ #22298?

-- 
H.J.


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