nptl: add missing pthread-offsets.h
Commit Message
All architectures using their own definition of struct
__pthread_rwlock_arch_t need to provide their own pthread-offsets.h.
---
sysdeps/aarch64/nptl/pthread-offsets.h | 3 +++
sysdeps/alpha/nptl/pthread-offsets.h | 3 +++
sysdeps/ia64/nptl/pthread-offsets.h | 3 +++
sysdeps/riscv/nptl/pthread-offsets.h | 3 +++
sysdeps/sparc/nptl/pthread-offsets.h | 13 +++++++++++++
5 files changed, 25 insertions(+)
create mode 100644 sysdeps/aarch64/nptl/pthread-offsets.h
create mode 100644 sysdeps/alpha/nptl/pthread-offsets.h
create mode 100644 sysdeps/ia64/nptl/pthread-offsets.h
create mode 100644 sysdeps/riscv/nptl/pthread-offsets.h
create mode 100644 sysdeps/sparc/nptl/pthread-offsets.h
Comments
On 05/02/2020 14:53, Andreas Schwab wrote:
> All architectures using their own definition of struct
> __pthread_rwlock_arch_t need to provide their own pthread-offsets.h.
I tried consolidate the definition on only one file, but it does
see to make sense.
However, if the idea is to couple arch-specific internal pthread
implementations with its associated internal offsets I think we
should create one file for
__pthread_rwlock_arch_t/__PTHREAD_RWLOCK_FLAGS_OFFSET and another
one for __pthread_mutex_s/__PTHREAD_MUTEX_KIND_OFFSET.
> ---
> sysdeps/aarch64/nptl/pthread-offsets.h | 3 +++
> sysdeps/alpha/nptl/pthread-offsets.h | 3 +++
> sysdeps/ia64/nptl/pthread-offsets.h | 3 +++
> sysdeps/riscv/nptl/pthread-offsets.h | 3 +++
> sysdeps/sparc/nptl/pthread-offsets.h | 13 +++++++++++++
> 5 files changed, 25 insertions(+)
> create mode 100644 sysdeps/aarch64/nptl/pthread-offsets.h
> create mode 100644 sysdeps/alpha/nptl/pthread-offsets.h
> create mode 100644 sysdeps/ia64/nptl/pthread-offsets.h
> create mode 100644 sysdeps/riscv/nptl/pthread-offsets.h
> create mode 100644 sysdeps/sparc/nptl/pthread-offsets.h
>
> diff --git a/sysdeps/aarch64/nptl/pthread-offsets.h b/sysdeps/aarch64/nptl/pthread-offsets.h
> new file mode 100644
> index 0000000000..31f0587bec
> --- /dev/null
> +++ b/sysdeps/aarch64/nptl/pthread-offsets.h
> @@ -0,0 +1,3 @@
> +#define __PTHREAD_MUTEX_KIND_OFFSET 16
> +
> +#define __PTHREAD_RWLOCK_FLAGS_OFFSET 48
> diff --git a/sysdeps/alpha/nptl/pthread-offsets.h b/sysdeps/alpha/nptl/pthread-offsets.h
> new file mode 100644
> index 0000000000..31f0587bec
> --- /dev/null
> +++ b/sysdeps/alpha/nptl/pthread-offsets.h
> @@ -0,0 +1,3 @@
> +#define __PTHREAD_MUTEX_KIND_OFFSET 16
> +
> +#define __PTHREAD_RWLOCK_FLAGS_OFFSET 48
> diff --git a/sysdeps/ia64/nptl/pthread-offsets.h b/sysdeps/ia64/nptl/pthread-offsets.h
> new file mode 100644
> index 0000000000..31f0587bec
> --- /dev/null
> +++ b/sysdeps/ia64/nptl/pthread-offsets.h
> @@ -0,0 +1,3 @@
> +#define __PTHREAD_MUTEX_KIND_OFFSET 16
> +
> +#define __PTHREAD_RWLOCK_FLAGS_OFFSET 48
> diff --git a/sysdeps/riscv/nptl/pthread-offsets.h b/sysdeps/riscv/nptl/pthread-offsets.h
> new file mode 100644
> index 0000000000..31f0587bec
> --- /dev/null
> +++ b/sysdeps/riscv/nptl/pthread-offsets.h
> @@ -0,0 +1,3 @@
> +#define __PTHREAD_MUTEX_KIND_OFFSET 16
> +
> +#define __PTHREAD_RWLOCK_FLAGS_OFFSET 48
> diff --git a/sysdeps/sparc/nptl/pthread-offsets.h b/sysdeps/sparc/nptl/pthread-offsets.h
> new file mode 100644
> index 0000000000..ac50a5a7a6
> --- /dev/null
> +++ b/sysdeps/sparc/nptl/pthread-offsets.h
> @@ -0,0 +1,13 @@
> +#include <bits/wordsize.h>
> +
> +#if __WORDSIZE == 64
> +# define __PTHREAD_MUTEX_KIND_OFFSET 16
> +#else
> +# define __PTHREAD_MUTEX_KIND_OFFSET 12
> +#endif
> +
> +#if __WORDSIZE == 64
> +# define __PTHREAD_RWLOCK_FLAGS_OFFSET 48
> +#else
> +# define __PTHREAD_RWLOCK_FLAGS_OFFSET 27
> +#endif
>
On Feb 05 2020, Adhemerval Zanella wrote:
> However, if the idea is to couple arch-specific internal pthread
> implementations with its associated internal offsets I think we
> should create one file for
> __pthread_rwlock_arch_t/__PTHREAD_RWLOCK_FLAGS_OFFSET and another
> one for __pthread_mutex_s/__PTHREAD_MUTEX_KIND_OFFSET.
There is a big overlap between archs having their own struct_mutex.h and
struct_rwlock.h, so there doesn't appear to be much benefit for that.
Andreas.
* Andreas Schwab:
> All architectures using their own definition of struct
> __pthread_rwlock_arch_t need to provide their own pthread-offsets.h.
What's the context for this change?
On 06/02/2020 15:45, Florian Weimer wrote:
> * Andreas Schwab:
>
>> All architectures using their own definition of struct
>> __pthread_rwlock_arch_t need to provide their own pthread-offsets.h.
>
> What's the context for this change?
>
My understanding is tying the __PTHREAD_RWLOCK_FLAGS_OFFSET definition
to a arch-specific file if the architecture overrides the generic
__pthread_rwlock_arch_t definition.
* Adhemerval Zanella:
> On 06/02/2020 15:45, Florian Weimer wrote:
>> * Andreas Schwab:
>>
>>> All architectures using their own definition of struct
>>> __pthread_rwlock_arch_t need to provide their own pthread-offsets.h.
>>
>> What's the context for this change?
>>
>
> My understanding is tying the __PTHREAD_RWLOCK_FLAGS_OFFSET definition
> to a arch-specific file if the architecture overrides the generic
> __pthread_rwlock_arch_t definition.
Okay, then let me ask differently: Why hasn't this discrepancy shown
up in testing so far?
On Feb 06 2020, Florian Weimer wrote:
> * Andreas Schwab:
>
>> All architectures using their own definition of struct
>> __pthread_rwlock_arch_t need to provide their own pthread-offsets.h.
>
> What's the context for this change?
<mvmpneskjhw.fsf@suse.de>
Andreas.
* Andreas Schwab:
> On Feb 06 2020, Florian Weimer wrote:
>
>> * Andreas Schwab:
>>
>>> All architectures using their own definition of struct
>>> __pthread_rwlock_arch_t need to provide their own pthread-offsets.h.
>>
>> What's the context for this change?
>
> <mvmpneskjhw.fsf@suse.de>
Which is:
From: Andreas Schwab <schwab@suse.de>
Subject: [PATCH] nptl: update default pthread-offsets.h
To: libc-alpha@sourceware.org
Date: Wed, 05 Feb 2020 18:54:19 +0100
I still don't understand why these discrepancies have not resulted in
test failures.
On Feb 10 2020, Florian Weimer wrote:
> * Andreas Schwab:
>
>> On Feb 06 2020, Florian Weimer wrote:
>>
>>> * Andreas Schwab:
>>>
>>>> All architectures using their own definition of struct
>>>> __pthread_rwlock_arch_t need to provide their own pthread-offsets.h.
>>>
>>> What's the context for this change?
>>
>> <mvmpneskjhw.fsf@suse.de>
>
> Which is:
>
> From: Andreas Schwab <schwab@suse.de>
> Subject: [PATCH] nptl: update default pthread-offsets.h
> To: libc-alpha@sourceware.org
> Date: Wed, 05 Feb 2020 18:54:19 +0100
>
> I still don't understand why these discrepancies have not resulted in
> test failures.
They do with that patch.
Andreas.
* Andreas Schwab:
> On Feb 10 2020, Florian Weimer wrote:
>
>> * Andreas Schwab:
>>
>>> On Feb 06 2020, Florian Weimer wrote:
>>>
>>>> * Andreas Schwab:
>>>>
>>>>> All architectures using their own definition of struct
>>>>> __pthread_rwlock_arch_t need to provide their own pthread-offsets.h.
>>>>
>>>> What's the context for this change?
>>>
>>> <mvmpneskjhw.fsf@suse.de>
>>
>> Which is:
>>
>> From: Andreas Schwab <schwab@suse.de>
>> Subject: [PATCH] nptl: update default pthread-offsets.h
>> To: libc-alpha@sourceware.org
>> Date: Wed, 05 Feb 2020 18:54:19 +0100
>>
>> I still don't understand why these discrepancies have not resulted in
>> test failures.
>
> They do with that patch.
Ahh, okay then.
new file mode 100644
@@ -0,0 +1,3 @@
+#define __PTHREAD_MUTEX_KIND_OFFSET 16
+
+#define __PTHREAD_RWLOCK_FLAGS_OFFSET 48
new file mode 100644
@@ -0,0 +1,3 @@
+#define __PTHREAD_MUTEX_KIND_OFFSET 16
+
+#define __PTHREAD_RWLOCK_FLAGS_OFFSET 48
new file mode 100644
@@ -0,0 +1,3 @@
+#define __PTHREAD_MUTEX_KIND_OFFSET 16
+
+#define __PTHREAD_RWLOCK_FLAGS_OFFSET 48
new file mode 100644
@@ -0,0 +1,3 @@
+#define __PTHREAD_MUTEX_KIND_OFFSET 16
+
+#define __PTHREAD_RWLOCK_FLAGS_OFFSET 48
new file mode 100644
@@ -0,0 +1,13 @@
+#include <bits/wordsize.h>
+
+#if __WORDSIZE == 64
+# define __PTHREAD_MUTEX_KIND_OFFSET 16
+#else
+# define __PTHREAD_MUTEX_KIND_OFFSET 12
+#endif
+
+#if __WORDSIZE == 64
+# define __PTHREAD_RWLOCK_FLAGS_OFFSET 48
+#else
+# define __PTHREAD_RWLOCK_FLAGS_OFFSET 27
+#endif