Loading...
Searching...
No Matches
features.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2022 Gunar Schorcht
3 * SPDX-License-Identifier: LGPL-2.1-only
4 */
5
6#pragma once
7
20
21#ifndef DOXYGEN
22
23#ifdef __cplusplus
24extern "C" {
25#endif
26
27#include_next <sys/features.h>
28
29/*
30 * When using a GCC version with POSIX thread support enabled, as is the
31 * case with Espressif's precompiled toolchains, the `_POSIX_THREAD`
32 * definition has to be reverted to prevent the inclusion of newlib's
33 * POXIS header files in system headers to avoid compilation errors.
34 * The reason is that RIOT uses its own `pthread` implementation, but
35 * its type declarations are not fully compatible with those in
36 * `sys/_pthreadtypes.h`.
37 */
38#undef _POSIX_THREADS
39
40/*
41 * To avoid type conflicts between the `pthread_rwlockattr_t` definition
42 * in RIOT's `pthread` implementation and newlibc's `sys/_pthreadtypes.h`,
43 * the macro `_POSIX_READER_WRITER_LOCKS` must be undefined.
44 */
45#undef _POSIX_READER_WRITER_LOCKS
46
47#ifdef __cplusplus
48}
49#endif
50
51#endif /* DOXYGEN */