diff options
Diffstat (limited to 'bfd')
-rw-r--r-- | bfd/ChangeLog | 5 | ||||
-rw-r--r-- | bfd/coffcode.h | 35 |
2 files changed, 26 insertions, 14 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index f2e4ff5..40c0fe4 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +Wed May 1 18:39:32 1996 Doug Evans <dje@canuck.cygnus.com> + + * coffcode.h (coff_write_object_contents): In comdat section lookup, + stop looking when section is found. + Wed May 1 14:17:57 1996 Ian Lance Taylor <ian@cygnus.com> * coffcode.h (STRING_SIZE_SIZE): Define. diff --git a/bfd/coffcode.h b/bfd/coffcode.h index 520d048..2c716f6 100644 --- a/bfd/coffcode.h +++ b/bfd/coffcode.h @@ -2471,28 +2471,35 @@ coff_write_object_contents (abfd) { unsigned int i, count; asymbol **psym; + coff_symbol_type *csym; count = bfd_get_symcount (abfd); for (i = 0, psym = abfd->outsymbols; i < count; i++, psym++) { - coff_symbol_type *csym; - combined_entry_type *aux; - - if (strcmp ((*psym)->name, current->name) != 0) - continue; + /* Here *PSYM is the section symbol for CURRENT. */ - csym = coff_symbol_from (abfd, *psym); - if (csym == NULL - || csym->native == NULL - || csym->native->u.syment.n_numaux < 1 - || csym->native->u.syment.n_sclass != C_STAT - || csym->native->u.syment.n_type != T_NULL) - continue; + if (strcmp ((*psym)->name, current->name) == 0) + { + csym = coff_symbol_from (abfd, *psym); + if (csym == NULL + || csym->native == NULL + || csym->native->u.syment.n_numaux < 1 + || csym->native->u.syment.n_sclass != C_STAT + || csym->native->u.syment.n_type != T_NULL) + continue; + break; + } + } - /* Here *PSYM is the section symbol for CURRENT. */ + /* Did we find it? + Note that we might not if we're converting the file from + some other object file format. */ + if (i < count) + { + combined_entry_type *aux; /* We don't touch the x_checksum field. The - x_associated field is not currently supported. */ + x_associated field is not currently supported. */ aux = csym->native + 1; switch (current->flags & SEC_LINK_DUPLICATES) |