From e399548f9303c08e49ef27239af0451ca3a8e355 Mon Sep 17 00:00:00 2001 From: Colin Watson Date: Tue, 9 Apr 2013 00:02:27 +0100 Subject: [PATCH] Handle sign bit when generating veneer for ARM Thumb branch relocation Gbp-Pq: Name Handle-sign-bit-when-generating-veneer-for-ARM-Thumb.patch --- rts/Linker.c | 1 + 1 file changed, 1 insertion(+) 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; -- 2.30.2