Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/boringssl.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Benjamin <davidben@chromium.org>2014-09-12 03:11:15 +0400
committerAdam Langley <agl@google.com>2014-09-12 04:10:53 +0400
commita70c75cfc0ca32a43985e3f24d737ca9cafcb910 (patch)
tree97fa841a4edd2b3a4dc831f34c0d33a704e8206c /crypto/cpu-intel.c
parent1195796045e1f8bbd1ed311b2cbd8b9d87f2074a (diff)
Add a CRYPTO_library_init and static-initializer-less build option.
Chromium does not like static initializers, and the CPU logic uses one to initialize CPU bits. However, the crypto library lacks an explicit initialization function, which could complicate (no compile-time errors) porting existing code which uses crypto/, but not ssl/. Add an explicit CRYPTO_library_init function, but make it a no-op by default. It only does anything (and is required) if building with BORINGSSL_NO_STATIC_INITIALIZER. Change-Id: I6933bdc3447fb382b1f87c788e5b8142d6f3fe39 Reviewed-on: https://boringssl-review.googlesource.com/1770 Reviewed-by: Adam Langley <agl@google.com>
Diffstat (limited to 'crypto/cpu-intel.c')
-rw-r--r--crypto/cpu-intel.c11
1 files changed, 0 insertions, 11 deletions
diff --git a/crypto/cpu-intel.c b/crypto/cpu-intel.c
index bc3148f5..e2efb2c4 100644
--- a/crypto/cpu-intel.c
+++ b/crypto/cpu-intel.c
@@ -78,10 +78,6 @@ uint32_t OPENSSL_ia32cap_P[4] = {0};
/* OPENSSL_ia32_cpuid is defined in cpu-x86_64-asm.pl. */
extern uint64_t OPENSSL_ia32_cpuid(uint32_t*);
-#if !defined(OPENSSL_WINDOWS)
-void OPENSSL_cpuid_setup(void) __attribute__ ((constructor));
-#endif
-
/* handle_cpu_env applies the value from |in| to the CPUID values in |out[0]|
* and |out[1]|. See the comment in |OPENSSL_cpuid_setup| about this. */
static void handle_cpu_env(uint32_t *out, const char *in) {
@@ -101,14 +97,7 @@ static void handle_cpu_env(uint32_t *out, const char *in) {
}
}
-#if defined(OPENSSL_WINDOWS)
-#pragma section(".CRT$XCU", read)
-void __cdecl OPENSSL_cpuid_setup(void);
-__declspec(allocate(".CRT$XCU")) void(*cpuid_constructor)(void) = OPENSSL_cpuid_setup;
-void __cdecl OPENSSL_cpuid_setup(void) {
-#else
void OPENSSL_cpuid_setup(void) {
-#endif
const char *env1, *env2;
#if defined(OPENSSL_X86_64)