On Mar 24, 2021, Jonathan Wakely <jwak...@redhat.com> wrote: > It should be impossible to have no random_device. As a fallback a > pseudo random number generator should be used.
> If the default constructor throws then that suggests your target is > misconfigured. Why isn't the mt19937 PRNG being used? This is an x86_64-vx7r2 target, it has USE_RDRAND and USE_RDSEED both enabled as the only RAND backends. AFAICT both of them fail their cpuid tests, so _M_init falls through to the default, and throws. I suppose we need to cover the case in which all of the compile-time presumed-available random backends turn out to not be available at run-time, and introduce an MT19937 dynamic fallback in the following default: block, no? default: { } } std::__throw_runtime_error( __N("random_device::random_device(const std::string&):" " device not available")); > The 'random_device' effective-target is poorly named, I see, thanks, I didn't think of checking its definition. -- Alexandre Oliva, happy hacker https://FSFLA.org/blogs/lxo/ Free Software Activist GNU Toolchain Engineer Vim, Vi, Voltei pro Emacs -- GNUlius Caesar