X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/b3ae01bce4944c6d86a71f87626e41cad473d846..bae076147bfc88ce8607f15761149f42d0443585:/include/xbt/base.h diff --git a/include/xbt/base.h b/include/xbt/base.h index 815a4d2492..0f34bad192 100644 --- a/include/xbt/base.h +++ b/include/xbt/base.h @@ -56,7 +56,7 @@ # endif # undef _XBT_NEED_INIT_PRAGMA -#elif define(_MSC_VER) /* Microsoft Visual Thing */ +#elif defined(_MSC_VER) /* Microsoft Visual Thing */ # define XBT_ATTRIB_PRINTF( format_idx, arg_idx ) # define XBT_ATTRIB_SCANF( format_idx, arg_idx ) # define XBT_ATTRIB_NORETURN __declspec(noreturn) @@ -157,6 +157,7 @@ /* * Function calling convention (not used for now) + * http://unixwiz.net/techtips/win32-callconv.html <-- good documentation */ #ifdef _XBT_WIN32 @@ -236,13 +237,27 @@ /* UNIX build */ -#else +#elsif defined(__ELF__) + # define XBT_PUBLIC(type) type # define XBT_EXPORT_NO_IMPORT(type) type # define XBT_IMPORT_NO_EXPORT(type) type # define XBT_PUBLIC_DATA(type) extern type # define XBT_PUBLIC_CLASS class +#else +# 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_PUBLIC_DATA(type) extern __attribute__((visibility("default"))) type +# define XBT_PUBLIC_CLASS class __attribute__((visibility("default"))) + +#endif + +#ifdef __ELF__ +#define XBT_PRIVATE __attribute__((visibility("hidden"))) +#else +#define XBT_PRIVATE #endif #ifdef _MSC_VER /* MSVC has no ssize_t, and I fail to use the SSIZE_T declared in BaseTsd.h */ @@ -260,14 +275,6 @@ #define _CRT_SECURE_NO_WARNINGS #endif - - -#ifdef _XBT_WIN32 -#define XBT_INTERNAL -#else -#define XBT_INTERNAL __attribute__((visibility ("hidden"))) -#endif - #if !defined (max) && !defined(__cplusplus) # define max(a,b) (((a) > (b)) ? (a) : (b)) #endif