diff options
Diffstat (limited to 'sys-apps/iotools/files/iotools-1.4-cpuid-pic.patch')
-rw-r--r-- | sys-apps/iotools/files/iotools-1.4-cpuid-pic.patch | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/sys-apps/iotools/files/iotools-1.4-cpuid-pic.patch b/sys-apps/iotools/files/iotools-1.4-cpuid-pic.patch new file mode 100644 index 000000000000..3fde16c6ca01 --- /dev/null +++ b/sys-apps/iotools/files/iotools-1.4-cpuid-pic.patch @@ -0,0 +1,22 @@ +http://code.google.com/p/iotools/issues/detail?id=2 + +--- a/misc.c ++++ b/misc.c +@@ -149,8 +149,16 @@ cpuid_inline(int cpu, int function, int index, uint32_t *data) + } + + asm volatile ( ++#ifdef __i386__ ++ "xchg %%ebx, %%esi;" /* save ebx (for PIC) */ ++ "cpuid;" ++ "xchg %%esi, %%ebx;" /* restore ebx & pass to caller */ ++ : "=S" (data[1]), ++#else + "cpuid\n\t" +- : "=a" (data[0]), "=b" (data[1]), "=c" (data[2]), "=d" (data[3]) ++ : "=b" (data[1]), ++#endif ++ "=a" (data[0]), "=c" (data[2]), "=d" (data[3]) + : "0" (function), "2" (index) + : "memory" + ); |