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
/* 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)
{
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)