X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/e68d03f1f2c0206497381c7ef3b91bd5d46f1964..789529a899d117470afb2156e71b35e41444e9b9:/include/xbt/base.h diff --git a/include/xbt/base.h b/include/xbt/base.h index 815a4d2492..a1fa3696ba 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 @@ -215,7 +216,7 @@ # define XBT_IMPORT_NO_EXPORT(type) type # define XBT_PUBLIC_DATA(type) extern __declspec(dllexport) type # define XBT_PUBLIC_CLASS class __declspec(dllexport) - +# define XBT_PRIVATE /* Pack everything up statically */ #elif defined(DLL_STATIC) @@ -224,7 +225,7 @@ # define XBT_IMPORT_NO_EXPORT(type) type # define XBT_PUBLIC_DATA(type) extern type # define XBT_PUBLIC_CLASS class - +# define XBT_PRIVATE /* Link against the DLL */ #elif (defined(_XBT_WIN32) && !defined(DLL_EXPORT) && !defined(DLL_STATIC)) @@ -233,15 +234,23 @@ # define XBT_IMPORT_NO_EXPORT(type) __declspec(dllimport) type # define XBT_PUBLIC_DATA(type) extern __declspec(dllimport) type # define XBT_PUBLIC_CLASS class __declspec(dllimport) +# define XBT_PRIVATE +#elif defined(__ELF__) +# 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"))) +# define XBT_PRIVATE __attribute__((visibility("hidden"))) -/* UNIX build */ #else # 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 +# define XBT_PRIVATE #endif @@ -260,14 +269,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