From b91491da4f59ab007e3443f15c9beec57da754ea Mon Sep 17 00:00:00 2001 From: Jeffrey Walton Date: Mon, 16 Jul 2018 12:21:44 -0400 Subject: [PATCH] Fix Solaris i386 compile of CHAM and LEA for SunStudio 12.3 and below --- cham.h | 6 ++++++ cryptlib.h | 6 +++--- lea.h | 6 ++++++ simeck.h | 6 ++++++ 4 files changed, 21 insertions(+), 3 deletions(-) diff --git a/cham.h b/cham.h index 1b2a9b3d..987e99d7 100644 --- a/cham.h +++ b/cham.h @@ -19,6 +19,12 @@ # define CRYPTOPP_CHAM_ADVANCED_PROCESS_BLOCKS 1 #endif +// Yet another SunStudio/SunCC workaround. Failed self tests +// in SSE code paths on i386 for SunStudio 12.3 and below. +#if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x5120) +# undef CRYPTOPP_CHAM_ADVANCED_PROCESS_BLOCKS +#endif + NAMESPACE_BEGIN(CryptoPP) /// \brief CHAM block cipher information diff --git a/cryptlib.h b/cryptlib.h index 4752f80f..722b8181 100644 --- a/cryptlib.h +++ b/cryptlib.h @@ -2357,9 +2357,9 @@ public: void DoQuickSanityCheck() const {ThrowIfInvalid(NullRNG(), 0);} #if defined(__SUNPRO_CC) - // Sun Studio 11/CC 5.8 workaround: it generates incorrect code - // when casting to an empty virtual base class. JW, 2018: It is - // still a problem in Sun Studio 12.6/CC 5.15 on i386. Just enable + // Sun Studio 11/CC 5.8 workaround: it generates incorrect code + // when casting to an empty virtual base class. JW, 2018: It is + // still a problem in Sun Studio 12.6/CC 5.15 on i386. Just enable // it everywhere in case it affects SPARC (which we don't test). char m_sunCCworkaround; #endif diff --git a/lea.h b/lea.h index 1c4019c9..a2fb8bb2 100644 --- a/lea.h +++ b/lea.h @@ -19,6 +19,12 @@ # define CRYPTOPP_LEA_ADVANCED_PROCESS_BLOCKS 1 #endif +// Yet another SunStudio/SunCC workaround. Failed self tests +// in SSE code paths on i386 for SunStudio 12.3 and below. +#if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x5120) +# undef CRYPTOPP_LEA_ADVANCED_PROCESS_BLOCKS +#endif + NAMESPACE_BEGIN(CryptoPP) /// \brief LEA block cipher information diff --git a/simeck.h b/simeck.h index 74914945..caebf859 100644 --- a/simeck.h +++ b/simeck.h @@ -21,6 +21,12 @@ # define CRYPTOPP_SIMECK_ADVANCED_PROCESS_BLOCKS 1 #endif +// Yet another SunStudio/SunCC workaround. Failed self tests +// in SSE code paths on i386 for SunStudio 12.3 and below. +#if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x5120) +# undef CRYPTOPP_SIMECK_ADVANCED_PROCESS_BLOCKS +#endif + NAMESPACE_BEGIN(CryptoPP) /// \brief SIMECK block cipher information