diff options
| author | Konstantin Belousov <kib@FreeBSD.org> | 2017-03-15 21:11:57 +0000 |
|---|---|---|
| committer | Konstantin Belousov <kib@FreeBSD.org> | 2017-03-15 21:11:57 +0000 |
| commit | e35ddbe44824bb7aa32a06f7f24fc13787387287 (patch) | |
| tree | 86ff1feff54011df6d945a921206c79f04886fef /libexec/rtld-elf/riscv | |
| parent | d10e4cd0c05141db13fadc4a189d6b159a417f63 (diff) | |
Notes
Diffstat (limited to 'libexec/rtld-elf/riscv')
| -rw-r--r-- | libexec/rtld-elf/riscv/reloc.c | 5 | ||||
| -rw-r--r-- | libexec/rtld-elf/riscv/rtld_machdep.h | 5 |
2 files changed, 4 insertions, 6 deletions
diff --git a/libexec/rtld-elf/riscv/reloc.c b/libexec/rtld-elf/riscv/reloc.c index 71259cd629c6..a0fedf1c2416 100644 --- a/libexec/rtld-elf/riscv/reloc.c +++ b/libexec/rtld-elf/riscv/reloc.c @@ -226,10 +226,9 @@ reloc_jmpslot(Elf_Addr *where, Elf_Addr target, const Obj_Entry *defobj, assert(ELF_R_TYPE(rel->r_info) == R_RISCV_JUMP_SLOT); - if (*where != target) + if (*where != target && !ld_bind_not) *where = target; - - return target; + return (target); } /* diff --git a/libexec/rtld-elf/riscv/rtld_machdep.h b/libexec/rtld-elf/riscv/rtld_machdep.h index 4fb494778e38..95669ffe542a 100644 --- a/libexec/rtld-elf/riscv/rtld_machdep.h +++ b/libexec/rtld-elf/riscv/rtld_machdep.h @@ -54,9 +54,8 @@ uint64_t set_gp(struct Struct_Obj_Entry *obj); }) Elf_Addr reloc_jmpslot(Elf_Addr *where, Elf_Addr target, - const struct Struct_Obj_Entry *defobj, - const struct Struct_Obj_Entry *obj, - const Elf_Rel *rel); + const struct Struct_Obj_Entry *defobj, const struct Struct_Obj_Entry *obj, + const Elf_Rel *rel); #define make_function_pointer(def, defobj) \ ((defobj)->relocbase + (def)->st_value) |
