diff options
author | green <green@FreeBSD.org> | 2001-10-30 15:08:51 +0000 |
---|---|---|
committer | green <green@FreeBSD.org> | 2001-10-30 15:08:51 +0000 |
commit | 6c4548aebbcd7a9098fc64ae0fa6930c2c1fa9ce (patch) | |
tree | 9a5076070958565727eb3c00815c9043ec47273a /sys/kern/link_elf.c | |
parent | f765c56da4bb9bec810a24b635028726ead839c6 (diff) | |
download | FreeBSD-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.c | 6 |
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; |