Home | History | Annotate | Download | only in Target

Lines Matching refs:ELF

9 #include <llvm/Support/ELF.h>
64 return sizeof(llvm::ELF::Elf64_Ehdr)+10*sizeof(llvm::ELF::Elf64_Phdr);
214 /// In ELF executable files, regular name pools are .symtab, .strtab,
226 // at index 0 (STN_UNDEF). See ELF Spec Book I, p1-21.
290 sizeof(llvm::ELF::Elf32_Word);
295 file_format->getDynSymTab().setSize(dynsym*sizeof(llvm::ELF::Elf32_Sym));
297 file_format->getDynSymTab().setSize(dynsym*sizeof(llvm::ELF::Elf64_Sym));
305 file_format->getSymTab().setSize(symtab*sizeof(llvm::ELF::Elf32_Sym));
307 file_format->getSymTab().setSize(symtab*sizeof(llvm::ELF::Elf64_Sym));
366 llvm::ELF::Elf32_Sym* symtab32 = NULL;
367 llvm::ELF::Elf64_Sym* symtab64 = NULL;
369 symtab32 = (llvm::ELF::Elf32_Sym*)symtab_region->start();
371 symtab64 = (llvm::ELF::Elf64_Sym*)symtab_region->start();
380 // initialize the first ELF symbol
482 llvm::ELF::Elf32_Sym* symtab32 = NULL;
483 llvm::ELF::Elf64_Sym* symtab64 = NULL;
485 symtab32 = (llvm::ELF::Elf32_Sym*)symtab_region->start();
487 symtab64 = (llvm::ELF::Elf64_Sym*)symtab_region->start();
493 // initialize the first ELF symbol
573 (*dt_need)->setValue(llvm::ELF::DT_NEEDED, strtabsize);
580 (*dt_need)->setValue(llvm::ELF::DT_NEEDED, strtabsize);
589 // initialize value of ELF .dynamic section
616 StringHash<ELF> hash_func;
645 if (0 == (pSectHdr.flag() & llvm::ELF::SHF_ALLOC))
648 bool is_write = (pSectHdr.flag() & llvm::ELF::SHF_WRITE) != 0;
649 bool is_exec = (pSectHdr.flag() & llvm::ELF::SHF_EXECINSTR) != 0;
676 if (pSectHdr.type() == llvm::ELF::SHT_PREINIT_ARRAY ||
677 pSectHdr.type() == llvm::ELF::SHT_INIT_ARRAY ||
678 pSectHdr.type() == llvm::ELF::SHT_FINI_ARRAY ||
734 bind = llvm::ELF::STB_LOCAL;
736 bind = llvm::ELF::STB_GLOBAL;
738 bind = llvm::ELF::STB_WEAK;
741 bind = llvm::ELF::STB_GLOBAL;
744 if (pSymbol.visibility() == llvm::ELF::STV_INTERNAL ||
745 pSymbol.visibility() == llvm::ELF::STV_HIDDEN)
746 bind = llvm::ELF::STB_LOCAL;
765 return llvm::ELF::SHN_ABS;
767 return llvm::ELF::SHN_COMMON;
769 return llvm::ELF::SHN_UNDEF;
775 return llvm::ELF::SHN_ABS;
790 /// emitProgramHdrs - emit ELF program headers
806 m_ELFSegmentTable.produce(llvm::ELF::PT_PHDR);
811 ELFSegment* interp_seg = m_ELFSegmentTable.produce(llvm::ELF::PT_INTERP);
822 if (0 == ((*sect)->flag() & llvm::ELF::SHF_ALLOC) &&
828 if ((prev_seg_flag & llvm::ELF::PF_W) ^ (cur_seg_flag & llvm::ELF::PF_W) ||
831 load_seg = m_ELFSegmentTable.produce(llvm::ELF::PT_LOAD);
854 ELFSegment* dyn_seg = m_ELFSegmentTable.produce(llvm::ELF::PT_DYNAMIC);
855 dyn_seg->setFlag(llvm::ELF::PF_R | llvm::ELF::PF_W);
867 if (llvm::ELF::PT_PHDR == segment.type()) {
870 offset = sizeof(llvm::ELF::Elf32_Ehdr);
871 phdr_size = sizeof(llvm::ELF::Elf32_Phdr);
874 offset = sizeof(llvm::ELF::Elf64_Ehdr);
875 phdr_size = sizeof(llvm::ELF::Elf64_Phdr);
909 start_offset = sizeof(llvm::ELF::Elf32_Ehdr);
910 phdr_size = sizeof(llvm::ELF::Elf32_Phdr);
911 // Program header must start directly after ELF header
915 llvm::ELF::Elf32_Phdr* phdr = (llvm::ELF::Elf32_Phdr*)region->start();
938 start_offset = sizeof(llvm::ELF::Elf64_Ehdr);
939 phdr_size = sizeof(llvm::ELF::Elf64_Phdr);
940 // Program header must start directly after ELF header
943 llvm::ELF::Elf64_Phdr* phdr = (llvm::ELF::Elf64_Phdr*)region->start();