author | "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> |
Thu Jan 13 23:20:39 2011 +0100 (2011-01-13) | |
branch | 1.9 |
changeset 2263 | 2b25e1dab615 |
permissions | -rw-r--r-- |
jocke@1700 | 1 |
diff -p -c -u -r1.196 elf32-arm.c |
jocke@1700 | 2 |
--- a/bfd/elf32-arm.c 22 May 2009 11:58:44 -0000 1.196 |
jocke@1700 | 3 |
+++ b/bfd/elf32-arm.c 12 Jun 2009 13:18:20 -0000 |
jocke@1700 | 4 |
@@ -3175,11 +3175,15 @@ arm_type_of_stub (struct bfd_link_info * |
jocke@1700 | 5 |
|
jocke@1700 | 6 |
/* We have an extra 2-bytes reach because of |
jocke@1700 | 7 |
the mode change (bit 24 (H) of BLX encoding). */ |
jocke@1700 | 8 |
+ /* A stub is needed only if this call is not throught a PLT |
jocke@1700 | 9 |
+ entry, because PLT stubs handle mode switching |
jocke@1700 | 10 |
+ already. */ |
jocke@1700 | 11 |
if (branch_offset > (ARM_MAX_FWD_BRANCH_OFFSET + 2) |
jocke@1700 | 12 |
|| (branch_offset < ARM_MAX_BWD_BRANCH_OFFSET) |
jocke@1700 | 13 |
- || ((r_type == R_ARM_CALL) && !globals->use_blx) |
jocke@1700 | 14 |
- || (r_type == R_ARM_JUMP24) |
jocke@1700 | 15 |
- || (r_type == R_ARM_PLT32)) |
jocke@1700 | 16 |
+ || ( (((r_type == R_ARM_CALL) && !globals->use_blx) |
jocke@1700 | 17 |
+ || (r_type == R_ARM_JUMP24) |
jocke@1700 | 18 |
+ || (r_type == R_ARM_PLT32)) |
jocke@1700 | 19 |
+ && !use_plt)) |
jocke@1700 | 20 |
{ |
jocke@1700 | 21 |
stub_type = (info->shared | globals->pic_veneer) |
jocke@1700 | 22 |
/* PIC stubs. */ |