# 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
# define OPENSSL_SYS_VMS
# if defined(__DECC)
# define OPENSSL_SYS_VMS_DECC
+# elif defined(__DECCXX)
+# define OPENSSL_SYS_VMS_DECC
+# define OPENSSL_SYS_VMS_DECCXX
# else
# define OPENSSL_SYS_VMS_NODECC
# 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
#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()))