mirror of
https://github.com/opnsense/src.git
synced 2026-02-18 18:20:26 -05:00
libdtrace: Compute the relocation offset for all non-ET_REL objects
The use of an ifdef here most likely carries over from when the dtrace port only worked on x86 platforms. MFC after: 2 weeks Sponsored by: Innovate UK (cherry picked from commit 7bbcbd43c53b49360969ca82b152fd6d971e9055)
This commit is contained in:
parent
b0d27132b2
commit
5437ef1dc1
1 changed files with 13 additions and 11 deletions
|
|
@ -1251,19 +1251,21 @@ dt_module_update(dtrace_hdl_t *dtp, struct kld_file_stat *k_stat)
|
|||
* [Text][R/O data][R/W data][Dynamic][BSS][Non loadable]
|
||||
*/
|
||||
dmp->dm_text_size = dmp->dm_data_va - dmp->dm_text_va;
|
||||
#if defined(__i386__)
|
||||
/*
|
||||
* Find the first load section and figure out the relocation
|
||||
* offset for the symbols. The kernel module will not need
|
||||
* relocation, but the kernel linker modules will.
|
||||
*/
|
||||
for (i = 0; gelf_getphdr(dmp->dm_elf, i, &ph) != NULL; i++) {
|
||||
if (ph.p_type == PT_LOAD) {
|
||||
dmp->dm_reloc_offset = k_stat->address - ph.p_vaddr;
|
||||
break;
|
||||
|
||||
if (!is_elf_obj) {
|
||||
/*
|
||||
* Find the first load section and figure out the relocation
|
||||
* offset for the symbols. The kernel module will not need
|
||||
* relocation, but the kernel linker modules will.
|
||||
*/
|
||||
for (i = 0; gelf_getphdr(dmp->dm_elf, i, &ph) != NULL; i++) {
|
||||
if (ph.p_type == PT_LOAD) {
|
||||
dmp->dm_reloc_offset =
|
||||
k_stat->address - ph.p_vaddr;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
if (dmp->dm_info.objfs_info_primary)
|
||||
dmp->dm_flags |= DT_DM_PRIMARY;
|
||||
|
|
|
|||
Loading…
Reference in a new issue