//===- CommonConfig.h -------------------------------------------*- C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// #ifndef LLVM_OBJCOPY_COMMONCONFIG_H #define LLVM_OBJCOPY_COMMONCONFIG_H #include "llvm/ADT/ArrayRef.h" #include "llvm/ADT/CachedHashString.h" #include "llvm/ADT/DenseSet.h" #include "llvm/ADT/SmallVector.h" #include "llvm/ADT/StringMap.h" #include "llvm/ADT/StringRef.h" #include "llvm/Object/ELFTypes.h" #include "llvm/Support/Compression.h" #include "llvm/Support/GlobPattern.h" #include "llvm/Support/MemoryBuffer.h" #include "llvm/Support/Regex.h" #include <optional> namespace llvm { namespace objcopy { enum class FileFormat { … }; // This type keeps track of the machine info for various architectures. This // lets us map architecture names to ELF types and the e_machine value of the // ELF file. struct MachineInfo { … }; // Flags set by --set-section-flags or --rename-section. Interpretation of these // is format-specific and not all flags are meaningful for all object file // formats. This is a bitmask; many section flags may be set. enum SectionFlag { … }; struct SectionRename { … }; struct SectionFlagsUpdate { … }; enum class DiscardType { … }; enum class MatchStyle { … }; class NameOrPattern { … }; // Matcher that checks symbol or section names against the command line flags // provided for that option. class NameMatcher { … }; enum class AdjustKind { … }; struct AddressUpdate { … }; struct SectionPatternAddressUpdate { … }; enum class SymbolFlag { … }; // Symbol info specified by --add-symbol option. Symbol flags not supported // by a concrete format should be ignored. struct NewSymbolInfo { … }; // Specify section name and section body for newly added or updated section. struct NewSectionInfo { … }; // Configuration for copying/stripping a single file. struct CommonConfig { … }; } // namespace objcopy } // namespace llvm #endif // LLVM_OBJCOPY_COMMONCONFIG_H