Define OPENSSL_EXPORT and OPENSSL_IMPORT and give OPENSSL_EXTERN the

default value OPENSSL_IMPORT.  Explain the use of all those macros.
This commit is contained in:
Richard Levitte 2000-12-31 00:15:57 +00:00
parent f09628e42f
commit 21cd437886

35
e_os2.h
View File

@ -17,22 +17,41 @@ extern "C" {
# define OPENSSL_DECLARE_EXIT /* declared in unistd.h */ # define OPENSSL_DECLARE_EXIT /* declared in unistd.h */
#endif #endif
/* Definitions of OPENSSL_GLOBAL and OPENSSL_EXTERN, /* Definitions of OPENSSL_GLOBAL and OPENSSL_EXTERN, to define and declare
to define and declare certain global certain global symbols that, with some compilers under VMS, have to be
symbols that, with some compilers under VMS, have to be defined and defined and declared explicitely with globaldef and globalref.
declared explicitely with globaldef and globalref. On other OS:es, Definitions of OPENSSL_EXPORT and OPENSSL_IMPORT, to define and declare
these macros are defined with something sensible. */ 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) #if defined(VMS) && !defined(__DECC)
# define OPENSSL_EXTERN globalref # define OPENSSL_EXPORT globalref
# define OPENSSL_IMPORT globalref
# define OPENSSL_GLOBAL globaldef # define OPENSSL_GLOBAL globaldef
#elif defined(WINDOWS)
# define OPENSSL_EXPORT extern _declspec(dllexport)
# define OPENSSL_IMPORT extern _declspec(dllimport)
# define OPENSSL_GLOBAL
#else #else
# define OPENSSL_EXTERN extern # define OPENSSL_EXPORT extern
# define OPENSSL_IMPORT extern
# define OPENSSL_GLOBAL # define OPENSSL_GLOBAL
#endif #endif
#define OPENSSL_EXTERN OPENSSL_IMPORT
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
#endif #endif