diff options
-rw-r--r-- | bfd/ChangeLog | 5 | ||||
-rw-r--r-- | bfd/peXXigen.c | 10 |
2 files changed, 14 insertions, 1 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index b898da8..56c80cc 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2014-04-22 Yuanhui Zhang <asmwarrior@gmail.com> + + PR ld/16821 + * peXXigen.c (abs_finder): Fix for 32-bit host builds. + 2014-04-22 Will Newton <will.newton@linaro.org> * elfnn-aarch64.c (elfNN_aarch64_section_flags): Remove diff --git a/bfd/peXXigen.c b/bfd/peXXigen.c index 36d90cc..56224a8 100644 --- a/bfd/peXXigen.c +++ b/bfd/peXXigen.c @@ -212,7 +212,7 @@ abs_finder (bfd * abfd ATTRIBUTE_UNUSED, asection * sec, void * data) { bfd_vma abs_val = * (bfd_vma *) data; - return (sec->vma <= abs_val) && ((sec->vma + (1L << 32)) > abs_val); + return (sec->vma <= abs_val) && ((sec->vma + (1LL << 32)) > abs_val); } unsigned int @@ -3591,6 +3591,7 @@ rsrc_sort_entries (rsrc_dir_chain * chain, /* Unhook NEXT from the chain. */ /* FIXME: memory loss here. */ + /* FIXME: do we need to decrement sizeof_tables_and_entries ? */ entry->next_entry = next->next_entry; chain->num_entries --; if (chain->num_entries < 2) @@ -3654,6 +3655,7 @@ rsrc_sort_entries (rsrc_dir_chain * chain, } /* Unhook NEXT from the chain. */ + /* FIXME: do we need to decrement sizeof_tables_and_entries ? */ entry->next_entry = next->next_entry; chain->num_entries --; if (chain->num_entries < 2) @@ -3914,6 +3916,12 @@ rsrc_process_section (bfd * abfd, if (new_data == NULL) goto end; + /* We have merged the top level Type Tables of all of the input + .rsrc sections into one Type Table. So we can (and must) + reduce the count of the number of tables that we will be + emitting appropriately. */ + sizeof_tables_and_entries -= 16 * (num_resource_sets - 1); + write_data.abfd = abfd; write_data.datastart = new_data; write_data.next_table = new_data; |