diff options
author | Jon Spillett <jon.spillett@oracle.com> | 2022-04-21 16:49:04 +1000 |
---|---|---|
committer | Tomas Mraz <tomas@openssl.org> | 2022-04-27 10:08:19 +0200 |
commit | 2dc3a4a4a57eca0d9bebd87234c7d682506188fc (patch) | |
tree | 904e6227eaa06e5fd3327fd940a63cd70ecaf3bd /providers/fips | |
parent | 4b694f29ea78ab8a94e67c89d4d81df18c5e3bf1 (diff) |
Prefer GNU library initialization mechanism over platform one
If GNU toolchain is used, use the __attribute__((constructor))
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/18147)
Diffstat (limited to 'providers/fips')
-rw-r--r-- | providers/fips/self_test.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/providers/fips/self_test.c b/providers/fips/self_test.c index a41f49b887..07534e8975 100644 --- a/providers/fips/self_test.c +++ b/providers/fips/self_test.c @@ -103,6 +103,13 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) } return TRUE; } + +#elif defined(__GNUC__) +# undef DEP_INIT_ATTRIBUTE +# undef DEP_FINI_ATTRIBUTE +# define DEP_INIT_ATTRIBUTE static __attribute__((constructor)) +# define DEP_FINI_ATTRIBUTE static __attribute__((destructor)) + #elif defined(__sun) # pragma init(init) # pragma fini(cleanup) @@ -125,12 +132,6 @@ void _cleanup(void) # pragma init "init" # pragma fini "cleanup" -#elif defined(__GNUC__) -# undef DEP_INIT_ATTRIBUTE -# undef DEP_FINI_ATTRIBUTE -# define DEP_INIT_ATTRIBUTE static __attribute__((constructor)) -# define DEP_FINI_ATTRIBUTE static __attribute__((destructor)) - #elif defined(__TANDEM) /* Method automatically called by the NonStop OS when the DLL loads */ void __INIT__init(void) { |