diff options
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.patch | 44 |
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 |