aboutsummaryrefslogtreecommitdiffstats
path: root/community/open-vm-tools/0009-gnu-ucontext.patch
blob: 77c4f8e158d87fc52f3a59f56d871b9ee1bf7a79 (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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
From 33835208753a350a71a130837ad9e2289fd4cf2c Mon Sep 17 00:00:00 2001
From: Natanael Copa <ncopa@alpinelinux.org>
Date: Wed, 18 Nov 2015 10:27:51 +0000
Subject: [PATCH 09/12] gnu-ucontext

---
 open-vm-tools/lib/include/sigPosixRegs.h | 24 ++++++++++++------------
 1 file changed, 12 insertions(+), 12 deletions(-)

diff --git a/open-vm-tools/lib/include/sigPosixRegs.h b/open-vm-tools/lib/include/sigPosixRegs.h
index ee36da59..88d327a7 100644
--- a/open-vm-tools/lib/include/sigPosixRegs.h
+++ b/open-vm-tools/lib/include/sigPosixRegs.h
@@ -36,7 +36,7 @@
 extern "C" {
 #endif
 
-#if __linux__         // We need the REG_foo offsets in the gregset_t;
+#if defined(__GLIBC__) // We need the REG_foo offsets in the gregset_t;
 #  define _GNU_SOURCE // _GNU_SOURCE maps to __USE_GNU
 
 /* And, the REG_foo definitions conflict with our own in x86.h */
@@ -74,7 +74,7 @@ extern "C" {
 #include <signal.h>
 #include <sys/ucontext.h>
 
-#if __linux__ && !defined __ANDROID__
+#if defined(__GLIBC__)
 #  if defined(__x86_64__)
 #    undef REG_RAX
 #    undef REG_RBX
@@ -200,7 +200,7 @@ extern "C" {
 #define SC_ESP(uc) ((unsigned long) (uc)->uc_mcontext.mc_esp)
 #define SC_EIP(uc) ((unsigned long) (uc)->uc_mcontext.mc_eip)
 #endif
-#elif defined (sun)
+#elif !defined (__GLIBC__)
 #ifdef __x86_64__
 #define SC_EAX(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_RAX])
 #define SC_EBX(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_RBX])
@@ -220,15 +220,15 @@ extern "C" {
 #define SC_R14(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_R14])
 #define SC_R15(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_R15])
 #else
-#define SC_EAX(uc) ((unsigned long) (uc)->uc_mcontext.gregs[EAX])
-#define SC_EBX(uc) ((unsigned long) (uc)->uc_mcontext.gregs[EBX])
-#define SC_ECX(uc) ((unsigned long) (uc)->uc_mcontext.gregs[ECX])
-#define SC_EDX(uc) ((unsigned long) (uc)->uc_mcontext.gregs[EDX])
-#define SC_EDI(uc) ((unsigned long) (uc)->uc_mcontext.gregs[EDI])
-#define SC_ESI(uc) ((unsigned long) (uc)->uc_mcontext.gregs[ESI])
-#define SC_EBP(uc) ((unsigned long) (uc)->uc_mcontext.gregs[EBP])
-#define SC_ESP(uc) ((unsigned long) (uc)->uc_mcontext.gregs[ESP])
-#define SC_EIP(uc) ((unsigned long) (uc)->uc_mcontext.gregs[EIP])
+#define SC_EAX(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_EAX])
+#define SC_EBX(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_EBX])
+#define SC_ECX(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_ECX])
+#define SC_EDX(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_EDX])
+#define SC_EDI(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_EDI])
+#define SC_ESI(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_ESI])
+#define SC_EBP(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_EBP])
+#define SC_ESP(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_ESP])
+#define SC_EIP(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_EIP])
 #endif
 #elif defined(ANDROID_X86)
 #define SC_EAX(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_EAX])
-- 
2.19.1