FreeBSD Bugzilla – Attachment 178114 Details for
Bug 214971
clang + lld 3.9.1: Unhandled relocation 1031
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Fix RTLD
2016-12-19-pr214971-r01.patch (text/plain), 1.06 KB, created by
Shawn Webb
on 2016-12-19 19:09:06 UTC
(
hide
)
Description:
Fix RTLD
Filename:
MIME Type:
Creator:
Shawn Webb
Created:
2016-12-19 19:09:06 UTC
Size:
1.06 KB
patch
obsolete
>commit 8754ed86fff3f2f793d37fb71725630f720bbfb7 >Author: Shawn Webb <shawn.webb@hardenedbsd.org> >Date: Mon Dec 19 14:05:55 2016 -0500 > > HBSD: Perform R_AARCH64_TLSDESC fixups > > This enables full use of ld.lld on arm64. > > Signed-off-by: Shawn Webb <shawn.webb@hardenedbsd.org> > freebsd-issue: PR214971 > >diff --git a/libexec/rtld-elf/aarch64/reloc.c b/libexec/rtld-elf/aarch64/reloc.c >index 3f9de07db29..e88c98b04aa 100644 >--- a/libexec/rtld-elf/aarch64/reloc.c >+++ b/libexec/rtld-elf/aarch64/reloc.c >@@ -388,6 +388,16 @@ reloc_non_plt(Obj_Entry *obj, Obj_Entry *obj_rtld, int flags, > *where = def->st_value + rela->r_addend + > defobj->tlsoffset; > break; >+ case R_AARCH64_TLSDESC: >+ if (ELF_R_SYM(rela->r_info) == 0) { >+ where[0] = (Elf_Addr)_rtld_tlsdesc; >+ where[1] = obj->tlsoffset + rela->r_addend; >+ } else { >+ where[0] = (Elf_Addr)_rtld_tlsdesc_dynamic; >+ where[1] = (Elf_Addr)reloc_tlsdesc_alloc(obj, >+ rela); >+ } >+ break; > case R_AARCH64_RELATIVE: > *where = (Elf_Addr)(obj->relocbase + rela->r_addend); > break;
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 214971
: 178114