diff options
-rw-r--r-- | bfd/ChangeLog | 3 | ||||
-rw-r--r-- | bfd/som.c | 13 |
2 files changed, 12 insertions, 4 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index b8db4c4..bb8e8fe 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,5 +1,8 @@ Sun Mar 20 09:24:36 1994 Jeffrey A. Law (law@snake.cs.utah.edu) + * som.c (bfd_section_from_som_symbol): Only to do the value + comparison for function symbols within executables. + * som.c (bfd_section_from_som_symbol): Renamed from som_section_from_subspace_index. Pass in a native SOM symbol. For executables, iterate through the sections to find out @@ -3263,7 +3263,7 @@ som_write_headers (abfd) /* Skip any section which does not correspond to a space or subspace, or which SEC_ALLOC set (and therefore handled - in the loadable spaces/subspaces code above. */ + in the loadable spaces/subspaces code above). */ if (!som_is_subspace (subsection) || !som_is_container (section, subsection) @@ -3622,9 +3622,14 @@ bfd_section_from_som_symbol (abfd, symbol) { asection *section; - /* The meaning of the symbol_info field changes for executables. So - only use the quick symbol_info mapping for incomplete objects. */ - if ((abfd->flags & EXEC_P) == 0) + /* The meaning of the symbol_info field changes for functions + within executables. So only use the quick symbol_info mapping for + incomplete objects and non-function symbols in executables. */ + if ((abfd->flags & EXEC_P) == 0 + || (symbol->symbol_type != ST_ENTRY + && symbol->symbol_type != ST_PRI_PROG + && symbol->symbol_type != ST_SEC_PROG + && symbol->symbol_type != ST_MILLICODE)) { unsigned int index = symbol->symbol_info; for (section = abfd->sections; section != NULL; section = section->next) |