Repository navigation
Expand file tree
/
Copy path_orc-config
More file actions
130 lines (102 loc) · 5.08 KB
/
Copy path_orc-config
File metadata and controls
130 lines (102 loc) · 5.08 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
119
120
121
122
123
124
125
126
127
128
129
130
# `graceful_exit` only matters when ODR violations are found. In such cases, when `graceful_exit`
# is `true`, ORC will exit(0), indicating success. Otherwise, the tool will return a nonzero value
# indicating failure. `graceful_exit` can be useful for older applications that are looking to track
# and/or reduce their ODR violations over time (versus enforcing zero violations.)
#
# Note that in the ORC output, the string "error" will be used if `graceful_exit` is `false`,
# or "warning" if `grace_exit` is `true`.
#
# The default value is `false`.
graceful_exit = false
# `max_error_count` lets you configure how many ODR violations are detected before the tool exits.
#
# The default value is `0`, which will output all detected violations.
max_error_count = 0
# When an ODRV is found for a type, ORC will only report the first one if `filter_redundant` is
# true. This is generally what you want. Set to false if you wish to see all the conflicts for
# a given type, which can be useful when trying to identify a particular violation in code.
# If `parallel_processing` is true as well, the number of ODRVs reported can vary widely.
filter_redundant = true
# Since ORC is meant to be a drop-in replacement for the ld/libtool, `forward_to_linker` can be used
# to elide calling the linker, and only perform ORC processing.
#
# The default value is `true`.
forward_to_linker = true
# `log_level` determines how loud ORC should be. The following values can be used, in increasing
# order of verbosity. The logging level does not affect ODR violation reporting.
#
# 'silent': no logging output
# 'warning': an avoidable issue that should be addressed
# 'info': emit brief, informative status
# 'verbose': copious amounts of information
#
# The default value is `'warning'`.
log_level = 'warning'
# At the command line, expect a list of object/a/dylib files instead of the typical linker
# command-line arguments. (This mode is largely helpful for debugging/testing the tool itself.)
#
# The default value is `false`.
standalone_mode = false
# Scan the binary passed in to the command line for its Mach-O dependencies, specifically any
# dylibs it depends on (and rpaths where they might be found.) Then perform a scan over that
# collection as if it were runtime-linked.
#
# The default value is `false`.
dylib_scan_mode = false
# If defined, ORC will log output to the specified file. (Normal stream output
# is unaffected by the `output_file`.)
#
# The default value is undefined, and no file will be written.
# output_file = "out.txt"
# If defined, ORC will log output at the file location of the liner output file,
# which must be specified with `-o` or `--output` on the command line. For example,
# if the the output file is `path\to\my\binary` and this is set to `out.txt`, ORC
# will write its output to `path\to\my\binary.out.txt`.
#
# output_file should NOT be specified if this is used.
# (Normal stream output is unaffected by `relative_output_file`.)
# relative_output_file = "out.txt"
# Determines what format should be used for content written to external report files defined by
# either `output_file` or `relative_output_file`. The options are `text` or `json`. `text` will
# mirror all output sent to `stdout` and `stderr` to the file. `json` will limit output file
# contents to the ODRV report. This mode enumerates all object files with conflicting symbols, so
# can be quite verbose. It is intended for programmatic consumption.
#
# The default value is `text`.
output_file_mode = 'text'
# `print_object_file_list`, when true, will print the list of object files ORC would otherwise
# process, and then it exits without failure.
#
# The default value is `false`.
print_object_file_list = false
# `parallel_processing`, when true, will maximize the number of machine processors. Otherwise,
# the application will run in a single thread. (This is mostly useful for debugging ORC.)
#
# The default value is `true`.
parallel_processing = true
# `symbol_ignore` is a list of symbol names ORC should ignore.
# symbol_ignore = [
# 'size_t' # the global size_t is defined two different ways inside the OSX toolchain
# ]
# `violation_report` and `violation_ignore` are mutually exclusive lists of violation categories.
# A violation category is a pair of `tag:attribute` as reported when a violation is found. If you
# use `violation_report`, all ODRVs will be ignored except for those categories explicitly listed in
# the array. If you use `violation_ignore`, all ODRVs will be reported except for those categories
# explicitly listed in the array. Specifying both will yield an error, then `violation_ignore` will
# be used. If any symbols are ignored via `symbol_ignore`, those will be ignored before the
# report/ignore arrays are used.
#
# The default `violation_report` is a reliable tested set that is a good baseline.
violation_report = [
'class:byte_size',
'member:data_member_location',
'member:alignment',
# 'member:type',
'structure:byte_size',
'subprogram:virtuality',
'subprogram:vtable_elem_location'
]
# violation_ignore = [
# 'subprogram:accessibility',
# 'typedef:type',
# ]