Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
fix build on mac
[simgrid.git] / src / xbt / win32_ucontext.c
index d218feb..80dd2e5 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2010-2012, 2014. The SimGrid Team.
+/* Copyright (c) 2010-2012, 2014-2015. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
@@ -65,16 +65,16 @@ int makecontext(ucontext_t * ucp, void (*func) (), int argc, ...)
   }
   
       /* Set the instruction and the stack pointer */
-  #ifdef _I_X86_
+  #if defined(_I_X86_) || defined(__i386) || defined(__i386__) || defined(_M_IX86)
   ucp->uc_mcontext.Eip = (DWORD) func;
   ucp->uc_mcontext.Esp = (DWORD) sp - sizeof(void*);
-  #elif defined _IA64_
+  #elif defined(_IA64_) || defined(__ia64) || defined(__ia64__)
   #  error "_IA64_"
-  #elif defined _AMD64_
+  #elif defined _AMD64_ || defined(__x86_64) || defined(__x86_64__) || defined(_M_X64)
   ucp->uc_mcontext.Rip = (DWORD64) func;
   ucp->uc_mcontext.Rsp = (DWORD64) sp - sizeof(void*);
   #else
-  #error "No architecture defined for Windows build. need either _AMD64_ or _I_X86_"
+  #error "No architecture defined for Windows build."
   #endif
 
       /* Save/Restore the full machine context */ 
@@ -105,4 +105,3 @@ int swapcontext(ucontext_t * oucp, const ucontext_t * ucp)
   }
   return ret;
 }
-