diff options
author | Andy Polyakov <appro@openssl.org> | 2011-09-15 00:48:49 +0400 |
---|---|---|
committer | Andy Polyakov <appro@openssl.org> | 2011-09-15 00:48:49 +0400 |
commit | 03e389cf049e4bbc2f6d0028dc320fb0583aad2c (patch) | |
tree | 61020185544c4ff9567d236e9c1ee3a74ee417c8 /fips/fips_canister.c | |
parent | 93256bf5d148f3b8fa02a410b4477c6c9ca20e65 (diff) |
Allow for dynamic base in Win64 FIPS module.
Diffstat (limited to 'fips/fips_canister.c')
-rw-r--r-- | fips/fips_canister.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/fips/fips_canister.c b/fips/fips_canister.c index a1f8400479..a209172f43 100644 --- a/fips/fips_canister.c +++ b/fips/fips_canister.c @@ -56,6 +56,10 @@ static void *instruction_pointer_xlc(void); * reference points accordingly. In case you wonder, the values are * big-endian encoded variable names, just to prevent these arrays * from being merged by linker. */ +# if defined(_MSC_VER) && defined(_WIN64) +# pragma section("fipsro$a",read) + __declspec(allocate("fipsro$a")) +# endif const unsigned int FIPS_rodata_start[]= { 0x46495053, 0x5f726f64, 0x6174615f, 0x73746172 }; #else @@ -63,6 +67,10 @@ const unsigned int FIPS_rodata_start[]= # ifdef FIPS_REF_POINT_IS_CROSS_COMPILER_AWARE # define instruction_pointer FIPS_text_endX # endif +# if defined(_MSC_VER) && defined(_WIN64) +# pragma section("fipsro$c",read) + __declspec(allocate("fipsro$c")) +# endif const unsigned int FIPS_rodata_end[]= { 0x46495053, 0x5f726f64, 0x6174615f, 0x656e645b }; #endif |