diff options
author | Elena Zannoni <ezannoni@kwikemart.cygnus.com> | 2002-02-06 01:20:23 +0000 |
---|---|---|
committer | Elena Zannoni <ezannoni@kwikemart.cygnus.com> | 2002-02-06 01:20:23 +0000 |
commit | a2cf933af419a80cd9bc59bd2bfa2a10d88e8a05 (patch) | |
tree | afd2d32dc664bd6b9badb59b73e527c3dc86d37a /gdb/gdbarch.h | |
parent | 9a36a60b534b58e46366eb0574699381850b60f8 (diff) | |
download | gdb-a2cf933af419a80cd9bc59bd2bfa2a10d88e8a05.zip gdb-a2cf933af419a80cd9bc59bd2bfa2a10d88e8a05.tar.gz gdb-a2cf933af419a80cd9bc59bd2bfa2a10d88e8a05.tar.bz2 |
2002-02-04 Elena Zannoni <ezannoni@redhat.com>
* gdbarch.sh: Add definitions for COFF_MAKE_MSYMBOL_SPECIAL and
ELF_MAKE_MSYMBOL_SPECIAL.
* gdbarch.c, gdbarch.h: Regenerate.
* arch-utils.c (default_elf_make_msymbol_special,
default_coff_make_msymbol_special): New functions.
* arch-utils.h (default_elf_make_msymbol_special,
default_coff_make_msymbol_special): Export.
* elfread.c (elf_symtab_read): Compile use of
ELF_MAKE_MSYMBOL_SPECIAL unconditionally because it is now
multiarched.
* coffread.c (coff_symtab_read): Ditto, for
COFF_MAKE_MSYMBOL_SPECIAL.
Diffstat (limited to 'gdb/gdbarch.h')
-rw-r--r-- | gdb/gdbarch.h | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/gdb/gdbarch.h b/gdb/gdbarch.h index b90a553..ae96ded 100644 --- a/gdb/gdbarch.h +++ b/gdb/gdbarch.h @@ -43,6 +43,7 @@ struct frame_info; struct value; struct objfile; +struct minimal_symbol; extern struct gdbarch *current_gdbarch; @@ -2225,6 +2226,40 @@ extern void set_gdbarch_dwarf2_build_frame_info (struct gdbarch *gdbarch, gdbarc #endif #endif +/* Default (function) for non- multi-arch platforms. */ +#if (!GDB_MULTI_ARCH) && !defined (ELF_MAKE_MSYMBOL_SPECIAL) +#define ELF_MAKE_MSYMBOL_SPECIAL(sym, msym) (default_elf_make_msymbol_special (sym, msym)) +#endif + +typedef void (gdbarch_elf_make_msymbol_special_ftype) (asymbol *sym, struct minimal_symbol *msym); +extern void gdbarch_elf_make_msymbol_special (struct gdbarch *gdbarch, asymbol *sym, struct minimal_symbol *msym); +extern void set_gdbarch_elf_make_msymbol_special (struct gdbarch *gdbarch, gdbarch_elf_make_msymbol_special_ftype *elf_make_msymbol_special); +#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (ELF_MAKE_MSYMBOL_SPECIAL) +#error "Non multi-arch definition of ELF_MAKE_MSYMBOL_SPECIAL" +#endif +#if GDB_MULTI_ARCH +#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) || !defined (ELF_MAKE_MSYMBOL_SPECIAL) +#define ELF_MAKE_MSYMBOL_SPECIAL(sym, msym) (gdbarch_elf_make_msymbol_special (current_gdbarch, sym, msym)) +#endif +#endif + +/* Default (function) for non- multi-arch platforms. */ +#if (!GDB_MULTI_ARCH) && !defined (COFF_MAKE_MSYMBOL_SPECIAL) +#define COFF_MAKE_MSYMBOL_SPECIAL(val, msym) (default_coff_make_msymbol_special (val, msym)) +#endif + +typedef void (gdbarch_coff_make_msymbol_special_ftype) (int val, struct minimal_symbol *msym); +extern void gdbarch_coff_make_msymbol_special (struct gdbarch *gdbarch, int val, struct minimal_symbol *msym); +extern void set_gdbarch_coff_make_msymbol_special (struct gdbarch *gdbarch, gdbarch_coff_make_msymbol_special_ftype *coff_make_msymbol_special); +#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (COFF_MAKE_MSYMBOL_SPECIAL) +#error "Non multi-arch definition of COFF_MAKE_MSYMBOL_SPECIAL" +#endif +#if GDB_MULTI_ARCH +#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) || !defined (COFF_MAKE_MSYMBOL_SPECIAL) +#define COFF_MAKE_MSYMBOL_SPECIAL(val, msym) (gdbarch_coff_make_msymbol_special (current_gdbarch, val, msym)) +#endif +#endif + extern struct gdbarch_tdep *gdbarch_tdep (struct gdbarch *gdbarch); |