LLVM 20.0.0git
Namespaces | Classes | Enumerations | Functions
llvm::objcopy Namespace Reference

Namespaces

namespace  coff
 
namespace  elf
 
namespace  macho
 
namespace  wasm
 
namespace  xcoff
 

Classes

struct  AddressUpdate
 
struct  COFFConfig
 
struct  CommonConfig
 
struct  ConfigManager
 
struct  ELFConfig
 
struct  MachineInfo
 
struct  MachOConfig
 
class  MultiFormatConfig
 
class  NameMatcher
 
class  NameOrPattern
 
struct  NewSectionInfo
 
struct  NewSymbolInfo
 
struct  SectionFlagsUpdate
 
struct  SectionPatternAddressUpdate
 
struct  SectionRename
 
struct  WasmConfig
 
struct  XCOFFConfig
 

Enumerations

enum class  FileFormat {
  Unspecified , ELF , Binary , IHex ,
  SREC
}
 
enum  SectionFlag {
  SecNone = 0 , SecAlloc = 1 << 0 , SecLoad = 1 << 1 , SecNoload = 1 << 2 ,
  SecReadonly = 1 << 3 , SecDebug = 1 << 4 , SecCode = 1 << 5 , SecData = 1 << 6 ,
  SecRom = 1 << 7 , SecMerge = 1 << 8 , SecStrings = 1 << 9 , SecContents = 1 << 10 ,
  SecShare = 1 << 11 , SecExclude = 1 << 12 , SecLarge = 1 << 13
}
 
enum class  DiscardType { None , All , Locals }
 
enum class  MatchStyle { Literal , Wildcard , Regex }
 
enum class  AdjustKind { Set , Add , Subtract }
 
enum class  SymbolFlag {
  Global , Local , Weak , Default ,
  Hidden , Protected , File , Section ,
  Object , Function , IndirectFunction , Debug ,
  Constructor , Warning , Indirect , Synthetic ,
  UniqueObject
}
 

Functions

Error executeObjcopyOnArchive (const MultiFormatConfig &Config, const object::Archive &Ar)
 Applies the transformations described by Config to each member in archive Ar.
 
Error executeObjcopyOnBinary (const MultiFormatConfig &Config, object::Binary &In, raw_ostream &Out)
 Applies the transformations described by Config to In and writes the result into Out.
 
Expected< std::vector< NewArchiveMember > > createNewArchiveMembers (const MultiFormatConfig &Config, const object::Archive &Ar)
 Applies the transformations described by Config to each member in archive Ar.
 
static Error deepWriteArchive (StringRef ArcName, ArrayRef< NewArchiveMember > NewMembers, SymtabWritingMode WriteSymtab, object::Archive::Kind Kind, bool Deterministic, bool Thin)
 

Enumeration Type Documentation

◆ AdjustKind

enum class llvm::objcopy::AdjustKind
strong
Enumerator
Set 
Add 
Subtract 

Definition at line 154 of file CommonConfig.h.

◆ DiscardType

enum class llvm::objcopy::DiscardType
strong
Enumerator
None 
All 
Locals 

Definition at line 80 of file CommonConfig.h.

◆ FileFormat

enum class llvm::objcopy::FileFormat
strong
Enumerator
Unspecified 
ELF 
Binary 
IHex 
SREC 

Definition at line 28 of file CommonConfig.h.

◆ MatchStyle

enum class llvm::objcopy::MatchStyle
strong
Enumerator
Literal 
Wildcard 
Regex 

Definition at line 86 of file CommonConfig.h.

◆ SectionFlag

Enumerator
SecNone 
SecAlloc 
SecLoad 
SecNoload 
SecReadonly 
SecDebug 
SecCode 
SecData 
SecRom 
SecMerge 
SecStrings 
SecContents 
SecShare 
SecExclude 
SecLarge 

Definition at line 50 of file CommonConfig.h.

◆ SymbolFlag

enum class llvm::objcopy::SymbolFlag
strong
Enumerator
Global 
Local 
Weak 
Default 
Hidden 
Protected 
File 
Section 
Object 
Function 
IndirectFunction 
Debug 
Constructor 
Warning 
Indirect 
Synthetic 
UniqueObject 

Definition at line 166 of file CommonConfig.h.

Function Documentation

◆ createNewArchiveMembers()

Expected< std::vector< NewArchiveMember > > llvm::objcopy::createNewArchiveMembers ( const MultiFormatConfig Config,
const object::Archive Ar 
)

◆ deepWriteArchive()

static Error llvm::objcopy::deepWriteArchive ( StringRef  ArcName,
ArrayRef< NewArchiveMember NewMembers,
SymtabWritingMode  WriteSymtab,
object::Archive::Kind  Kind,
bool  Deterministic,
bool  Thin 
)
static

◆ executeObjcopyOnArchive()

Error llvm::objcopy::executeObjcopyOnArchive ( const MultiFormatConfig Config,
const object::Archive Ar 
)

Applies the transformations described by Config to each member in archive Ar.

Writes a result in a file specified by Config.OutputFilename.

Returns
any Error encountered whilst performing the operation.

Definition at line 98 of file Archive.cpp.

References Config, createNewArchiveMembers(), deepWriteArchive(), llvm::objcopy::CommonConfig::DeterministicArchives, llvm::object::Archive::hasSymbolTable(), llvm::object::Archive::isThin(), llvm::object::Archive::kind(), llvm::NormalSymtab, llvm::NoSymtab, llvm::objcopy::CommonConfig::OutputFilename, and llvm::Expected< T >::takeError().

◆ executeObjcopyOnBinary()

Error llvm::objcopy::executeObjcopyOnBinary ( const MultiFormatConfig Config,
object::Binary In,
raw_ostream Out 
)

Applies the transformations described by Config to In and writes the result into Out.

The function executeObjcopyOnBinary does the dispatch based on the format of the input binary (ELF, MachO or COFF).

This function does the dispatch based on the format of the input binary (COFF, ELF, MachO or wasm).

Returns
any Error encountered whilst performing the operation.

Definition at line 38 of file ObjCopy.cpp.

References Config, llvm::createStringError(), llvm::objcopy::coff::executeObjcopyOnBinary(), llvm::objcopy::elf::executeObjcopyOnBinary(), llvm::objcopy::macho::executeObjcopyOnBinary(), llvm::objcopy::wasm::executeObjcopyOnBinary(), llvm::objcopy::xcoff::executeObjcopyOnBinary(), and llvm::objcopy::macho::executeObjcopyOnMachOUniversalBinary().

Referenced by createNewArchiveMembers().