aboutsummaryrefslogtreecommitdiff
path: root/ld/ldlang.c
diff options
context:
space:
mode:
Diffstat (limited to 'ld/ldlang.c')
-rw-r--r--ld/ldlang.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/ld/ldlang.c b/ld/ldlang.c
index 55d1043..a32dd51 100644
--- a/ld/ldlang.c
+++ b/ld/ldlang.c
@@ -6543,6 +6543,15 @@ lang_leave_output_section_statement (fill_type *fill, const char *memspec,
memspec, lma_memspec,
current_section->load_base != NULL,
current_section->addr_tree != NULL);
+
+ /* If this section has no load region or base, but has the same
+ region as the previous section, then propagate the previous
+ section's load region. */
+
+ if (!current_section->lma_region && !current_section->load_base
+ && current_section->region == current_section->prev->region)
+ current_section->lma_region = current_section->prev->lma_region;
+
current_section->fill = fill;
current_section->phdrs = phdrs;
pop_stat_ptr ();