Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
add defines to windows build, to avoid breaking ucontexts examples
authorAugustin Degomme <degomme@idpann.imag.fr>
Mon, 7 Apr 2014 15:33:58 +0000 (17:33 +0200)
committerAugustin Degomme <degomme@idpann.imag.fr>
Mon, 7 Apr 2014 15:33:58 +0000 (17:33 +0200)
buildtools/Cmake/MakeLibWin.cmake
src/xbt/win32_ucontext.c

index 3699a3a..49a0833 100644 (file)
@@ -31,11 +31,11 @@ set(SIMGRID_DEP "-lws2_32 -L${PATH_PTHREAD_LIB} -lm -lpthreadGC2")
 
 
 if(ARCH_32_BITS)
-  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m32 -march=i486")
-  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m32 -march=i486")
+  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m32 -march=i486 -D_I_X86_")
+  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m32 -march=i486 -D_I_X86_")
 else()
-  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m64")
-  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m64")
+  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m64 -D_AMD64_")
+  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m64 -D_AMD64_")
   #        message(FATAL_ERROR "Sorry, Simgrid fails with full 64bits for now! Please contact us.")
 endif()
 
index b538e09..d218feb 100644 (file)
@@ -68,13 +68,13 @@ int makecontext(ucontext_t * ucp, void (*func) (), int argc, ...)
   #ifdef _I_X86_
   ucp->uc_mcontext.Eip = (DWORD) func;
   ucp->uc_mcontext.Esp = (DWORD) sp - sizeof(void*);
-  #endif
-  #ifdef _IA64_
+  #elif defined _IA64_
   #  error "_IA64_"
-  #endif
-  #ifdef _AMD64_
+  #elif defined _AMD64_
   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_"
   #endif
 
       /* Save/Restore the full machine context */