Message ID | mvmtv44kjim.fsf@suse.de |
---|---|
State | New |
Headers | show |
Series | nptl: add missing pthread-offsets.h | expand |
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.
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