aboutsummaryrefslogtreecommitdiff
path: root/nptl
diff options
context:
space:
mode:
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>2019-11-04 13:36:05 +0000
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>2019-11-26 13:53:36 +0000
commit48dbce60cfdd328b671aaa9ee0c54ded3246ece9 (patch)
tree0541fb9a339fede5f26ce664b19558e27c89ab96 /nptl
parentnptl: Cleanup mutex internal offset tests (diff)
downloadglibc-48dbce60cfdd328b671aaa9ee0c54ded3246ece9.tar.gz
glibc-48dbce60cfdd328b671aaa9ee0c54ded3246ece9.tar.bz2
glibc-48dbce60cfdd328b671aaa9ee0c54ded3246ece9.zip
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
Diffstat (limited to 'nptl')
-rw-r--r--nptl/pthread_rwlock_init.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/nptl/pthread_rwlock_init.c b/nptl/pthread_rwlock_init.c
index 04f0d40ed8..8813e32383 100644
--- a/nptl/pthread_rwlock_init.c
+++ b/nptl/pthread_rwlock_init.c
@@ -18,6 +18,7 @@
#include "pthreadP.h"
#include <string.h>
+#include <pthread-offsets.h>
static const struct pthread_rwlockattr default_rwlockattr =
@@ -34,6 +35,13 @@ __pthread_rwlock_init (pthread_rwlock_t *rwlock,
{
ASSERT_TYPE_SIZE (pthread_rwlock_t, __SIZEOF_PTHREAD_RWLOCK_T);
+ /* The __flags is the only field where its offset should be checked to
+ avoid ABI breakage with static initializers. */
+ ASSERT_PTHREAD_INTERNAL_OFFSET (pthread_rwlock_t, __data.__flags,
+ __PTHREAD_RWLOCK_FLAGS_OFFSET);
+ ASSERT_PTHREAD_INTERNAL_MEMBER_SIZE (pthread_rwlock_t, __data.__flags,
+ int);
+
const struct pthread_rwlockattr *iattr;
iattr = ((const struct pthread_rwlockattr *) attr) ?: &default_rwlockattr;