This adds the new `printf_long_long` module that can be used to enable
printing of `long long` and `unsigned long long`.
This has been implemented for `mpaland-printf`. In addition, this module
is a default module for 32-bit and 64-bit systems if `mpaland-printf` is
used, 64 bit support is not too expensive for them. (And on 64-bit
systems support for long long is needed for support of `%p`, which is
pretty basic.)
This is mainly useful for MSP430, where otherwise `mpaland-printf` would
require more memory than newlib's implementation.
This adds `-Wno-unterminated-string-initialization` to the `CFLAGS` if
(and only if) the compiler supports this.
This also adds `-Wno-maybe-uninitialized`. This warning has been
supported for quite some time, but the diagnostics triggers more often
with newer GCC releases.
This makes sure that newlib's printf is correctly overridden by:
1. Adding wrappers for some more obscure printf() variants
2. Forcing a compilation failure when newlib's stdio is still linked in
while mpaland-printf is used
3. Not adding `-u _printf_float` to the linker flags when mpaland-printf
is used.
This packs the stdio implementation from [1] as alternative to
what the used standard C lib provides with the intent to provide a
thread-safe, smaller, and more feature-complete alternative on
newlib targets.
Compared to `newlib_nano` this reduces `.text` by a bit more than 200 B
while adding support for standard format specifiers such as `RPIu8`,
`PRIu16`, `PRIu64`, `%z`, and `%t`.
Note that `newlib_nano`'s stdio can be thread-safe in reentrant mode
at the cost of RAM (per thread) and latency. Especially the increase
in latency can be prohibitive when real time requirements need to be
met.
[1]: https://github.com/mpaland/printf
The RIOT header `<sys/uio.h>` is not available when using the bundled ESP-IDF
outside of RIOT.
This patch ensures that `<sys/uio.h>` is only included when `RIOT_VERSION` is
defined.
Signed-off-by: Jongmin Kim <jmkim@debian.org>
The implementation of `rtc_gpio_force_hold_all()` was renamed to`rtc_gpio_force_hold_en_all()`
in the patch `0022-driver-gpio-fix-undefined-reference-to-rtc_gpio_forc.patch`.
This patch corrects the function declaration to match the renamed implementation.
Signed-off-by: Jongmin Kim <jmkim@debian.org>
Treat documentation issues flagged by LLVM as hard errors.
LLVM tends to be a lot less picky about documentation issues compared
to Doxygen (e.g. no warning about missing doc), but warns about things
that really are not intentional (e.g. `@param foo` when the argument has
been renamed to `bar`, `@return` when the return type is `void`, ...).
Having this as a base line requirement seems pretty sane.
pkg/wamr has special handling for passing along includes, but assumed
that all includes would be passed via `-I` and not `-isystem`. This
now extends the special handling to support both.
This simply strips the include path to the posix compat headers from
the includes, but at the level of the local `Makefile` (so without
side effects on other modules/packages). Since libsocketcan is only
ever used on native, this should be fine.