diff options
-rw-r--r-- | bfd/ChangeLog | 5 | ||||
-rw-r--r-- | bfd/mmo.c | 13 |
2 files changed, 12 insertions, 6 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index b9a83c5..862664a 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2015-10-20 Hans-Peter Nilsson <hp@bitrange.com> + + * mmo.c (mmo_write_symbols_and_terminator): Correct printed value + of Main in error message. + 2015-10-18 Doug Evans <xdje42@gmail.com> * targets.c (bfd_flavour_name): "MMO" is spelled "mmo". @@ -2896,16 +2896,17 @@ mmo_write_symbols_and_terminator (bfd *abfd) && (table[i]->flags & (BSF_DEBUGGING|BSF_GLOBAL)) == BSF_GLOBAL) { asymbol *mainsym = table[i]; - memcpy (table + 1, orig_table, i * sizeof (asymbol *)); + bfd_vma mainvalue + = (mainsym->value + + mainsym->section->output_section->vma + + mainsym->section->output_offset); + memcpy (table + 1, orig_table, i * sizeof (asymbol *)); table[0] = mainsym; /* Check that the value assigned to :Main is the same as the entry address. The default linker script asserts this. This is as good a place as any to check this consistency. */ - if ((mainsym->value - + mainsym->section->output_section->vma - + mainsym->section->output_offset) - != bfd_get_start_address (abfd)) + if (mainvalue != bfd_get_start_address (abfd)) { /* Arbitrary buffer to hold the printable representation of a vma. */ @@ -2913,7 +2914,7 @@ mmo_write_symbols_and_terminator (bfd *abfd) char vmas_start[40]; bfd_vma vma_start = bfd_get_start_address (abfd); - sprintf_vma (vmas_main, mainsym->value); + sprintf_vma (vmas_main, mainvalue); sprintf_vma (vmas_start, vma_start); (*_bfd_error_handler) |