Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Protect macro definitions for VA_COPY. They should probably all be removed from this...
[simgrid.git] / src / win32 / compiler / visualc.h
index 0bc76eaf49fc702d01d7b45f19cb8bdd7c9c3389..8c62ff57566abc293f2124ede2439286bafd2c32 100644 (file)
@@ -3,7 +3,8 @@
 
 /* borland.h - simgrid config for Borland C++ Builder   */
 
-/* Copyright (c) 2003, 2004 Cherier Malek. All rights reserved.            */
+/* Copyright (c) 2007, 2008, 2010. The SimGrid Team.
+ * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
 #include <win32/platform/select_platform_features.h>
 
+#ifdef _WIN32_WINNT
+       #if _WIN32_WINNT < 0x0400
+               #undef _WIN32_WINNT
+               #define _WIN32_WINNT 0x0400
+       #endif
+#else
+       #define _WIN32_WINNT 0x0400     
+#endif
+
 /* 
  * include files. 
  */
@@ -308,7 +318,7 @@ the double. For now, GRAS requires the structures to be compacted. */
        #undef GRAS_THISARCH
 #endif
 
-#define GRAS_THISARCH 0
+#define GRAS_THISARCH 3
 
  
  /* Path to the addr2line tool */
@@ -321,29 +331,44 @@ the double. For now, GRAS requires the structures to be compacted. */
 #endif
 
 /* This macro is not defined in borland stdarg.h include file, adds it. */
-#define va_copy(dest,src)   ((dest)=(src))  
+#ifndef va_copy(dest,src)
+       #define va_copy(dest,src)   ((dest)=(src))
+#endif
 
+#ifndef __VA_COPY_USE_ASP(d, s)
 /* Predefined possible va_copy() implementation (id: ASP) */
-#define __VA_COPY_USE_ASP(d, s) do { *(d) = *(s); } while (0)
+       #define __VA_COPY_USE_ASP(d, s) do { *(d) = *(s); } while (0)
+#endif
 
+#ifndef __VA_COPY_USE_ASS(d, s)
 /* Predefined possible va_copy() implementation (id: ASS) */
-#define __VA_COPY_USE_ASS(d, s) do { (d) = (s); } while (0)
+       #define __VA_COPY_USE_ASS(d, s) do { (d) = (s); } while (0)
+#endif
 
+#ifndef __VA_COPY_USE_C99(d, s)
 /* Predefined possible va_copy() implementation (id: C99) */
-#define __VA_COPY_USE_C99(d, s) va_copy((d), (s))
+       #define __VA_COPY_USE_C99(d, s) va_copy((d), (s))
+#endif
 
+#ifndef __VA_COPY_USE_CPP(d, s)
 /* Predefined possible va_copy() implementation (id: CPP) */
-#define __VA_COPY_USE_CPP(d, s) memcpy((void *)(d), (void *)(s)), sizeof(*(s))
+       #define __VA_COPY_USE_CPP(d, s) memcpy((void *)(d), (void *)(s)), sizeof(*(s))
+#endif
 
+#ifndef __VA_COPY_USE_CPS(d, s)
 /* Predefined possible va_copy() implementation (id: CPS) */
-#define __VA_COPY_USE_CPS(d, s) memcpy((void *)&(d), (void *)&(s)), sizeof((s))
+       #define __VA_COPY_USE_CPS(d, s) memcpy((void *)&(d), (void *)&(s)), sizeof((s))
+#endif
 
+#ifndef __VA_COPY_USE_GCB(d, s)
 /* Predefined possible va_copy() implementation (id: GCB) */
-#define __VA_COPY_USE_GCB(d, s) __builtin_va_copy((d), (s))
+       #define __VA_COPY_USE_GCB(d, s) __builtin_va_copy((d), (s))
+#endif
 
+#ifndef __VA_COPY_USE_GCH(d, s)
 /* Predefined possible va_copy() implementation (id: GCH) */
-#define __VA_COPY_USE_GCH(d, s) __va_copy((d), (s))
-
+       #define __VA_COPY_USE_GCH(d, s) __va_copy((d), (s))
+#endif
 /* Predefined possible va_copy() implementation (id: GCM) */
 #define __VA_COPY_USE_GCM(d, s) VA_COPY((d), (s))
 
@@ -364,7 +389,9 @@ the double. For now, GRAS requires the structures to be compacted. */
 #endif
 
 /* Define to id of used va_copy() implementation */
-#define __VA_COPY_USE __VA_COPY_USE_C99
+#ifndef __VA_COPY_USE
+       #define __VA_COPY_USE __VA_COPY_USE_C99
+#endif
 
 #ifndef _XBT_CALL
        #if defined(_XBT_DESIGNATED_DLL)
@@ -412,14 +439,6 @@ the double. For now, GRAS requires the structures to be compacted. */
 #define S_IWUSR _S_IWRITE
 #define S_IRUSR _S_IREAD
 
-#ifdef _WIN32_WINNT
-       #if _WIN32_WINNT < 0x0400
-               #undef _WIN32_WINNT
-               #define _WIN32_WINNT 0x0400
-       #endif
-#else
-       #define _WIN32_WINNT 0x0400     
-#endif
 
 /* Visual C++ does not declare the ssize_t type */
 typedef int ssize_t;
@@ -430,4 +449,5 @@ typedef unsigned int mode_t;
 /* Visual C++ does not declare the uint32_t type */
 typedef unsigned int uint32_t;
 
+
 #endif /* #ifndef __XBT_VISUALC_COMPILER_CONFIG_H__ */