diff options
Diffstat (limited to 'testing/open-vm-tools/checkvm-pie-safety.patch')
-rw-r--r-- | testing/open-vm-tools/checkvm-pie-safety.patch | 67 |
1 files changed, 0 insertions, 67 deletions
diff --git a/testing/open-vm-tools/checkvm-pie-safety.patch b/testing/open-vm-tools/checkvm-pie-safety.patch deleted file mode 100644 index 5a879c94b7..0000000000 --- a/testing/open-vm-tools/checkvm-pie-safety.patch +++ /dev/null @@ -1,67 +0,0 @@ -From: Gordon Malm <gengor@gentoo.org> - -Make inline asm PIC-safe (do not clobber ebx). - -Thanks and credit to Anthony Basile for all his help and testing. - -Reference: http://bugs.gentoo.org/200376 - ---- a/checkvm/checkvm.c -+++ b/checkvm/checkvm.c -@@ -79,8 +79,16 @@ - { - uint32 eax, ebx, ecx, edx; - -- __asm__ volatile("inl (%%dx)" : -- "=a"(eax), "=c"(ecx), "=d"(edx), "=b"(ebx) : -+ __asm__ volatile( -+#if defined __PIC__ && !vm_x86_64 // %ebx is reserved by the compiler. -+ "movl %%ebx, %3 \n\t" -+ "inl (%%dx) \n\t" -+ "xchgl %%ebx, %3 \n\t" : -+ "=a"(eax), "=c"(ecx), "=d"(edx), "=r"(ebx) : -+#else -+ "inl (%%dx)" : -+ "=a"(eax), "=c"(ecx), "=d"(edx), "=b"(ebx) : -+#endif - "0"(BDOOR_MAGIC), "1"(BDOOR_CMD_GETVERSION), - "2"(BDOOR_PORT) : "memory"); - version[0] = eax; -@@ -96,8 +104,16 @@ - { - uint32 eax, ebx, ecx, edx; - -- __asm__ volatile("inl (%%dx)" : -- "=a"(eax), "=c"(ecx), "=d"(edx), "=b"(ebx) : -+ __asm__ volatile( -+#if defined __PIC__ && !vm_x86_64 // %ebx is reserved by the compiler. -+ "movl %%ebx, %3 \n\t" -+ "inl (%%dx) \n\t" -+ "xchgl %%ebx, %3 \n\t" : -+ "=a"(eax), "=c"(ecx), "=d"(edx), "=r"(ebx) : -+#else -+ "inl (%%dx)" : -+ "=a"(eax), "=c"(ecx), "=d"(edx), "=b"(ebx) : -+#endif - "0"(BDOOR_MAGIC), "1"(BDOOR_CMD_GETHWVERSION), - "2"(BDOOR_PORT) : "memory"); - *hwVersion = eax; -@@ -112,8 +128,16 @@ - { - uint32 eax, ebx, ecx, edx; - -- __asm__ volatile("inl (%%dx)" : -- "=a"(eax), "=c"(ecx), "=d"(edx), "=b"(ebx) : -+ __asm__ volatile( -+#if defined __PIC__ && !vm_x86_64 // %ebx is reserved by the compiler. -+ "movl %%ebx, %3 \n\t" -+ "inl (%%dx) \n\t" -+ "xchgl %%ebx, %3 \n\t" : -+ "=a"(eax), "=c"(ecx), "=d"(edx), "=r"(ebx) : -+#else -+ "inl (%%dx)" : -+ "=a"(eax), "=c"(ecx), "=d"(edx), "=b"(ebx) : -+#endif - "0"(BDOOR_MAGIC), "1"(BDOOR_CMD_GETSCREENSIZE), - "2"(BDOOR_PORT) : "memory"); - *screensize = eax; |