On libc (*nix) systems we call `getentropy()` to get the seed needed to
start the PRNG. If that call fails, we fall back to reading the
filesystem via `/dev/urandom`. If that fails we fall back to hashing
some state variables instead.
This should be faster, less risky, and generally better than trying to
read from `/dev/urandom`
Foo
This macro is defined in config.h if <stdckdint.h> is available,
and used in previously commited code
(0f2b1e648156555a96ed54170e1b385a60010910, GH #23503).
This includes the LC_ALL notation unit, not yet merged in metaconfig.
It turns out that in order to get quite a few elements from being
dropped, I had to add them to metaconfig.h
The bump done by 2083cfe50f was oddly missing lots of parts :-s The missing
INSTALL parts were picked up by 355437ea80 but much more was still missing.
Manually complete the remaining parts by comparison with the previous bump
for a .0 version (namely, e0fe22bd0d -- the bump to 5.3.7.0).
The main exceptions being dist/, ext/, and Configure related
files, which will be updated in a subsequent commit. Files in the cpan/
directory are also omitted as they are not owned by the core.
'#define' has seven characters, so following it with a \t makes it look
like '#define ' when it is not, which then frustrates attempts to find
where a given define is. If you *know* then you do a
git grep -P 'define\s+WHATEVER'
but if don't or you forget, you can get very confused trying to find
where a given define is located. This fixes all such cases so they
actually are 'define WHATEVER' instead.
If this patch is getting in your way with blame analysis then view it
with the -w option to blame.