__attribute__((__format__ (__scanf__, format_idx, arg_idx)))
#endif
-#define XBT_ATTRIB_NORETURN __attribute__((__noreturn__))
-#define XBT_ATTRIB_UNUSED __attribute__((__unused__))
-#define XBT_ATTRIB_DEPRECATED(m) __attribute__((__deprecated__(m)))
+#define XBT_ATTRIB_NORETURN __attribute__((noreturn))
+#define XBT_ATTRIB_UNUSED __attribute__((unused))
+#define XBT_ATTRIB_DEPRECATED(m) __attribute__((deprecated(m)))
/* Constructor priorities exist since gcc 4.3. Apparently, they are however not
* supported on Macs. */
/* Build the DLL */
#if defined(DLL_EXPORT)
+# define XBT_ATTRIB_PUBLIC __declspec(dllexport)
# define XBT_PUBLIC(type) __declspec(dllexport) type
# define XBT_EXPORT_NO_IMPORT(type) __declspec(dllexport) type
# define XBT_IMPORT_NO_EXPORT(type) type
/* Link against the DLL */
#elif (defined(_WIN32) && !defined(DLL_EXPORT))
+# define XBT_ATTRIB_PUBLIC __declspec(dllimport)
# define XBT_PUBLIC(type) __declspec(dllimport) type
# define XBT_EXPORT_NO_IMPORT(type) type
# define XBT_IMPORT_NO_EXPORT(type) __declspec(dllimport) type
# define XBT_PUBLIC_CLASS class __declspec(dllimport)
# define XBT_PRIVATE
-#elif defined(__ELF__)
+#elif defined(__ELF__)
+# define XBT_ATTRIB_PUBLIC __attribute__((visibility("default")))
# define XBT_PUBLIC(type) __attribute__((visibility("default"))) type
# define XBT_EXPORT_NO_IMPORT(type) __attribute__((visibility("default"))) type
# define XBT_IMPORT_NO_EXPORT(type) __attribute__((visibility("default"))) type
# define XBT_PRIVATE __attribute__((visibility("hidden")))
#else
+# define XBT_ATTRIB_PUBLIC /* public */
# define XBT_PUBLIC(type) type
# define XBT_EXPORT_NO_IMPORT(type) type
# define XBT_IMPORT_NO_EXPORT(type) type