diff options
-rw-r--r-- | ChangeLog | 12 | ||||
-rw-r--r-- | src/arch-x86_64.c | 7 |
2 files changed, 14 insertions, 5 deletions
@@ -1,3 +1,15 @@ +2017-06-20 Andrew Stubbs <ams@codesourcery.com> + * src/arch-x86_64.c (x86_64_prelink_conflict_rela): Also convert + R_X86_64_32 conflicts to R_X86_64_IRELATIVE for ifuncs. + * src/arch-x86_64.c (PL_ARCH(x32)): Set mmap_end to 0x60000000. + +2017-06-20 Joseph Myers <joseph@codesourcery.com> + * src/rtld/rtld.c (load_ld_so_conf): Add argument use_x32. + (main): Update call to load_ld_so_conf. + +2017-06-20 Kyle Russell <bkylerussell@gmail.com> + * src/rtld/rtld.c: Add missing DT_NEEDED DSOs to needed_list + 2017-06-20 Mark Hatle <mark.hatle@windriver.com> * doc/Makefile.am: Disable automatic generation of prelink.pdf * Merge with cross_prelink diff --git a/src/arch-x86_64.c b/src/arch-x86_64.c index dae66cd..5c95f47 100644 --- a/src/arch-x86_64.c +++ b/src/arch-x86_64.c @@ -332,16 +332,13 @@ x86_64_prelink_conflict_rela (DSO *dso, struct prelink_info *info, ret->r_info = GELF_R_INFO (0, (gelf_getclass (dso->elf) == ELFCLASS32 ? R_X86_64_32 : R_X86_64_64)); /* FALLTHROUGH */ case R_X86_64_JUMP_SLOT: + case R_X86_64_32: case R_X86_64_64: case R_X86_64_IRELATIVE: ret->r_addend = value + rela->r_addend; if (conflict != NULL && conflict->ifunc) ret->r_info = GELF_R_INFO (0, R_X86_64_IRELATIVE); break; - case R_X86_64_32: - value += rela->r_addend; - ret->r_addend = value; - break; case R_X86_64_PC32: ret->r_addend = value + rela->r_addend - rela->r_offset; ret->r_info = GELF_R_INFO (0, R_X86_64_32); @@ -598,7 +595,7 @@ PL_ARCH(x32) = { Also, if this guard area isn't too small, typically even dlopened libraries will get the slots they desire. */ .mmap_base = 0x41000000, - .mmap_end = 0x50000000, + .mmap_end = 0x60000000, .max_page_size = 0x200000, .page_size = 0x1000 }; |