From 21cd437886f448858e166c149f40604dfe6b7b7c Mon Sep 17 00:00:00 2001 From: Richard Levitte Date: Sun, 31 Dec 2000 00:15:57 +0000 Subject: [PATCH] Define OPENSSL_EXPORT and OPENSSL_IMPORT and give OPENSSL_EXTERN the default value OPENSSL_IMPORT. Explain the use of all those macros. --- e_os2.h | 35 +++++++++++++++++++++++++++-------- 1 file 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 - -- 2.34.1