QHash: disable the AES based one on the bootstrap library

The bootstrap library doesn't need it. All bootstrapped tools are
expected to produce deterministic output, given the enforced seed of 0:

 #ifdef QT_BOOTSTRAPPED
     // the seed is always 0 in bootstrapped mode (no seed generation code),
     // so help the compiler do dead code elimination
     seed = 0;
 #endif

Change-Id: I755911ae7d0341f49039fffd167afc934ff1c9e1
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
This commit is contained in:
Thiago Macieira 2021-05-01 08:58:45 -07:00
parent c8736e8e61
commit 26a7c53009

View File

@ -527,7 +527,7 @@ lt16:
}
#endif
#if defined(__ARM_FEATURE_CRYPTO)
#if defined(__ARM_FEATURE_CRYPTO) && !defined(QT_BOOTSTRAPPED)
static size_t aeshash(const uchar *p, size_t len, size_t seed) noexcept
{
uint8x16_t key;
@ -669,7 +669,7 @@ size_t qHashBits(const void *p, size_t size, size_t seed) noexcept
#ifdef AESHASH
if (seed && qCpuHasFeature(AES) && qCpuHasFeature(SSE4_2))
return aeshash(reinterpret_cast<const uchar *>(p), size, seed);
#elif defined(__ARM_FEATURE_CRYPTO)
#elif defined(__ARM_FEATURE_CRYPTO) && !defined(QT_BOOTSTRAPPED)
// Do additional runtime check as Yocto hard enables Crypto extension for
// all armv8 configs
if (seed && (qCpuFeatures() & CpuFeatureAES))