diff options
| -rw-r--r-- | sys/kern/link_elf.c | 6 | ||||
| -rw-r--r-- | sys/kern/link_elf_obj.c | 6 |
2 files changed, 12 insertions, 0 deletions
diff --git a/sys/kern/link_elf.c b/sys/kern/link_elf.c index 65f9946a9d69..944a55a2808a 100644 --- a/sys/kern/link_elf.c +++ b/sys/kern/link_elf.c @@ -717,6 +717,12 @@ link_elf_load_file(linker_class_t cls, const char* filename, linker_file_t* resu #endif } +#ifdef GPROF + /* Update profiling information with the new text segment. */ + kmupetext((uintfptr_t)(mapbase + segs[0]->p_vaddr - base_vaddr + + segs[0]->p_memsz)); +#endif + ef->dynamic = (Elf_Dyn *) (mapbase + phdyn->p_vaddr - base_vaddr); lf->address = ef->address; diff --git a/sys/kern/link_elf_obj.c b/sys/kern/link_elf_obj.c index 65f9946a9d69..944a55a2808a 100644 --- a/sys/kern/link_elf_obj.c +++ b/sys/kern/link_elf_obj.c @@ -717,6 +717,12 @@ link_elf_load_file(linker_class_t cls, const char* filename, linker_file_t* resu #endif } +#ifdef GPROF + /* Update profiling information with the new text segment. */ + kmupetext((uintfptr_t)(mapbase + segs[0]->p_vaddr - base_vaddr + + segs[0]->p_memsz)); +#endif + ef->dynamic = (Elf_Dyn *) (mapbase + phdyn->p_vaddr - base_vaddr); lf->address = ef->address; |
