Page MenuHomeFreeBSD

D37039.id111935.diff
No OneTemporary

D37039.id111935.diff

diff --git a/sys/riscv/riscv/elf_machdep.c b/sys/riscv/riscv/elf_machdep.c
--- a/sys/riscv/riscv/elf_machdep.c
+++ b/sys/riscv/riscv/elf_machdep.c
@@ -340,15 +340,25 @@
break;
case R_RISCV_64:
- case R_RISCV_JUMP_SLOT:
+ before64 = *where;
error = lookup(lf, symidx, 1, &addr);
if (error != 0)
return (-1);
- val = addr;
+ *where = addr + addend;
+ if (debug_kld)
+ printf("%p %c %-24s %016lx -> %016lx\n", where,
+ (local ? 'l' : 'g'), reloctype_to_str(rtype),
+ before64, *where);
+ break;
+
+ case R_RISCV_JUMP_SLOT:
before64 = *where;
- if (*where != val)
- *where = val;
+ error = lookup(lf, symidx, 1, &addr);
+ if (error != 0)
+ return (-1);
+
+ *where = addr;
if (debug_kld)
printf("%p %c %-24s %016lx -> %016lx\n", where,
(local ? 'l' : 'g'), reloctype_to_str(rtype),

File Metadata

Mime Type
text/plain
Expires
Wed, Apr 22, 7:24 AM (1 h, 26 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
31961713
Default Alt Text
D37039.id111935.diff (842 B)

Event Timeline