diff options
Diffstat (limited to 'ld')
-rw-r--r-- | ld/ChangeLog | 7 | ||||
-rw-r--r-- | ld/ldlang.c | 8 |
2 files changed, 14 insertions, 1 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog index b634dd8..666ce5c 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,6 +1,13 @@ 2020-03-05 Alan Modra <amodra@gmail.com> PR 25570 + * ldlang.c (lang_size_sections_1): Don't report changes on + second and subsequent iterations that make no change in + alignment from that already reported. + +2020-03-05 Alan Modra <amodra@gmail.com> + + PR 25570 * ldlang.c (lang_sizing_iteration): New static var. (lang_size_sections_1): Warn about no memory region only on first iteration. Warn about changing start address on first iteration diff --git a/ld/ldlang.c b/ld/ldlang.c index 6ffa7af..63f9d18 100644 --- a/ld/ldlang.c +++ b/ld/ldlang.c @@ -5597,7 +5597,13 @@ lang_size_sections_1 if (lang_sizing_iteration == 1) diff = dotdelta; else if (lang_sizing_iteration > 1) - diff = newdot - os->bfd_section->vma; + { + /* Only report adjustments that would change + alignment from what we have already reported. */ + diff = newdot - os->bfd_section->vma; + if (!(diff & (((bfd_vma) 1 << section_alignment) - 1))) + diff = 0; + } if (diff != 0 && (config.warn_section_align || os->addr_tree != NULL)) |