Backport of http://cvs.openssl.org/chngview?cn=12323, as well as eliminate
[oweals/openssl.git] / e_os2.h
diff --git a/e_os2.h b/e_os2.h
index a943f07d6c9aad85ddd6f87bd71aa380ae193796..4ca79a4d65d82b92746082f2a020252e77da23ef 100644 (file)
--- a/e_os2.h
+++ b/e_os2.h
@@ -248,7 +248,7 @@ extern "C" {
 #define OPENSSL_EXTERN OPENSSL_IMPORT
 
 /* Macros to allow global variables to be reached through function calls when
-   required (if a shared library version requvres it, for example.
+   required (if a shared library version requires it, for example.
    The way it's done allows definitions like this:
 
        // in foobar.c
@@ -258,9 +258,10 @@ extern "C" {
        #define foobar OPENSSL_GLOBAL_REF(foobar)
 */
 #ifdef OPENSSL_EXPORT_VAR_AS_FUNCTION
-# define OPENSSL_IMPLEMENT_GLOBAL(type,name) static type _hide_##name; \
-        type *_shadow_##name(void) { return &_hide_##name; } \
-        static type _hide_##name
+# define OPENSSL_IMPLEMENT_GLOBAL(type,name)                        \
+       extern 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()))
 #else