From: Colin Watson Date: Mon, 8 Apr 2013 23:02:27 +0000 (+0100) Subject: Handle sign bit when generating veneer for ARM Thumb branch relocation X-Git-Tag: archive/raspbian/8.0.2-9+rpi1~1^2^2^2^2^2~5 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=e399548f9303c08e49ef27239af0451ca3a8e355;p=ghc.git Handle sign bit when generating veneer for ARM Thumb branch relocation Gbp-Pq: Name Handle-sign-bit-when-generating-veneer-for-ARM-Thumb.patch --- diff --git a/rts/Linker.c b/rts/Linker.c index 56003fb7..0354b1e1 100644 --- a/rts/Linker.c +++ b/rts/Linker.c @@ -4850,6 +4850,7 @@ do_Elf_Rel_relocations ( ObjectCode* oc, char* ehdrC, // Generate veneer SymbolExtra *extra = makeArmSymbolExtra(oc, ELF_R_SYM(info), S+imm+4, 1, is_target_thm); offset = (StgWord32) &extra->jumpIsland - P - 4; + sign = offset >> 31; to_thm = 1; } else if (!is_target_thm && ELF_R_TYPE(info) == R_ARM_THM_CALL) { offset &= ~0x3;