* elf32-arm.c (elf32_arm_howto_table_1): Correct bitsize of

R_ARM_THM_CALL entry.
	(elf32_arm_final_link_relocate): Correct calculation of
	reloc_signed_max when doing a R_ARM_THM_CALL, R_ARM_THM_XPC22,
	or R_ARM_THM_JUMP24 relocation.
This commit is contained in:
Alan Modra 2010-01-19 03:49:43 +00:00
parent 1969a62a7c
commit f6ebfac085
2 changed files with 11 additions and 3 deletions

View File

@ -1,3 +1,11 @@
2010-01-19 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
* elf32-arm.c (elf32_arm_howto_table_1): Correct bitsize of
R_ARM_THM_CALL entry.
(elf32_arm_final_link_relocate): Correct calculation of
reloc_signed_max when doing a R_ARM_THM_CALL, R_ARM_THM_XPC22,
or R_ARM_THM_JUMP24 relocation.
2010-01-18 Alan Modra <amodra@gmail.com>
PR 11168

View File

@ -1,6 +1,6 @@
/* 32-bit ELF support for ARM
Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
2008, 2009 Free Software Foundation, Inc.
2008, 2009, 2010 Free Software Foundation, Inc.
This file is part of BFD, the Binary File Descriptor library.
@ -222,7 +222,7 @@ static reloc_howto_type elf32_arm_howto_table_1[] =
HOWTO (R_ARM_THM_CALL, /* type */
1, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
25, /* bitsize */
24, /* bitsize */
TRUE, /* pc_relative */
0, /* bitpos */
complain_overflow_signed,/* complain_on_overflow */
@ -7552,7 +7552,7 @@ elf32_arm_final_link_relocate (reloc_howto_type * howto,
bitsize = howto->bitsize;
if (!thumb2)
bitsize -= 2;
reloc_signed_max = ((1 << (bitsize - 1)) - 1) >> howto->rightshift;
reloc_signed_max = (1 << (bitsize - 1)) - 1;
reloc_signed_min = ~reloc_signed_max;
/* Assumes two's complement. */