LLVM: lib/ObjCopy/ELF/ELFObjcopy.cpp File Reference (original) (raw)
Go to the source code of this file.
◆ SectionPred
◆ addSymbol()
Definition at line 559 of file ELFObjcopy.cpp.
References llvm::objcopy:🧝:SectionBase::Addr, llvm::objcopy::Default, llvm::objcopy::File, llvm::objcopy::Function, llvm::objcopy::Global, llvm::objcopy::Hidden, llvm::objcopy::IndirectFunction, llvm::objcopy::Local, llvm::objcopy::Object, llvm::objcopy::Protected, llvm::objcopy::Section, llvm::ELF::SHN_ABS, llvm::ELF::STB_GLOBAL, llvm::ELF::STB_LOCAL, llvm::ELF::STB_WEAK, llvm::ELF::STT_FILE, llvm::ELF::STT_FUNC, llvm::ELF::STT_GNU_IFUNC, llvm::ELF::STT_NOTYPE, llvm::ELF::STT_OBJECT, llvm::ELF::STT_SECTION, llvm::ELF::STV_DEFAULT, llvm::ELF::STV_HIDDEN, llvm::ELF::STV_PROTECTED, llvm::objcopy:🧝:SYMBOL_SIMPLE_INDEX, and llvm::objcopy::Weak.
Referenced by llvm::jitlink::SymbolAddressMap::addSymbols(), and handleArgs().
◆ createELFWriter()
◆ createWriter()
◆ dumpSectionToFile()
◆ getNewShfFlags()
Definition at line 66 of file ELFObjcopy.cpp.
References llvm::createStringError(), llvm::ELF::EM_X86_64, llvm::invalid_argument, llvm::objcopy::SecAlloc, llvm::objcopy::SecCode, llvm::objcopy::SecExclude, llvm::objcopy::SecLarge, llvm::objcopy::SecMerge, llvm::objcopy::SecReadonly, llvm::objcopy::SecStrings, llvm::ELF::SHF_ALLOC, llvm::ELF::SHF_EXCLUDE, llvm::ELF::SHF_EXECINSTR, llvm::ELF::SHF_MERGE, llvm::ELF::SHF_STRINGS, llvm::ELF::SHF_WRITE, and llvm::ELF::SHF_X86_64_LARGE.
Referenced by setSectionFlagsAndType().
◆ getOutputElfType() [1/2]
◆ getOutputElfType() [2/2]
◆ getSectionFlagsPreserveMask()
◆ handleArgs()
Definition at line 783 of file ELFObjcopy.cpp.
References llvm::objcopy::Add, llvm::objcopy::CommonConfig::AddGnuDebugLink, llvm::objcopy::CommonConfig::AddSection, addSymbol(), llvm::objcopy::CommonConfig::AllocSectionsPrefix, llvm::objcopy::ELFConfig::AllowBrokenLinks, llvm::big, llvm::objcopy::CommonConfig::ChangeSectionAddress, llvm::objcopy::CommonConfig::ChangeSectionLMAValAll, llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::count(), llvm::createFileError(), llvm::Data, llvm::objcopy::CommonConfig::DumpSection, dumpSectionToFile(), llvm::dyn_cast(), E(), llvm::objcopy:🧝:ELFT_ELF32LE, llvm::objcopy:🧝:ELFT_ELF64LE, llvm::StringMapImpl::empty(), llvm::StringRef::empty(), llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::end(), llvm::StringMap< ValueTy, AllocatorTy >::end(), llvm::objcopy::ELFConfig::EntryExpr, llvm::objcopy::CommonConfig::ErrorCallback, llvm::ELF::ET_REL, llvm::objcopy::CommonConfig::ExtractDWO, llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::find(), llvm::StringMap< ValueTy, AllocatorTy >::find(), llvm::objcopy:🧝:SectionBase::Flags, llvm::objcopy::CommonConfig::GnuDebugLinkCRC32, handleUserSection(), I, llvm::objcopy::CommonConfig::InputFilename, llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::insert(), llvm::invalid_argument, llvm::object::invalid_file_type, llvm::little, llvm::objcopy:🧝:SectionBase::Name, llvm::objcopy::SectionFlagsUpdate::NewFlags, llvm::objcopy::SectionRename::NewFlags, llvm::objcopy::SectionRename::NewName, llvm::objcopy::ELFConfig::NewSymbolVisibility, llvm::objcopy::ELFConfig::NotesToRemove, llvm::objcopy::CommonConfig::OnlyKeepDebug, llvm::objcopy::CommonConfig::OutputArch, removeNotes(), replaceAndRemoveSections(), llvm::reverse(), llvm::objcopy::CommonConfig::SectionsToRename, llvm::objcopy::Set, llvm::objcopy::CommonConfig::SetSectionAlignment, llvm::objcopy::CommonConfig::SetSectionFlags, setSectionFlagsAndType(), llvm::objcopy::CommonConfig::SetSectionType, setSectionType(), llvm::ELF::SHF_ALLOC, llvm::ELF::SHT_NOBITS, llvm::ELF::SHT_NOTE, llvm::objcopy::CommonConfig::SplitDWO, llvm::objcopy::Subtract, llvm::Error::success(), llvm::objcopy::CommonConfig::SymbolsToAdd, llvm::StringMap< ValueTy, AllocatorTy >::try_emplace(), llvm::objcopy:🧝:SectionBase::Type, updateAndRemoveSymbols(), llvm::objcopy::CommonConfig::UpdateSection, llvm::Twine::utohexstr(), verifyNoteSection(), and llvm::objcopy::ELFConfig::VerifyNoteSections.
Referenced by llvm::objcopy:🧝:executeObjcopyOnBinary(), llvm::objcopy:🧝:executeObjcopyOnIHex(), and llvm::objcopy:🧝:executeObjcopyOnRawBinary().
◆ handleUserSection()
◆ isAArch64MappingSymbol()
| bool isAArch64MappingSymbol ( const Symbol & Sym) | static |
|---|
◆ isArmMappingSymbol()
| bool isArmMappingSymbol ( const Symbol & Sym) | static |
|---|
◆ isDebugSection()
◆ isDWOSection()
◆ isRequiredByABISymbol()
◆ isUnneededSymbol()
| bool isUnneededSymbol ( const Symbol & Sym) | static |
|---|
◆ onlyKeepDWOPred()
◆ removeNotes()
◆ replaceAndRemoveSections()
Definition at line 411 of file ELFObjcopy.cpp.
References llvm::objcopy::ELFConfig::AllowBrokenLinks, E(), llvm::objcopy::NameMatcher::empty(), llvm::objcopy::CommonConfig::ExtractDWO, llvm::objcopy::CommonConfig::ExtractMainPartition, llvm::objcopy::CommonConfig::ExtractPartition, isDebugSection(), isDWOSection(), llvm::objcopy::ELFConfig::KeepFileSymbols, llvm::objcopy::CommonConfig::KeepSection, llvm::objcopy::NameMatcher::matches(), onlyKeepDWOPred(), llvm::objcopy::CommonConfig::OnlySection, llvm::ELF::SHF_ALLOC, llvm::ELF::SHT_ARM_ATTRIBUTES, llvm::ELF::SHT_LLVM_PART_EHDR, llvm::ELF::SHT_LLVM_PART_PHDR, llvm::ELF::SHT_REL, llvm::ELF::SHT_RELA, llvm::ELF::SHT_STRTAB, llvm::ELF::SHT_SYMTAB, llvm::StringRef::starts_with(), llvm::objcopy::CommonConfig::StripAll, llvm::objcopy::CommonConfig::StripAllGNU, llvm::objcopy::CommonConfig::StripDebug, llvm::objcopy::CommonConfig::StripDWO, llvm::objcopy::CommonConfig::StripNonAlloc, llvm::objcopy::CommonConfig::StripSections, llvm::objcopy::CommonConfig::StripUnneeded, llvm::Error::success(), llvm::objcopy::CommonConfig::SymbolsToKeep, and llvm::objcopy::CommonConfig::ToRemove.
Referenced by handleArgs().
◆ setSectionFlagsAndType()
Definition at line 113 of file ELFObjcopy.cpp.
References llvm::objcopy:🧝:SectionBase::Flags, getNewShfFlags(), getSectionFlagsPreserveMask(), llvm::objcopy::SecContents, llvm::objcopy::SecLoad, setSectionType(), llvm::ELF::SHF_ALLOC, llvm::ELF::SHT_NOBITS, llvm::ELF::SHT_PROGBITS, llvm::Error::success(), llvm::Expected< T >::takeError(), and llvm::objcopy:🧝:SectionBase::Type.
Referenced by handleArgs().
◆ setSectionType()
◆ updateAndRemoveSymbols()
Definition at line 299 of file ELFObjcopy.cpp.
References llvm::objcopy::All, llvm::objcopy::CommonConfig::DiscardMode, llvm::objcopy::NameMatcher::empty(), llvm::StringRef::empty(), I, isRequiredByABISymbol(), isUnneededSymbol(), llvm::objcopy::ELFConfig::KeepFileSymbols, llvm::objcopy::ELFConfig::LocalizeHidden, llvm::objcopy::Locals, llvm::objcopy::NameMatcher::matches(), llvm::objcopy::None, llvm::objcopy::CommonConfig::OnlySection, llvm::ELF::SHN_UNDEF, llvm::StringRef::size(), llvm::StringRef::starts_with(), llvm::ELF::STB_GLOBAL, llvm::ELF::STB_LOCAL, llvm::ELF::STB_WEAK, llvm::objcopy::CommonConfig::StripAll, llvm::objcopy::CommonConfig::StripAllGNU, llvm::objcopy::CommonConfig::StripDebug, llvm::objcopy::CommonConfig::StripUnneeded, llvm::ELF::STT_FILE, llvm::ELF::STT_SECTION, llvm::ELF::STV_HIDDEN, llvm::ELF::STV_INTERNAL, llvm::Error::success(), llvm::objcopy::CommonConfig::SymbolsPrefix, llvm::objcopy::CommonConfig::SymbolsPrefixRemove, llvm::objcopy::CommonConfig::SymbolsToGlobalize, llvm::objcopy::CommonConfig::SymbolsToKeep, llvm::objcopy::CommonConfig::SymbolsToKeepGlobal, llvm::objcopy::CommonConfig::SymbolsToLocalize, llvm::objcopy::CommonConfig::SymbolsToRemove, llvm::objcopy::CommonConfig::SymbolsToRename, llvm::objcopy::ELFConfig::SymbolsToSetVisibility, llvm::objcopy::CommonConfig::SymbolsToSkip, llvm::objcopy::CommonConfig::SymbolsToWeaken, llvm::objcopy::CommonConfig::UnneededSymbolsToRemove, and llvm::objcopy::CommonConfig::Weaken.
Referenced by handleArgs().