Modifications/fixes to support the ARM/ELF port.
This commit is contained in:
parent
0339ba4376
commit
e01b420025
5 changed files with 3693 additions and 141 deletions
2605
gdb/ChangeLog
2605
gdb/ChangeLog
File diff suppressed because it is too large
Load diff
1206
gdb/arm-tdep.c
1206
gdb/arm-tdep.c
File diff suppressed because it is too large
Load diff
|
@ -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; \
|
||||
} \
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue