* xcoffread.c (read_xcoff_symtab): Process XTY_LD symbols we were

ignoring before.  But continue to ignore XMC_DS.
This commit is contained in:
Jim Kingdon 1994-09-28 17:18:59 +00:00
parent 98e9482ab5
commit d4cedfe4ae
2 changed files with 28 additions and 8 deletions

View File

@ -1,3 +1,8 @@
Wed Sep 28 08:59:14 1994 Jim Kingdon (kingdon@cygnus.com)
* xcoffread.c (read_xcoff_symtab): Process XTY_LD symbols we were
ignoring before. But continue to ignore XMC_DS.
Mon Sep 26 02:59:00 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) Mon Sep 26 02:59:00 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
* defs.h (misc_command_type): Remove trailing comma from * defs.h (misc_command_type): Remove trailing comma from

View File

@ -1283,10 +1283,11 @@ read_xcoff_symtab (objfile, nsyms)
case XTY_LD : case XTY_LD :
/* a function entry point. */ switch (CSECT_SCLAS (&main_aux))
if (CSECT_SCLAS (&main_aux) == XMC_PR) { {
case XMC_PR:
function_entry_point: /* a function entry point. */
function_entry_point:
RECORD_MINIMAL_SYMBOL (cs->c_name, cs->c_value, mst_text, RECORD_MINIMAL_SYMBOL (cs->c_name, cs->c_value, mst_text,
symname_alloced, cs->c_secnum, objfile); symname_alloced, cs->c_secnum, objfile);
@ -1357,9 +1358,9 @@ function_entry_point:
cs->c_value + ptb->fsize, objfile); cs->c_value + ptb->fsize, objfile);
} }
continue; continue;
}
/* shared library function trampoline code entry point. */ case XMC_GL:
else if (CSECT_SCLAS (&main_aux) == XMC_GL) { /* shared library function trampoline code entry point. */
/* record trampoline code entries as mst_solib_trampoline symbol. /* record trampoline code entries as mst_solib_trampoline symbol.
When we lookup mst symbols, we will choose mst_text over When we lookup mst symbols, we will choose mst_text over
@ -1397,8 +1398,22 @@ function_entry_point:
symname_alloced, objfile); symname_alloced, objfile);
#endif #endif
continue; continue;
case XMC_DS:
/* The symbols often have the same names as debug symbols for
functions, and confuse lookup_symbol. */
continue;
default:
/* xlc and old versions of gcc put each variable in a
separate csect, so we get an XTY_SD. But new (2.5?
2.6? something like that) gcc's put several variables
in a csect, so that each variable only gets an XTY_LD.
We still need to record them. This will typically be
XMC_RW; I suspect XMC_RO and XMC_BS might be possible
too. */
break;
} }
continue;
default : /* all other XTY_XXXs */ default : /* all other XTY_XXXs */
break; break;