about summary refs log tree commit diff
diff options
context:
space:
mode:
authorGratian Crisan <gratian.crisan@ni.com>2014-10-27 22:45:43 +0000
committerJoseph Myers <joseph@codesourcery.com>2014-10-27 22:45:43 +0000
commit03d41216fe09fc71a2750946af8fe2892bf4feb5 (patch)
treeae838a6041d628e440af1903b7b3bb6ba117e5ad
parenta4b3624d20e90e8255fb82a83ff40e9e178e0aef (diff)
downloadglibc-03d41216fe09fc71a2750946af8fe2892bf4feb5.tar.gz
glibc-03d41216fe09fc71a2750946af8fe2892bf4feb5.tar.xz
glibc-03d41216fe09fc71a2750946af8fe2892bf4feb5.zip
arm: Re-enable PI futex support for ARM kernels >= 3.14.3
ARM linux kernels before 3.14.3 may or may not support
futex_atomic_cmpxchg_inatomic depending on the kernel configuration (e.g.
CONFIG_CPU_USE_DOMAINS && CONFIG_SMP configuration was not supported)

Starting with 3.14.3 the linux kernel unconditionally enables support for
ARM, and this re-enables the relevant __ASSUME_* macros.

Tested on ARM both with kernels >= 3.14.3 and older kernels.

	* sysdeps/unix/sysv/linux/arm/kernel-features.h
	[__LINUX_KERNEL_VERSION >= 0x030E03] (__ASSUME_FUTEX_LOCK_PI): Do
	not undefine.
	[__LINUX_KERNEL_VERSION >= 0x030E03] (__ASSUME_REQUEUE_PI):
	Likewise.
	[__LINUX_KERNEL_VERSION >= 0x030E03] (__ASSUME_SET_ROBUST_LIST):
	Likewise.
-rw-r--r--ChangeLog10
-rw-r--r--sysdeps/unix/sysv/linux/arm/kernel-features.h10
2 files changed, 16 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index 151ebcfc71..b92114a7f1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2014-10-27  Gratian Crisan  <gratian.crisan@ni.com>
+
+	* sysdeps/unix/sysv/linux/arm/kernel-features.h
+	[__LINUX_KERNEL_VERSION >= 0x030E03] (__ASSUME_FUTEX_LOCK_PI): Do
+	not undefine.
+	[__LINUX_KERNEL_VERSION >= 0x030E03] (__ASSUME_REQUEUE_PI):
+	Likewise.
+	[__LINUX_KERNEL_VERSION >= 0x030E03] (__ASSUME_SET_ROBUST_LIST):
+	Likewise.
+
 2014-10-27  Joseph Myers  <joseph@codesourcery.com>
 
 	[BZ #14138]
diff --git a/sysdeps/unix/sysv/linux/arm/kernel-features.h b/sysdeps/unix/sysv/linux/arm/kernel-features.h
index e755741de6..84d9e9d7aa 100644
--- a/sysdeps/unix/sysv/linux/arm/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/arm/kernel-features.h
@@ -34,9 +34,11 @@
 
 #include_next <kernel-features.h>
 
-/* The ARM kernel may or may not support
+/* The ARM kernel before 3.14.3 may or may not support
    futex_atomic_cmpxchg_inatomic, depending on kernel
    configuration.  */
-#undef __ASSUME_FUTEX_LOCK_PI
-#undef __ASSUME_REQUEUE_PI
-#undef __ASSUME_SET_ROBUST_LIST
+#if __LINUX_KERNEL_VERSION < 0x030E03
+# undef __ASSUME_FUTEX_LOCK_PI
+# undef __ASSUME_REQUEUE_PI
+# undef __ASSUME_SET_ROBUST_LIST
+#endif