aboutsummaryrefslogtreecommitdiff
path: root/gdb/gdbarch.h
diff options
context:
space:
mode:
authorElena Zannoni <ezannoni@kwikemart.cygnus.com>2002-02-06 01:20:23 +0000
committerElena Zannoni <ezannoni@kwikemart.cygnus.com>2002-02-06 01:20:23 +0000
commita2cf933af419a80cd9bc59bd2bfa2a10d88e8a05 (patch)
treeafd2d32dc664bd6b9badb59b73e527c3dc86d37a /gdb/gdbarch.h
parent9a36a60b534b58e46366eb0574699381850b60f8 (diff)
downloadgdb-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.h35
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);