]>
Commit | Line | Data |
---|---|---|
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 | # | |
9 | diff -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; |