about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog8
-rw-r--r--sysdeps/unix/sysv/linux/x86/elision-conf.c11
-rw-r--r--sysdeps/unix/sysv/linux/x86/elision-conf.h1
3 files changed, 11 insertions, 9 deletions
diff --git a/ChangeLog b/ChangeLog
index 88e6320841..ccfd0aee9b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2016-12-07  Andreas Schwab  <schwab@suse.de>
+
+	* sysdeps/unix/sysv/linux/x86/elision-conf.h
+	(__elision_available): Don't declare.
+	* sysdeps/unix/sysv/linux/x86/elision-conf.c
+	(__elision_available): Don't define.
+	(elision_init): Don't set __elision_available.
+
 2016-12-07  Joseph Myers  <joseph@codesourcery.com>
 
 	[BZ #20940]
diff --git a/sysdeps/unix/sysv/linux/x86/elision-conf.c b/sysdeps/unix/sysv/linux/x86/elision-conf.c
index 0d98133804..c8e77a64ee 100644
--- a/sysdeps/unix/sysv/linux/x86/elision-conf.c
+++ b/sysdeps/unix/sysv/linux/x86/elision-conf.c
@@ -43,11 +43,6 @@ struct elision_config __elision_aconf =
     .skip_trylock_internal_abort = 3,
   };
 
-/* Set when the CPU supports elision.  When false elision is never attempted.
- */
-
-int __elision_available attribute_hidden;
-
 /* Force elision for all new locks.  This is used to decide whether existing
    DEFAULT locks should be automatically upgraded to elision in
    pthread_mutex_lock().  Disabled for suid programs.  Only used when elision
@@ -62,11 +57,11 @@ elision_init (int argc __attribute__ ((unused)),
 	      char **argv  __attribute__ ((unused)),
 	      char **environ)
 {
-  __elision_available = HAS_CPU_FEATURE (RTM);
+  int elision_available = HAS_CPU_FEATURE (RTM);
 #ifdef ENABLE_LOCK_ELISION
-  __pthread_force_elision = __libc_enable_secure ? 0 : __elision_available;
+  __pthread_force_elision = __libc_enable_secure ? 0 : elision_available;
 #endif
-  if (!HAS_CPU_FEATURE (RTM))
+  if (!elision_available)
     __elision_aconf.retry_try_xbegin = 0; /* Disable elision on rwlocks */
 }
 
diff --git a/sysdeps/unix/sysv/linux/x86/elision-conf.h b/sysdeps/unix/sysv/linux/x86/elision-conf.h
index 6c479b31e7..39bf5d9dd7 100644
--- a/sysdeps/unix/sysv/linux/x86/elision-conf.h
+++ b/sysdeps/unix/sysv/linux/x86/elision-conf.h
@@ -33,7 +33,6 @@ struct elision_config
 
 extern struct elision_config __elision_aconf attribute_hidden;
 
-extern int __elision_available attribute_hidden;
 extern int __pthread_force_elision attribute_hidden;
 
 /* Tell the test suite to test elision for this architecture.  */