-# define _XBT_GNUC_NORETURN __attribute__((__noreturn__))
-# define _XBT_GNUC_UNUSED __attribute__((__unused__))
-
-/* Constructor priorities exist since gcc 4.3. Apparently, they are however not
- * supported on Macs. */
-# if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)) && !defined(__APPLE__)
-# define _XBT_GNUC_CONSTRUCTOR(prio) __attribute__((__constructor__ (prio)))
-# define _XBT_GNUC_DESTRUCTOR(prio) __attribute__((__destructor__ (prio)))
-# else
-# define _XBT_GNUC_CONSTRUCTOR(prio) __attribute__((__constructor__))
-# define _XBT_GNUC_DESTRUCTOR(prio) __attribute__((__destructor__))
-# endif
-# undef _XBT_NEED_INIT_PRAGMA
-
-#else /* !__GNUC__ */
-# define _XBT_GNUC_PRINTF( format_idx, arg_idx )
-# define _XBT_GNUC_SCANF( format_idx, arg_idx )
-# define _XBT_GNUC_NORETURN
-# define _XBT_GNUC_UNUSED
-# define _XBT_GNUC_CONSTRUCTOR(prio)
-# define _XBT_GNUC_DESTRUCTOR(prio)
-# define _XBT_NEED_INIT_PRAGMA 1
-
-#endif /* !__GNUC__ */
+#ifndef XBT_ATTRIB_NORETURN
+#define XBT_ATTRIB_NORETURN __attribute__((noreturn))
+#endif
+#ifndef XBT_ATTRIB_UNUSED
+#define XBT_ATTRIB_UNUSED __attribute__((unused))
+#endif
+#ifndef XBT_ATTRIB_DEPRECATED
+#define XBT_ATTRIB_DEPRECATED(mesg) __attribute__((deprecated(mesg)))
+#endif