From 64a0f135a08d7d25fc3a796e604336f64bbd3ddb Mon Sep 17 00:00:00 2001 From: Noel Grandin Date: Tue, 24 Apr 2018 11:37:03 +0200 Subject: turn off randomness when running under valgrind Change-Id: Ic9853c967cdc36b1bf919a4914b04bf6752f0834 Reviewed-on: https://gerrit.libreoffice.org/53374 Tested-by: Jenkins Reviewed-by: Noel Grandin --- comphelper/source/misc/random.cxx | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'comphelper/source') diff --git a/comphelper/source/misc/random.cxx b/comphelper/source/misc/random.cxx index 280e6e20fd00..bfb4de15aee5 100644 --- a/comphelper/source/misc/random.cxx +++ b/comphelper/source/misc/random.cxx @@ -17,6 +17,9 @@ #include #include #include +#if defined HAVE_VALGRIND_HEADERS +#include +#endif // this is nothing but a simple wrapper around // the std::random generators @@ -40,6 +43,12 @@ struct RandomNumberGenerator RandomNumberGenerator() { bool bRepeatable = (getenv("SAL_RAND_REPEATABLE") != nullptr); + // valgrind on some platforms (e.g.Ubuntu16.04) does not support the new Intel RDRAND instructions, + // which leads to "Illegal Opcode" errors, so just turn off randomness. +#if defined HAVE_VALGRIND_HEADERS + if (RUNNING_ON_VALGRIND) + bRepeatable = true; +#endif if (bRepeatable) { global_rng.seed(42); -- cgit