From 48dbce60cfdd328b671aaa9ee0c54ded3246ece9 Mon Sep 17 00:00:00 2001 From: Adhemerval Zanella Date: Mon, 4 Nov 2019 13:36:05 +0000 Subject: nptl: Add tests for internal pthread_rwlock_t offsets This patch new build tests to check for internal fields offsets for internal pthread_rwlock_t definition. Althoug the '__data.__flags' field layout should be preserved due static initializators, the patch also adds tests for the futexes that may be used in a shared memory (although using different libc version in such scenario is not really supported). Checked with a build against all affected ABIs. Change-Id: Iccc103d557de13d17e4a3f59a0cad2f4a640c148 --- sysdeps/aarch64/nptl/pthread-offsets.h | 2 ++ sysdeps/alpha/nptl/pthread-offsets.h | 2 ++ sysdeps/arm/nptl/pthread-offsets.h | 6 ++++++ sysdeps/csky/nptl/pthread-offsets.h | 2 ++ sysdeps/hppa/nptl/pthread-offsets.h | 2 ++ sysdeps/i386/nptl/pthread-offsets.h | 2 ++ sysdeps/ia64/nptl/pthread-offsets.h | 2 ++ sysdeps/m68k/nptl/pthread-offsets.h | 2 ++ sysdeps/microblaze/nptl/pthread-offsets.h | 6 ++++++ sysdeps/mips/nptl/pthread-offsets.h | 10 ++++++++++ sysdeps/nios2/nptl/pthread-offsets.h | 2 ++ sysdeps/powerpc/nptl/pthread-offsets.h | 6 ++++++ sysdeps/riscv/nptl/pthread-offsets.h | 2 ++ sysdeps/s390/nptl/pthread-offsets.h | 6 ++++++ sysdeps/sh/nptl/pthread-offsets.h | 6 ++++++ sysdeps/sparc/nptl/pthread-offsets.h | 6 ++++++ sysdeps/x86_64/nptl/pthread-offsets.h | 6 ++++++ 17 files changed, 70 insertions(+) (limited to 'sysdeps') diff --git a/sysdeps/aarch64/nptl/pthread-offsets.h b/sysdeps/aarch64/nptl/pthread-offsets.h index 8208f6f177..7fe06e0e25 100644 --- a/sysdeps/aarch64/nptl/pthread-offsets.h +++ b/sysdeps/aarch64/nptl/pthread-offsets.h @@ -1 +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 index 8208f6f177..7fe06e0e25 100644 --- a/sysdeps/alpha/nptl/pthread-offsets.h +++ b/sysdeps/alpha/nptl/pthread-offsets.h @@ -1 +1,3 @@ #define __PTHREAD_MUTEX_KIND_OFFSET 16 + +#define __PTHREAD_RWLOCK_FLAGS_OFFSET 48 diff --git a/sysdeps/arm/nptl/pthread-offsets.h b/sysdeps/arm/nptl/pthread-offsets.h index e4e775d7ed..e9accba31c 100644 --- a/sysdeps/arm/nptl/pthread-offsets.h +++ b/sysdeps/arm/nptl/pthread-offsets.h @@ -1 +1,7 @@ #define __PTHREAD_MUTEX_KIND_OFFSET 12 + +#if __BYTE_ORDER == __BIG_ENDIAN +# define __PTHREAD_RWLOCK_FLAGS_OFFSET 27 +#else +# define __PTHREAD_RWLOCK_FLAGS_OFFSET 24 +#endif diff --git a/sysdeps/csky/nptl/pthread-offsets.h b/sysdeps/csky/nptl/pthread-offsets.h index e4e775d7ed..7940d1fd88 100644 --- a/sysdeps/csky/nptl/pthread-offsets.h +++ b/sysdeps/csky/nptl/pthread-offsets.h @@ -1 +1,3 @@ #define __PTHREAD_MUTEX_KIND_OFFSET 12 + +#define __PTHREAD_RWLOCK_FLAGS_OFFSET 24 diff --git a/sysdeps/hppa/nptl/pthread-offsets.h b/sysdeps/hppa/nptl/pthread-offsets.h index e4e775d7ed..1c11eff10b 100644 --- a/sysdeps/hppa/nptl/pthread-offsets.h +++ b/sysdeps/hppa/nptl/pthread-offsets.h @@ -1 +1,3 @@ #define __PTHREAD_MUTEX_KIND_OFFSET 12 + +#define __PTHREAD_RWLOCK_FLAGS_OFFSET 51 diff --git a/sysdeps/i386/nptl/pthread-offsets.h b/sysdeps/i386/nptl/pthread-offsets.h index e4e775d7ed..7940d1fd88 100644 --- a/sysdeps/i386/nptl/pthread-offsets.h +++ b/sysdeps/i386/nptl/pthread-offsets.h @@ -1 +1,3 @@ #define __PTHREAD_MUTEX_KIND_OFFSET 12 + +#define __PTHREAD_RWLOCK_FLAGS_OFFSET 24 diff --git a/sysdeps/ia64/nptl/pthread-offsets.h b/sysdeps/ia64/nptl/pthread-offsets.h index 8208f6f177..7fe06e0e25 100644 --- a/sysdeps/ia64/nptl/pthread-offsets.h +++ b/sysdeps/ia64/nptl/pthread-offsets.h @@ -1 +1,3 @@ #define __PTHREAD_MUTEX_KIND_OFFSET 16 + +#define __PTHREAD_RWLOCK_FLAGS_OFFSET 48 diff --git a/sysdeps/m68k/nptl/pthread-offsets.h b/sysdeps/m68k/nptl/pthread-offsets.h index e4e775d7ed..4d6696ae56 100644 --- a/sysdeps/m68k/nptl/pthread-offsets.h +++ b/sysdeps/m68k/nptl/pthread-offsets.h @@ -1 +1,3 @@ #define __PTHREAD_MUTEX_KIND_OFFSET 12 + +#define __PTHREAD_RWLOCK_FLAGS_OFFSET 27 diff --git a/sysdeps/microblaze/nptl/pthread-offsets.h b/sysdeps/microblaze/nptl/pthread-offsets.h index e4e775d7ed..e9accba31c 100644 --- a/sysdeps/microblaze/nptl/pthread-offsets.h +++ b/sysdeps/microblaze/nptl/pthread-offsets.h @@ -1 +1,7 @@ #define __PTHREAD_MUTEX_KIND_OFFSET 12 + +#if __BYTE_ORDER == __BIG_ENDIAN +# define __PTHREAD_RWLOCK_FLAGS_OFFSET 27 +#else +# define __PTHREAD_RWLOCK_FLAGS_OFFSET 24 +#endif diff --git a/sysdeps/mips/nptl/pthread-offsets.h b/sysdeps/mips/nptl/pthread-offsets.h index e96d34afd7..e52b347531 100644 --- a/sysdeps/mips/nptl/pthread-offsets.h +++ b/sysdeps/mips/nptl/pthread-offsets.h @@ -3,3 +3,13 @@ #else # define __PTHREAD_MUTEX_KIND_OFFSET 12 #endif + +#if _MIPS_SIM == _ABI64 +# define __PTHREAD_RWLOCK_FLAGS_OFFSET 48 +#else +# if __BYTE_ORDER == __BIG_ENDIAN +# define __PTHREAD_RWLOCK_FLAGS_OFFSET 27 +# else +# define __PTHREAD_RWLOCK_FLAGS_OFFSET 24 +# endif +#endif diff --git a/sysdeps/nios2/nptl/pthread-offsets.h b/sysdeps/nios2/nptl/pthread-offsets.h index e4e775d7ed..7940d1fd88 100644 --- a/sysdeps/nios2/nptl/pthread-offsets.h +++ b/sysdeps/nios2/nptl/pthread-offsets.h @@ -1 +1,3 @@ #define __PTHREAD_MUTEX_KIND_OFFSET 12 + +#define __PTHREAD_RWLOCK_FLAGS_OFFSET 24 diff --git a/sysdeps/powerpc/nptl/pthread-offsets.h b/sysdeps/powerpc/nptl/pthread-offsets.h index 25b5bf2cbd..9e2112120b 100644 --- a/sysdeps/powerpc/nptl/pthread-offsets.h +++ b/sysdeps/powerpc/nptl/pthread-offsets.h @@ -5,3 +5,9 @@ #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 diff --git a/sysdeps/riscv/nptl/pthread-offsets.h b/sysdeps/riscv/nptl/pthread-offsets.h index 6fc032fdc2..4f14276f9c 100644 --- a/sysdeps/riscv/nptl/pthread-offsets.h +++ b/sysdeps/riscv/nptl/pthread-offsets.h @@ -18,3 +18,5 @@ . */ #define __PTHREAD_MUTEX_KIND_OFFSET 16 + +#define __PTHREAD_RWLOCK_FLAGS_OFFSET 48 diff --git a/sysdeps/s390/nptl/pthread-offsets.h b/sysdeps/s390/nptl/pthread-offsets.h index 25b5bf2cbd..9e2112120b 100644 --- a/sysdeps/s390/nptl/pthread-offsets.h +++ b/sysdeps/s390/nptl/pthread-offsets.h @@ -5,3 +5,9 @@ #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 diff --git a/sysdeps/sh/nptl/pthread-offsets.h b/sysdeps/sh/nptl/pthread-offsets.h index e4e775d7ed..e9accba31c 100644 --- a/sysdeps/sh/nptl/pthread-offsets.h +++ b/sysdeps/sh/nptl/pthread-offsets.h @@ -1 +1,7 @@ #define __PTHREAD_MUTEX_KIND_OFFSET 12 + +#if __BYTE_ORDER == __BIG_ENDIAN +# define __PTHREAD_RWLOCK_FLAGS_OFFSET 27 +#else +# define __PTHREAD_RWLOCK_FLAGS_OFFSET 24 +#endif diff --git a/sysdeps/sparc/nptl/pthread-offsets.h b/sysdeps/sparc/nptl/pthread-offsets.h index 25b5bf2cbd..9e2112120b 100644 --- a/sysdeps/sparc/nptl/pthread-offsets.h +++ b/sysdeps/sparc/nptl/pthread-offsets.h @@ -5,3 +5,9 @@ #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 diff --git a/sysdeps/x86_64/nptl/pthread-offsets.h b/sysdeps/x86_64/nptl/pthread-offsets.h index 8208f6f177..a311da40c6 100644 --- a/sysdeps/x86_64/nptl/pthread-offsets.h +++ b/sysdeps/x86_64/nptl/pthread-offsets.h @@ -1 +1,7 @@ #define __PTHREAD_MUTEX_KIND_OFFSET 16 + +#ifdef __ILP32__ +# define __PTHREAD_RWLOCK_FLAGS_OFFSET 40 +#else +# define __PTHREAD_RWLOCK_FLAGS_OFFSET 48 +#endif -- cgit 1.4.1