summaryrefslogtreecommitdiff
path: root/e_os2.h
diff options
context:
space:
mode:
authorRichard Levitte <levitte@openssl.org>2000-12-31 00:15:57 +0000
committerRichard Levitte <levitte@openssl.org>2000-12-31 00:15:57 +0000
commit21cd437886f448858e166c149f40604dfe6b7b7c (patch)
treebd43c4cd9c5d1bf3f5cadf59bc8c2a6e5bcee7fc /e_os2.h
parentf09628e42f4652a91fd57e60af49e82533268331 (diff)
downloadopenssl-new-21cd437886f448858e166c149f40604dfe6b7b7c.tar.gz
Define OPENSSL_EXPORT and OPENSSL_IMPORT and give OPENSSL_EXTERN the
default value OPENSSL_IMPORT. Explain the use of all those macros.
Diffstat (limited to 'e_os2.h')
-rw-r--r--e_os2.h35
1 files changed, 27 insertions, 8 deletions
diff --git a/e_os2.h b/e_os2.h
index 5a25ac7cf6..be7f72f9a5 100644
--- a/e_os2.h
+++ b/e_os2.h
@@ -17,22 +17,41 @@ extern "C" {
# define OPENSSL_DECLARE_EXIT /* declared in unistd.h */
#endif
-/* Definitions of OPENSSL_GLOBAL and OPENSSL_EXTERN,
- to define and declare certain global
- symbols that, with some compilers under VMS, have to be defined and
- declared explicitely with globaldef and globalref. On other OS:es,
- these macros are defined with something sensible. */
+/* Definitions of OPENSSL_GLOBAL and OPENSSL_EXTERN, to define and declare
+ certain global symbols that, with some compilers under VMS, have to be
+ defined and declared explicitely with globaldef and globalref.
+ Definitions of OPENSSL_EXPORT and OPENSSL_IMPORT, to define and declare
+ DLL exports and imports for compilers under Win32. These are a little
+ more complicated to use. Basically, for any library that exports some
+ global variables, the following code must be present in the header file
+ that declares them, before OPENSSL_EXTERN is used:
+
+ #ifdef SOME_BUILD_FLAG_MACRO
+ # undef OPENSSL_EXTERN
+ # define OPENSSL_EXTERN OPENSSL_EXPORT
+ #endif
+
+ The default is to have OPENSSL_EXPORT, OPENSSL_IMPORT and OPENSSL_GLOBAL
+ have some generally sensible values, and for OPENSSL_EXTERN to have the
+ value OPENSSL_IMPORT.
+*/
#if defined(VMS) && !defined(__DECC)
-# define OPENSSL_EXTERN globalref
+# define OPENSSL_EXPORT globalref
+# define OPENSSL_IMPORT globalref
# define OPENSSL_GLOBAL globaldef
+#elif defined(WINDOWS)
+# define OPENSSL_EXPORT extern _declspec(dllexport)
+# define OPENSSL_IMPORT extern _declspec(dllimport)
+# define OPENSSL_GLOBAL
#else
-# define OPENSSL_EXTERN extern
+# define OPENSSL_EXPORT extern
+# define OPENSSL_IMPORT extern
# define OPENSSL_GLOBAL
#endif
+#define OPENSSL_EXTERN OPENSSL_IMPORT
#ifdef __cplusplus
}
#endif
#endif
-