summaryrefslogtreecommitdiffstats
path: root/packages/glibc/glibc-2.3.2/glibc-2.3.2-ldconfig-tls.patch
blob: 660be1e1401048e51f336019fa9264f2de977abf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
--- glibc-2.3.2/elf/cache.c.orig	2003-10-24 19:57:55.000000000 -0400
+++ glibc-2.3.2/elf/cache.c	2003-10-24 20:06:06.000000000 -0400
@@ -246,6 +246,16 @@ int compare (const struct cache_entry *e
 	return 1;
       else if (e1->flags > e2->flags)
 	return -1;
+#ifdef USE_TLS
+      /* ld.so doesn't sort by "most specific hwcap".  It searches based on
+         the numbering of the bits, and TLS takes precedence.  This still
+         doesn't bring us in line with ld.so, but it does bring us closer - 
+         close enough for Debian's current needs.  */
+      else if ((e2->hwcap & (1ULL << 63)) && ! (e1->hwcap & (1ULL << 63)))
+        return 1;
+      else if ((e1->hwcap & (1ULL << 63)) && ! (e2->hwcap & (1ULL << 63)))
+        return -1;
+#endif
       /* Sort by most specific hwcap.  */
       else if (e2->bits_hwcap > e1->bits_hwcap)
 	return 1;