added DT_INIT.DT_FINI,DT_OS_PLTGOT,DT_OS_SYMTAB,DT_OS_SYMTABSZ

This commit is contained in:
georgemoralis 2023-06-08 19:05:03 +03:00
parent 8932be618b
commit d995a0e286
3 changed files with 45 additions and 5 deletions

View file

@ -180,6 +180,21 @@ void Linker::LoadDynamicInfo(Module* m)
case DT_OS_STRSZ:
m->dynamic_info->str_table_size = dyn->d_un.d_val;
break;
case DT_OS_SYMTAB:
m->dynamic_info->symbol_table = reinterpret_cast<elf_symbol*>(static_cast<uint8_t*>(m->m_dynamic_data) + dyn->d_un.d_ptr);
break;
case DT_OS_SYMTABSZ:
m->dynamic_info->symbol_table_total_size = dyn->d_un.d_val;
break;
case DT_INIT:
m->dynamic_info->init_virtual_addr = dyn->d_un.d_ptr;
break;
case DT_FINI:
m->dynamic_info->fini_virtual_addr = dyn->d_un.d_ptr;
break;
case DT_OS_PLTGOT:
m->dynamic_info->pltgot_virtual_addr = dyn->d_un.d_ptr;
break;
default:
LOG_INFO_IF(debug_loader, "unsupported dynamic tag ..........: {:#018x}\n", dyn->d_tag);
}