-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathKconfig
177 lines (141 loc) · 3.84 KB
/
Kconfig
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
mainmenu "FluffyVM Configuration"
menu Debugging
config DEBUG
bool "Enable debug mode"
default n
help
Enable debugging checks and show debug
options
choice
prompt "Additional sanitizer"
depends on DEBUG && !LLVM_XRAY
optional
config ASAN
bool "Enable Address Sanitizer"
config TSAN
bool "Enable Thread Sanitizer"
config MSAN
bool "Enable Memory Sanitizer"
endchoice
menu "Address Sanitizer"
depends on ASAN
config ASAN_OPTS
string "Default ASAN options"
default "fast_unwind_on_malloc=0:detect_invalid_pointer_pairs=10:strict_string_checks=1:strict_init_order=1:check_initialization_order=1:print_stats=1:detect_stack_use_after_return=1:atexit=1"
endmenu
menu "Memory Sanitizer"
depends on MSAN
config MSAN_OPTS
string "Default MSAN options"
default ""
endmenu
menu "Thread Sanitizer"
depends on TSAN
config TSAN_OPTS
string "Default TSAN options"
default "second_deadlock_stack=1"
endmenu
config LLVM_XRAY
bool "Enable LLVM's XRay instrumentation"
default n
select DONT_START_SEPERATE_MAIN_THREAD
menu "LLVM XRay"
depends on LLVM_XRAY
config LLVM_XRAY_OPTS
string "Default XRay options"
default "xray_mode=xray-basic:patch_premain=true:verbosity=1"
endmenu
config UBSAN
bool "Enable Undefined behavior Sanitizer"
default n
menu "Undefined Sanitizer"
depends on UBSAN
config UBSAN_OPTS
string "Default UBSAN options"
default "print_stacktrace=1:suppressions=suppressions/UBSan.supp"
endmenu
endmenu
menu General
config VERSION_MAJOR
int
default 0
config VERSION_MINOR
int
default 1
config VERSION_PATCH
int
default 0
config VERSION_LOCAL_VERSION
string "Local version"
default ""
help
Appended to the end of version string
config STRICTLY_POSIX
bool "Strict POSIX compliant"
default y
help
Disable any non POSIX 2008 libc or
platform specific API usage
config USE_SETCONTEXT
bool "Use ucontext functions for coroutine"
depends on !STRICTLY_POSIX
default n
help
As `*context` functions are removed in POSIX 2008
there two approach which is use `*context`
functions (ignoring portability) or use POSIX
threads (inefficient)
Rationale for why this option exist:
This exists due its worth it to add as option.
Rationale for why this off by default:
I considered `*context` functions non portable
for POSIX 2008 standard
choice PLATFORM
prompt "Select platform to target"
depends on !STRICTLY_POSIX
default PLATFORM_LINUX_5_10
help
Select platform you are targetting
or none to not assume any platform
specific features (depends on
platform, additional options are
shown)
# config PLATFORM_LINUX_4_19
# bool "Linux version >= 4.19"
# config PLATFORM_LINUX_5_10
# bool "Linux version >= 5.10"
config PLATFORM_NONE
bool "None"
endchoice
choice TARGET_LIBC
prompt "Select libc to target"
depends on !STRICTLY_POSIX
default LIBC_GLIBC
help
Select libc to target and show
additional options or none
to not use non POSIX 2008 features
(Please note that libc REQUIRED to
be POSIX 2008 compliant no matter
what you selects)
# config LIBC_GLIBC
# bool "GLibc"
# config LIBC_MUSL
# bool "Musl"
# config LIBC_BIONIC
# bool "Bionic"
config LIBC_NONE
bool "None"
endchoice
config THREAD_LIST_INCREMENT_SIZE
int "Thread list increment size"
range 1 50
default 10
endmenu
menu Performance
config USE_GOTO_POINTER
bool "Use goto pointer"
endmenu
config DONT_START_SEPERATE_MAIN_THREAD
bool "Don't start seperate main thread"
default n