[7/8] section-select: Remove bfd_max_section_id again
Checks
Commit Message
since we reset the whole matching state completely we don't
need the already-seen early-outs anymore.
---
Depending on how 4/8 is decided this patch might not land in the tree in
the end, as without rebuilding the whole matchings from scratch the
early-outs remain useful,
Ciao,
Michael.
bfd/bfd-in2.h | 2 --
bfd/section.c | 19 -------------------
ld/ldlang.c | 19 +------------------
ld/ldlang.h | 1 -
4 files changed, 1 insertion(+), 40 deletions(-)
@@ -1330,8 +1330,6 @@ discarded_section (const asection *sec)
{ 0, NAME, 0, BSF_SECTION_SYM, SECTION }
#endif
-unsigned int bfd_get_max_section_id (void);
-
void bfd_section_list_clear (bfd *);
asection *bfd_get_section_by_name (bfd *abfd, const char *name);
@@ -849,25 +849,6 @@ SUBSECTION
These are the functions exported by the section handling part of BFD.
*/
-/*
-FUNCTION
- bfd_get_max_section_id
-
-SYNOPSIS
- unsigned int bfd_get_max_section_id (void);
-
-DESCRIPTION
- Returns an internal number representing the maximum value of
- any SECTION->id member. Whenever a new section is created that
- value increases. It never decreases.
-*/
-
-unsigned int
-bfd_get_max_section_id (void)
-{
- return _bfd_section_id;
-}
-
/*
FUNCTION
bfd_section_list_clear
@@ -368,8 +368,6 @@ walk_wild_file_in_exclude_list (struct name_list *exclude_list,
return false;
}
-static unsigned int old_max_section_id = 0;
-
/* Add SECTION (from input FILE) to the list of matching sections
within PTR (the matching wildcard is SEC). */
@@ -402,9 +400,6 @@ walk_wild_section_match (lang_wild_statement_type *ptr,
const char *file_spec = ptr->filename;
char *p;
- if (s->id < ptr->max_section_id)
- return;
-
/* Check if filenames match. */
if (file_spec == NULL)
;
@@ -896,8 +891,6 @@ resolve_wild_sections (lang_input_statement_type *file)
const char *sname = bfd_section_name (s);
char c = 1;
struct prefixtree *t = ptroot;
- if (old_max_section_id && s->id < old_max_section_id)
- continue;
//printf (" YYY consider %s of %s\n", sname, file->the_bfd->filename);
do
{
@@ -954,7 +947,6 @@ resolve_wilds (void)
}
}
}
- old_max_section_id = bfd_get_max_section_id ();
}
/* For each input section that matches wild statement S calls
@@ -965,12 +957,7 @@ walk_wild (lang_wild_statement_type *s, callback_t callback, void *data)
{
lang_statement_union_type *l;
- if (s->max_section_id < bfd_get_max_section_id ())
- {
- //printf("XXX %s\n", s->filename ? s->filename : "<null>");
- s->max_section_id = bfd_get_max_section_id ();
- }
-
+ //printf("XXX %s\n", s->filename ? s->filename : "<null>");
for (l = s->matching_sections.head; l; l = l->header.next)
{
(*callback) (s, l->input_matcher.pattern, l->input_matcher.section,
@@ -7853,8 +7840,6 @@ reset_one_wild (lang_statement_union_type *statement)
if (statement->header.type == lang_wild_statement_enum)
{
lang_wild_statement_type *stmt = &statement->wild_statement;
- stmt->max_section_id = 0;
- /* XXX Leaks? */
lang_list_init (&stmt->matching_sections);
}
}
@@ -7863,7 +7848,6 @@ static void
reset_resolved_wilds (void)
{
lang_for_each_statement (reset_one_wild);
- old_max_section_id = 0;
}
void
@@ -8240,7 +8224,6 @@ lang_add_wild (struct wildcard_spec *filespec,
new_stmt->section_list = section_list;
new_stmt->keep_sections = keep_sections;
lang_list_init (&new_stmt->children);
- new_stmt->max_section_id = 0;
lang_list_init (&new_stmt->matching_sections);
analyze_walk_wild_section_handler (new_stmt);
if (0)
@@ -399,7 +399,6 @@ struct lang_wild_statement_struct
lang_statement_list_type children;
struct name_list *exclude_name_list;
lang_statement_list_type matching_sections;
- unsigned int max_section_id;
lang_section_bst_type *tree, **rightmost;
struct flag_info *section_flag_list;