/* Shared code to pre-read a stab (dbx-style), when building a psymtab.
- Copyright 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994
+ Copyright 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995
Free Software Foundation, Inc.
This file is part of GDB.
SET_NAMESTRING() --Set namestring to name of symbol.
CUR_SYMBOL_TYPE --Type code of current symbol.
CUR_SYMBOL_VALUE --Value field of current symbol. May be adjusted here.
+ namestring - variable pointing to the name of the stab.
+ section_offsets - variable pointing to the section offsets.
+ pst - the partial symbol table being built.
+
+ psymtab_include_list, includes_used, includes_allocated - list of include
+ file names (N_SOL) seen so far.
+ dependency_list, dependencies_used, dependencies_allocated - list of
+ N_EXCL stabs seen so far.
+
+ END_PSYMTAB -- end a partial symbol table.
+ START_PSYMTAB -- start a partial symbol table.
*/
/* End of macro definitions, now let's handle them symbols! */
char *p;
valu = CUR_SYMBOL_VALUE + ANOFFSET (section_offsets, SECT_OFF_TEXT);
+#ifdef SOFUN_ADDRESS_MAYBE_MISSING
+ /* A zero value is probably an indication for the SunPRO 3.0
+ compiler. end_psymtab explicitly tests for zero, so
+ don't relocate it. */
+ if (CUR_SYMBOL_VALUE == 0)
+ valu = 0;
+#endif
past_first_source_file = 1;
{
case 'S':
CUR_SYMBOL_VALUE += ANOFFSET (section_offsets, SECT_OFF_DATA);
+#ifdef STATIC_TRANSFORM_NAME
+ namestring = STATIC_TRANSFORM_NAME (namestring);
+#endif
ADD_PSYMBOL_ADDR_TO_LIST (namestring, p - namestring,
VAR_NAMESPACE, LOC_STATIC,
objfile->static_psymbols,
#ifdef DBXREAD_ONLY
/* Kludges for ELF/STABS with Sun ACC */
last_function_name = namestring;
+#ifdef SOFUN_ADDRESS_MAYBE_MISSING
/* Do not fix textlow==0 for .o or NLM files, as 0 is a legit
value for the bottom of the text seg in those cases. */
if (pst && pst->textlow == 0 && !symfile_relocatable)
- pst->textlow = CUR_SYMBOL_VALUE;
+ pst->textlow =
+ find_stab_function_addr (namestring, pst, objfile);
+#endif
#if 0
if (startup_file_end == 0)
startup_file_end = CUR_SYMBOL_VALUE;
#ifdef DBXREAD_ONLY
/* Kludges for ELF/STABS with Sun ACC */
last_function_name = namestring;
+#ifdef SOFUN_ADDRESS_MAYBE_MISSING
/* Do not fix textlow==0 for .o or NLM files, as 0 is a legit
value for the bottom of the text seg in those cases. */
if (pst && pst->textlow == 0 && !symfile_relocatable)
- pst->textlow = CUR_SYMBOL_VALUE;
+ pst->textlow =
+ find_stab_function_addr (namestring, pst, objfile);
+#endif
#if 0
if (startup_file_end == 0)
startup_file_end = CUR_SYMBOL_VALUE;
case '7':
case '8':
case '9':
+ case '-':
continue;
case ':':