aboutsummaryrefslogtreecommitdiff
path: root/bfd/peXXigen.c
diff options
context:
space:
mode:
authorJon Turney <jon.turney@dronecode.org.uk>2016-11-25 09:47:31 +0000
committerNick Clifton <nickc@redhat.com>2016-11-25 09:47:31 +0000
commitec8f76882145c71bef81a9cadf0bf51ff9fa5b35 (patch)
tree866a72bb6b2b7b94fbda2a2f42510565701e0942 /bfd/peXXigen.c
parent0e722c919075fbf8a2d8a05b91443432daedf332 (diff)
downloadgdb-ec8f76882145c71bef81a9cadf0bf51ff9fa5b35.zip
gdb-ec8f76882145c71bef81a9cadf0bf51ff9fa5b35.tar.gz
gdb-ec8f76882145c71bef81a9cadf0bf51ff9fa5b35.tar.bz2
Prevent problems with section alignment by not shrinking the .rsrc section.
PR ld/20193 * peXXigen.c (rsrc_process_section): Do not shrink the merged .rsrc section.
Diffstat (limited to 'bfd/peXXigen.c')
-rw-r--r--bfd/peXXigen.c22
1 files changed, 2 insertions, 20 deletions
diff --git a/bfd/peXXigen.c b/bfd/peXXigen.c
index 0bbd200..3a16ef0 100644
--- a/bfd/peXXigen.c
+++ b/bfd/peXXigen.c
@@ -4319,26 +4319,8 @@ rsrc_process_section (bfd * abfd,
rsrc_write_directory (& write_data, & new_table);
/* Step five: Replace the old contents with the new.
- We recompute the size as we may have lost entries due to mergeing. */
- size = ((write_data.next_data - new_data) + 3) & ~ 3;
-
- {
- int page_size;
-
- if (coff_data (abfd)->link_info)
- {
- page_size = pe_data (abfd)->pe_opthdr.FileAlignment;
-
- /* If no file alignment has been set, default to one.
- This repairs 'ld -r' for arm-wince-pe target. */
- if (page_size == 0)
- page_size = 1;
- }
- else
- page_size = PE_DEF_FILE_ALIGNMENT;
- size = (size + page_size - 1) & - page_size;
- }
-
+ We don't recompute the size as it's too late here to shrink section.
+ See PR ld/20193 for more details. */
bfd_set_section_contents (pfinfo->output_bfd, sec, new_data, 0, size);
sec->size = sec->rawsize = size;