diff options
-rw-r--r-- | ld/ChangeLog | 8 | ||||
-rw-r--r-- | ld/ldlang.c | 12 | ||||
-rw-r--r-- | ld/ldlang.h | 4 |
3 files changed, 17 insertions, 7 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog index f513cc6..caad59d 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,11 @@ +2012-05-30 Alan Modra <amodra@gmail.com> + + * ldlang.h (lang_output_section_statement_type): Rename + "section_relative_symbol" field to "update_dot". + * ldlang.c: Update all uses. + (strip_excluded_output_sections): Don't test update_dot_tree here.. + (lang_leave_overlay): ..set update_dot here. + 2012-05-26 Alan Modra <amodra@gmail.com> * ldlex.h (enum option_values): Move from.. diff --git a/ld/ldlang.c b/ld/ldlang.c index f4eb703..4e75624 100644 --- a/ld/ldlang.c +++ b/ld/ldlang.c @@ -3889,8 +3889,7 @@ strip_excluded_output_sections (void) { /* We don't set bfd_section to NULL since bfd_section of the removed output section statement may still be used. */ - if (!os->section_relative_symbol - && !os->update_dot_tree) + if (!os->update_dot) os->ignored = TRUE; output_section->flags |= SEC_EXCLUDE; bfd_section_list_remove (link_info.output_bfd, output_section); @@ -5253,7 +5252,7 @@ lang_size_sections_1 || tree->type.node_class == etree_assign) && (tree->assign.dst [0] != '.' || tree->assign.dst [1] != '\0')) - output_section_statement->section_relative_symbol = 1; + output_section_statement->update_dot = 1; if (!output_section_statement->ignored) { @@ -7390,8 +7389,11 @@ lang_leave_overlay (etree_type *lma_expr, /* After setting the size of the last section, set '.' to end of the overlay region. */ if (overlay_list != NULL) - overlay_list->os->update_dot_tree - = exp_assign (".", exp_binop ('+', overlay_vma, overlay_max)); + { + overlay_list->os->update_dot = 1; + overlay_list->os->update_dot_tree + = exp_assign (".", exp_binop ('+', overlay_vma, overlay_max)); + } l = overlay_list; while (l != NULL) diff --git a/ld/ldlang.h b/ld/ldlang.h index b5d50c5..7f1e743 100644 --- a/ld/ldlang.h +++ b/ld/ldlang.h @@ -163,8 +163,8 @@ typedef struct lang_output_section_statement_struct unsigned int all_input_readonly : 1; /* If this section should be ignored. */ unsigned int ignored : 1; - /* If there is a symbol relative to this section. */ - unsigned int section_relative_symbol : 1; + /* If this section should update "dot". Prevents section being ignored. */ + unsigned int update_dot : 1; } lang_output_section_statement_type; typedef struct |