Changes to have OpenSSL compile on OS/2.
[openssl.git] / e_os2.h
diff --git a/e_os2.h b/e_os2.h
index 1b71fba7077592b7f4809dce0e28b32b816a29ad..18b68527afb4600c78e93a407af4115e7fb50929 100644 (file)
--- a/e_os2.h
+++ b/e_os2.h
@@ -121,9 +121,6 @@ extern "C" {
 #  if defined(_WINDLL) /* This is used when building OpenSSL to indicate that
                           DLL linkage should be used */
 #   define OPENSSL_OPT_WINDLL
-#  elif defined(_DLL) /* This one is used quite much in the VC++ header
-                         files */
-#   define OPENSSL_OPT_WINDLL
 #  endif
 # endif
 #endif
@@ -139,6 +136,12 @@ 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(linux) || defined(OPENSSL_SYSNAME_LINUX)
@@ -226,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()))