patches/binutils/2.20/290-ld-stub-crash.patch
author Remy Bohmer <linux@bohmer.net>
Thu May 27 23:18:19 2010 +0200 (2010-05-27)
changeset 2060 51e4597b07fc
permissions -rw-r--r--
scripts: add option to strip all toolchain executables

To reduce filesizes of the toolchain and even improve build times
of projects to be build with this toolchain it is usefull to strip
the delivered toolchain executables. Since it is not likely that we
will debug the toolchain executables itself we do not need the
debug information inside the executables itself.

Signed-off-by: Remy Bohmer <linux@bohmer.net>
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.  */