From df538201700ad666742c71eca757dbd0e7612405 Mon Sep 17 00:00:00 2001 From: "Dr. Stephen Henson" Date: Sun, 1 Jul 2012 22:25:04 +0000 Subject: [PATCH] remove unnecessary attempt to automatically call OPENSSL_init --- crypto/o_init.c | 51 ------------------------------------------------- 1 file changed, 51 deletions(-) diff --git a/crypto/o_init.c b/crypto/o_init.c index b7f8d10fa0..db4cdc443b 100644 --- a/crypto/o_init.c +++ b/crypto/o_init.c @@ -59,57 +59,6 @@ #include #endif -#if defined(__GNUC__) && __GNUC__>=2 - void OPENSSL_init(void) __attribute__((constructor)); - /* Most commonly this results in pointer to OPENSSL_init to be dropped - * to .ctors segment, which is traversed by GCC crtbegin.o upon - * program startup. Except on a.out OpenBSD where it results in - * _GLOBAL_$I$init() {init();} being auto-generated by - * compiler... But one way or another this is believed to cover - * *all* GCC targets. */ -#elif defined(_MSC_VER) -# ifdef _WINDLL - __declspec(dllexport) /* this is essentially cosmetics... */ -# endif - void OPENSSL_init(void); - static int init_wrapper(void) { OPENSSL_init(); return 0; } -# ifdef _WIN64 -# pragma section(".CRT$XCU",read) - __declspec(allocate(".CRT$XCU")) -# else -# pragma data_seg(".CRT$XCU") -# endif - static int (*p)(void) = init_wrapper; - /* This results in pointer to init to appear in .CRT segment, - * which is traversed by Visual C run-time initialization code. - * This applies to both Win32 and [all flavors of] Win64. */ -# pragma data_seg() -#elif defined(__SUNPRO_C) - void OPENSSL_init(void); -# pragma init(OPENSSL_init) - /* This results in a call to init to appear in .init segment. */ -#elif defined(__DECC) && (defined(__VMS) || defined(VMS)) - void OPENSSL_init(void); -# pragma __nostandard - globaldef { "LIB$INITIALIZ" } readonly _align (LONGWORD) - int spare[8] = {0}; - globaldef { "LIB$INITIALIZE" } readonly _align (LONGWORD) - void (*x_OPENSSL_init)(void) = OPENSSL_init; - /* Refer to LIB$INITIALIZE to ensure it exists in the image. */ - int lib$initialize(); - globaldef int (*lib_init_ref)() = lib$initialize; -# pragma __standard -#elif 0 - The rest has to be taken care of through command line: - - -Wl,-init,OPENSSL_init on OSF1 and IRIX - -Wl,+init,OPENSSL_init on HP-UX - -Wl,-binitfini:OPENSSL_init on AIX - - On ELF platforms this results in a call to OPENSSL_init to appear in - .init segment... -#endif - /* Perform any essential OpenSSL initialization operations. * Currently only sets FIPS callbacks */ -- 2.25.1