patches/binutils/2.15.91.0.2/binutils-dup-sections.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Tue May 01 16:49:15 2007 +0000 (2007-05-01)
changeset 56 07a6a48962b7
permissions -rw-r--r--
Merge patches sent by Robert P. J. Day <rpjday@mindspring.com>.
Warning: the buildroot folks purposedly removed the skip-comment patch but didn't really said why. Keeping it for the sake of having it in svn just in case (removing it will be easier thant not having it at all).
     1 See http://sources.redhat.com/ml/binutils/2004-08/msg00256.html
     2 
     3 Date: Fri, 20 Aug 2004 21:13:43 -0400
     4 From: Daniel Jacobowitz <drow at false dot org>
     5 To: binutils at sources dot redhat dot com
     6 Subject: Re: Handle SEC_LINK_DUPLICATES_SAME_CONTENTS for arm-linux
     7 Message-ID: <20040821011342.GA30319@nevyn.them.org>
     8 Mail-Followup-To: binutils at sources dot redhat dot com
     9 References: <20040818145518.GA9774@nevyn.them.org> <20040819055040.GA11820@lucon.org> <20040819080034.GE21716@bubble.modra.org> <20040820173240.GA17678@nevyn.them.org> <20040821003737.GB16016@bubble.modra.org>
    10 In-Reply-To: <20040821003737 dot GB16016 at bubble dot modra dot org>
    11 
    12 On Sat, Aug 21, 2004 at 10:07:38AM +0930, Alan Modra wrote:
    13 > On Fri, Aug 20, 2004 at 01:32:40PM -0400, Daniel Jacobowitz wrote:
    14 > > Thanks.  How's this?
    15 > 
    16 > As you might have guessed from my rather slack review of your previous
    17 > patch, I trust you enough to give the OK without proper review.  But
    18 > since you asked...  :)
    19 
    20 Checked in as so.
    21 
    22 -- 
    23 Daniel Jacobowitz
    24 
    25 [ rediffed against binutils-2.15.91.0.2, with some elbow grease ]
    26 
    27 2004-08-20  Daniel Jacobowitz  <dan@debian.org>
    28 
    29 	* elflink.c (_bfd_elf_section_already_linked): Handle
    30 	SEC_LINK_DUPLICATES_SAME_CONTENTS.
    31 --- binutils-2.15.91.0.2/bfd/elflink.c.old	2004-07-27 21:36:08.000000000 -0700
    32 +++ binutils-2.15.91.0.2/bfd/elflink.c	2004-08-26 06:38:07.000000000 -0700
    33 @@ -9359,6 +9359,35 @@
    34  		  (_("%s: %s: warning: duplicate section `%s' has different size\n"),
    35  		   bfd_archive_filename (abfd), name);
    36  	      break;
    37 +	    case SEC_LINK_DUPLICATES_SAME_CONTENTS:
    38 +	      if (sec->size != l->sec->size)
    39 +		(*_bfd_error_handler)
    40 +		  (_("%B: duplicate section `%A' has different size\n"),
    41 +		   bfd_archive_filename (abfd), sec);
    42 +	      else if (sec->size != 0)
    43 +		{
    44 +		  bfd_byte *sec_contents, *l_sec_contents;
    45 +
    46 +		  if (!bfd_malloc_and_get_section (abfd, sec, &sec_contents))
    47 +		    (*_bfd_error_handler)
    48 +		      (_("%B: warning: could not read contents of section `%A'\n"),
    49 +		       bfd_archive_filename (abfd), sec);
    50 +		  else if (!bfd_malloc_and_get_section (l->sec->owner, l->sec,
    51 +							&l_sec_contents))
    52 +		    (*_bfd_error_handler)
    53 +		      (_("%B: warning: could not read contents of section `%A'\n"),
    54 +		       bfd_archive_filename(l->sec->owner), l->sec);
    55 +		  else if (memcmp (sec_contents, l_sec_contents, sec->size) != 0)
    56 +		    (*_bfd_error_handler)
    57 +		      (_("%B: warning: duplicate section `%A' has different contents\n"),
    58 +		       bfd_archive_filename (abfd), sec);
    59 +
    60 +		  if (sec_contents)
    61 +		    free (sec_contents);
    62 +		  if (l_sec_contents)
    63 +		    free (l_sec_contents);
    64 +		}
    65 +	      break;
    66  	    }
    67  
    68  	  /* Set the output_section field so that lang_add_section