/* Various things we might complain about... */
+static int init_import_symbols (struct objfile *objfile);
+
static void som_symfile_init (struct objfile *);
static void som_new_init (struct objfile *);
int i;
CORE_ADDR text_addr;
- objfile->num_sections = SECT_OFF_MAX;
+ objfile->num_sections = bfd_count_sections (objfile->obfd);
objfile->section_offsets = (struct section_offsets *)
- obstack_alloc (&objfile->psymbol_obstack, SIZEOF_SECTION_OFFSETS);
+ obstack_alloc (&objfile->psymbol_obstack,
+ SIZEOF_N_SECTION_OFFSETS (objfile->num_sections));
/* FIXME: ezannoni 2000-04-20 The section names in SOM are not
.text, .data, etc, but $TEXT$, $DATA$,... We should initialize
/* Note: Here is OK to compare with ".text" because this is the
name that gdb itself gives to that section, not the SOM
name. */
- for (i = 0; i < SECT_OFF_MAX && addrs->other[i].name; i++)
+ for (i = 0; i < objfile->num_sections && addrs->other[i].name; i++)
if (strcmp (addrs->other[i].name, ".text") == 0)
break;
text_addr = addrs->other[i].addr;
- for (i = 0; i < SECT_OFF_MAX; i++)
+ for (i = 0; i < objfile->num_sections; i++)
(objfile->section_offsets)->offsets[i] = text_addr;
}
}
not defined there. (Variables that are imported are dealt
with as "loc_indirect" vars.)
Return value = number of import symbols read in. */
-int
+static int
init_import_symbols (struct objfile *objfile)
{
unsigned int import_list;
unsigned int string_table;
unsigned int string_table_size;
char *string_buffer;
- register int i;
- register int j;
- register int k;
+ int i;
+ int j;
+ int k;
asection *text_section; /* section handle */
unsigned int dl_header[12]; /* SOM executable header */
unsigned int string_table;
unsigned int string_table_size;
char *string_buffer;
- register int i;
- register int j;
- register int k;
+ int i;
+ int j;
+ int k;
asection *text_section; /* section handle */
unsigned int dl_header[12]; /* SOM executable header */