for (int i = 0; i < swab_elfhword(ehdr->e_shnum); i++) { unsignedlong info, flags; bool prel64 = false;
Elf64_Rela *rela; int numrela;
if (swab_elfword(shdr[i].sh_type) != SHT_RELA) continue;
/* only consider RELA sections operating on data */
info = swab_elfword(shdr[i].sh_info);
flags = swab_elfxword(shdr[info].sh_flags); if ((flags & (SHF_ALLOC | SHF_EXECINSTR)) != SHF_ALLOC) continue;
/* * We generally don't permit ABS64 relocations in the code that * runs before relocation processing occurs. If statically * initialized absolute symbol references are unavoidable, they * may be emitted into a *.rodata.prel64 section and they will * be converted to place-relative 64-bit references. This * requires special handling in the referring code.
*/ if (strstr(strtab + swab_elfword(shdr[info].sh_name), ".rodata.prel64")) {
prel64 = true;
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.