[review] nptl: Add default pthread-offsets.h

Message ID gerrit.1573136666000.I7785a9581e651feb80d1413b9e03b5ac0452668a@gnutoolchain-gerrit.osci.io
State Superseded
Headers

Commit Message

Simon Marchi (Code Review) Nov. 7, 2019, 2:24 p.m. UTC
  Change URL: https://gnutoolchain-gerrit.osci.io/r/c/glibc/+/521
......................................................................

nptl: Add default pthread-offsets.h

This patch adds a default pthread-offsets.h based on default
thread definitions from mutex-internal.h and rwlock-internal.h.
The idea is to simpify new ports inclusion.

Checked with a build on affected abis.

Change-Id: I7785a9581e651feb80d1413b9e03b5ac0452668a
---
D sysdeps/aarch64/nptl/pthread-offsets.h
D sysdeps/alpha/nptl/pthread-offsets.h
D sysdeps/arm/nptl/pthread-offsets.h
D sysdeps/csky/nptl/pthread-offsets.h
D sysdeps/ia64/nptl/pthread-offsets.h
D sysdeps/m68k/nptl/pthread-offsets.h
D sysdeps/microblaze/nptl/pthread-offsets.h
D sysdeps/nios2/nptl/pthread-offsets.h
A sysdeps/nptl/pthread-offsets.h
D sysdeps/riscv/nptl/pthread-offsets.h
D sysdeps/sh/nptl/pthread-offsets.h
D sysdeps/sparc/nptl/pthread-offsets.h
12 files changed, 39 insertions(+), 197 deletions(-)
  

Comments

Simon Marchi (Code Review) Nov. 14, 2019, 11:31 a.m. UTC | #1
Florian Weimer has posted comments on this change.

Change URL: https://gnutoolchain-gerrit.osci.io/r/c/glibc/+/521
......................................................................


Patch Set 2:

(2 comments)

Looks okay, except for nits in the commit message.

| --- /dev/null
| +++ /COMMIT_MSG
| @@ -1,0 +1,15 @@ 
| +Parent:     dcffe302 (nptl: Add default pthreadtypes-arch.h)
| +Author:     Adhemerval Zanella <adhemerval.zanella@linaro.org>
| +AuthorDate: 2017-11-14 19:10:38 -0200
| +Commit:     Adhemerval Zanella <adhemerval.zanella@linaro.org>
| +CommitDate: 2019-11-08 16:43:16 -0300
| +
| +nptl: Add default pthread-offsets.h
| +
| +This patch adds a default pthread-offsets.h based on default
| +thread definitions from mutex-internal.h and rwlock-internal.h.

PS2, Line 10:

Header names are outdated.

| +The idea is to simpify new ports inclusion.

PS2, Line 11:

simplify

| +
| +Checked with a build on affected abis.
| +
| +Change-Id: I7785a9581e651feb80d1413b9e03b5ac0452668a
  
Simon Marchi (Code Review) Nov. 20, 2019, 2:49 p.m. UTC | #2
Adhemerval Zanella has posted comments on this change.

Change URL: https://gnutoolchain-gerrit.osci.io/r/c/glibc/+/521
......................................................................


Patch Set 2:

(2 comments)

| --- /dev/null
| +++ /COMMIT_MSG
| @@ -1,0 +1,15 @@ 
| +Parent:     dcffe302 (nptl: Add default pthreadtypes-arch.h)
| +Author:     Adhemerval Zanella <adhemerval.zanella@linaro.org>
| +AuthorDate: 2017-11-14 19:10:38 -0200
| +Commit:     Adhemerval Zanella <adhemerval.zanella@linaro.org>
| +CommitDate: 2019-11-08 16:43:16 -0300
| +
| +nptl: Add default pthread-offsets.h
| +
| +This patch adds a default pthread-offsets.h based on default
| +thread definitions from mutex-internal.h and rwlock-internal.h.

PS2, Line 10:

Ack

