]> git.pld-linux.org Git - packages/glibc.git/blame - glibc-rh1124987.patch
Rel 8; fixes from upstream
[packages/glibc.git] / glibc-rh1124987.patch
CommitLineData
e3539860
AM
1#
2# This is an experimental patch that should go into rawhide and
3# Fedora 21 to fix failures where python applications fail to
4# load graphics applications because of the slot usages for TLS.
5# This should eventually go upstream.
6#
7# - Carlos O'Donell
8#
9diff -urN glibc-2.19-886-gdd763fd/sysdeps/generic/ldsodefs.h glibc-2.19-886-gdd763fd.mod/sysdeps/generic/ldsodefs.h
10--- glibc-2.19-886-gdd763fd/sysdeps/generic/ldsodefs.h 2014-08-21 01:00:55.000000000 -0400
11+++ glibc-2.19-886-gdd763fd.mod/sysdeps/generic/ldsodefs.h 2014-09-04 19:29:42.929692810 -0400
12@@ -388,8 +388,18 @@
13 have to iterate beyond the first element in the slotinfo list. */
14 #define TLS_SLOTINFO_SURPLUS (62)
15
16-/* Number of additional slots in the dtv allocated. */
17-#define DTV_SURPLUS (14)
18+/* Number of additional allocated dtv slots. This was initially
19+ 14, but problems with python, MESA, and X11's uses of static TLS meant
20+ that most distributions were very close to this limit when they loaded
21+ dynamically interpreted languages that used graphics. The simplest
22+ solution was to roughly double the number of slots. The actual static
23+ image space usage was relatively small, for example in MESA you
24+ had only two dispatch pointers for a total of 16 bytes. If we hit up
25+ against this limit again we should start a campaign with the
26+ distributions to coordinate the usage of static TLS. Any user of this
27+ resource is effectively coordinating a global resource since this
28+ surplus is allocated for each thread at startup. */
29+#define DTV_SURPLUS (32)
30
31 /* Initial dtv of the main thread, not allocated with normal malloc. */
32 EXTERN void *_dl_initial_dtv;
This page took 0.03702 seconds and 4 git commands to generate.