Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Define XBT_ATTRIB_DEPRECATED_v326.
[simgrid.git] / include / xbt / base.h
index 7cb057e..d34b992 100644 (file)
@@ -1,6 +1,6 @@
 /* xbt.h - Public interface to the xbt (simgrid's toolbox)                  */
 
-/* Copyright (c) 2004-2018. The SimGrid Team. All rights reserved.          */
+/* Copyright (c) 2004-2019. 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. */
 #define XBT_ATTRIB_DEPRECATED(mesg) __attribute__((deprecated(mesg)))
 #endif
 
-#define XBT_ATTRIB_DEPRECATED_v321(mesg) XBT_ATTRIB_DEPRECATED(mesg) /* Will be dropped in v3.21 */
-#define XBT_ATTRIB_DEPRECATED_v322(mesg) XBT_ATTRIB_DEPRECATED(mesg) /* Will be dropped in v3.22 */
-#define XBT_ATTRIB_DEPRECATED_v323(mesg) XBT_ATTRIB_DEPRECATED(mesg) /* Will be dropped in v3.23 */
+#define XBT_ATTRIB_DEPRECATED_v323(mesg)                                                                               \
+  XBT_ATTRIB_DEPRECATED(mesg " (this compatibility wrapper will be dropped in v3.23)") /* Will be dropped in v3.23 */
+#define XBT_ATTRIB_DEPRECATED_v324(mesg)                                                                               \
+  XBT_ATTRIB_DEPRECATED(mesg " (this compatibility wrapper will be dropped in v3.24)") /* Will be dropped in v3.24 */
+#define XBT_ATTRIB_DEPRECATED_v325(mesg)                                                                               \
+  XBT_ATTRIB_DEPRECATED(mesg " (this compatibility wrapper will be dropped in v3.25)") /* Will be dropped in v3.25 */
+#define XBT_ATTRIB_DEPRECATED_v326(mesg)                                                                               \
+  XBT_ATTRIB_DEPRECATED(mesg " (this compatibility wrapper will be dropped in v3.26)") /* Will be dropped in v3.26 */
 
-#define XBT_ATTRIB_CONSTRUCTOR(prio) __attribute__((__constructor__(prio)))
-#define XBT_ATTRIB_DESTRUCTOR(prio) __attribute__((__destructor__(prio)))
-
-#if defined(__GNUC__)
-#  define XBT_ALWAYS_INLINE inline __attribute__ ((always_inline))
+#if !defined(__APPLE__)
+#  define XBT_ATTRIB_CONSTRUCTOR(prio) __attribute__((__constructor__(prio)))
+#  define XBT_ATTRIB_DESTRUCTOR(prio) __attribute__((__destructor__(prio)))
 #else
-#  define XBT_ALWAYS_INLINE inline
-#endif
-
-#if defined(__GNUC__)
-#  define XBT_THREAD_LOCAL __thread
-#else
-#  define XBT_THREAD_LOCAL No thread local on this architecture
-#endif
-
-/* improvable on gcc (by evaluating arguments only once), but wouldn't be portable */
-#ifdef MIN
-#  undef MIN
+#  define XBT_ATTRIB_CONSTRUCTOR(prio) __attribute__((__constructor__))
+#  define XBT_ATTRIB_DESTRUCTOR(prio) __attribute__((__destructor__))
 #endif
-#define MIN(a,b) ((a)<(b)?(a):(b))
 
-#ifdef MAX
-#  undef MAX
+#ifndef XBT_ALWAYS_INLINE /* defined also in libsosp */
+#  if defined(__GNUC__)
+#    define XBT_ALWAYS_INLINE inline __attribute__ ((always_inline))
+#  else
+#    define XBT_ALWAYS_INLINE inline
+#  endif
 #endif
-#define MAX(a,b) ((a)>(b)?(a):(b))
 
 /*
  * Expands to `one' if there is only one argument for the variadic part.
 
 #endif
 
-#ifndef __cplusplus
-#include <stdbool.h>
-#endif
-
 /* C++ users need love */
 #ifndef SG_BEGIN_DECL
 # ifdef __cplusplus