summaryrefslogtreecommitdiff
path: root/lib/ktl/include/__config
blob: e04573efd5d5d836be6b375618d3c86614f896d6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
// Copyright 2022 The Fuchsia Authors
//
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file or at
// https://opensource.org/licenses/MIT

#ifndef ZIRCON_KERNEL_LIB_KTL_INCLUDE___CONFIG_
#define ZIRCON_KERNEL_LIB_KTL_INCLUDE___CONFIG_

// The libc++ internal header <__config> unconditionally responds to some
// predefines set in the EFI environment.  So this header wraps it and then
// undoes the damage that our __config_site header can't prevent.

#include_next <__config>

#undef _LIBCPP_WIN32API
#undef _LIBCPP_MSVCRT_LIKE
#undef _LIBCPP_MSVCRT
#undef _LIBCPP_HAS_OPEN_WITH_WCHAR

// This prevents libc++ from doing fallback to spin locks and the like for
// cases where is_always_lock_free is not true.  In the kernel, we don't want
// any behind-the-scenes help like that, we want to get link errors from
// libcalls if atomics can't be lowered to real hardware instructions.
#undef _LIBCPP_ATOMIC_ONLY_USE_BUILTINS

// These are used by <__configuration/availability.h> to decide when headers
// should expect things to be defined in the library.  For the kernel, there is
// no library and so everything must be defined in headers.
#undef _LIBCPP_INTRODUCED_IN_LLVM_21
#define _LIBCPP_INTRODUCED_IN_LLVM_21 0
#undef _LIBCPP_INTRODUCED_IN_LLVM_20
#define _LIBCPP_INTRODUCED_IN_LLVM_20 0
#undef _LIBCPP_INTRODUCED_IN_LLVM_19
#define _LIBCPP_INTRODUCED_IN_LLVM_19 0
#undef _LIBCPP_INTRODUCED_IN_LLVM_18
#define _LIBCPP_INTRODUCED_IN_LLVM_18 0
#undef _LIBCPP_INTRODUCED_IN_LLVM_16
#define _LIBCPP_INTRODUCED_IN_LLVM_16 0
#undef _LIBCPP_INTRODUCED_IN_LLVM_15
#define _LIBCPP_INTRODUCED_IN_LLVM_15 0
#undef _LIBCPP_INTRODUCED_IN_LLVM_14
#define _LIBCPP_INTRODUCED_IN_LLVM_14 0
#undef _LIBCPP_INTRODUCED_IN_LLVM_12
#define _LIBCPP_INTRODUCED_IN_LLVM_12 0
#undef _LIBCPP_INTRODUCED_IN_LLVM_11
#define _LIBCPP_INTRODUCED_IN_LLVM_11 0
#undef _LIBCPP_INTRODUCED_IN_LLVM_9
#define _LIBCPP_INTRODUCED_IN_LLVM_9 0
#undef _LIBCPP_INTRODUCED_IN_LLVM_4
#define _LIBCPP_INTRODUCED_IN_LLVM_4 0

#endif  // ZIRCON_KERNEL_LIB_KTL_INCLUDE___CONFIG_