[PATCH v2 3/3] nptl: Define __PTHREAD_MUTEX_{NUSERS_AFTER_KIND,USE_UNION}
H.J. Lu
hjl.tools@gmail.com
Mon Nov 6 14:19:00 GMT 2017
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.
More information about the Libc-alpha
mailing list