section-select: Fix exclude-file-3

this testcase wasn't correctly testing everything, it passed, even
though sections from an excluded file were included.  Fixing this
reveals a problem in the new section selector.  This fixes that as
well.
This commit is contained in:
Michael Matz 2022-11-16 16:28:01 +01:00
parent d779149912
commit 885d86436c
2 changed files with 7 additions and 4 deletions

View File

@ -422,6 +422,10 @@ walk_wild_section_match (lang_wild_statement_type *ptr,
return;
}
/* If filename is excluded we're done. */
if (walk_wild_file_in_exclude_list (ptr->exclude_name_list, file))
return;
/* Check section name against each wildcard spec. If there's no
wildcard all sections match. */
sec = ptr->section_list;
@ -920,9 +924,6 @@ resolve_wilds (void)
LANG_FOR_EACH_INPUT_STATEMENT (f)
{
//printf("XXX %s\n", f->filename);
/* XXX if (walk_wild_file_in_exclude_list (s->exclude_name_list, f))
return;*/
if (f->the_bfd == NULL
|| !bfd_check_format (f->the_bfd, bfd_archive))
resolve_wild_sections (f);

View File

@ -3,5 +3,7 @@
EXCLUDE_FILE\(\*-b\.o\) \*\(\.data \.data\.\*\)
\.data +0x[0-9a-f]+ +0x[0-9a-f]+ tmpdir/exclude-file-a\.o
\.data\.1 +0x[0-9a-f]+ +0x[0-9a-f]+ tmpdir/exclude-file-a\.o
#failif
.*data +0x[0-9a-f]+ +0x[0-9a-f]+ .*exclude-file-b.*
#...
#...