diff options
-rw-r--r-- | lib/nimbase.h | 18 |
1 files changed, 7 insertions, 11 deletions
diff --git a/lib/nimbase.h b/lib/nimbase.h index f61be7a5b..39885c70c 100644 --- a/lib/nimbase.h +++ b/lib/nimbase.h @@ -159,7 +159,13 @@ __AVR__ # define NIM_CAST(type, ptr) ((type)(ptr)) #endif + /* ------------------------------------------------------------------- */ +#ifdef __cplusplus +# define NIM_EXTERNC extern "C" +#else +# define NIM_EXTERNC +#endif #if defined(WIN32) || defined(_WIN32) /* only Windows has this mess... */ # define N_LIB_PRIVATE @@ -208,11 +214,7 @@ __AVR__ # define N_FASTCALL_PTR(rettype, name) rettype (*name) # define N_SAFECALL_PTR(rettype, name) rettype (*name) # endif -# ifdef __cplusplus -# define N_LIB_EXPORT extern "C" -# else -# define N_LIB_EXPORT extern -# endif +# define N_LIB_EXPORT NIM_EXTERNC __attribute__((visibility("default"))) # define N_LIB_IMPORT extern #endif @@ -520,12 +522,6 @@ typedef int Nim_and_C_compiler_disagree_on_target_architecture[sizeof(NI) == siz } #endif -#ifdef __cplusplus -# define NIM_EXTERNC extern "C" -#else -# define NIM_EXTERNC -#endif - #if defined(_MSC_VER) # define NIM_ALIGN(x) __declspec(align(x)) #else |