bfd/mmo.c (MMIX): Fix massive gcc LTO testsuite failures.

* mmo.c (mmo_write_symbols_and_terminator): Skip symbol-type
	assignment loop for bfd plugin objects.
This commit is contained in:
Hans-Peter Nilsson
2015-07-29 05:39:27 +02:00
parent a66f09dd91
commit 11509220a0
2 changed files with 58 additions and 47 deletions

View File

@ -1,3 +1,8 @@
2015-07-29 Hans-Peter Nilsson <hp@bitrange.com>
* mmo.c (mmo_write_symbols_and_terminator): Skip symbol-type
assignment loop for bfd plugin objects.
2015-07-28 Alan Modra <amodra@gmail.com> 2015-07-28 Alan Modra <amodra@gmail.com>
* elf.c (_bfd_elf_map_sections_to_segments): Do not make a new * elf.c (_bfd_elf_map_sections_to_segments): Do not make a new

View File

@ -2934,6 +2934,10 @@ mmo_write_symbols_and_terminator (bfd *abfd)
count++; count++;
} }
/* Don't bother inspecting symbols in plugin dummy objects; their
symbols aren't fully inspectable. */
if ((abfd->flags & BFD_PLUGIN) == 0)
{
for (i = 0, serno = 1; i < count && table[i] != NULL; i++) for (i = 0, serno = 1; i < count && table[i] != NULL; i++)
{ {
asymbol *s = table[i]; asymbol *s = table[i];
@ -2942,7 +2946,8 @@ mmo_write_symbols_and_terminator (bfd *abfd)
mean "local" in the sense of linkable-and-observable-after-link. mean "local" in the sense of linkable-and-observable-after-link.
Let's just check the BSF_GLOBAL flag. Let's just check the BSF_GLOBAL flag.
Also, don't export symbols with characters not in the allowed set. */ Also, don't export symbols with characters not in the
allowed set. */
if ((s->flags & (BSF_DEBUGGING|BSF_GLOBAL)) == BSF_GLOBAL if ((s->flags & (BSF_DEBUGGING|BSF_GLOBAL)) == BSF_GLOBAL
&& strspn (s->name, && strspn (s->name,
valid_mmo_symbol_character_set) == strlen (s->name)) valid_mmo_symbol_character_set) == strlen (s->name))
@ -2989,6 +2994,7 @@ mmo_write_symbols_and_terminator (bfd *abfd)
return FALSE; return FALSE;
} }
} }
}
/* Change the root node to be a ":"-prefix. */ /* Change the root node to be a ":"-prefix. */
root.symchar = ':'; root.symchar = ':';