https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116854
--- Comment #18 from Thiago Macieira <thiago at kde dot org> --- (In reply to Uroš Bizjak from comment #16) > --quote-- > Note, that clearing the RDRAND CPUID bit does not prevent a processor > that normally supports the RDRAND instruction from executing it. So any > code that determined the support based on family and model won't #UD. > --/quote-- FYI, Qt has some code to test the quality of the RNG at runtime because of this very issue. QT_FUNCTION_TARGET(BASELINE_RDRND) Q_DECL_COLD_FUNCTION static bool checkRdrndWorks() noexcept { /* * Some AMD CPUs (e.g. AMD A4-6250J and AMD Ryzen 3000-series) have a * failing random generation instruction, which always returns * 0xffffffff, even when generation was "successful". * * This code checks if hardware random generator generates four consecutive * equal numbers. If it does, then we probably have a failing one and * should disable it completely. * * https://bugreports.qt.io/browse/QTBUG-69423 */ However, this check is bypassed if __RDRND__ was defined by the compiler.