| +The idea is to simpify new ports inclusion.

PS2, Line 11:

Ack

| +
| +Checked with a build on affected abis.
| +
| +Change-Id: I7785a9581e651feb80d1413b9e03b5ac0452668a
  
Simon Marchi (Code Review) Nov. 22, 2019, 11:09 a.m. UTC | #3
Florian Weimer has posted comments on this change.

Change URL: https://gnutoolchain-gerrit.osci.io/r/c/glibc/+/521
......................................................................


Patch Set 3: Code-Review+2
  

Patch

diff --git a/sysdeps/aarch64/nptl/pthread-offsets.h b/sysdeps/aarch64/nptl/pthread-offsets.h
deleted file mode 100644
index 679cec5..0000000
--- a/sysdeps/aarch64/nptl/pthread-offsets.h
+++ /dev/null
@@ -1,13 +0,0 @@ 
-#define __PTHREAD_MUTEX_NUSERS_OFFSET   12
-#define __PTHREAD_MUTEX_KIND_OFFSET     16
-#define __PTHREAD_MUTEX_SPINS_OFFSET    20
-#define __PTHREAD_MUTEX_ELISION_OFFSET  22
-#define __PTHREAD_MUTEX_LIST_OFFSET     24
-
-#define __PTHREAD_RWLOCK_READERS_OFFSET         0
-#define __PTHREAD_RWLOCK_WRITERS_OFFSET         4
-#define __PTHREAD_RWLOCK_WRPHASE_FUTEX_OFFSET   8
-#define __PTHREAD_RWLOCK_WRITERS_FUTEX_OFFSET  12
-#define __PTHREAD_RWLOCK_CUR_WRITER_OFFSET     24
-#define __PTHREAD_RWLOCK_SHARED_OFFSET         28
-#define __PTHREAD_RWLOCK_FLAGS_OFFSET          48
diff --git a/sysdeps/alpha/nptl/pthread-offsets.h b/sysdeps/alpha/nptl/pthread-offsets.h
deleted file mode 100644
index 679cec5..0000000
--- a/sysdeps/alpha/nptl/pthread-offsets.h
+++ /dev/null
@@ -1,13 +0,0 @@ 
-#define __PTHREAD_MUTEX_NUSERS_OFFSET   12
-#define __PTHREAD_MUTEX_KIND_OFFSET     16
-#define __PTHREAD_MUTEX_SPINS_OFFSET    20
-#define __PTHREAD_MUTEX_ELISION_OFFSET  22
-#define __PTHREAD_MUTEX_LIST_OFFSET     24
-
-#define __PTHREAD_RWLOCK_READERS_OFFSET         0
-#define __PTHREAD_RWLOCK_WRITERS_OFFSET         4
-#define __PTHREAD_RWLOCK_WRPHASE_FUTEX_OFFSET   8
-#define __PTHREAD_RWLOCK_WRITERS_FUTEX_OFFSET  12
-#define __PTHREAD_RWLOCK_CUR_WRITER_OFFSET     24
-#define __PTHREAD_RWLOCK_SHARED_OFFSET         28
-#define __PTHREAD_RWLOCK_FLAGS_OFFSET          48
diff --git a/sysdeps/arm/nptl/pthread-offsets.h b/sysdeps/arm/nptl/pthread-offsets.h
deleted file mode 100644
index cc2a939..0000000
--- a/sysdeps/arm/nptl/pthread-offsets.h
+++ /dev/null
@@ -1,18 +0,0 @@ 
-#define __PTHREAD_MUTEX_NUSERS_OFFSET   16
-#define __PTHREAD_MUTEX_KIND_OFFSET     12
-#define __PTHREAD_MUTEX_SPINS_OFFSET    20
-#define __PTHREAD_MUTEX_ELISION_OFFSET  22
-#define __PTHREAD_MUTEX_LIST_OFFSET     20
-
-#define __PTHREAD_RWLOCK_READERS_OFFSET         0
-#define __PTHREAD_RWLOCK_WRITERS_OFFSET         4
-#define __PTHREAD_RWLOCK_WRPHASE_FUTEX_OFFSET   8
-#define __PTHREAD_RWLOCK_WRITERS_FUTEX_OFFSET  12
-#define __PTHREAD_RWLOCK_CUR_WRITER_OFFSET     28
-#if __BYTE_ORDER == __BIG_ENDIAN
-# define __PTHREAD_RWLOCK_SHARED_OFFSET        26
-# define __PTHREAD_RWLOCK_FLAGS_OFFSET         27
-#else
-# define __PTHREAD_RWLOCK_SHARED_OFFSET        25
-# define __PTHREAD_RWLOCK_FLAGS_OFFSET         24
-#endif
diff --git a/sysdeps/csky/nptl/pthread-offsets.h b/sysdeps/csky/nptl/pthread-offsets.h
deleted file mode 100644
index a0eea7a..0000000
--- a/sysdeps/csky/nptl/pthread-offsets.h
+++ /dev/null
@@ -1,13 +0,0 @@ 
-#define __PTHREAD_MUTEX_NUSERS_OFFSET   16
-#define __PTHREAD_MUTEX_KIND_OFFSET     12
-#define __PTHREAD_MUTEX_SPINS_OFFSET    20
-#define __PTHREAD_MUTEX_ELISION_OFFSET  22
-#define __PTHREAD_MUTEX_LIST_OFFSET     20
-
-#define __PTHREAD_RWLOCK_READERS_OFFSET         0
-#define __PTHREAD_RWLOCK_WRITERS_OFFSET         4
-#define __PTHREAD_RWLOCK_WRPHASE_FUTEX_OFFSET   8
-#define __PTHREAD_RWLOCK_WRITERS_FUTEX_OFFSET  12
-#define __PTHREAD_RWLOCK_CUR_WRITER_OFFSET     28
-#define __PTHREAD_RWLOCK_SHARED_OFFSET         25
-#define __PTHREAD_RWLOCK_FLAGS_OFFSET          24
diff --git a/sysdeps/ia64/nptl/pthread-offsets.h b/sysdeps/ia64/nptl/pthread-offsets.h
deleted file mode 100644
index 679cec5..0000000
--- a/sysdeps/ia64/nptl/pthread-offsets.h
+++ /dev/null
@@ -1,13 +0,0 @@ 
-#define __PTHREAD_MUTEX_NUSERS_OFFSET   12
-#define __PTHREAD_MUTEX_KIND_OFFSET     16
-#define __PTHREAD_MUTEX_SPINS_OFFSET    20
-#define __PTHREAD_MUTEX_ELISION_OFFSET  22
-#define __PTHREAD_MUTEX_LIST_OFFSET     24
-
-#define __PTHREAD_RWLOCK_READERS_OFFSET         0
-#define __PTHREAD_RWLOCK_WRITERS_OFFSET         4
-#define __PTHREAD_RWLOCK_WRPHASE_FUTEX_OFFSET   8
-#define __PTHREAD_RWLOCK_WRITERS_FUTEX_OFFSET  12
-#define __PTHREAD_RWLOCK_CUR_WRITER_OFFSET     24
-#define __PTHREAD_RWLOCK_SHARED_OFFSET         28
-#define __PTHREAD_RWLOCK_FLAGS_OFFSET          48
diff --git a/sysdeps/m68k/nptl/pthread-offsets.h b/sysdeps/m68k/nptl/pthread-offsets.h
deleted file mode 100644
index 14d66ac..0000000
--- a/sysdeps/m68k/nptl/pthread-offsets.h
+++ /dev/null
@@ -1,13 +0,0 @@ 
-#define __PTHREAD_MUTEX_NUSERS_OFFSET   16
-#define __PTHREAD_MUTEX_KIND_OFFSET     12
-#define __PTHREAD_MUTEX_SPINS_OFFSET    20
-#define __PTHREAD_MUTEX_ELISION_OFFSET  22
-#define __PTHREAD_MUTEX_LIST_OFFSET     20
-
-#define __PTHREAD_RWLOCK_READERS_OFFSET         0
-#define __PTHREAD_RWLOCK_WRITERS_OFFSET         4
-#define __PTHREAD_RWLOCK_WRPHASE_FUTEX_OFFSET   8
-#define __PTHREAD_RWLOCK_WRITERS_FUTEX_OFFSET  12
-#define __PTHREAD_RWLOCK_CUR_WRITER_OFFSET     28
-#define __PTHREAD_RWLOCK_SHARED_OFFSET         26
-#define __PTHREAD_RWLOCK_FLAGS_OFFSET          27
diff --git a/sysdeps/microblaze/nptl/pthread-offsets.h b/sysdeps/microblaze/nptl/pthread-offsets.h
deleted file mode 100644
index cc2a939..0000000
--- a/sysdeps/microblaze/nptl/pthread-offsets.h
+++ /dev/null
@@ -1,18 +0,0 @@ 
-#define __PTHREAD_MUTEX_NUSERS_OFFSET   16
-#define __PTHREAD_MUTEX_KIND_OFFSET     12
-#define __PTHREAD_MUTEX_SPINS_OFFSET    20
-#define __PTHREAD_MUTEX_ELISION_OFFSET  22
-#define __PTHREAD_MUTEX_LIST_OFFSET     20
-
-#define __PTHREAD_RWLOCK_READERS_OFFSET         0
-#define __PTHREAD_RWLOCK_WRITERS_OFFSET         4
-#define __PTHREAD_RWLOCK_WRPHASE_FUTEX_OFFSET   8
-#define __PTHREAD_RWLOCK_WRITERS_FUTEX_OFFSET  12
-#define __PTHREAD_RWLOCK_CUR_WRITER_OFFSET     28
-#if __BYTE_ORDER == __BIG_ENDIAN
-# define __PTHREAD_RWLOCK_SHARED_OFFSET        26
-# define __PTHREAD_RWLOCK_FLAGS_OFFSET         27
-#else
-# define __PTHREAD_RWLOCK_SHARED_OFFSET        25
-# define __PTHREAD_RWLOCK_FLAGS_OFFSET         24
-#endif
diff --git a/sysdeps/nios2/nptl/pthread-offsets.h b/sysdeps/nios2/nptl/pthread-offsets.h
deleted file mode 100644
index a0eea7a..0000000
--- a/sysdeps/nios2/nptl/pthread-offsets.h
+++ /dev/null
@@ -1,13 +0,0 @@ 
-#define __PTHREAD_MUTEX_NUSERS_OFFSET   16
-#define __PTHREAD_MUTEX_KIND_OFFSET     12
-#define __PTHREAD_MUTEX_SPINS_OFFSET    20
-#define __PTHREAD_MUTEX_ELISION_OFFSET  22
-#define __PTHREAD_MUTEX_LIST_OFFSET     20
-
-#define __PTHREAD_RWLOCK_READERS_OFFSET         0
-#define __PTHREAD_RWLOCK_WRITERS_OFFSET         4
-#define __PTHREAD_RWLOCK_WRPHASE_FUTEX_OFFSET   8
-#define __PTHREAD_RWLOCK_WRITERS_FUTEX_OFFSET  12
-#define __PTHREAD_RWLOCK_CUR_WRITER_OFFSET     28
-#define __PTHREAD_RWLOCK_SHARED_OFFSET         25
-#define __PTHREAD_RWLOCK_FLAGS_OFFSET          24
diff --git a/sysdeps/nptl/pthread-offsets.h b/sysdeps/nptl/pthread-offsets.h
new file mode 100644
index 0000000..eb87d51
--- /dev/null
+++ b/sysdeps/nptl/pthread-offsets.h
@@ -0,0 +1,39 @@ 
+#include <bits/wordsize.h>
+
+/* These values are based on internal generic types from
+   mutex-internal.h and rwlock-internal.h.  */
+
+#if __WORDSIZE == 64
+# define __PTHREAD_MUTEX_NUSERS_OFFSET          12
+# define __PTHREAD_MUTEX_KIND_OFFSET            16
+# define __PTHREAD_MUTEX_SPINS_OFFSET           20
+# define __PTHREAD_MUTEX_LIST_OFFSET            24
+#else
+# define __PTHREAD_MUTEX_NUSERS_OFFSET          16
+# define __PTHREAD_MUTEX_KIND_OFFSET            12
+# define __PTHREAD_MUTEX_SPINS_OFFSET           20
+# define __PTHREAD_MUTEX_LIST_OFFSET            20
+#endif
+
+#if __WORDSIZE == 64
+# define __PTHREAD_RWLOCK_READERS_OFFSET         0
+# define __PTHREAD_RWLOCK_WRITERS_OFFSET         4
+# define __PTHREAD_RWLOCK_WRPHASE_FUTEX_OFFSET   8
+# define __PTHREAD_RWLOCK_WRITERS_FUTEX_OFFSET  12
+# define __PTHREAD_RWLOCK_CUR_WRITER_OFFSET     24
+# define __PTHREAD_RWLOCK_SHARED_OFFSET         28
+# define __PTHREAD_RWLOCK_FLAGS_OFFSET          48
+#else
+# define __PTHREAD_RWLOCK_READERS_OFFSET         0
+# define __PTHREAD_RWLOCK_WRITERS_OFFSET         4
+# define __PTHREAD_RWLOCK_WRPHASE_FUTEX_OFFSET   8
+# define __PTHREAD_RWLOCK_WRITERS_FUTEX_OFFSET  12
+# define __PTHREAD_RWLOCK_CUR_WRITER_OFFSET     28
+# if __BYTE_ORDER == __BIG_ENDIAN
+#  define __PTHREAD_RWLOCK_SHARED_OFFSET        26
+#  define __PTHREAD_RWLOCK_FLAGS_OFFSET         27
+# else
+#  define __PTHREAD_RWLOCK_SHARED_OFFSET        25
+#  define __PTHREAD_RWLOCK_FLAGS_OFFSET         24
+# endif
+#endif
diff --git a/sysdeps/riscv/nptl/pthread-offsets.h b/sysdeps/riscv/nptl/pthread-offsets.h
deleted file mode 100644
index f93af00..0000000
--- a/sysdeps/riscv/nptl/pthread-offsets.h
+++ /dev/null
@@ -1,32 +0,0 @@ 
-/* RISC-V pthread offsets
-   Copyright (C) 2017-2019 Free Software Foundation, Inc.
-
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library.  If not, see
-   <https://www.gnu.org/licenses/>.  */
-
-#define __PTHREAD_MUTEX_NUSERS_OFFSET   12
-#define __PTHREAD_MUTEX_KIND_OFFSET     16
-#define __PTHREAD_MUTEX_SPINS_OFFSET    20
-#define __PTHREAD_MUTEX_ELISION_OFFSET  22
-#define __PTHREAD_MUTEX_LIST_OFFSET     24
-
-#define __PTHREAD_RWLOCK_READERS_OFFSET         0
-#define __PTHREAD_RWLOCK_WRITERS_OFFSET         4
-#define __PTHREAD_RWLOCK_WRPHASE_FUTEX_OFFSET   8
-#define __PTHREAD_RWLOCK_WRITERS_FUTEX_OFFSET  12
-#define __PTHREAD_RWLOCK_CUR_WRITER_OFFSET     24
-#define __PTHREAD_RWLOCK_SHARED_OFFSET         28
-#define __PTHREAD_RWLOCK_FLAGS_OFFSET          48
diff --git a/sysdeps/sh/nptl/pthread-offsets.h b/sysdeps/sh/nptl/pthread-offsets.h
deleted file mode 100644
index cc2a939..0000000
--- a/sysdeps/sh/nptl/pthread-offsets.h
+++ /dev/null
@@ -1,18 +0,0 @@ 
-#define __PTHREAD_MUTEX_NUSERS_OFFSET   16
-#define __PTHREAD_MUTEX_KIND_OFFSET     12
-#define __PTHREAD_MUTEX_SPINS_OFFSET    20
-#define __PTHREAD_MUTEX_ELISION_OFFSET  22
-#define __PTHREAD_MUTEX_LIST_OFFSET     20
-
-#define __PTHREAD_RWLOCK_READERS_OFFSET         0
-#define __PTHREAD_RWLOCK_WRITERS_OFFSET         4
-#define __PTHREAD_RWLOCK_WRPHASE_FUTEX_OFFSET   8
-#define __PTHREAD_RWLOCK_WRITERS_FUTEX_OFFSET  12
-#define __PTHREAD_RWLOCK_CUR_WRITER_OFFSET     28
-#if __BYTE_ORDER == __BIG_ENDIAN
-# define __PTHREAD_RWLOCK_SHARED_OFFSET        26
-# define __PTHREAD_RWLOCK_FLAGS_OFFSET         27
-#else
-# define __PTHREAD_RWLOCK_SHARED_OFFSET        25
-# define __PTHREAD_RWLOCK_FLAGS_OFFSET         24
-#endif
diff --git a/sysdeps/sparc/nptl/pthread-offsets.h b/sysdeps/sparc/nptl/pthread-offsets.h
deleted file mode 100644
index a9ce40d..0000000
--- a/sysdeps/sparc/nptl/pthread-offsets.h
+++ /dev/null
@@ -1,33 +0,0 @@ 
-#include <bits/wordsize.h>
-
-#if __WORDSIZE == 64
-# define __PTHREAD_MUTEX_NUSERS_OFFSET   12
-# define __PTHREAD_MUTEX_KIND_OFFSET     16
-# define __PTHREAD_MUTEX_SPINS_OFFSET    20
-# define __PTHREAD_MUTEX_ELISION_OFFSET  22
-# define __PTHREAD_MUTEX_LIST_OFFSET     24
-#else
-# define __PTHREAD_MUTEX_NUSERS_OFFSET   16
-# define __PTHREAD_MUTEX_KIND_OFFSET     12
-# define __PTHREAD_MUTEX_SPINS_OFFSET    20
-# define __PTHREAD_MUTEX_ELISION_OFFSET  22
-# define __PTHREAD_MUTEX_LIST_OFFSET     20
-#endif
-
-#if __WORDSIZE == 64
-# define __PTHREAD_RWLOCK_READERS_OFFSET         0
-# define __PTHREAD_RWLOCK_WRITERS_OFFSET         4
-# define __PTHREAD_RWLOCK_WRPHASE_FUTEX_OFFSET   8
-# define __PTHREAD_RWLOCK_WRITERS_FUTEX_OFFSET  12
-# define __PTHREAD_RWLOCK_CUR_WRITER_OFFSET     24
-# define __PTHREAD_RWLOCK_SHARED_OFFSET         28
-# define __PTHREAD_RWLOCK_FLAGS_OFFSET          48
-#else
-# define __PTHREAD_RWLOCK_READERS_OFFSET         0
-# define __PTHREAD_RWLOCK_WRITERS_OFFSET         4
-# define __PTHREAD_RWLOCK_WRPHASE_FUTEX_OFFSET   8
-# define __PTHREAD_RWLOCK_WRITERS_FUTEX_OFFSET  12
-# define __PTHREAD_RWLOCK_CUR_WRITER_OFFSET     28
-# define __PTHREAD_RWLOCK_SHARED_OFFSET         26
-# define __PTHREAD_RWLOCK_FLAGS_OFFSET          27
-#endif