Loading...
Searching...
No Matches
features.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2022 Gunar Schorcht
3 *
4 * This file is subject to the terms and conditions of the GNU Lesser
5 * General Public License v2.1. See the file LICENSE in the top level
6 * directory for more details.
7 */
8
9#pragma once
10
23
24#ifndef DOXYGEN
25
26#ifdef __cplusplus
27extern "C" {
28#endif
29
30#include_next <sys/features.h>
31
32/*
33 * When using a GCC version with POSIX thread support enabled, as is the
34 * case with Espressif's precompiled toolchains, the `_POSIX_THREAD`
35 * definition has to be reverted to prevent the inclusion of newlib's
36 * POXIS header files in system headers to avoid compilation errors.
37 * The reason is that RIOT uses its own `pthread` implementation, but
38 * its type declarations are not fully compatible with those in
39 * `sys/_pthreadtypes.h`.
40 */
41#undef _POSIX_THREADS
42
43/*
44 * To avoid type conflicts between the `pthread_rwlockattr_t` definition
45 * in RIOT's `pthread` implementation and newlibc's `sys/_pthreadtypes.h`,
46 * the macro `_POSIX_READER_WRITER_LOCKS` must be undefined.
47 */
48#undef _POSIX_READER_WRITER_LOCKS
49
50#ifdef __cplusplus
51}
52#endif
53
54#endif /* DOXYGEN */