This allows to include KCONFIG_OUT_CONFIG file in Makefile
unconditionally, which means that `make clean all` is allowed when using
Kconfig.
For this, the recipe for `clean` is guarded with `MAKE_RESTARTS` so
the BINDIR folder is not removed once Make restarts scanning the files.
When compiled with `LWIP_IPV4=1 LWIP_IPV6=1` this test currently fails
in current master. This "regression" was introduced with 035acc2e53.
However, after some debugging I think that commit actually revealed a
problem with the test rather than introducing a bug.
The test starts the central server, and then checks if opening a
listening socket on the same port causes an `-EADDRINUSE` error.
The server, on the other hand, starts with `SOCK_FLAGS_REUSE_EP`, so of
course the listening operation may succeed. Instead, let's just call
`sock_tcp_listen` twice with two distinct queue objects. Way easier and
also more correct.
The mapping from thread state codes to a human readable string in the
PS modules has to be maintained manually. There is a very real possibility
for it to get out of sync with the actual defined states, which would cause
a crash when a lookup with an out of bounds index is performed. Also, because
of the way the array is defined, there could be gaps (which will be filled by
nulls).
This patch replaces the array looukup by a function that checks bounds and
also triggers an assertion so that the issue can be caught during development.
The comment says as much, the tool in question even has `macosx` in its
name [1], and it does not build for other non-Linux-POSIX systems such
as FreeBSD.
[1]: https://github.com/tzvetkoff/setsid-macosx
Since former ESP32 toolchain versions used POSIX threads, module `pthread` was required. The built-in `cxa_ctor_guards` had to be replaced since they used the `pthread_once` function for singleton objects initialization where the parameter `once` was of incompatible type with that provided by RIOT's `pthread` module. The current ESP32 toolchain version no longer uses POSIX threads. The dependency on module `pthread` as well as according C++ hacks can be removed.
Big endian buffers on big endian systems are already in big endian byte order,
so no byte shuffling is needed. However, byte buffers might be unaligned, so
copy operations that are safe with unaligned memory accesses need to be
used.