]> git.pld-linux.org Git - packages/glibc.git/blob - glibc-rh1124987.patch
Revert "separate dynamic linker instead of just ldconfig"
[packages/glibc.git] / glibc-rh1124987.patch
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;
This page took 0.098624 seconds and 3 git commands to generate.