glibc: explicitly disable lock elision support, patch from Fedora.

The lock elision support in glibc has a runtime check even if the build
option is disabled. This patch from Fedora completely disables that
check if the build option is disabled, and we disable this now.
This commit is contained in:
Juan RP 2015-02-25 17:21:25 +01:00
parent 4e4a7b07e8
commit 2d1a45ccb1
2 changed files with 26 additions and 1 deletions

View File

@ -0,0 +1,24 @@
Taken from Fedora, disable the lock elision run time check if it's not enabled
at build time.
--- sysdeps/unix/sysv/linux/x86/elision-conf.c 2014-09-27 00:25:46.443462345 -0400
+++ sysdeps/unix/sysv/linux/x86/elision-conf.c 2014-09-27 00:29:53.586615813 -0400
@@ -62,12 +62,16 @@
char **argv __attribute__ ((unused)),
char **environ)
{
- __elision_available = HAS_RTM;
#ifdef ENABLE_LOCK_ELISION
+ __elision_available = HAS_RTM;
__pthread_force_elision = __libc_enable_secure ? 0 : __elision_available;
-#endif
if (!HAS_RTM)
__elision_aconf.retry_try_xbegin = 0; /* Disable elision on rwlocks */
+#else
+ __elision_available = 0;
+ __pthread_force_elision = 0;
+ __elision_aconf.retry_try_xbegin = 0;
+#endif
}
#ifdef SHARED

View File

@ -1,7 +1,7 @@
# Template file for 'glibc'
pkgname=glibc
version=2.21
revision=2
revision=3
bootstrap=yes
short_desc="The GNU C library"
maintainer="Juan RP <xtraeme@gmail.com>"
@ -80,6 +80,7 @@ do_configure() {
--disable-profile --enable-kernel=2.6.32 \
--enable-stack-guard-randomization \
--without-selinux --without-cvs --without-gd \
--disable-lock-elision \
libc_cv_rootsbindir=/usr/sbin \
libc_cv_rtlddir=${_libdir} libc_cv_slibdir=${_libdir}
}