]> git.ipfire.org Git - people/amarx/ipfire-3.x.git/blob - glibc/patches/glibc-rh1124987.patch
c_icap: Rebuild against libdb
[people/amarx/ipfire-3.x.git] / glibc / patches / 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;