aboutsummaryrefslogtreecommitdiffstats
path: root/packages/binutils/binutils-2.15.91.0.2/sec_link_duplicates_same_contents.patch
diff options
context:
space:
mode:
Diffstat (limited to 'packages/binutils/binutils-2.15.91.0.2/sec_link_duplicates_same_contents.patch')
-rw-r--r--packages/binutils/binutils-2.15.91.0.2/sec_link_duplicates_same_contents.patch44
1 files changed, 44 insertions, 0 deletions
diff --git a/packages/binutils/binutils-2.15.91.0.2/sec_link_duplicates_same_contents.patch b/packages/binutils/binutils-2.15.91.0.2/sec_link_duplicates_same_contents.patch
index e69de29bb2..6eaee9e12c 100644
--- a/packages/binutils/binutils-2.15.91.0.2/sec_link_duplicates_same_contents.patch
+++ b/packages/binutils/binutils-2.15.91.0.2/sec_link_duplicates_same_contents.patch
@@ -0,0 +1,44 @@
+===================================================================
+RCS file: /cvs/src/src/bfd/elflink.c,v
+retrieving revision 1.97
+retrieving revision 1.98
+diff -u -r1.97 -r1.98
+--- src/bfd/elflink.c 2004/08/18 02:45:42 1.97
++++ src/bfd/elflink.c 2004/08/21 01:13:22 1.98
+@@ -9366,6 +9366,36 @@
+ (_("%B: duplicate section `%A' has different size\n"),
+ abfd, sec);
+ break;
++
++ case SEC_LINK_DUPLICATES_SAME_CONTENTS:
++ if (sec->size != l->sec->size)
++ (*_bfd_error_handler)
++ (_("%B: duplicate section `%A' has different size\n"),
++ abfd, sec);
++ else if (sec->size != 0)
++ {
++ bfd_byte *sec_contents, *l_sec_contents;
++
++ if (!bfd_malloc_and_get_section (abfd, sec, &sec_contents))
++ (*_bfd_error_handler)
++ (_("%B: warning: could not read contents of section `%A'\n"),
++ abfd, sec);
++ else if (!bfd_malloc_and_get_section (l->sec->owner, l->sec,
++ &l_sec_contents))
++ (*_bfd_error_handler)
++ (_("%B: warning: could not read contents of section `%A'\n"),
++ l->sec->owner, l->sec);
++ else if (memcmp (sec_contents, l_sec_contents, sec->size) != 0)
++ (*_bfd_error_handler)
++ (_("%B: warning: duplicate section `%A' has different contents\n"),
++ abfd, sec);
++
++ if (sec_contents)
++ free (sec_contents);
++ if (l_sec_contents)
++ free (l_sec_contents);
++ }
++ break;
+ }
+
+ /* Set the output_section field so that lang_add_section