From f9c62303d87da9c766ca67d01f602130c2777951 Mon Sep 17 00:00:00 2001 From: Hans-Peter Nilsson Date: Tue, 20 Oct 2015 06:56:33 +0200 Subject: Correct printed value of Main in mmo.c consistency error message. --- bfd/ChangeLog | 5 +++++ 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 + + * mmo.c (mmo_write_symbols_and_terminator): Correct printed value + of Main in error message. + 2015-10-18 Doug Evans * targets.c (bfd_flavour_name): "MMO" is spelled "mmo". diff --git a/bfd/mmo.c b/bfd/mmo.c index b269ffb..484a370 100644 --- a/bfd/mmo.c +++ b/bfd/mmo.c @@ -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) -- cgit v1.1