X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=e_os2.h;h=e17527ab404b25660434dc24c3f3c8cc59c6fbea;hb=e194fe8f47a5bdc7a9eab19b4d387d00c410e633;hp=3f72b06786db55305c7bf524bcb311938d5fa784;hpb=4700aea951dcba9b1e3b724bf4d8f0c712578892;p=oweals%2Fopenssl.git diff --git a/e_os2.h b/e_os2.h index 3f72b06786..e17527ab40 100644 --- a/e_os2.h +++ b/e_os2.h @@ -266,20 +266,19 @@ extern "C" { The way it's done allows definitions like this: // in foobar.c - OPENSSL_IMPLEMENT_GLOBAL(int,foobar) = 0; + OPENSSL_IMPLEMENT_GLOBAL(int,foobar,0) // in foobar.h OPENSSL_DECLARE_GLOBAL(int,foobar); #define foobar OPENSSL_GLOBAL_REF(foobar) */ #ifdef OPENSSL_EXPORT_VAR_AS_FUNCTION -# define OPENSSL_IMPLEMENT_GLOBAL(type,name) \ - extern type _hide_##name; \ - type *_shadow_##name(void) { return &_hide_##name; } \ - static type _hide_##name +# define OPENSSL_IMPLEMENT_GLOBAL(type,name,value) \ + type *_shadow_##name(void) \ + { static type _hide_##name=value; return &_hide_##name; } # define OPENSSL_DECLARE_GLOBAL(type,name) type *_shadow_##name(void) # define OPENSSL_GLOBAL_REF(name) (*(_shadow_##name())) #else -# define OPENSSL_IMPLEMENT_GLOBAL(type,name) OPENSSL_GLOBAL type _shadow_##name +# define OPENSSL_IMPLEMENT_GLOBAL(type,name,value) OPENSSL_GLOBAL type _shadow_##name=value; # define OPENSSL_DECLARE_GLOBAL(type,name) OPENSSL_EXPORT type _shadow_##name # define OPENSSL_GLOBAL_REF(name) _shadow_##name #endif