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
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>
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?
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... :)
25 [ rediffed against binutils-2.15.91.0.2, with some elbow grease ]
27 2004-08-20 Daniel Jacobowitz <dan@debian.org>
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);
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)
44 + bfd_byte *sec_contents, *l_sec_contents;
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,
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);
61 + free (sec_contents);
63 + free (l_sec_contents);
68 /* Set the output_section field so that lang_add_section