| #
3f351f34 |
| 20-Jan-2024 |
kre <kre@NetBSD.org> |
Compensate for src/common/lib/libc/atomic/atomic_init_cas.c losing the extern declaration of __libc_atomic_init() and instead using a new one added to src/lib/libc/include/extern.h
That file is outs
Compensate for src/common/lib/libc/atomic/atomic_init_cas.c losing the extern declaration of __libc_atomic_init() and instead using a new one added to src/lib/libc/include/extern.h
That file is outside src/common and src/sys so is unavailable to kernel builds, so instead make a new include file in src/common which the kernel can read which contains the needed extern decl for __libc_atomic_init()
This seems to fix the evbarm builds (maybe others) - but it is all MUCH TOO UGLY to keep. Someone please make a better fix, even if that just means reverting rev 1.5 of src/common/lib/libc/atomic/atomic_init_cas.c and all of the changes here (the addition to libc/include/extern.h should be harmless to keep).
show more ...
|
| #
b37dea26 |
| 01-Jan-2024 |
rhialto <rhialto@NetBSD.org> |
avoid dependency on NETBSDSRCDIR being set.
(similar to an earlier commit) due to various things, non-build.sh builds don't have it set already and it ends up defaulting to /usr/src, so if that does
avoid dependency on NETBSDSRCDIR being set.
(similar to an earlier commit) due to various things, non-build.sh builds don't have it set already and it ends up defaulting to /usr/src, so if that doesn't exist or is the wrong version, building libkern fails.
show more ...
|
| #
f989f962 |
| 27-Oct-2021 |
ryo <ryo@NetBSD.org> |
revert previous: http://mail-index.netbsd.org/source-changes/2021/10/25/msg133295.html
going to add __always_inline to the functions called from _mcount() discussed on http://mail-index.netbsd.org/s
revert previous: http://mail-index.netbsd.org/source-changes/2021/10/25/msg133295.html
going to add __always_inline to the functions called from _mcount() discussed on http://mail-index.netbsd.org/source-changes-d/2021/10/25/msg013480.html
show more ...
|
| #
843ce006 |
| 25-Oct-2021 |
ryo <ryo@NetBSD.org> |
In some arch, _mcount() would be called recursively when built with COPTS=-O0.
Normally, functions called from mcount.c are expected to be expanded inline, so _mcount() will never be called recursiv
In some arch, _mcount() would be called recursively when built with COPTS=-O0.
Normally, functions called from mcount.c are expected to be expanded inline, so _mcount() will never be called recursively. But when build with COPTS=-O0, `static inline' functions aren't inlined, and _mcount() will be called recursively.
Even if _mcount() has `__attribute__((__no_ instrument_function__))', it has no effect on the calling external (no-inlined) function.
To avoid this, PROF.<fn> is added can be set the profiling flag of any file. "PROF.mcount.c" is set to blank by default, mcount.c itself is compiled without -pg.
show more ...
|
| #
7de9d97f |
| 17-May-2021 |
mrg <mrg@NetBSD.org> |
move bi-endian disklabel support from the kernel and libsa into libkern.
- dkcksum() and dkcksum_sized() move from subr_disk.c and from libsa into libkern/dkcksum.c (which is missing _sized() vers
move bi-endian disklabel support from the kernel and libsa into libkern.
- dkcksum() and dkcksum_sized() move from subr_disk.c and from libsa into libkern/dkcksum.c (which is missing _sized() version), using the version from usr.sbin/disklabel.
- swap_disklabel() moves from subr_disk_mbr.c into libkern, now called disklabel_swap(). (the sh3 version should be updated to use this.)
- DISKLABEL_EI becomes a first-class option with opt_disklabel.h.
- add libkern.h to libsa/disklabel.c.
this enables future work for bi-endian libsa/ufs.c (relevant for ffsv1, ffsv2, lfsv1, and lfsv2), as well as making it possible for ports not using subr_disk_mbr.c to include bi-endian disklabel support (which, afaict, includes any disk on mbr-supporting platforms that do not have an mbr as well as disklabel.)
builds successsfully on: alpha, i386, amd64, sun2, sun3, evbarm64, evbarm64-eb, sparc, and sparc64. tested in anita on i386 and sparc, testing in hardware on evbarm64*.
show more ...
|
| #
77507b12 |
| 25-Jan-2021 |
thorpej <thorpej@NetBSD.org> |
Build strlist.c.
(Sigh, missed in original commit.)
|
| #
ca08b3e7 |
| 30-Jun-2020 |
maxv <maxv@NetBSD.org> |
Make copystr() a MI C function, part of libkern and shared on all architectures.
Notes:
- On alpha and ia64 the function is kept but gets renamed locally to avoid symbol collision. This is beca
Make copystr() a MI C function, part of libkern and shared on all architectures.
Notes:
- On alpha and ia64 the function is kept but gets renamed locally to avoid symbol collision. This is because on these two arches, I am not sure whether the ASM callers do not rely on fixed registers, so I prefer to keep the ASM body for now. - On Vax, only the symbol is removed, because the body is used from other functions. - On RISC-V, this change fixes a bug: copystr() was just a wrapper around strlcpy(), but strlcpy() makes the operation less safe (strlen on the source beyond its size). - The kASan, kCSan and kMSan wrappers are removed, because now that copystr() is in C, the compiler transformations are applied to it, without the need for manual wrappers.
Could test on amd64 only, but should be fine.
show more ...
|
| #
5084c1b5 |
| 30-Apr-2020 |
riastradh <riastradh@NetBSD.org> |
Rewrite entropy subsystem.
Primary goals:
1. Use cryptography primitives designed and vetted by cryptographers. 2. Be honest about entropy estimation. 3. Propagate full entropy as soon as possible.
Rewrite entropy subsystem.
Primary goals:
1. Use cryptography primitives designed and vetted by cryptographers. 2. Be honest about entropy estimation. 3. Propagate full entropy as soon as possible. 4. Simplify the APIs. 5. Reduce overhead of rnd_add_data and cprng_strong. 6. Reduce side channels of HWRNG data and human input sources. 7. Improve visibility of operation with sysctl and event counters.
Caveat: rngtest is no longer used generically for RND_TYPE_RNG rndsources. Hardware RNG devices should have hardware-specific health tests. For example, checking for two repeated 256-bit outputs works to detect AMD's 2019 RDRAND bug. Not all hardware RNGs are necessarily designed to produce exactly uniform output.
ENTROPY POOL
- A Keccak sponge, with test vectors, replaces the old LFSR/SHA-1 kludge as the cryptographic primitive.
- `Entropy depletion' is available for testing purposes with a sysctl knob kern.entropy.depletion; otherwise it is disabled, and once the system reaches full entropy it is assumed to stay there as far as modern cryptography is concerned.
- No `entropy estimation' based on sample values. Such `entropy estimation' is a contradiction in terms, dishonest to users, and a potential source of side channels. It is the responsibility of the driver author to study the entropy of the process that generates the samples.
- Per-CPU gathering pools avoid contention on a global queue.
- Entropy is occasionally consolidated into global pool -- as soon as it's ready, if we've never reached full entropy, and with a rate limit afterward. Operators can force consolidation now by running sysctl -w kern.entropy.consolidate=1.
- rndsink(9) API has been replaced by an epoch counter which changes whenever entropy is consolidated into the global pool. . Usage: Cache entropy_epoch() when you seed. If entropy_epoch() has changed when you're about to use whatever you seeded, reseed. . Epoch is never zero, so initialize cache to 0 if you want to reseed on first use. . Epoch is -1 iff we have never reached full entropy -- in other words, the old rnd_initial_entropy is (entropy_epoch() != -1) -- but it is better if you check for changes rather than for -1, so that if the system estimated its own entropy incorrectly, entropy consolidation has the opportunity to prevent future compromise.
- Sysctls and event counters provide operator visibility into what's happening: . kern.entropy.needed - bits of entropy short of full entropy . kern.entropy.pending - bits known to be pending in per-CPU pools, can be consolidated with sysctl -w kern.entropy.consolidate=1 . kern.entropy.epoch - number of times consolidation has happened, never 0, and -1 iff we have never reached full entropy
CPRNG_STRONG
- A cprng_strong instance is now a collection of per-CPU NIST Hash_DRBGs. There are only two in the system: user_cprng for /dev/urandom and sysctl kern.?random, and kern_cprng for kernel users which may need to operate in interrupt context up to IPL_VM.
(Calling cprng_strong in interrupt context does not strike me as a particularly good idea, so I added an event counter to see whether anything actually does.)
- Event counters provide operator visibility into when reseeding happens.
INTEL RDRAND/RDSEED, VIA C3 RNG (CPU_RNG)
- Unwired for now; will be rewired in a subsequent commit.
show more ...
|
| #
5b4211c2 |
| 14-Dec-2019 |
riastradh <riastradh@NetBSD.org> |
Nix trailing whitespace.
|
| #
bd6c4f7f |
| 14-Dec-2019 |
riastradh <riastradh@NetBSD.org> |
Remove never-used Mersenne twister from libkern.
|
| #
4d17a0f3 |
| 14-Dec-2019 |
riastradh <riastradh@NetBSD.org> |
Omit vestigial unused commented-out experiment.
|
| #
0c2afd29 |
| 14-Dec-2019 |
ad <ad@NetBSD.org> |
Include radixtree in the kernel.
|
| #
82a15b88 |
| 03-Sep-2018 |
riastradh <riastradh@NetBSD.org> |
Rename min.c -> uimin.c, max.c -> uimax.c in libkern.
|
| #
4231a89c |
| 08-Jul-2018 |
christos <christos@NetBSD.org> |
provide memmem
|
| #
4a1f5c48 |
| 08-Dec-2017 |
christos <christos@NetBSD.org> |
coalesce the two copies of hexdump into libkern
|
| #
96999894 |
| 30-Nov-2017 |
riastradh <riastradh@NetBSD.org> |
Import SHA-3 code into libc and libkern.
No new public symbols in libc, but publishing the symbols is a simple matter if/when we decide to do so.
Proposed on tech-kern and tech-userlevel with no ob
Import SHA-3 code into libc and libkern.
No new public symbols in libc, but publishing the symbols is a simple matter if/when we decide to do so.
Proposed on tech-kern and tech-userlevel with no objections:
https://mail-index.NetBSD.org/tech-kern/2017/11/11/msg022581.html https://mail-index.NetBSD.org/tech-userlevel/2017/11/11/msg010968.html
show more ...
|
| #
ee17f398 |
| 02-May-2016 |
christos <christos@NetBSD.org> |
move scsipi_strvis -> libkern:strnvisx() change the prototype to match userland fix sizes of strings passed to it
|
| #
2603e067 |
| 15-Apr-2015 |
mrg <mrg@NetBSD.org> |
remove various HAVE_GCC=45 fragments.
|
| #
d36e0de1 |
| 16-Jan-2015 |
christos <christos@NetBSD.org> |
strtoi and strtou for the kernel
|
| #
96739e65 |
| 20-Nov-2014 |
christos <christos@NetBSD.org> |
bcdtobin and bintobcd are now inlines in <dev/clock_subr.h>
|
| #
ea6af427 |
| 10-Aug-2014 |
tls <tls@NetBSD.org> |
Merge tls-earlyentropy branch into HEAD.
|
| #
4ab4902e |
| 19-Jul-2014 |
lneto <lneto@NetBSD.org> |
lua: updated from 5.1 to 5.3 work3
* lua(1): - changed lua_Integer to intmax_t - updated distrib/sets/lists and etc/mtree - updated bsd.lua.mk - fixed bozohttpd (lua-bozo.c) - compatibiliz
lua: updated from 5.1 to 5.3 work3
* lua(1): - changed lua_Integer to intmax_t - updated distrib/sets/lists and etc/mtree - updated bsd.lua.mk - fixed bozohttpd (lua-bozo.c) - compatibilized bindings: gpio, sqlite * lua(4): - removed floating-point and libc dependencies using '#ifndef _KERNEL' - fixed division by zero and exponentiation - libkern: added isalnum(), iscntrl(), isgraph(), isprint() and ispunct() - acpica: removed isprint() from acnetbsd.h - libc: moved strcspn.c, strpbrk.c and strspn.c to common - removed stub headers - compatibilized bindings: luapmf, luasystm * reorganized luaconf.h * updated doc/CHANGES and doc/RESPONSIBLE
show more ...
|
| #
65c6ea68 |
| 04-Jul-2014 |
jmcneill <jmcneill@NetBSD.org> |
${.PARSEDIR} not .${PARSEDIR} for Makefile.compiler-rt include
|
| #
1ee7f81f |
| 12-Mar-2014 |
pooka <pooka@NetBSD.org> |
Do not include compiler-rt in librump. librump is not a toolchain support library, and toolchain support belongs in the host libc or libgcc or equivalent entity that is actually supposed to compleme
Do not include compiler-rt in librump. librump is not a toolchain support library, and toolchain support belongs in the host libc or libgcc or equivalent entity that is actually supposed to complement the toolchain.
Fixes librump build on (a) Linux ARM (collisions with libgcc)
show more ...
|
| #
720b2586 |
| 29-Jan-2014 |
joerg <joerg@NetBSD.org> |
Include compiler-rt in libc, libm and libkern.
|