Home | History | Annotate | Download | only in compiler

Lines Matching full:elf_file

21 #include "elf_file.h"
30 UniquePtr<ElfFile> elf_file(ElfFile::Open(file, true, false));
31 CHECK(elf_file.get() != NULL);
34 ::llvm::ELF::Elf32_Addr oatdata_address = ElfWriter::GetOatDataAddress(elf_file.get());
37 if (!FixupDynamic(*elf_file.get(), base_address)) {
41 if (!FixupSectionHeaders(*elf_file.get(), base_address)) {
45 if (!FixupProgramHeaders(*elf_file.get(), base_address)) {
49 if (!FixupSymbols(*elf_file.get(), base_address, true)) {
53 if (!FixupSymbols(*elf_file.get(), base_address, false)) {
57 if (!FixupRelocations(*elf_file.get(), base_address)) {
82 bool ElfFixup::FixupDynamic(ElfFile& elf_file, uintptr_t base_address) {
83 for (::llvm::ELF::Elf32_Word i = 0; i < elf_file.GetDynamicNum(); i++) {
84 ::llvm::ELF::Elf32_Dyn& elf_dyn = elf_file.GetDynamic(i);
139 if (elf_file.GetHeader().e_machine == ::llvm::ELF::EM_MIPS) {
180 elf_file.GetFile().GetPath().c_str(), i,
190 bool ElfFixup::FixupSectionHeaders(ElfFile& elf_file, uintptr_t base_address) {
191 for (::llvm::ELF::Elf32_Word i = 0; i < elf_file.GetSectionHeaderNum(); i++) {
192 ::llvm::ELF::Elf32_Shdr& sh = elf_file.GetSectionHeader(i);
199 elf_file.GetFile().GetPath().c_str(), i,
207 bool ElfFixup::FixupProgramHeaders(ElfFile& elf_file, uintptr_t base_address) {
209 for (::llvm::ELF::Elf32_Word i = 0; i < elf_file.GetProgramHeaderNum(); i++) {
210 ::llvm::ELF::Elf32_Phdr& ph = elf_file.GetProgramHeader(i);
211 CHECK_EQ(ph.p_vaddr, ph.p_paddr) << elf_file.GetFile().GetPath() << " i=" << i;
213 << elf_file.GetFile().GetPath() << " i=" << i;
216 elf_file.GetFile().GetPath().c_str(), i,
222 << elf_file.GetFile().GetPath() << " i=" << i;
227 bool ElfFixup::FixupSymbols(ElfFile& elf_file, uintptr_t base_address, bool dynamic) {
230 ::llvm::ELF::Elf32_Shdr* symbol_section = elf_file.FindSectionByType(section_type);
233 CHECK(!dynamic) << elf_file.GetFile().GetPath();
236 for (uint32_t i = 0; i < elf_file.GetSymbolNum(*symbol_section); i++) {
237 ::llvm::ELF::Elf32_Sym& symbol = elf_file.GetSymbol(section_type, i);
241 elf_file.GetFile().GetPath().c_str(), i,
250 bool ElfFixup::FixupRelocations(ElfFile& elf_file, uintptr_t base_address) {
251 for (llvm::ELF::Elf32_Word i = 0; i < elf_file.GetSectionHeaderNum(); i++) {
252 llvm::ELF::Elf32_Shdr& sh = elf_file.GetSectionHeader(i);
254 for (uint32_t i = 0; i < elf_file.GetRelNum(sh); i++) {
255 llvm::ELF::Elf32_Rel& rel = elf_file.GetRel(sh, i);
258 elf_file.GetFile().GetPath().c_str(), i,
264 for (uint32_t i = 0; i < elf_file.GetRelaNum(sh); i++) {
265 llvm::ELF::Elf32_Rela& rela = elf_file.GetRela(sh, i);
268 elf_file.GetFile().GetPath().c_str(), i,