Basically the main problem is that futex_atomic_cmpxchg_inatomic got disabled, even though we have that well supported in our kernels.
I just did another build (in canonical-arm-dev) including the patch bellow, and with that I'm unable to reproduce this bug:
Index: glibc-2.21/sysdeps/unix/sysv/linux/arm/kernel-features.h
===================================================================
--- glibc-2.21.orig/sysdeps/unix/sysv/linux/arm/kernel-features.h
+++ glibc-2.21/sysdeps/unix/sysv/linux/arm/kernel-features.h
@@ -37,8 +37,10 @@
/* The ARM kernel before 3.14.3 may or may not support
futex_atomic_cmpxchg_inatomic, depending on kernel
configuration. */
+/*
#if __LINUX_KERNEL_VERSION < 0x030E03
# undef __ASSUME_FUTEX_LOCK_PI
# undef __ASSUME_REQUEUE_PI
# undef __ASSUME_SET_ROBUST_LIST
#endif
+*/
So this issue is a combination of the following patches: /sourceware. org/git/ ?p=glibc. git;a=commit; h=47c5adebd2c86 4a098c3af66e61e 1147dc3cf0b4 /sourceware. org/git/ ?p=glibc. git;a=commit; h=03d41216fe09f c71a2750946af8f e2892bf4feb5
https:/
https:/
Basically the main problem is that futex_atomic_ cmpxchg_ inatomic got disabled, even though we have that well supported in our kernels.
I just did another build (in canonical-arm-dev) including the patch bellow, and with that I'm unable to reproduce this bug: 21/sysdeps/ unix/sysv/ linux/arm/ kernel- features. h ======= ======= ======= ======= ======= ======= ======= ======= ==== 21.orig/ sysdeps/ unix/sysv/ linux/arm/ kernel- features. h 21/sysdeps/ unix/sysv/ linux/arm/ kernel- features. h atomic_ cmpxchg_ inatomic, depending on kernel KERNEL_ VERSION < 0x030E03 FUTEX_LOCK_ PI SET_ROBUST_ LIST
Index: glibc-2.
=======
--- glibc-2.
+++ glibc-2.
@@ -37,8 +37,10 @@
/* The ARM kernel before 3.14.3 may or may not support
futex_
configuration. */
+/*
#if __LINUX_
# undef __ASSUME_
# undef __ASSUME_REQUEUE_PI
# undef __ASSUME_
#endif
+*/