svn commit: r338609 - head/sys/riscv/riscv
Ruslan Bukin
br at FreeBSD.org
Wed Sep 12 08:12:35 UTC 2018
Author: br
Date: Wed Sep 12 08:12:34 2018
New Revision: 338609
URL: https://svnweb.freebsd.org/changeset/base/338609
Log:
Use elf_relocaddr() to find the address for R_RISCV_RELATIVE
relocation.
elf_relocaddr() has a hook to handle VIMAGE data addresses.
This fixes VIMAGE support for RISC-V when built as a module.
Approved by: re (gjb)
Sponsored by: DARPA, AFRL
Modified:
head/sys/riscv/riscv/elf_machdep.c
Modified: head/sys/riscv/riscv/elf_machdep.c
==============================================================================
--- head/sys/riscv/riscv/elf_machdep.c Wed Sep 12 08:05:33 2018 (r338608)
+++ head/sys/riscv/riscv/elf_machdep.c Wed Sep 12 08:12:34 2018 (r338609)
@@ -330,11 +330,9 @@ elf_reloc_internal(linker_file_t lf, Elf_Addr relocbas
break;
case R_RISCV_RELATIVE:
- val = relocbase + addend;
-
before64 = *where;
- if (*where != val)
- *where = val;
+
+ *where = elf_relocaddr(lf, relocbase + addend);
if (debug_kld)
printf("%p %c %-24s %016lx -> %016lx\n",
More information about the svn-src-head
mailing list