summaryrefslogtreecommitdiffstats
path: root/gl/modules/randread
AgeCommit message (Collapse)AuthorLines
2024-12-30maint: adjust to Gnulib module renamingPaul Eggert-2/+2
* bootstrap.conf, gl/modules/buffer-lcm, gl/modules/randperm: * gl/modules/randread, gl/modules/strnumcmp, gl/modules/targetdir: * gl/modules/xdectoint, gl/modules/xfts: Adjust to recent renaming of Gnulib modules, e.g., stdbool → bool, inttypes → inttypes-h.
2023-02-04maint: use alignasof, not stdalignPaul Eggert-1/+1
* .gitignore: Update accordingly. * bootstrap.conf (gnulib_modules): Replace obsolescent stdalign with alignasof. * gl/modules/randread (Depends-on): Depend on alignasof, not stdalign.
2021-10-31maint: use minmax.h instead of rolling our ownPaul Eggert-0/+1
* gl/lib/mbsalign.c, gl/lib/randread.c, src/system.h (MAX, MIN): Remove; include minmax.h instead. * gl/modules/mbsalign, gl/modules/randread (Depends-on): Add minmax. * src/factor.c (MIN): Remove.
2020-06-01maint: use getrandom, not getentropyPaul Eggert-1/+1
This makes for one Gnulib module less, and at runtime there’s typically just one getrandom syscall instead of several for large nonces. * gl/lib/randread.c: Include sys/random.h instead of sys/time.h and unistd.h. (get_nonce): Use getrandom, not getentropy. * gl/modules/randread (Depends-on): Depend on getrandom, not getentropy. * src/shred.c (main): * src/shuf.c (main): * src/sort.c (random_md5_state_init): Say "getrandom" rather than "getentropy" in (unlikely) diagnostic.
2020-05-31maint: use getentropy and new tempname modulesPaul Eggert-1/+1
Update gnulib submodule to latest and use its new features. Gnulib’s new getentropy module means coreutils can now assume getentropy instead of approximating it, badly in some cases. Gnulib’s improvements to the tempname module mean coreutils no longer needs to maintain private patches. * bootstrap.conf (gnulib_modules): Remove gettimeofday. * gl/lib/randread.c (NAME_OF_NONCE_DEVICE): Remove. (get_nonce): Return success indicator. Remove bytes_bound arg. All callers changed. Rewrite by using getentropy instead of reading the nonce device and falling back on gettimeofday. Fail if getentropy fails. (randread_new): Return NULL (setting errno) if get_nonce fails. All callers changed. * gl/lib/tempname.c.diff, gl/lib/tempname.h.diff: * gl/modules/tempname.diff: Remove. * gl/modules/randread (Depends-on): Depend on getentropy, not gettimeofday. * src/ptx.c (swallow_file_in_memory): * src/shuf.c (read_input): Adjust to read_file changes in Gnulib. * src/shred.c (main): * src/shuf.c (main): * src/sort.c (random_md5_state_init): Diagnose the new form of randread_new failures: randread_new can fail now when !random_source, meaning getentropy failed.
2015-11-04all: replace most uses of quotearg_colon() with quote()Pádraig Brady-1/+1
Related to commit v8.24-61-g6796698 this provides more consistent quoting, as quotearg_colon() defaults to "literal" quoting by default, while quote() provides appropriate quoting for diagnostics by default. * gl/modules/randread: Depend on quote module rather than quotearg. * gl/lib/randread.c: Used quote() not quotearg_colon(). * src/: Likewise. * src/shred.c: Likewise. Also avoid unnecessary quoting introducing overhead when wiping names. * cfg.mk: Relax the matching expression to allow "qname" variables as used in shred.c to satisfy the check. * tests/: Adjust accordingly.
2011-12-03maint: add missing ":" after "License" in local gnulib module filesJim Meyering-1/+1
This avoids spurious diagnostics when running our "bootstrap" script. * gl/modules/heap: Append colon after "License". * gl/modules/randint: Likewise. * gl/modules/randperm: Likewise. * gl/modules/randread: Likewise. Reported by Stefano Lattarini. Diagnosed by Bruno Haible.
2011-10-30maint: avoid new "make syntax-check" failure due to stdalign definitionJim Meyering-0/+1
* gl/modules/randread (Depends-on): Add stdalign. * gl/lib/randread.c: Include <stdalign.h>, so we can ... [!_STRING_ARCH_unaligned]: remove definition of stdalign.
2010-07-23randread: run 2x faster on 64-bit hosts, don't assume no padding bitsPaul R. Eggert-0/+1
* gl/lib/rand-isaac.c: Remove the I/O; this belongs elsewhere. Add support for ISAAC64. Port to hosts with padding bits. Add self to author list. Include <limits.h>, for CHAR_BIT. Don't include string.h, sys/time.h, unistd.h. (min, just): New functions. (IF32): New macros. (ind, ISAAC_STEP, isaac_refill, mix, isaac_init, isaac_seed): Add support for ISAAC64. Port to hosts with padding bits. (ind): Now an inline function rather than a macro; no need for it to be a macro with modern compilers. (ISAAC_STEP): Renamed from isaac_step, since it's not function-like. Don't bother to pass args that are always the same. All uses changed. (ISAAC_STEP, ISAAC_SEED): Move to inside the only function body that can use it. (ISAAC_MIX): Renamed from isaac_mix, since it's now a macro and is no longer function-like. Don't bother saving and restoring state; no longer needed now that we're not a function. All uses changed. (isaac_seed_start, isaac_seed_data, isaac_seed_finish): Remove. (isaac_seed): Take just the one arg; the caller now sets s->m. * gl/lib/rand-isaac.h: Use _GL_RAND_ISAAC_H to protect, instead of RAND_ISAAC_H. Try out " #" rather than "# " for indenting. (ISAAC_BITS_LOG, ISAAC_BITS): New macros. (ISAAC_WORDS_LOG): Renamed from ISAAC_LOG. (isaac_word): New type. All uses of uint32_t changed to isaac_word, to support ISAAC64. (struct isaac_state): Rename member MM to M, and make it public. (isaac_seed, isaac_refill): Adjust to new API. * gl/lib/randread.c: Include sys/time.h. (get_nonce): New function, containing the nonce stuff that used to be in rand-isaac.c but better belongs here. (randread_new): Use it. * gl/modules/randread (Depends-on): Add inline. * gl/modules/randread-tests: New file. * gl/tests/test-rand-isaac.c: New file.
2010-07-16randread: don't require -lrtPaul R. Eggert-1/+1
Programs like 'sort' were linking to -lrt in order to get clock_gettime, but this was misguided: it wasted considerable resources while gaining at most 10 bits of entropy. Almost nobody needs the entropy, and there are better ways to get much better entropy for people who do need it. * gl/lib/rand-isaac.c (isaac_seed): Include <sys/time.h> not "gethrxtime.h". (isaac_seed): Use gettimeofday rather than gethrxtime. * gl/modules/randread (Depends-on): Depend on gettimeofday and not gethrxtime. * src/Makefile.am (mktemp_LDADD, shred_LDADD, shuf_LDADD, sort_LDADD): (tac_LDADD): Omit $(LIB_GETHRXTIME); no longer needed.
2007-11-28* gl/modules/randread (Depends-on): Remove nonexistent rand-isaac.Paul Eggert-1/+0
2007-10-07Convert coreutils' rand*.{c,h,m4} into modules.Jim Meyering-0/+34
First step: move these files to gl/lib: * lib/rand-isaac.c, lib/rand-isaac.h * lib/randint.c, lib/randint.h * lib/randperm.c, lib/randperm.h * lib/randread.c, lib/randread.h Step 2: add modules/rand* and remove now-unneeded .m4 files. * gl/modules/randint: New file. * gl/modules/randperm: New file. * gl/modules/randread: New file. * m4/randint.m4: Remove file. * m4/randperm.m4: Remove file. * m4/randread.m4: Remove file. Step 3: use the new modules * bootstrap.conf (gnulib_modules): Add randint and randperm. * m4/prereq.m4 (gl_RANDINT, gl_RANDREAD, gl_RANDPERM): Don't require; These have been removed. (gl_ROOT_DEV_INO): Don't require; already handled via bootstrap.conf.