Modifications/fixes to support the ARM/ELF port.

This commit is contained in:
Zdenek Radouch 1998-09-01 16:24:23 +00:00
parent 0339ba4376
commit e01b420025
5 changed files with 3693 additions and 141 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -576,7 +576,8 @@ typedef unsigned long t_inst; /* Integer big enough to hold an instruction */
being used to store the symbol size, so the assumption is
that the symbol size cannot exceed 2^31.
MAKE_MSYMBOL_SPECIAL tests whether an ELF symbol is "special", i.e. refers
ELF_MAKE_MSYMBOL_SPECIAL
tests whether an ELF symbol is "special", i.e. refers
to a 16-bit function, and sets a "special" bit in a
minimal symbol to mark it as a 16-bit function
MSYMBOL_IS_SPECIAL tests the "special" bit in a minimal symbol
@ -584,9 +585,9 @@ typedef unsigned long t_inst; /* Integer big enough to hold an instruction */
the "info" field with the "special" bit masked out
*/
#define MAKE_MSYMBOL_SPECIAL(sym,msym) \
#define ELF_MAKE_MSYMBOL_SPECIAL(sym,msym) \
{ \
if (((elf_symbol_type *) sym) -> internal_elf_sym.st_other == STO_MIPS16) { \
if (((elf_symbol_type *)(sym))->internal_elf_sym.st_other == STO_MIPS16) { \
MSYMBOL_INFO (msym) = (char *) (((long) MSYMBOL_INFO (msym)) | 0x80000000); \
SYMBOL_VALUE_ADDRESS (msym) |= 1; \
} \

View File

@ -1148,8 +1148,8 @@ add_partial_symbol (pdi, objfile)
case DW_TAG_subprogram:
if (pdi->is_external)
{
prim_record_minimal_symbol (pdi->name, pdi->lowpc + baseaddr,
mst_text, objfile);
/*prim_record_minimal_symbol (pdi->name, pdi->lowpc + baseaddr,
mst_text, objfile);*/
add_psymbol_to_list (pdi->name, strlen (pdi->name),
VAR_NAMESPACE, LOC_BLOCK,
&objfile->global_psymbols,
@ -1157,8 +1157,8 @@ add_partial_symbol (pdi, objfile)
}
else
{
prim_record_minimal_symbol (pdi->name, pdi->lowpc + baseaddr,
mst_file_text, objfile);
/*prim_record_minimal_symbol (pdi->name, pdi->lowpc + baseaddr,
mst_file_text, objfile);*/
add_psymbol_to_list (pdi->name, strlen (pdi->name),
VAR_NAMESPACE, LOC_BLOCK,
&objfile->static_psymbols,
@ -1195,8 +1195,8 @@ add_partial_symbol (pdi, objfile)
if (pdi->locdesc == NULL)
return;
addr = decode_locdesc (pdi->locdesc, objfile);
prim_record_minimal_symbol (pdi->name, addr + baseaddr,
mst_file_data, objfile);
/*prim_record_minimal_symbol (pdi->name, addr + baseaddr,
mst_file_data, objfile);*/
add_psymbol_to_list (pdi->name, strlen (pdi->name),
VAR_NAMESPACE, LOC_STATIC,
&objfile->static_psymbols,

View File

@ -538,8 +538,8 @@ elf_symtab_read (abfd, addr, objfile, dynamic)
if (msym != NULL)
msym->filename = filesymname;
#endif
#ifdef MAKE_MSYMBOL_SPECIAL
MAKE_MSYMBOL_SPECIAL (sym,msym);
#ifdef ELF_MAKE_MSYMBOL_SPECIAL
ELF_MAKE_MSYMBOL_SPECIAL(sym,msym);
#endif
}
}