-
Notifications
You must be signed in to change notification settings - Fork 18
Expand file tree
/
Copy pathmeson_options.txt
More file actions
118 lines (108 loc) · 5.85 KB
/
Copy pathmeson_options.txt
File metadata and controls
118 lines (108 loc) · 5.85 KB
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
# SPDX-License-Identifier: MPL-2.0
option(
'username',
type : 'feature',
value : 'disabled',
description : 'Allow opensea-common to get the current username. This is ' +
'disabled by default due to security concerns, as it may ' +
'involve reading sensitive files such as /etc/passwd on ' +
'Linux/Unix systems. Enabling this option may expose user ' +
'information, so it should only be enabled if necessary and ' +
'in a secure environment.'
)
# Directory security is implemented to
# https://wiki.sei.cmu.edu/confluence/display/c/FIO15-C.+Ensure+that+file+operations+are+performed+in+a+secure+directory
option(
'directorysecurity',
type : 'feature',
value : 'enabled',
description : 'Directory security follows SEI CERT FIO15-C. This is ' +
'enabled by default to ensure that file operations are ' +
'performed in a secure directory. Disabling this option may ' +
'expose the application to security risks, such as ' +
'unauthorized access to files. It is strongly recommended to ' +
'keep this option enabled unless there is a specific reason ' +
'to disable it and the environment is secure.'
)
option(
'cc-suggest-attribute',
type : 'boolean',
value : false,
description : 'Enable warnings where the compiler can suggest various ' +
'attributes to be applied to functions for optimization and ' +
'correctness.'
)
option(
'allow-32bit-time-t',
type : 'feature',
value : 'disabled',
description : 'Allow 32-bit time_t size with opensea-common. This is not ' +
'recommended as it can cause the Year 2038 problem, but may ' +
'be necessary for compatibility with certain libraries or ' +
'applications that do not support 64-bit time_t.'
)
option(
'memcpy-is-memcpy-not-memmove',
type : 'feature',
value : 'disabled',
description : 'By default the safe_memcpy function behaves as memmove ' +
'and allows overlapping buffers. Enabling this option makes ' +
'it behave as memcpy instead and does not allow overlapping ' +
'buffers. This may be desirable for performance reasons, but ' +
'can lead to undefined behavior if the source and destination ' +
'buffers overlap. It is recommended to keep this option ' +
'disabled unless there is a specific reason to enable it and ' +
'the code is carefully reviewed to ensure that no overlapping ' +
'buffer copies occur. If calling safe_memcpy_no_overlap, this ' +
'always behaves as memcpy and has undefined behavior for ' +
'overlapping ranges.'
)
option(
'strcpy-is-strcpy-not-strmove',
type : 'feature',
value : 'disabled',
description : 'Similar to memcpy-is-memcpy-not-memmove, but for string copy functions. ' +
'By default the safe_strcpy function behaves as strmove and ' +
'allows overlapping buffers. Enabling this option makes it ' +
'behave as strcpy instead and does not allow overlapping ' +
'buffers. This may be desirable for performance reasons, but ' +
'can lead to undefined behavior if the source and destination ' +
'buffers overlap. It is recommended to keep this option ' +
'disabled unless there is a specific reason to enable it and ' +
'the code is carefully reviewed to ensure that no overlapping ' +
'buffer copies occur. If calling safe_strcpy_no_overlap, this ' +
'always behaves as strcpy and has undefined behavior for ' +
'overlapping ranges.'
)
option(
'allow-no-overlap-suggestions',
type : 'feature',
value : 'disabled',
description : 'Allow compiler diagnostics to suggest using no-overlap versions of functions ' +
'when no overlap is detected. This can help improve performance by encouraging ' +
'the use of more efficient functions when it is safe to do so. However, it may ' +
'also lead to more warnings in codebases that have many non-overlapping calls, ' +
'so it is disabled by default.' +
'Clang\'s diagnose_if attribute must be supported for this to work.' +
'This may not be able to detect all cases of non-overlap, so it should be used as a hint rather than a guarantee.'
)
option('constraint-handler',
type: 'combo',
choices : ['abort', 'ignore', 'warn', 'abortnd'],
value : 'abort',
description : 'Defines the behavior of the constraint handler when a runtime-constraint ' +
'violation occurs. The default is to abort the program, but you can choose to ignore the ' +
'violation or print a warning message instead. When set to ignore or warn, the nodiscard ' +
'attribute is applied to all functions that can invoke the constraint handler, which will cause ' +
'a compiler warning if the return value of such a function is not checked. The abortnd' +
'option keeps the abort handler in place, but allows setting the nodiscard attribute to assist' +
'developers in identifying and fixing constraint violations without immediately terminating the program.')
option(
'diagnose-if-attr',
type : 'feature',
value : 'enabled',
description : 'The clang diagnose_if attribute allows defining custom diagnostics to catch common error' +
'conditions using a function at compile time. Disabling this option prevents this from triggering' +
'an error or a warning condition and allow compiling past these checks.' +
'This can be useful to disable for testing purposes, but it is recommended this is left enabled.'
)