diff --git a/src/corelib/tools/qhash.cpp b/src/corelib/tools/qhash.cpp index 863e37605d..6119c945fe 100644 --- a/src/corelib/tools/qhash.cpp +++ b/src/corelib/tools/qhash.cpp @@ -169,7 +169,7 @@ static uint qt_create_qhash_seed() } #endif // Q_OS_UNIX -#ifdef Q_OS_WIN32 +#if defined(Q_OS_WIN32) && !defined(Q_CC_GNU) errno_t err; err = rand_s(&seed); if (err == 0) diff --git a/src/corelib/tools/qsimd.cpp b/src/corelib/tools/qsimd.cpp index 08fd6ff66b..f13009a02d 100644 --- a/src/corelib/tools/qsimd.cpp +++ b/src/corelib/tools/qsimd.cpp @@ -47,7 +47,9 @@ # if defined(Q_OS_WINCE) # include # endif -# include +# if !defined(Q_CC_GNU) +# include +# endif #elif defined(Q_OS_LINUX) && defined(__arm__) #include "private/qcore_unix_p.h" @@ -377,12 +379,16 @@ static const uint minFeature = None ; #ifdef Q_OS_WIN +#if defined(Q_CC_GNU) +# define ffs __builtin_ffs +#else int ffs(int i) { unsigned long result; return _BitScanForward(&result, i) ? result : 0; } #endif +#endif // Q_OS_WIN uint qDetectCPUFeatures() {