X-Git-Url: https://git.openssl.org/gitweb/?p=openssl.git;a=blobdiff_plain;f=e_os2.h;h=ea92ff578ad824da7d1ade147861dd60ac4dc16b;hp=f279fa1d931b54ee5213e4fc860a39b568fbd107;hb=6229a5607c64cdbac023b73d52c3aab0016cbea7;hpb=62dc5aad063f50fa75fdae66c4247c925d4b3c5d diff --git a/e_os2.h b/e_os2.h index f279fa1d93..ea92ff578a 100644 --- a/e_os2.h +++ b/e_os2.h @@ -113,6 +113,18 @@ extern "C" { # endif #endif +/* DLL settings. This part is a bit tough, because it's up to the application + implementor how he or she will link the application, so it requires some + macro to be used. */ +#ifdef OPENSSL_SYS_WINDOWS +# ifndef OPENSSL_OPT_WINDLL +# if defined(_WINDLL) /* This is used when building OpenSSL to indicate that + DLL linkage should be used */ +# define OPENSSL_OPT_WINDLL +# endif +# endif +#endif + /* -------------------------------- OpenVMS -------------------------------- */ #if defined(__VMS) || defined(VMS) || defined(OPENSSL_SYSNAME_VMS) # undef OPENSSL_SYS_UNIX @@ -124,9 +136,15 @@ extern "C" { # endif #endif +/* --------------------------------- OS/2 ---------------------------------- */ +#if defined(__EMX__) || defined(__OS2__) +# undef OPENSSL_SYS_UNIX +# define OPENSSL_SYS_OS2 +#endif + /* --------------------------------- Unix ---------------------------------- */ #ifdef OPENSSL_SYS_UNIX -# if defined(linus) || defined(OPENSSL_SYSNAME_LINUX) +# if defined(linux) || defined(__linux__) || defined(OPENSSL_SYSNAME_LINUX) # define OPENSSL_SYS_LINUX # endif # ifdef OPENSSL_SYSNAME_MPE @@ -189,7 +207,7 @@ extern "C" { # define OPENSSL_EXPORT globalref # define OPENSSL_IMPORT globalref # define OPENSSL_GLOBAL globaldef -#elif defined(OPENSSL_SYS_WINDOWS) +#elif defined(OPENSSL_SYS_WINDOWS) && defined(OPENSSL_OPT_WINDLL) # define OPENSSL_EXPORT extern _declspec(dllexport) # define OPENSSL_IMPORT extern _declspec(dllimport) # define OPENSSL_GLOBAL @@ -211,8 +229,8 @@ extern "C" { #define foobar OPENSSL_GLOBAL_REF(foobar) */ #ifdef OPENSSL_EXPORT_VAR_AS_FUNCTION -# define OPENSSL_IMPLEMENT_GLOBAL(type,name) extern static type _hide_##name; \ - type *_shadow_##name(void) { static type local_var; return &local_var; } \ +# define OPENSSL_IMPLEMENT_GLOBAL(type,name) static type _hide_##name; \ + type *_shadow_##name(void) { return &_hide_##name; } \ static type _hide_##name # define OPENSSL_DECLARE_GLOBAL(type,name) type *_shadow_##name(void) # define OPENSSL_GLOBAL_REF(name) (*(_shadow_##name()))