author | "Yann E. MORIN" <yann.morin.1998@free.fr> |
Thu Dec 27 12:53:32 2012 +0100 (2012-12-27) | |
changeset 3153 | f6740f9e42de |
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. */ |