You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/sys-apps/x86info/files/x86info-1.24-pic.patch

34 lines
573 B

http://bugs.gentoo.org/270388
--- cpuid.c
+++ cpuid.c
@@ -62,12 +62,28 @@
sched_setaffinity(getpid(), sizeof(set), &set);
}
+#ifdef __PIC__
+ /* GCC on i386 bitches if you clobber ebx. So hide it behind
+ * gcc's back. */
+ asm(
+ "movl %%ebx,%%edi\n"
+ "cpuid\n"
+ "movl %%ebx,%1\n"
+ "movl %%edi,%%ebx\n"
+ : "=a" (a),
+ "=m" (b),
+ "+c" (c),
+ "=d" (d)
+ : "0" ((unsigned int)idx)
+ : "edi");
+#else
asm("cpuid"
: "=a" (a),
"=b" (b),
"+c" (c),
"=d" (d)
: "0" ((unsigned int)idx));
+#endif
if (eax!=NULL)
*eax = a;