author | Johannes Stezenbach <js@sig21.net> |
Fri Nov 02 04:04:04 2012 +0000 (2012-11-02) | |
changeset 3102 | 75c2df0f7a12 |
parent 2088 | 4f21ba5f8e91 |
permissions | -rw-r--r-- |
jocke@1700 | 1 |
diff -p -c -u -r1.196 elf32-arm.c |
yann@2088 | 2 |
|
yann@2088 | 3 |
diff -durN binutils-2.20.1.orig/bfd/elf32-arm.c binutils-2.20.1/bfd/elf32-arm.c |
yann@2088 | 4 |
--- binutils-2.20.1.orig/bfd/elf32-arm.c 2010-02-22 09:06:48.000000000 +0100 |
yann@2088 | 5 |
+++ binutils-2.20.1/bfd/elf32-arm.c 2010-08-17 19:32:25.000000000 +0200 |
yann@2088 | 6 |
@@ -3194,11 +3194,15 @@ |
jocke@1700 | 7 |
|
jocke@1700 | 8 |
/* We have an extra 2-bytes reach because of |
jocke@1700 | 9 |
the mode change (bit 24 (H) of BLX encoding). */ |
jocke@1700 | 10 |
+ /* A stub is needed only if this call is not throught a PLT |
jocke@1700 | 11 |
+ entry, because PLT stubs handle mode switching |
jocke@1700 | 12 |
+ already. */ |
jocke@1700 | 13 |
if (branch_offset > (ARM_MAX_FWD_BRANCH_OFFSET + 2) |
jocke@1700 | 14 |
|| (branch_offset < ARM_MAX_BWD_BRANCH_OFFSET) |
jocke@1700 | 15 |
- || ((r_type == R_ARM_CALL) && !globals->use_blx) |
jocke@1700 | 16 |
- || (r_type == R_ARM_JUMP24) |
jocke@1700 | 17 |
- || (r_type == R_ARM_PLT32)) |
jocke@1700 | 18 |
+ || ( (((r_type == R_ARM_CALL) && !globals->use_blx) |
jocke@1700 | 19 |
+ || (r_type == R_ARM_JUMP24) |
jocke@1700 | 20 |
+ || (r_type == R_ARM_PLT32)) |
jocke@1700 | 21 |
+ && !use_plt)) |
jocke@1700 | 22 |
{ |
jocke@1700 | 23 |
stub_type = (info->shared | globals->pic_veneer) |
jocke@1700 | 24 |
/* PIC stubs. */ |