From 8376ef56580626e9c0f796d5b85b53a0a1c7d5f5 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Sat, 14 Jul 2018 21:03:06 +0100 Subject: gentoo resync : 14.07.2018 --- .../liboil/files/liboil-0.3.17-amd64-cpuid.patch | 38 ++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 dev-libs/liboil/files/liboil-0.3.17-amd64-cpuid.patch (limited to 'dev-libs/liboil/files/liboil-0.3.17-amd64-cpuid.patch') diff --git a/dev-libs/liboil/files/liboil-0.3.17-amd64-cpuid.patch b/dev-libs/liboil/files/liboil-0.3.17-amd64-cpuid.patch new file mode 100644 index 000000000000..d86dd79c3bcb --- /dev/null +++ b/dev-libs/liboil/files/liboil-0.3.17-amd64-cpuid.patch @@ -0,0 +1,38 @@ +From 705916007fba0a845229a02dc6474cb523eff150 Mon Sep 17 00:00:00 2001 +From: David Schleef +Date: Tue, 20 Jul 2010 21:05:26 +0000 +Subject: x86: Fix cpuid function on x86-64 + +Fixes: #28956. +--- +diff --git a/liboil/liboilcpu-x86.c b/liboil/liboilcpu-x86.c +index e7a1978..ef4d3f2 100644 +--- a/liboil/liboilcpu-x86.c ++++ b/liboil/liboilcpu-x86.c +@@ -162,13 +162,10 @@ get_cpuid (uint32_t op, uint32_t *a, uint32_t *b, uint32_t *c, uint32_t *d) + static void + get_cpuid (uint32_t op, uint32_t *a, uint32_t *b, uint32_t *c, uint32_t *d) + { ++ *a = op; + __asm__ ( +- " pushq %%rbx\n" + " cpuid\n" +- " mov %%ebx, %%esi\n" +- " popq %%rbx\n" +- : "=a" (*a), "=S" (*b), "=c" (*c), "=d" (*d) +- : "0" (op)); ++ : "+a" (*a), "=b" (*b), "=c" (*c), "=d" (*d)); + } + #endif + +@@ -185,7 +182,7 @@ oil_cpu_detect_cpuid (void) + { + uint32_t eax, ebx, ecx, edx; + uint32_t level; +- char vendor[13] = { 0 }; ++ char vendor[13+4] = { 0 }; + int ret; + + oil_fault_check_enable (); +-- +cgit v0.9.0.2-2-gbebe -- cgit v1.2.3