patches/binutils/2.20/290-ld-stub-crash.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Mon Jan 03 23:40:22 2011 +0100 (2011-01-03)
changeset 2267 7af68e6083aa
permissions -rw-r--r--
libc-glibc: remove 2.3.6

This is an obsolete version which is no longer used by any sample (the only
user, the ia64 sample, has been removed).

It also makes the code path a bit complex, with twists just to accomodate
that version. Removing the version will make those twists go away, and
will ease commonalisation of glibc and eglibc in the future (hopefully!).

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