summaryrefslogtreecommitdiffstats
path: root/sys/kern/link_elf.c
diff options
context:
space:
mode:
authorgreen <green@FreeBSD.org>2001-10-30 15:08:51 +0000
committergreen <green@FreeBSD.org>2001-10-30 15:08:51 +0000
commit6c4548aebbcd7a9098fc64ae0fa6930c2c1fa9ce (patch)
tree9a5076070958565727eb3c00815c9043ec47273a /sys/kern/link_elf.c
parentf765c56da4bb9bec810a24b635028726ead839c6 (diff)
downloadFreeBSD-src-6c4548aebbcd7a9098fc64ae0fa6930c2c1fa9ce.zip
FreeBSD-src-6c4548aebbcd7a9098fc64ae0fa6930c2c1fa9ce.tar.gz
Use kmupetext() for ELF KLDs to allow for increased text segment size.
Obtained from: NAI Labs CBOSS project Funded by: DARPA
Diffstat (limited to 'sys/kern/link_elf.c')
-rw-r--r--sys/kern/link_elf.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/sys/kern/link_elf.c b/sys/kern/link_elf.c
index 65f9946..944a55a 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;
OpenPOWER on IntegriCloud