diff options
author | Thiago Macieira <thiago.macieira@intel.com> | 2017-06-06 18:28:37 -0700 |
---|---|---|
committer | Thiago Macieira <thiago.macieira@intel.com> | 2017-06-20 16:37:35 +0000 |
commit | 0669f71b0c78c0d3374571d266004d7503ca8b12 (patch) | |
tree | 9c5ee9a5be7f02c2ca6c52a5987f0c406622694a /src/corelib/configure.json | |
parent | 4de40514066e7e31fe02c87afaf0863d6928391f (diff) |
QRandomGenerator: don't internally rely on QT_HAS_INCLUDE
GCC didn't support it until version 5 or 6, so add configure tests for
both <random> and <sys/auxv.h>. Normally I'd say "upgrade", but this is
too low-level and important a feature.
There's a good chance that all our supported compilers have <random>
anyway. As for <sys/auxv.h>, it's present on Glibc, Bionic and MUSL, but
I don't see it in uClibc (AT_RANDOM is a Linux-specific feature).
Change-Id: Ia3e896da908f42939148fffd14c5b2af491f7a77
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Diffstat (limited to 'src/corelib/configure.json')
-rw-r--r-- | src/corelib/configure.json | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/corelib/configure.json b/src/corelib/configure.json index 7fca3137eb..0da3bff713 100644 --- a/src/corelib/configure.json +++ b/src/corelib/configure.json @@ -138,6 +138,11 @@ "type": "compile", "test": "unix/cloexec" }, + "cxx11_random": { + "label": "C++11 <random>", + "type": "compile", + "test": "unix/cxx11_random" + }, "eventfd": { "label": "eventfd", "type": "compile", @@ -208,6 +213,11 @@ "type": "compile", "test": "unix/syslog" }, + "sys_auxv": { + "label": "sys/auxv.h", + "type": "compile", + "test": "unix/sys_auxv" + }, "xlocalescanprint": { "label": "xlocale.h (or equivalents)", "type": "compile", @@ -242,6 +252,11 @@ "condition": "features.doubleconversion && libs.doubleconversion", "output": [ "privateFeature" ] }, + "cxx11_random": { + "label": "C++11 <random>", + "condition": "tests.cxx11_random", + "output": [ "privateFeature" ] + }, "eventfd": { "label": "eventfd", "condition": "tests.eventfd", @@ -394,6 +409,11 @@ "condition": "tests.syslog", "output": [ "privateFeature" ] }, + "sys_auxv": { + "label": "sys/auxv.h", + "condition": "config.linux && tests.sys_auxv", + "output": [ "privateFeature" ] + }, "threadsafe-cloexec": { "label": "Threadsafe pipe creation", "condition": "tests.cloexec", @@ -631,6 +651,11 @@ ensure that the IDEs they use either set QT_LOGGING_TO_CONSOLE to 1 or are able to read the logged output from journald, syslog or slog2." }, { + "type": "warning", + "condition": "!config.win32 && !config.darwin && !config.bsd && !features.cxx11_random", + "message": "No high-quality PRNG available for QRandomGenerator fallback.\nIf the HW or OS RNG fails, Qt will abort execution." + }, + { "type": "error", "condition": "input.doubleconversion == 'no' && !tests.xlocalescanprint", "message": "Your C library does not provide sscanf_l or snprintf_l. |