From 285fc9d8f8ed30b8a9d680fbf37e8f1843b95bc0 Mon Sep 17 00:00:00 2001 From: Yuanhui Zhang Date: Tue, 22 Apr 2014 11:00:39 +0100 Subject: [PATCH] Fix build problem on 32-bit hosts with the recent patch for PR 16821. PR ld/16821 * peXXigen.c (abs_finder): Fix for 32-bit host builds. --- bfd/ChangeLog | 5 +++++ bfd/peXXigen.c | 10 +++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index b898da81888..56c80cc231d 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2014-04-22 Yuanhui Zhang + + PR ld/16821 + * peXXigen.c (abs_finder): Fix for 32-bit host builds. + 2014-04-22 Will Newton * elfnn-aarch64.c (elfNN_aarch64_section_flags): Remove diff --git a/bfd/peXXigen.c b/bfd/peXXigen.c index 36d90cce310..56224a89cbb 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; -- 2.30.2