In [0] the paper concludes with
> The Knuth LCG is the most efficient general purpose generator that
> provides decent statistical quality.
> It is simple and lean enough to run on very constrained devices.
So let's select `prng_musl_lcg` to be the default PRNG instead of
`prng_tinymt32`.
This gives a good chunk of memory on e.g. `samr21-xpro`:
prng_tinymt32
-------------
text data bss dec hex filename
26452 136 2824 29412 72e4 tests/rng/bin/samr21-xpro/tests_rng.elf
prng_musl_lcg
-------------
text data bss dec hex filename
26208 136 2808 29152 71e0 tests/rng/bin/samr21-xpro/tests_rng.elf
[0] https://sci-hub.se/10.1145/3453159
Align the first member of `struct sockaddr` and
`struct sockaddr_storage` as `uint32_t` to elevate the alignment of the
structure to level of `uint32_t`. This is needed as
`struct sockaddr_in` uses an `uint32_t` to store the IPv4 address,
previously resulting in `struct sockaddr_in` currently having a greater
alignment requirement that `struct sockaddr_storage`.
sys/ztimer: rework Kconfig
To eliminate circular dependencies based in periph_rtc and xtimer_ztimer_compatibility the following changes are applied:
- Change entrypoint of ztimer as a specific backend is always required
- Add a non-module symbol for ztimer_usec that bring in the ztimer and ztimer_usec module which allows the xtimer ztimer compatibility layer to only select the ztimer_usec module preventing circular dependency issues
This fixes building tests/pkg_arduino_sdi_12 for the hifive1b board.
The problem is, in build/pkg/arduino_api/api/Common.h millis is defined
within an extern "C" block. While in sys/arduino/include/arduino.hpp it
was not.
The SetLineCoding request is optional to support (CDC PSTN subclass). No
need to claim to support it to the host and actually discard the data if
it is not supported by the implementation.
This fixes the error:
$ BOARD=arduino-mega2560 make -C tests/pkg_arduino_sdi_12/
[...]
[...]/RIOT/build/pkg/arduino_sdi_12/src/SDI12.cpp:379:7: error: ‘interrupts’ was not declared in this scope
Currently a valid netif name must be passed to show the usage
instructions:
```
> ifconfig help
error: invalid interface given
> ifconfig 6 help
usage: ifconfig
usage: ifconfig <if_id> [up|down]
[...]
```
`ifconfig --help` is also accepted.