[packages/glibc] - rel 4; prevent TLS slots exhaution (patch from FC)
arekm
arekm at pld-linux.org
Mon Nov 24 18:02:27 CET 2014
commit e35398607b43d978141c3a3b73f121633109b3f9
Author: Arkadiusz Miśkiewicz <arekm at maven.pl>
Date: Mon Nov 24 18:02:21 2014 +0100
- rel 4; prevent TLS slots exhaution (patch from FC)
glibc-rh1124987.patch | 32 ++++++++++++++++++++++++++++++++
glibc.spec | 6 +++---
2 files changed, 35 insertions(+), 3 deletions(-)
---
diff --git a/glibc.spec b/glibc.spec
index 24ffa58..0f79977 100644
--- a/glibc.spec
+++ b/glibc.spec
@@ -35,7 +35,7 @@ Summary(tr.UTF-8): GNU libc
Summary(uk.UTF-8): GNU libc версії
Name: glibc
Version: %{core_version}
-Release: 3
+Release: 4
Epoch: 6
License: LGPL v2.1+
Group: Libraries
@@ -84,7 +84,7 @@ Patch27: %{name}-locale-C.patch.xz
# Patch27-md5: 34ebe52a2afb923e33af0fb7c541f540
Patch28: %{name}-locale-C-pld.patch
Patch29: %{name}-arm-alignment-fix.patch
-
+Patch30: glibc-rh1124987.patch
Patch31: %{name}-origin.patch
Patch32: %{name}-Os-fail-workaround.patch
@@ -973,7 +973,7 @@ exit 1
%patch27 -p1
%patch28 -p1
%patch29 -p1
-
+%patch30 -p1
%patch31 -p1
%patch32 -p1
diff --git a/glibc-rh1124987.patch b/glibc-rh1124987.patch
new file mode 100644
index 0000000..0b0c3ab
--- /dev/null
+++ b/glibc-rh1124987.patch
@@ -0,0 +1,32 @@
+#
+# 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;
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/glibc.git/commitdiff/e35398607b43d978141c3a3b73f121633109b3f9
More information about the pld-cvs-commit
mailing list