X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gdb%2Fdicos-tdep.c;h=62b78133e3ad72f0179dec8a8d60b574536def87;hb=refs%2Fheads%2Fconcurrent-displaced-stepping-2020-04-01;hp=d64efe56aafd14b717a5bb5cf458d5f16c0ed882;hpb=4c1d29734e9ca4e8921c9962e0f342bcc9e95c16;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/dicos-tdep.c b/gdb/dicos-tdep.c index d64efe56aa..62b78133e3 100644 --- a/gdb/dicos-tdep.c +++ b/gdb/dicos-tdep.c @@ -1,6 +1,6 @@ /* Target-dependent, architecture-independent code for DICOS, for GDB. - Copyright (C) 2009 Free Software Foundation, Inc. + Copyright (C) 2009-2020 Free Software Foundation, Inc. This file is part of GDB. @@ -19,27 +19,30 @@ #include "defs.h" #include "osabi.h" -#include "gdb_string.h" #include "solib.h" #include "solib-target.h" #include "inferior.h" #include "dicos-tdep.h" +#include "gdbarch.h" void dicos_init_abi (struct gdbarch *gdbarch) { - struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); - set_solib_ops (gdbarch, &solib_target_so_ops); /* Every process, although has its own address space, sees the same - list of shared libraries. */ + list of shared libraries. There's no "main executable" in DICOS, + so this accounts for all code. */ set_gdbarch_has_global_solist (gdbarch, 1); + /* The DICOS breakpoint API takes care of magically making + breakpoints visible to all inferiors. */ + set_gdbarch_has_global_breakpoints (gdbarch, 1); + /* There's no (standard definition of) entry point or a guaranteed text location with a symbol where to place the call dummy, so we - put it on the stack. */ - set_gdbarch_call_dummy_location (gdbarch, ON_STACK); + need it on the stack. Rely on i386_gdbarch_init used also for + amd64 to set up ON_STACK inferior calls. */ /* DICOS rewinds the PC itself. */ set_gdbarch_decr_pc_after_break (gdbarch, 0); @@ -67,7 +70,7 @@ dicos_load_module_p (bfd *abfd, int header_size) if (!section) return 0; - if (bfd_section_size (abfd, section) != header_size) + if (bfd_section_size (section) != header_size) return 0; /* Dicos LMs always have a "Dicos_loadModuleInfo" symbol @@ -76,7 +79,8 @@ dicos_load_module_p (bfd *abfd, int header_size) storage_needed = bfd_get_symtab_upper_bound (abfd); if (storage_needed < 0) { - warning (_("Can't read elf symbols from %s: %s"), bfd_get_filename (abfd), + warning (_("Can't read elf symbols from %s: %s"), + bfd_get_filename (abfd), bfd_errmsg (bfd_get_error ())); return 0; } @@ -85,7 +89,7 @@ dicos_load_module_p (bfd *abfd, int header_size) { long i, symcount; - symbol_table = xmalloc (storage_needed); + symbol_table = (asymbol **) xmalloc (storage_needed); symcount = bfd_canonicalize_symtab (abfd, symbol_table); if (symcount < 0)