nptl: add missing pthread-offsets.h

Message ID mvmtv44kjim.fsf@suse.de
State New
Headers show
Series
  • nptl: add missing pthread-offsets.h
Related show

Commit Message

Andreas Schwab Feb. 5, 2020, 5:53 p.m.
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

-- 
2.25.0


-- 
Andreas Schwab, SUSE Labs, schwab@suse.de
GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE  1748 E4D4 88E3 0EEA B9D7
"And now for something completely different."

Comments

Adhemerval Zanella Feb. 5, 2020, 6:10 p.m. | #1
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

>
Andreas Schwab Feb. 6, 2020, 11:56 a.m. | #2
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, SUSE Labs, schwab@suse.de
GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE  1748 E4D4 88E3 0EEA B9D7
"And now for something completely different."
Florian Weimer Feb. 6, 2020, 6:45 p.m. | #3
* 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?
Adhemerval Zanella Feb. 7, 2020, 12:47 p.m. | #4
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.
Florian Weimer Feb. 7, 2020, 7:57 p.m. | #5
* 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?
Andreas Schwab Feb. 10, 2020, 9:56 a.m. | #6
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, SUSE Labs, schwab@suse.de
GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE  1748 E4D4 88E3 0EEA B9D7
"And now for something completely different."
Florian Weimer Feb. 10, 2020, 9:56 a.m. | #7
* 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.
Andreas Schwab Feb. 10, 2020, 10:53 a.m. | #8
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, SUSE Labs, schwab@suse.de
GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE  1748 E4D4 88E3 0EEA B9D7
"And now for something completely different."
Florian Weimer Feb. 10, 2020, 11:07 a.m. | #9
* 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.

Patch

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