LLVM  16.0.0git
CommonConfig.h
Go to the documentation of this file.
1 //===- CommonConfig.h -------------------------------------------*- C++ -*-===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 
9 #ifndef LLVM_OBJCOPY_COMMONCONFIG_H
10 #define LLVM_OBJCOPY_COMMONCONFIG_H
11 
12 #include "llvm/ADT/ArrayRef.h"
14 #include "llvm/ADT/DenseSet.h"
15 #include "llvm/ADT/Optional.h"
16 #include "llvm/ADT/SmallVector.h"
17 #include "llvm/ADT/StringMap.h"
18 #include "llvm/ADT/StringRef.h"
19 #include "llvm/Object/ELFTypes.h"
22 #include "llvm/Support/Regex.h"
23 // Necessary for llvm::DebugCompressionType::None
25 #include <vector>
26 
27 namespace llvm {
28 namespace objcopy {
29 
30 enum class FileFormat {
32  ELF,
33  Binary,
34  IHex,
35 };
36 
37 // This type keeps track of the machine info for various architectures. This
38 // lets us map architecture names to ELF types and the e_machine value of the
39 // ELF file.
40 struct MachineInfo {
41  MachineInfo(uint16_t EM, uint8_t ABI, bool Is64, bool IsLittle)
42  : EMachine(EM), OSABI(ABI), Is64Bit(Is64), IsLittleEndian(IsLittle) {}
43  // Alternative constructor that defaults to NONE for OSABI.
44  MachineInfo(uint16_t EM, bool Is64, bool IsLittle)
45  : MachineInfo(EM, ELF::ELFOSABI_NONE, Is64, IsLittle) {}
46  // Default constructor for unset fields.
49  uint8_t OSABI;
50  bool Is64Bit;
52 };
53 
54 // Flags set by --set-section-flags or --rename-section. Interpretation of these
55 // is format-specific and not all flags are meaningful for all object file
56 // formats. This is a bitmask; many section flags may be set.
58  SecNone = 0,
59  SecAlloc = 1 << 0,
60  SecLoad = 1 << 1,
61  SecNoload = 1 << 2,
62  SecReadonly = 1 << 3,
63  SecDebug = 1 << 4,
64  SecCode = 1 << 5,
65  SecData = 1 << 6,
66  SecRom = 1 << 7,
67  SecMerge = 1 << 8,
68  SecStrings = 1 << 9,
69  SecContents = 1 << 10,
70  SecShare = 1 << 11,
71  SecExclude = 1 << 12,
72  LLVM_MARK_AS_BITMASK_ENUM(/*LargestValue=*/SecExclude)
73 };
74 
75 struct SectionRename {
79 };
80 
84 };
85 
86 enum class DiscardType {
87  None, // Default
88  All, // --discard-all (-x)
89  Locals, // --discard-locals (-X)
90 };
91 
92 enum class MatchStyle {
93  Literal, // Default for symbols.
94  Wildcard, // Default for sections, or enabled with --wildcard (-w).
95  Regex, // Enabled with --regex.
96 };
97 
99  StringRef Name;
100  // Regex is shared between multiple CommonConfig instances.
101  std::shared_ptr<Regex> R;
102  std::shared_ptr<GlobPattern> G;
103  bool IsPositiveMatch = true;
104 
105  NameOrPattern(StringRef N) : Name(N) {}
106  NameOrPattern(std::shared_ptr<Regex> R) : R(R) {}
107  NameOrPattern(std::shared_ptr<GlobPattern> G, bool IsPositiveMatch)
108  : G(G), IsPositiveMatch(IsPositiveMatch) {}
109 
110 public:
111  // ErrorCallback is used to handle recoverable errors. An Error returned
112  // by the callback aborts the parsing and is then returned by this function.
115  llvm::function_ref<Error(Error)> ErrorCallback);
116 
117  bool isPositiveMatch() const { return IsPositiveMatch; }
119  if (!R && !G)
120  return Name;
121  return None;
122  }
123  bool operator==(StringRef S) const {
124  return R ? R->match(S) : G ? G->match(S) : Name == S;
125  }
126  bool operator!=(StringRef S) const { return !operator==(S); }
127 };
128 
129 // Matcher that checks symbol or section names against the command line flags
130 // provided for that option.
131 class NameMatcher {
133  std::vector<NameOrPattern> PosPatterns;
134  std::vector<NameOrPattern> NegMatchers;
135 
136 public:
138  if (!Matcher)
139  return Matcher.takeError();
140  if (Matcher->isPositiveMatch()) {
141  if (Optional<StringRef> MaybeName = Matcher->getName())
142  PosNames.insert(CachedHashStringRef(*MaybeName));
143  else
144  PosPatterns.push_back(std::move(*Matcher));
145  } else {
146  NegMatchers.push_back(std::move(*Matcher));
147  }
148  return Error::success();
149  }
150  bool matches(StringRef S) const {
151  return (PosNames.contains(CachedHashStringRef(S)) ||
152  is_contained(PosPatterns, S)) &&
153  !is_contained(NegMatchers, S);
154  }
155  bool empty() const {
156  return PosNames.empty() && PosPatterns.empty() && NegMatchers.empty();
157  }
158 };
159 
160 enum class SymbolFlag {
161  Global,
162  Local,
163  Weak,
164  Default,
165  Hidden,
166  Protected,
167  File,
168  Section,
169  Object,
170  Function,
172  Debug,
173  Constructor,
174  Warning,
175  Indirect,
176  Synthetic,
177  UniqueObject,
178 };
179 
180 // Symbol info specified by --add-symbol option. Symbol flags not supported
181 // by a concrete format should be ignored.
186  std::vector<SymbolFlag> Flags;
187  std::vector<StringRef> BeforeSyms;
188 };
189 
190 // Specify section name and section body for newly added or updated section.
192  NewSectionInfo() = default;
193  NewSectionInfo(StringRef Name, std::unique_ptr<MemoryBuffer> &&Buffer)
194  : SectionName(Name), SectionData(std::move(Buffer)) {}
195 
197  std::shared_ptr<MemoryBuffer> SectionData;
198 };
199 
200 // Configuration for copying/stripping a single file.
201 struct CommonConfig {
202  // Main input/output options
207 
208  // Only applicable when --output-format!=binary (e.g. elf64-x86-64).
210 
211  // Advanced options
213  // Cached gnu_debuglink's target CRC
220 
221  // Repeated options
222  std::vector<NewSectionInfo> AddSection;
223  std::vector<StringRef> DumpSection;
224  std::vector<NewSectionInfo> UpdateSection;
225 
226  // Section matchers
230 
231  // Symbol matchers
239 
240  // Map options
246 
247  // Symbol info specified by --add-symbol option.
248  std::vector<NewSymbolInfo> SymbolsToAdd;
249 
250  // Boolean options
252  bool ExtractDWO = false;
253  bool ExtractMainPartition = false;
254  bool OnlyKeepDebug = false;
255  bool PreserveDates = false;
256  bool StripAll = false;
257  bool StripAllGNU = false;
258  bool StripDWO = false;
259  bool StripDebug = false;
260  bool StripNonAlloc = false;
261  bool StripSections = false;
262  bool StripUnneeded = false;
263  bool Weaken = false;
265 
267 };
268 
269 } // namespace objcopy
270 } // namespace llvm
271 
272 #endif // LLVM_OBJCOPY_COMMONCONFIG_H
llvm::objcopy::NameOrPattern::operator==
bool operator==(StringRef S) const
Definition: CommonConfig.h:123
llvm::objcopy::CommonConfig::PreserveDates
bool PreserveDates
Definition: CommonConfig.h:255
MemoryBuffer.h
llvm::objcopy::FileFormat::Unspecified
@ Unspecified
llvm::objcopy::SymbolFlag::Synthetic
@ Synthetic
ABI
Generic address nodes are lowered to some combination of target independent and machine specific ABI
Definition: Relocation.txt:34
llvm
This is an optimization pass for GlobalISel generic memory operations.
Definition: AddressRanges.h:18
llvm::objcopy::CommonConfig::OutputFilename
StringRef OutputFilename
Definition: CommonConfig.h:205
llvm::objcopy::CommonConfig::InputFilename
StringRef InputFilename
Definition: CommonConfig.h:203
Optional.h
llvm::objcopy::SymbolFlag::Section
@ Section
llvm::objcopy::MatchStyle::Wildcard
@ Wildcard
llvm::objcopy::SymbolFlag::Object
@ Object
LLVM_MARK_AS_BITMASK_ENUM
#define LLVM_MARK_AS_BITMASK_ENUM(LargestValue)
LLVM_MARK_AS_BITMASK_ENUM lets you opt in an individual enum type so you can perform bitwise operatio...
Definition: BitmaskEnum.h:41
StringRef.h
llvm::objcopy::CommonConfig::SymbolsToWeaken
NameMatcher SymbolsToWeaken
Definition: CommonConfig.h:237
llvm::objcopy::NewSectionInfo::SectionName
StringRef SectionName
Definition: CommonConfig.h:196
llvm::objcopy::NameMatcher::matches
bool matches(StringRef S) const
Definition: CommonConfig.h:150
llvm::objcopy::CommonConfig::OutputArch
Optional< MachineInfo > OutputArch
Definition: CommonConfig.h:209
llvm::objcopy::SecCode
@ SecCode
Definition: CommonConfig.h:64
llvm::Error::success
static ErrorSuccess success()
Create a success value.
Definition: Error.h:329
llvm::objcopy::SymbolFlag::Hidden
@ Hidden
llvm::objcopy::CommonConfig::SymbolsToRename
StringMap< StringRef > SymbolsToRename
Definition: CommonConfig.h:245
llvm::objcopy::CommonConfig::DiscardMode
DiscardType DiscardMode
Definition: CommonConfig.h:219
llvm::objcopy::CommonConfig::StripSections
bool StripSections
Definition: CommonConfig.h:261
llvm::objcopy::SectionRename::NewName
StringRef NewName
Definition: CommonConfig.h:77
llvm::objcopy::CommonConfig::StripNonAlloc
bool StripNonAlloc
Definition: CommonConfig.h:260
llvm::objcopy::SymbolFlag::Indirect
@ Indirect
llvm::objcopy::SectionRename::OriginalName
StringRef OriginalName
Definition: CommonConfig.h:76
llvm::Optional< SectionFlag >
llvm::objcopy::NameOrPattern
Definition: CommonConfig.h:98
llvm::objcopy::DiscardType
DiscardType
Definition: CommonConfig.h:86
llvm::objcopy::SecData
@ SecData
Definition: CommonConfig.h:65
llvm::Expected
Tagged union holding either a T or a Error.
Definition: APFloat.h:41
llvm::objcopy::MachineInfo::MachineInfo
MachineInfo(uint16_t EM, bool Is64, bool IsLittle)
Definition: CommonConfig.h:44
llvm::detail::DenseSetImpl< ValueT, DenseMap< ValueT, detail::DenseSetEmpty, DenseMapInfo< ValueT >, detail::DenseSetPair< ValueT > >, DenseMapInfo< ValueT > >::insert
std::pair< iterator, bool > insert(const ValueT &V)
Definition: DenseSet.h:206
llvm::objcopy::SecRom
@ SecRom
Definition: CommonConfig.h:66
llvm::objcopy::SecAlloc
@ SecAlloc
Definition: CommonConfig.h:59
llvm::ELF::ELFOSABI_NONE
@ ELFOSABI_NONE
Definition: ELF.h:341
llvm::objcopy::FileFormat::ELF
@ ELF
llvm::objcopy::SymbolFlag::Function
@ Function
llvm::DebugCompressionType::None
@ None
No compression.
CachedHashString.h
llvm::objcopy::CommonConfig::OnlySection
NameMatcher OnlySection
Definition: CommonConfig.h:228
llvm::objcopy::NewSymbolInfo::BeforeSyms
std::vector< StringRef > BeforeSyms
Definition: CommonConfig.h:187
llvm::objcopy::NameOrPattern::getName
Optional< StringRef > getName() const
Definition: CommonConfig.h:118
llvm::objcopy::CommonConfig::CompressionType
DebugCompressionType CompressionType
Definition: CommonConfig.h:266
llvm::objcopy::NewSectionInfo
Definition: CommonConfig.h:191
llvm::objcopy::SecNone
@ SecNone
Definition: CommonConfig.h:58
llvm::objcopy::CommonConfig::SymbolsToKeep
NameMatcher SymbolsToKeep
Definition: CommonConfig.h:233
llvm::objcopy::CommonConfig::SetSectionType
StringMap< uint64_t > SetSectionType
Definition: CommonConfig.h:244
llvm::objcopy::CommonConfig::AddSection
std::vector< NewSectionInfo > AddSection
Definition: CommonConfig.h:222
llvm::objcopy::MachineInfo::Is64Bit
bool Is64Bit
Definition: CommonConfig.h:50
DenseSet.h
llvm::objcopy::CommonConfig::KeepSection
NameMatcher KeepSection
Definition: CommonConfig.h:227
false
Definition: StackSlotColoring.cpp:141
llvm::objcopy::CommonConfig::DumpSection
std::vector< StringRef > DumpSection
Definition: CommonConfig.h:223
llvm::objcopy::SecStrings
@ SecStrings
Definition: CommonConfig.h:68
llvm::objcopy::SymbolFlag::IndirectFunction
@ IndirectFunction
llvm::objcopy::CommonConfig::SymbolsToGlobalize
NameMatcher SymbolsToGlobalize
Definition: CommonConfig.h:232
llvm::objcopy::FileFormat::IHex
@ IHex
llvm::objcopy::NameOrPattern::isPositiveMatch
bool isPositiveMatch() const
Definition: CommonConfig.h:117
llvm::objcopy::NewSectionInfo::SectionData
std::shared_ptr< MemoryBuffer > SectionData
Definition: CommonConfig.h:197
llvm::None
const NoneType None
Definition: None.h:24
llvm::objcopy::NewSectionInfo::NewSectionInfo
NewSectionInfo(StringRef Name, std::unique_ptr< MemoryBuffer > &&Buffer)
Definition: CommonConfig.h:193
llvm::objcopy::SymbolFlag::Default
@ Default
llvm::objcopy::NameMatcher::addMatcher
Error addMatcher(Expected< NameOrPattern > Matcher)
Definition: CommonConfig.h:137
llvm::objcopy::SymbolFlag::Protected
@ Protected
llvm::StringMap
StringMap - This is an unconventional map that is specialized for handling keys that are "strings",...
Definition: StringMap.h:110
llvm::objcopy::NameMatcher::empty
bool empty() const
Definition: CommonConfig.h:155
llvm::CachedHashStringRef
A container which contains a StringRef plus a precomputed hash.
Definition: CachedHashString.h:29
llvm::function_ref
An efficient, type-erasing, non-owning reference to a callable.
Definition: STLFunctionalExtras.h:36
llvm::objcopy::SecMerge
@ SecMerge
Definition: CommonConfig.h:67
llvm::objcopy::CommonConfig::StripUnneeded
bool StripUnneeded
Definition: CommonConfig.h:262
llvm::DenseSet
Implements a dense probed hash-table based set.
Definition: DenseSet.h:268
llvm::objcopy::SecDebug
@ SecDebug
Definition: CommonConfig.h:63
llvm::objcopy::CommonConfig::DeterministicArchives
bool DeterministicArchives
Definition: CommonConfig.h:251
llvm::objcopy::CommonConfig::SplitDWO
StringRef SplitDWO
Definition: CommonConfig.h:216
llvm::objcopy::CommonConfig::StripAllGNU
bool StripAllGNU
Definition: CommonConfig.h:257
llvm::objcopy::NewSectionInfo::NewSectionInfo
NewSectionInfo()=default
llvm::objcopy::MachineInfo::IsLittleEndian
bool IsLittleEndian
Definition: CommonConfig.h:51
llvm::objcopy::CommonConfig::SymbolsToLocalize
NameMatcher SymbolsToLocalize
Definition: CommonConfig.h:234
llvm::objcopy::CommonConfig::SymbolsToKeepGlobal
NameMatcher SymbolsToKeepGlobal
Definition: CommonConfig.h:238
uint64_t
llvm::objcopy::CommonConfig::UnneededSymbolsToRemove
NameMatcher UnneededSymbolsToRemove
Definition: CommonConfig.h:236
llvm::objcopy::MachineInfo
Definition: CommonConfig.h:40
move
compiles ldr LCPI1_0 ldr ldr mov lsr tst moveq r1 ldr LCPI1_1 and r0 bx lr It would be better to do something like to fold the shift into the conditional move
Definition: README.txt:546
llvm::objcopy::SecContents
@ SecContents
Definition: CommonConfig.h:69
llvm::objcopy::SectionFlagsUpdate::Name
StringRef Name
Definition: CommonConfig.h:82
llvm::detail::DenseSetImpl< ValueT, DenseMap< ValueT, detail::DenseSetEmpty, DenseMapInfo< ValueT >, detail::DenseSetPair< ValueT > >, DenseMapInfo< ValueT > >::empty
bool empty() const
Definition: DenseSet.h:80
llvm::objcopy::SymbolFlag::Local
@ Local
llvm::objcopy::FileFormat
FileFormat
Definition: CommonConfig.h:30
llvm::objcopy::SecLoad
@ SecLoad
Definition: CommonConfig.h:60
llvm::is_contained
bool is_contained(R &&Range, const E &Element)
Wrapper function around std::find to detect if an element exists in a container.
Definition: STLExtras.h:1673
ArrayRef.h
llvm::objcopy::SectionRename::NewFlags
Optional< SectionFlag > NewFlags
Definition: CommonConfig.h:78
G
#define G(x, y, z)
Definition: MD5.cpp:56
llvm::objcopy::FileFormat::Binary
@ Binary
llvm::objcopy::MachineInfo::EMachine
uint16_t EMachine
Definition: CommonConfig.h:48
Regex.h
llvm::move
OutputIt move(R &&Range, OutputIt Out)
Provide wrappers to std::move which take ranges instead of having to pass begin/end explicitly.
Definition: STLExtras.h:1666
llvm::objcopy::SymbolFlag::UniqueObject
@ UniqueObject
llvm::objcopy::CommonConfig::GnuDebugLinkCRC32
uint32_t GnuDebugLinkCRC32
Definition: CommonConfig.h:214
llvm::objcopy::NameMatcher
Definition: CommonConfig.h:131
llvm::objcopy::CommonConfig::StripDebug
bool StripDebug
Definition: CommonConfig.h:259
ELFTypes.h
llvm::objcopy::SymbolFlag::Global
@ Global
llvm::objcopy::NewSymbolInfo::SymbolName
StringRef SymbolName
Definition: CommonConfig.h:183
llvm::objcopy::CommonConfig::SymbolsToAdd
std::vector< NewSymbolInfo > SymbolsToAdd
Definition: CommonConfig.h:248
TargetOptions.h
llvm::DebugCompressionType
DebugCompressionType
Definition: Compression.h:27
llvm::StringRef
StringRef - Represent a constant reference to a string, i.e.
Definition: StringRef.h:50
llvm::objcopy::SecShare
@ SecShare
Definition: CommonConfig.h:70
llvm::objcopy::MatchStyle::Literal
@ Literal
llvm::detail::DenseSetImpl< ValueT, DenseMap< ValueT, detail::DenseSetEmpty, DenseMapInfo< ValueT >, detail::DenseSetPair< ValueT > >, DenseMapInfo< ValueT > >::contains
bool contains(const_arg_type_t< ValueT > V) const
Check if the set contains the given element.
Definition: DenseSet.h:185
uint32_t
llvm::objcopy::SymbolFlag::Warning
@ Warning
S
add sub stmia L5 ldr r0 bl L_printf $stub Instead of a and a wouldn t it be better to do three moves *Return an aggregate type is even return S
Definition: README.txt:210
llvm::objcopy::CommonConfig::SymbolsPrefix
StringRef SymbolsPrefix
Definition: CommonConfig.h:217
llvm::objcopy::SecExclude
@ SecExclude
Definition: CommonConfig.h:71
llvm::objcopy::SymbolFlag::File
@ File
llvm::objcopy::CommonConfig::StripDWO
bool StripDWO
Definition: CommonConfig.h:258
llvm::objcopy::CommonConfig::SetSectionAlignment
StringMap< uint64_t > SetSectionAlignment
Definition: CommonConfig.h:242
llvm::objcopy::DiscardType::None
@ None
llvm::objcopy::SectionRename
Definition: CommonConfig.h:75
GlobPattern.h
llvm::objcopy::SectionFlagsUpdate::NewFlags
SectionFlag NewFlags
Definition: CommonConfig.h:83
llvm::GraphProgram::Name
Name
Definition: GraphWriter.h:50
std
Definition: BitVector.h:851
llvm::objcopy::NameOrPattern::operator!=
bool operator!=(StringRef S) const
Definition: CommonConfig.h:126
uint16_t
llvm::objcopy::SymbolFlag::Constructor
@ Constructor
llvm::objcopy::MatchStyle
MatchStyle
Definition: CommonConfig.h:92
llvm::objcopy::SymbolFlag::Debug
@ Debug
llvm::SectionName
Definition: DWARFSection.h:21
llvm::Error
Lightweight error class with error context and mandatory checking.
Definition: Error.h:155
llvm::objcopy::CommonConfig::UpdateSection
std::vector< NewSectionInfo > UpdateSection
Definition: CommonConfig.h:224
llvm::objcopy::SectionFlagsUpdate
Definition: CommonConfig.h:81
llvm::objcopy::DiscardType::All
@ All
llvm::objcopy::CommonConfig::StripAll
bool StripAll
Definition: CommonConfig.h:256
llvm::objcopy::DiscardType::Locals
@ Locals
llvm::objcopy::NameOrPattern::create
static Expected< NameOrPattern > create(StringRef Pattern, MatchStyle MS, llvm::function_ref< Error(Error)> ErrorCallback)
Definition: CommonConfig.cpp:15
llvm::objcopy::SymbolFlag::Weak
@ Weak
llvm::objcopy::CommonConfig::ExtractPartition
Optional< StringRef > ExtractPartition
Definition: CommonConfig.h:215
llvm::objcopy::NewSymbolInfo::Flags
std::vector< SymbolFlag > Flags
Definition: CommonConfig.h:186
llvm::Expected::takeError
Error takeError()
Take ownership of the stored error.
Definition: Error.h:597
llvm::objcopy::MachineInfo::MachineInfo
MachineInfo()
Definition: CommonConfig.h:47
llvm::objcopy::CommonConfig::SectionsToRename
StringMap< SectionRename > SectionsToRename
Definition: CommonConfig.h:241
llvm::Pattern
Definition: FileCheckImpl.h:614
llvm::objcopy::SectionFlag
SectionFlag
Definition: CommonConfig.h:57
SmallVector.h
llvm::objcopy::CommonConfig::SymbolsToRemove
NameMatcher SymbolsToRemove
Definition: CommonConfig.h:235
llvm::objcopy::NewSymbolInfo::SectionName
StringRef SectionName
Definition: CommonConfig.h:184
N
#define N
llvm::objcopy::CommonConfig::OutputFormat
FileFormat OutputFormat
Definition: CommonConfig.h:206
llvm::objcopy::CommonConfig::DecompressDebugSections
bool DecompressDebugSections
Definition: CommonConfig.h:264
llvm::objcopy::CommonConfig::ExtractMainPartition
bool ExtractMainPartition
Definition: CommonConfig.h:253
llvm::objcopy::NewSymbolInfo
Definition: CommonConfig.h:182
llvm::objcopy::CommonConfig::ExtractDWO
bool ExtractDWO
Definition: CommonConfig.h:252
llvm::objcopy::CommonConfig::ToRemove
NameMatcher ToRemove
Definition: CommonConfig.h:229
llvm::objcopy::CommonConfig::SetSectionFlags
StringMap< SectionFlagsUpdate > SetSectionFlags
Definition: CommonConfig.h:243
llvm::objcopy::CommonConfig
Definition: CommonConfig.h:201
StringMap.h
llvm::objcopy::SymbolFlag
SymbolFlag
Definition: CommonConfig.h:160
llvm::objcopy::MachineInfo::OSABI
uint8_t OSABI
Definition: CommonConfig.h:49
llvm::objcopy::SecNoload
@ SecNoload
Definition: CommonConfig.h:61
llvm::objcopy::CommonConfig::Weaken
bool Weaken
Definition: CommonConfig.h:263
llvm::Value
LLVM Value Representation.
Definition: Value.h:74
llvm::objcopy::CommonConfig::AddGnuDebugLink
StringRef AddGnuDebugLink
Definition: CommonConfig.h:212
llvm::objcopy::CommonConfig::AllocSectionsPrefix
StringRef AllocSectionsPrefix
Definition: CommonConfig.h:218
llvm::objcopy::MatchStyle::Regex
@ Regex
llvm::objcopy::CommonConfig::OnlyKeepDebug
bool OnlyKeepDebug
Definition: CommonConfig.h:254
llvm::objcopy::MachineInfo::MachineInfo
MachineInfo(uint16_t EM, uint8_t ABI, bool Is64, bool IsLittle)
Definition: CommonConfig.h:41
llvm::objcopy::SecReadonly
@ SecReadonly
Definition: CommonConfig.h:62
llvm::objcopy::CommonConfig::InputFormat
FileFormat InputFormat
Definition: CommonConfig.h:204