Remove DTV_SURPLUS increase after limit was removed.

This commit is contained in:
Carlos O'Donell 2015-06-03 11:45:53 -04:00
parent 8178d6f0a6
commit 1c7c723823
2 changed files with 5 additions and 38 deletions

View File

@ -1,32 +0,0 @@
#
# This is an experimental patch that should go into rawhide and
# Fedora 21 to fix failures where python applications fail to
# load graphics applications because of the slot usages for TLS.
# This should eventually go upstream.
#
# - Carlos O'Donell
#
diff -urN glibc-2.19-886-gdd763fd/sysdeps/generic/ldsodefs.h glibc-2.19-886-gdd763fd.mod/sysdeps/generic/ldsodefs.h
--- glibc-2.19-886-gdd763fd/sysdeps/generic/ldsodefs.h 2014-08-21 01:00:55.000000000 -0400
+++ glibc-2.19-886-gdd763fd.mod/sysdeps/generic/ldsodefs.h 2014-09-04 19:29:42.929692810 -0400
@@ -388,8 +388,18 @@
have to iterate beyond the first element in the slotinfo list. */
#define TLS_SLOTINFO_SURPLUS (62)
-/* Number of additional slots in the dtv allocated. */
-#define DTV_SURPLUS (14)
+/* Number of additional allocated dtv slots. This was initially
+ 14, but problems with python, MESA, and X11's uses of static TLS meant
+ that most distributions were very close to this limit when they loaded
+ dynamically interpreted languages that used graphics. The simplest
+ solution was to roughly double the number of slots. The actual static
+ image space usage was relatively small, for example in MESA you
+ had only two dispatch pointers for a total of 16 bytes. If we hit up
+ against this limit again we should start a campaign with the
+ distributions to coordinate the usage of static TLS. Any user of this
+ resource is effectively coordinating a global resource since this
+ surplus is allocated for each thread at startup. */
+#define DTV_SURPLUS (32)
/* Initial dtv of the main thread, not allocated with normal malloc. */
EXTERN void *_dl_initial_dtv;

View File

@ -1,6 +1,6 @@
%define glibcsrcdir glibc-2.21-357-gb40a4e1
%define glibcversion 2.21.90
%define glibcrelease 14%{?dist}
%define glibcrelease 15%{?dist}
# Pre-release tarballs are pulled in from git using a command that is
# effectively:
#
@ -198,10 +198,6 @@ Patch0046: %{name}-rh1013801.patch
Patch0047: %{name}-nscd-sysconfig.patch
# Allow up to 32 libraries to use static TLS. Should go upstream after
# more testing.
Patch0050: %{name}-rh1124987.patch
# Disable rwlock elision if --enable-lock-elision is not used.
Patch0052: %{name}-disable-rwlock-elision.patch
@ -599,7 +595,6 @@ microbenchmark tests on the system.
%patch0047 -p1
%patch2033 -p1
%patch2034 -p1
%patch0050 -p1
%patch0052 -p1
%patch0053 -p1
%patch0054 -p1
@ -1819,6 +1814,10 @@ rm -f *.filelist*
%endif
%changelog
* Wed Jun 3 2015 Carlos O'Donell <carlos@redhat.com> - 2.21.90-15
- Remove patch to increase DTV surplus which is no longer needed after
upstream commit f8aeae347377f3dfa8cbadde057adf1827fb1d44.
* Sat May 30 2015 Siddhesh Poyarekar <siddhesh@redhat.com> - 2.21.90-14
- Fix build failure on aarch64 (#1226459).