summaryrefslogtreecommitdiff
path: root/packages/glibc/glibc-2.3.2/glibc23-cmov.patch
blob: 73b20dd2257b5f1470053f96dc0aa08138cf0b9f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
--- libc/sysdeps/unix/sysv/linux/i386/dl-procinfo.h	2002-09-22 06:14:11.000000000 +0900
+++ libc/sysdeps/unix/sysv/linux/i386/dl-procinfo.h.new	2003-01-19 01:18:55.000000000 +0900
@@ -92,7 +92,7 @@
   HWCAP_I386_AMD3D = 1 << 31,
 
   /* XXX Which others to add here?  */
-  HWCAP_IMPORTANT = (HWCAP_I386_MMX)
+  HWCAP_IMPORTANT = (HWCAP_I386_MMX | HWCAP_I386_CMOV)
 
 };
 
--- libc/sysdeps/generic/dl-cache.c	2003-02-02 05:33:47.000000000 +0900
+++ libc/sysdeps/generic/dl-cache.c.new1	2003-02-21 09:18:19.000000000 +0900
@@ -260,6 +260,12 @@
       if (platform != (uint64_t) -1)
 	platform = 1ULL << platform;
 
+#ifdef USE_TLS
+# define TLS_BIT (1ULL << 63)
+#else
+# define TLS_BIT 0
+#endif
+
       /* Only accept hwcap if it's for the right platform.  */
 #define HWCAP_CHECK \
       if (GL(dl_osversion)						      \
@@ -271,7 +277,8 @@
 	  && (lib->hwcap & _DL_HWCAP_PLATFORM) != platform)		      \
 	continue;							      \
       if (hwcap								      \
-	  && ((lib->hwcap & *hwcap & ~_DL_HWCAP_PLATFORM) > *hwcap))	      \
+	  && ((lib->hwcap & ~_DL_HWCAP_PLATFORM & (*hwcap | TLS_BIT)) <		      \
+	      (lib->hwcap & ~_DL_HWCAP_PLATFORM)))			      \
 	continue
       SEARCH_CACHE (cache_new);
     }