Delete Tru64 support
authorPedro Alves <palves@redhat.com>
Fri, 17 Oct 2014 10:18:59 +0000 (11:18 +0100)
committerPedro Alves <palves@redhat.com>
Fri, 17 Oct 2014 10:18:59 +0000 (11:18 +0100)
This commit does most of the mechanical removal.  IOW, the easy part.

procfs.c isn't touched beyond removing a couple obvious bits that are
guarded by a couple macros defined in config/alpha/nm-osf3.h.  Going
beyond that for procfs.c & co would be a harder excision that
potentially affects Solaris.

Some comments in the generic alpha code ABIs that may still be
relevant and I wouldn't know what to do with them.  That can always be
done on a separate pass, preferably by someone who can test on alpha.

A couple other spots have references to OSF/Tru64 and related files
being removed, but it felt like removing them would make things worse,
not better.  We can revisit those when we next need to touch that
code.

I didn't remove a reference to osf in testsuite/lib/future.exp, as I
believe that code is imported from DejaGNU.

Built and tested on x86_64 Fedora 20, with --enable-targets=all.

Tested that building for --target=alpha-osf3 on x86_64 Fedora 20
fails with:

 checking for default auto-load directory... $debugdir:$datadir/auto-load
 checking for default auto-load safe-path... $debugdir:$datadir/auto-load
 *** Configuration alpha-unknown-osf3 is obsolete.
 *** Support has been REMOVED.
 make[1]: *** [configure-gdb] Error 1
 make[1]: Leaving directory `build-osf'
 make: *** [all] Error 2

gdb/
2014-10-17  Pedro Alves  <palves@redhat.com>

* Makefile.in (ALL_64_TARGET_OBS): Remove alpha-osf1-tdep.o.
(HFILES_NO_SRCDIR): Remove config/alpha/nm-osf3.h.
(ALLDEPFILES): Remove alpha-nat.c, alpha-osf1-tdep.c and
solib-osf.c.
* NEWS: Mention that support for alpha*-*-osf* has been removed.
* ada-lang.h [__alpha__ && __osf__]
(ADA_KNOWN_RUNTIME_FILE_NAME_PATTERNS): Delete.
* alpha-nat.c, alpha-osf1-tdep.c: Delete files.
* alpha-tdep.c (alpha_gdbarch_init): Remove reference to
GDB_OSABI_OSF1.
* config/alpha/alpha-osf3.mh, config/alpha/nm-osf3.h: Delete
files.
* config/djgpp/fnchange.lst (config/alpha/alpha-osf1.mh)
(config/alpha/alpha-osf2.mh, config/alpha/alpha-osf3.mh): Delete.
* configure: Regenerate.
* configure.ac: Remove references to osf.
* configure.host: Handle alpha*-*-osf* in the obsolete hosts
section.  Remove all other references to osf.
* configure.tgt: Add alpha*-*-osf* to the obsolete targets section.
Remove all other references to osf.
* dec-thread.c: Delete file.
* defs.h (GDB_OSABI_OSF1): Delete.
* inferior.h (START_INFERIOR_TRAPS_EXPECTED): New unconditionally
defined.
* osabi.c (gdb_osabi_names): Delete "OSF/1".
* procfs.c (procfs_debug_inferior) [PROCFS_DONT_TRACE_FAULTS]:
Delete code.
(unconditionally_kill_inferior)
[PROCFS_NEED_CLEAR_CURSIG_FOR_KILL]: Delete code.
* solib-osf.c: Delete file.

gdb/testsuite/
2014-10-17  Pedro Alves  <palves@redhat.com>

* gdb.base/callfuncs.exp: emove references to osf.
* gdb.base/sigall.exp: Likewise.
* gdb.gdb/selftest.exp: Likewise.
* gdb.hp/gdb.base-hp/callfwmall.exp: Likewise.
* gdb.mi/non-stop.c: Likewise.
* gdb.mi/pthreads.c: Likewise.
* gdb.reverse/sigall-precsave.exp: Likewise.
* gdb.reverse/sigall-reverse.exp: Likewise.
* gdb.threads/pthreads.c: Likewise.
* gdb.threads/pthreads.exp: Likewise.

gdb/doc/
2014-10-17  Pedro Alves  <palves@redhat.com>

* gdb.texinfo (Ada Tasks and Core Files): Delete mention of Tru64.
(SVR4 Process Information): Delete mention of OSF/1.

33 files changed:
gdb/ChangeLog
gdb/Makefile.in
gdb/NEWS
gdb/ada-lang.h
gdb/alpha-nat.c [deleted file]
gdb/alpha-osf1-tdep.c [deleted file]
gdb/alpha-tdep.c
gdb/config/alpha/alpha-osf3.mh [deleted file]
gdb/config/alpha/nm-osf3.h [deleted file]
gdb/config/djgpp/fnchange.lst
gdb/configure
gdb/configure.ac
gdb/configure.host
gdb/configure.tgt
gdb/dec-thread.c [deleted file]
gdb/defs.h
gdb/doc/ChangeLog
gdb/doc/gdb.texinfo
gdb/inferior.h
gdb/osabi.c
gdb/procfs.c
gdb/solib-osf.c [deleted file]
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.base/callfuncs.exp
gdb/testsuite/gdb.base/sigall.exp
gdb/testsuite/gdb.gdb/selftest.exp
gdb/testsuite/gdb.hp/gdb.base-hp/callfwmall.exp
gdb/testsuite/gdb.mi/non-stop.c
gdb/testsuite/gdb.mi/pthreads.c
gdb/testsuite/gdb.reverse/sigall-precsave.exp
gdb/testsuite/gdb.reverse/sigall-reverse.exp
gdb/testsuite/gdb.threads/pthreads.c
gdb/testsuite/gdb.threads/pthreads.exp

index 1ea76a5d20bf147d6e0e0115bc4d5151cd41e569..4c60c7ad6053f8e46ca2a00501dff4a68e1210e8 100644 (file)
@@ -1,3 +1,36 @@
+2014-10-17  Pedro Alves  <palves@redhat.com>
+
+       * Makefile.in (ALL_64_TARGET_OBS): Remove alpha-osf1-tdep.o.
+       (HFILES_NO_SRCDIR): Remove config/alpha/nm-osf3.h.
+       (ALLDEPFILES): Remove alpha-nat.c, alpha-osf1-tdep.c and
+       solib-osf.c.
+       * NEWS: Mention that support for alpha*-*-osf* has been removed.
+       * ada-lang.h [__alpha__ && __osf__]
+       (ADA_KNOWN_RUNTIME_FILE_NAME_PATTERNS): Delete.
+       * alpha-nat.c, alpha-osf1-tdep.c: Delete files.
+       * alpha-tdep.c (alpha_gdbarch_init): Remove reference to
+       GDB_OSABI_OSF1.
+       * config/alpha/alpha-osf3.mh, config/alpha/nm-osf3.h: Delete
+       files.
+       * config/djgpp/fnchange.lst (config/alpha/alpha-osf1.mh)
+       (config/alpha/alpha-osf2.mh, config/alpha/alpha-osf3.mh): Delete.
+       * configure: Regenerate.
+       * configure.ac: Remove references to osf.
+       * configure.host: Handle alpha*-*-osf* in the obsolete hosts
+       section.  Remove all other references to osf.
+       * configure.tgt: Add alpha*-*-osf* to the obsolete targets section.
+       Remove all other references to osf.
+       * dec-thread.c: Delete file.
+       * defs.h (GDB_OSABI_OSF1): Delete.
+       * inferior.h (START_INFERIOR_TRAPS_EXPECTED): New unconditionally
+       defined.
+       * osabi.c (gdb_osabi_names): Delete "OSF/1".
+       * procfs.c (procfs_debug_inferior) [PROCFS_DONT_TRACE_FAULTS]:
+       Delete code.
+       (unconditionally_kill_inferior)
+       [PROCFS_NEED_CLEAR_CURSIG_FOR_KILL]: Delete code.
+       * solib-osf.c: Delete file.
+
 2014-10-17  Pedro Alves  <palves@redhat.com>
 
        * remote.c (clear_threads_listing_context): Move higher up, out of
index a6cebd8573f46575c8e7a8eca04f4e9510610a36..708ab950bfaa335fb1ec570219a42874a4144514 100644 (file)
@@ -607,7 +607,7 @@ TARGET_OBS = @TARGET_OBS@
 ALL_64_TARGET_OBS = \
        aarch64-tdep.o aarch64-linux-tdep.o aarch64-newlib-tdep.o \
        alphabsd-tdep.o alphafbsd-tdep.o alpha-linux-tdep.o alpha-mdebug-tdep.o \
-       alphanbsd-tdep.o alphaobsd-tdep.o alpha-osf1-tdep.o alpha-tdep.o \
+       alphanbsd-tdep.o alphaobsd-tdep.o alpha-tdep.o \
        amd64fbsd-tdep.o amd64-darwin-tdep.o amd64-dicos-tdep.o \
        amd64-linux-tdep.o amd64nbsd-tdep.o \
        amd64obsd-tdep.o amd64-sol2-tdep.o amd64-tdep.o amd64-windows-tdep.o \
@@ -910,7 +910,7 @@ common/gdb_locale.h arch-utils.h trad-frame.h gnu-nat.h \
 language.h nbsd-tdep.h solib-svr4.h \
 macroexp.h ui-file.h regcache.h tracepoint.h tracefile.h i386-tdep.h \
 inf-child.h p-lang.h event-top.h gdbtypes.h user-regs.h \
-regformats/regdef.h config/alpha/nm-osf3.h  config/i386/nm-i386gnu.h \
+regformats/regdef.h config/i386/nm-i386gnu.h \
 config/i386/nm-fbsd.h \
 config/nm-nto.h config/sparc/nm-sol2.h config/nm-linux.h \
 top.h bsd-kvm.h gdb-stabs.h reggroups.h \
@@ -1601,9 +1601,9 @@ ALLDEPFILES = \
        aarch64-tdep.c aarch64-linux-tdep.c aarch64-newlib-tdep.c \
        aarch64-linux-nat.c \
        aix-thread.c \
-       alpha-nat.c alphabsd-nat.c alpha-linux-nat.c \
+       alphabsd-nat.c alpha-linux-nat.c \
        alpha-tdep.c alpha-mdebug-tdep.c \
-       alpha-linux-tdep.c alpha-osf1-tdep.c \
+       alpha-linux-tdep.c \
        alphabsd-tdep.c alphafbsd-tdep.c alphanbsd-tdep.c alphaobsd-tdep.c \
        amd64-nat.c amd64-tdep.c \
        amd64bsd-nat.c amd64fbsd-nat.c amd64fbsd-tdep.c \
@@ -1666,7 +1666,6 @@ ALLDEPFILES = \
        msp430-tdep.c \
        nios2-tdep.c nios2-linux-tdep.c \
        nbsd-nat.c nbsd-tdep.c obsd-nat.c obsd-tdep.c \
-       solib-osf.c \
        somread.c solib-som.c \
        posix-hdep.c \
        ppc-sysv-tdep.c ppc-linux-nat.c ppc-linux-tdep.c ppc64-tdep.c \
index 5de0a33cce82bcef36dbe78f201f8e7bda2f081a..5a2292621af7ee065bcce1bb8eb7dbb88c9cfb7d 100644 (file)
--- a/gdb/NEWS
+++ b/gdb/NEWS
@@ -49,6 +49,7 @@ queue-signal signal-name-or-number
 
 Support for these obsolete configurations has been removed.
 
+alpha*-*-osf*
 mips-sgi-irix5*
 mips-sgi-irix6*
 
index 6356cfaccde92156c3e2e22aa9eb17537f03fd1a..ba3b9d806efb3dfb9a74fd0356be26ff4fb73071 100644 (file)
@@ -34,11 +34,7 @@ struct parser_state;
    system and that might consider (confusing) debugging information.
    Each name (a basic regular expression string) is followed by a
    comma.  FIXME: Should be part of a configuration file.  */
-#if defined(__alpha__) && defined(__osf__)
-#define ADA_KNOWN_RUNTIME_FILE_NAME_PATTERNS \
-   "^[agis]-.*\\.ad[bs]$", \
-   "/usr/shlib/libpthread\\.so",
-#elif defined (__linux__)
+#if defined (__linux__)
 #define ADA_KNOWN_RUNTIME_FILE_NAME_PATTERNS \
    "^[agis]-.*\\.ad[bs]$", \
    "/lib.*/libpthread\\.so[.0-9]*$", "/lib.*/libpthread\\.a$", \
diff --git a/gdb/alpha-nat.c b/gdb/alpha-nat.c
deleted file mode 100644 (file)
index 88ff62d..0000000
+++ /dev/null
@@ -1,210 +0,0 @@
-/* Low level Alpha interface, for GDB when running native.
-   Copyright (C) 1993-2014 Free Software Foundation, Inc.
-
-   This file is part of GDB.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
-   (at your option) any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
-
-#include "defs.h"
-#include "inferior.h"
-#include "gdbcore.h"
-#include "target.h"
-#include "procfs.h"
-#include "regcache.h"
-
-#include "alpha-tdep.h"
-
-#include <sys/ptrace.h>
-#include <alpha/coreregs.h>
-#include <sys/user.h>
-
-
-/* Extract the register values out of the core file and store
-   them into REGCACHE.
-
-   CORE_REG_SECT points to the register values themselves, read into memory.
-   CORE_REG_SIZE is the size of that area.
-   WHICH says which set of registers we are handling (0 = int, 2 = float
-   on machines where they are discontiguous).
-   REG_ADDR is the offset from u.u_ar0 to the register values relative to
-   core_reg_sect.  This is used with old-fashioned core files to
-   locate the registers in a large upage-plus-stack ".reg" section.
-   Original upage address X is at location core_reg_sect+x+reg_addr.  */
-
-static void
-fetch_osf_core_registers (struct regcache *regcache,
-                         char *core_reg_sect, unsigned core_reg_size,
-                         int which, CORE_ADDR reg_addr)
-{
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
-  int regno;
-  int addr;
-  int bad_reg = -1;
-
-  /* Table to map a gdb regnum to an index in the core register
-     section.  The floating point register values are garbage in
-     OSF/1.2 core files.  OSF5 uses different names for the register
-     enum list, need to handle two cases.  The actual values are the
-     same.  */
-  static int const core_reg_mapping[ALPHA_NUM_REGS] =
-  {
-#ifdef NCF_REGS
-#define EFL NCF_REGS
-    CF_V0, CF_T0, CF_T1, CF_T2, CF_T3, CF_T4, CF_T5, CF_T6,
-    CF_T7, CF_S0, CF_S1, CF_S2, CF_S3, CF_S4, CF_S5, CF_S6,
-    CF_A0, CF_A1, CF_A2, CF_A3, CF_A4, CF_A5, CF_T8, CF_T9,
-    CF_T10, CF_T11, CF_RA, CF_T12, CF_AT, CF_GP, CF_SP, -1,
-    EFL + 0, EFL + 1, EFL + 2, EFL + 3,
-    EFL + 4, EFL + 5, EFL + 6, EFL + 7,
-    EFL + 8, EFL + 9, EFL + 10, EFL + 11,
-    EFL + 12, EFL + 13, EFL + 14, EFL + 15,
-    EFL + 16, EFL + 17, EFL + 18, EFL + 19,
-    EFL + 20, EFL + 21, EFL + 22, EFL + 23,
-    EFL + 24, EFL + 25, EFL + 26, EFL + 27,
-    EFL + 28, EFL + 29, EFL + 30, EFL + 31,
-    CF_PC, -1, -1
-#else
-#define EFL (EF_SIZE / 8)
-    EF_V0, EF_T0, EF_T1, EF_T2, EF_T3, EF_T4, EF_T5, EF_T6,
-    EF_T7, EF_S0, EF_S1, EF_S2, EF_S3, EF_S4, EF_S5, EF_S6,
-    EF_A0, EF_A1, EF_A2, EF_A3, EF_A4, EF_A5, EF_T8, EF_T9,
-    EF_T10, EF_T11, EF_RA, EF_T12, EF_AT, EF_GP, EF_SP, -1,
-    EFL + 0, EFL + 1, EFL + 2, EFL + 3,
-    EFL + 4, EFL + 5, EFL + 6, EFL + 7,
-    EFL + 8, EFL + 9, EFL + 10, EFL + 11,
-    EFL + 12, EFL + 13, EFL + 14, EFL + 15,
-    EFL + 16, EFL + 17, EFL + 18, EFL + 19,
-    EFL + 20, EFL + 21, EFL + 22, EFL + 23,
-    EFL + 24, EFL + 25, EFL + 26, EFL + 27,
-    EFL + 28, EFL + 29, EFL + 30, EFL + 31,
-    EF_PC, -1, -1
-#endif
-  };
-
-  for (regno = 0; regno < ALPHA_NUM_REGS; regno++)
-    {
-      if (gdbarch_cannot_fetch_register (gdbarch, regno))
-       {
-         regcache_raw_supply (regcache, regno, NULL);
-         continue;
-       }
-
-      if (regno == ALPHA_ZERO_REGNUM)
-       {
-         const gdb_byte zero[8] = { 0 };
-
-         regcache_raw_supply (regcache, regno, zero);
-         continue;
-       }
-
-      addr = 8 * core_reg_mapping[regno];
-      if (addr < 0 || addr >= core_reg_size)
-       {
-         /* ??? UNIQUE is a new addition.  Don't generate an error.  */
-         if (regno == ALPHA_UNIQUE_REGNUM)
-           {
-             regcache_raw_supply (regcache, regno, NULL);
-             continue;
-           }
-         if (bad_reg < 0)
-           bad_reg = regno;
-       }
-      else
-       {
-         regcache_raw_supply (regcache, regno, core_reg_sect + addr);
-       }
-    }
-  if (bad_reg >= 0)
-    {
-      error (_("Register %s not found in core file."),
-            gdbarch_register_name (gdbarch, bad_reg));
-    }
-}
-
-
-#include <sys/procfs.h>
-/* Prototypes for supply_gregset etc.  */
-#include "gregset.h"
-
-/* See the comment in m68k-tdep.c regarding the utility of these
-   functions.  */
-
-void
-supply_gregset (struct regcache *regcache, const gdb_gregset_t *gregsetp)
-{
-  const long *regp = gregsetp->regs;
-
-  /* PC is in slot 32.  */
-  alpha_supply_int_regs (regcache, -1, regp, regp + 31, NULL);
-}
-
-void
-fill_gregset (const struct regcache *regcache,
-             gdb_gregset_t *gregsetp, int regno)
-{
-  long *regp = gregsetp->regs;
-
-  /* PC is in slot 32.  */
-  alpha_fill_int_regs (regcache, regno, regp, regp + 31, NULL);
-}
-
-/* Now we do the same thing for floating-point registers.
-   Again, see the comments in m68k-tdep.c.  */
-
-void
-supply_fpregset (struct regcache *regcache, const gdb_fpregset_t *fpregsetp)
-{
-  const long *regp = fpregsetp->regs;
-
-  /* FPCR is in slot 32.  */
-  alpha_supply_fp_regs (regcache, -1, regp, regp + 31);
-}
-
-void
-fill_fpregset (const struct regcache *regcache,
-              gdb_fpregset_t *fpregsetp, int regno)
-{
-  long *regp = fpregsetp->regs;
-
-  /* FPCR is in slot 32.  */
-  alpha_fill_fp_regs (regcache, regno, regp, regp + 31);
-}
-\f
-
-/* Register that we are able to handle alpha core file formats.  */
-
-static struct core_fns alpha_osf_core_fns =
-{
-  /* This really is bfd_target_unknown_flavour.  */
-
-  bfd_target_unknown_flavour,          /* core_flavour */
-  default_check_format,                        /* check_format */
-  default_core_sniffer,                        /* core_sniffer */
-  fetch_osf_core_registers,            /* core_read_registers */
-  NULL                                 /* next */
-};
-
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_alpha_nat;
-
-void
-_initialize_alpha_nat (void)
-{
-  struct target_ops *t;
-
-  t = procfs_target ();
-  add_target (t);
-
-  deprecated_add_core_fns (&alpha_osf_core_fns);
-}
diff --git a/gdb/alpha-osf1-tdep.c b/gdb/alpha-osf1-tdep.c
deleted file mode 100644 (file)
index c88be62..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-/* Target-dependent code for OSF/1 on Alpha.
-   Copyright (C) 2002-2014 Free Software Foundation, Inc.
-
-   This file is part of GDB.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
-   (at your option) any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
-
-#include "defs.h"
-#include "frame.h"
-#include "gdbcore.h"
-#include "value.h"
-#include "osabi.h"
-#include "objfiles.h"
-
-#include "alpha-tdep.h"
-
-static int
-alpha_osf1_pc_in_sigtramp (struct gdbarch *gdbarch,
-                          CORE_ADDR pc, const char *func_name)
-{
-  return (func_name != NULL && strcmp ("__sigtramp", func_name) == 0);
-}
-
-static CORE_ADDR
-alpha_osf1_sigcontext_addr (struct frame_info *this_frame)
-{
-  struct gdbarch *gdbarch = get_frame_arch (this_frame);
-  enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
-  struct frame_info *next_frame = get_next_frame (this_frame);
-  struct frame_id next_id = null_frame_id;
-  
-  if (next_frame != NULL)
-    next_id = get_frame_id (next_frame);
-
-  return (read_memory_integer (next_id.stack_addr, 8, byte_order));
-}
-
-static void
-alpha_osf1_init_abi (struct gdbarch_info info,
-                     struct gdbarch *gdbarch)
-{
-  struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
-
-  /* Hook into the MDEBUG frame unwinder.  */
-  alpha_mdebug_init_abi (info, gdbarch);
-
-  /* The next/step support via procfs on OSF1 is broken when running
-     on multi-processor machines.  We need to use software single
-     stepping instead.  */
-  set_gdbarch_software_single_step (gdbarch, alpha_software_single_step);
-
-  tdep->sigcontext_addr = alpha_osf1_sigcontext_addr;
-  tdep->pc_in_sigtramp = alpha_osf1_pc_in_sigtramp;
-
-  tdep->jb_pc = 2;
-  tdep->jb_elt_size = 8;
-}
-
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_alpha_osf1_tdep;
-
-void
-_initialize_alpha_osf1_tdep (void)
-{
-  gdbarch_register_osabi (bfd_arch_alpha, 0, GDB_OSABI_OSF1,
-                         alpha_osf1_init_abi);
-}
index 9e4a8d89f19a4511bae8793df0a45d3ba41236a0..27fc59213abd95693866b4b3c5c33e2a12ff1070 100644 (file)
@@ -1749,14 +1749,6 @@ alpha_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
   struct gdbarch_tdep *tdep;
   struct gdbarch *gdbarch;
 
-  /* Try to determine the ABI of the object we are loading.  */
-  if (info.abfd != NULL && info.osabi == GDB_OSABI_UNKNOWN)
-    {
-      /* If it's an ECOFF file, assume it's OSF/1.  */
-      if (bfd_get_flavour (info.abfd) == bfd_target_ecoff_flavour)
-       info.osabi = GDB_OSABI_OSF1;
-    }
-
   /* Find a candidate among extant architectures.  */
   arches = gdbarch_list_lookup_by_info (arches, &info);
   if (arches != NULL)
diff --git a/gdb/config/alpha/alpha-osf3.mh b/gdb/config/alpha/alpha-osf3.mh
deleted file mode 100644 (file)
index aa63dc4..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-# Host: Little-endian Alpha running OSF/1-3.x and higher using procfs
-NAT_FILE= nm-osf3.h
-NATDEPFILES= alpha-nat.o fork-child.o \
-       solib-osf.o procfs.o proc-api.o proc-events.o proc-flags.o \
-       proc-why.o dec-thread.o
-HAVE_NATIVE_GCORE_HOST = 1
-NAT_CLIBS= -lpthreaddebug
diff --git a/gdb/config/alpha/nm-osf3.h b/gdb/config/alpha/nm-osf3.h
deleted file mode 100644 (file)
index a171f5d..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Native definitions for alpha running OSF/1-3.x and higher, using procfs.
-   Copyright (C) 1995-2014 Free Software Foundation, Inc.
-
-   This file is part of GDB.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
-   (at your option) any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
-
-/* Number of traps that happen between exec'ing the shell to run an
-   inferior, and when we finally get to the inferior code, not
-   counting the exec for the shell.  This is 1 on most
-   implementations.  */
-#define START_INFERIOR_TRAPS_EXPECTED 2
-
-/* Don't trace faults under OSF/1, rely on the posting of the appropriate
-   signal if fault tracing is disabled.
-   Tracing T_IFAULT under Alpha OSF/1 causes a `floating point enable'
-   fault from which we cannot continue (except by disabling the
-   tracing).
-   And as OSF/1 doesn't provide the standard fault definitions, the
-   mapping of faults to appropriate signals in procfs_wait is difficult.  */
-#define PROCFS_DONT_TRACE_FAULTS
-
-/* Work around some peculiarities in the OSF/1 procfs implementation.  */
-#define PROCFS_NEED_CLEAR_CURSIG_FOR_KILL
index cbf11c681201b6eea1a00ff6f622f928f0ee3d21..51948501ae45786c06389cc2c6c749bd8023e30e 100644 (file)
 @V@/gdb/armnbsd-nat.c @V@/gdb/armnbd-nat.c
 @V@/gdb/armnbsd-tdep.c @V@/gdb/armnbd-tdep.c
 @V@/gdb/c-exp.tab.c @V@/gdb/c-exp_tab.c
-@V@/gdb/config/alpha/alpha-osf1.mh @V@/gdb/config/alpha/alphosf1.mh
-@V@/gdb/config/alpha/alpha-osf2.mh @V@/gdb/config/alpha/alphosf2.mh
-@V@/gdb/config/alpha/alpha-osf3.mh @V@/gdb/config/alpha/alphosf3.mh
 @V@/gdb/config/alpha/tm-alphalinux.h @V@/gdb/config/alpha/tm-alplinux.h
 @V@/gdb/config/i386/nm-cygwin64.h @V@/gdb/config/i386/nm-cyg64.h
 @V@/gdb/config/i386/nm-linux64.h @V@/gdb/config/i386/nm-lx64.h
index 889103c8686a6433318482189edfc0d68ae5ebbd..1d6d88be761545be787e9f6b3f386a97f21ce5ff 100755 (executable)
@@ -7062,33 +7062,6 @@ _ACEOF
 fi
 
 
-# On alpha-osf, it appears that libtermcap and libcurses are not compatible.
-# There is a very specific comment in /usr/include/curses.h explaining that
-# termcap routines built into libcurses must not be used.
-#
-# The symptoms we observed so far is GDB unexpectedly changing
-# the terminal settings when tgetent is called - this is particularly
-# visible as the output is missing carriage returns, and so rapidly
-# becomes very hard to read.
-#
-# The readline configure script has already decided that libtermcap
-# was enough for its purposes, and so decided to build readline using
-# libtermcap.  Since the TUI mode requires curses, building GDB with
-# TUI enabled results in both libraries to be used at the same time,
-# which is not allowed.  This basically means that GDB with TUI is
-# broken on alpha-osf.
-
-case $host_os in
-  osf* )
-    if test x"$enable_tui" = xyes; then
-      as_fn_error "Building GDB with TUI mode is not supported on this host" "$LINENO" 5
-    fi
-    if test x"$enable_tui" = xauto; then
-      enable_tui=no
-    fi
-    ;;
-esac
-
 # For the TUI, we need enhanced curses functionality.
 if test x"$enable_tui" != xno; then
   prefer_curses=yes
index 2b4f5b08a6fc54c5b41d3dcd900143d97db5311a..2d736691c2597376275d956256d5ad12e0a791f1 100644 (file)
@@ -546,33 +546,6 @@ AS_HELP_STRING([--with-iconv-bin=PATH], [specify where to find the iconv program
  GDB_AC_DEFINE_RELOCATABLE(ICONV_BIN, iconv, ${iconv_bin})
 ])
 
-# On alpha-osf, it appears that libtermcap and libcurses are not compatible.
-# There is a very specific comment in /usr/include/curses.h explaining that
-# termcap routines built into libcurses must not be used.
-#
-# The symptoms we observed so far is GDB unexpectedly changing
-# the terminal settings when tgetent is called - this is particularly
-# visible as the output is missing carriage returns, and so rapidly
-# becomes very hard to read.
-#
-# The readline configure script has already decided that libtermcap
-# was enough for its purposes, and so decided to build readline using
-# libtermcap.  Since the TUI mode requires curses, building GDB with
-# TUI enabled results in both libraries to be used at the same time,
-# which is not allowed.  This basically means that GDB with TUI is
-# broken on alpha-osf.
-
-case $host_os in
-  osf* )
-    if test x"$enable_tui" = xyes; then
-      AC_MSG_ERROR([Building GDB with TUI mode is not supported on this host])
-    fi
-    if test x"$enable_tui" = xauto; then
-      enable_tui=no
-    fi
-    ;;
-esac
-
 # For the TUI, we need enhanced curses functionality.
 if test x"$enable_tui" != xno; then
   prefer_curses=yes
index 5f771662040d077a49511ef5b8b4ecf63e066aac..43e41fb99a040ae8f4806998a791dcc8cdbf683f 100644 (file)
@@ -20,8 +20,7 @@ case $host in
  vax-*-netbsdelf*)
     ;;
  *-*-irix* | \
- alpha*-*-osf1* | \
- alpha*-*-osf2* | \
+ alpha*-*-osf* | \
  arm*-*-netbsd* | \
  hppa*-*-hiux* | \
  i[34567]86-ncr-* | \
@@ -80,7 +79,6 @@ case "${host}" in
 
 aarch64*-*-linux*)     gdb_host=linux ;;
 
-alpha*-*-osf[3456789]*)        gdb_host=alpha-osf3 ;;
 alpha*-*-linux*)       gdb_host=alpha-linux ;;
 alpha*-*-freebsd* | alpha*-*-kfreebsd*-gnu)
                        gdb_host=fbsd ;;
index d362cd960879a5c6ec16d0da1538de5f2747822d..b4d0c8f4bbcc4f6d9d0b5795ab2290d642cc8d25 100644 (file)
@@ -14,6 +14,7 @@
 
 case $targ in
  *-*-irix* | \
+ alpha*-*-osf* | \
  d10v-*-* | \
  hppa*-*-hiux* | \
  i[34567]86-ncr-* | \
@@ -46,10 +47,6 @@ aarch64*-*-linux*)
        build_gdbserver=yes
        ;;
 
-alpha*-*-osf*)
-       # Target: Little-endian Alpha running OSF/1
-       gdb_target_obs="alpha-tdep.o alpha-osf1-tdep.o alpha-mdebug-tdep.o"
-       ;;
 alpha*-*-linux*)
        # Target: Little-endian Alpha running Linux
        gdb_target_obs="alpha-tdep.o alpha-mdebug-tdep.o alpha-linux-tdep.o \
diff --git a/gdb/dec-thread.c b/gdb/dec-thread.c
deleted file mode 100644 (file)
index d5cfad2..0000000
+++ /dev/null
@@ -1,705 +0,0 @@
-/* Copyright (C) 2008-2014 Free Software Foundation, Inc.
-
-   This file is part of GDB.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
-   (at your option) any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
-
-#include "defs.h"
-#include "command.h"
-#include "gdbcmd.h"
-#include "target.h"
-#include "observer.h"
-#include <sys/procfs.h>
-#include "gregset.h"
-#include "regcache.h"
-#include "inferior.h"
-#include "gdbthread.h"
-
-#include <pthread_debug.h>
-
-/* Print debugging traces if set to non-zero.  */
-static int debug_dec_thread = 0;
-
-/* Non-zero if the dec-thread layer is active.  */
-static int dec_thread_active = 0;
-
-/* The pthread_debug context.  */
-pthreadDebugContext_t debug_context;
-
-/* The dec-thread target_ops structure.  */
-static struct target_ops dec_thread_ops;
-
-/* Print a debug trace if DEBUG_DEC_THREAD is set (its value is adjusted
-   by the user using "set debug dec-thread ...").  */
-
-static void
-debug (char *format, ...)
-{
-  if (debug_dec_thread)
-    {
-      va_list args;
-
-      va_start (args, format);
-      printf_unfiltered ("DEC Threads: ");
-      vprintf_unfiltered (format, args);
-      printf_unfiltered ("\n");
-      va_end (args);
-    }
-}
-
-/* pthread debug callbacks.  */
-
-static int
-suspend_clbk (void *caller_context)
-{
-  return ESUCCESS;
-}
-
-static int
-resume_clbk (void *caller_context)
-{
-  return ESUCCESS;
-} 
-
-static int
-hold_clbk (void *caller_context, pthreadDebugKId_t kernel_tid)
-{ 
-  return ESUCCESS;
-}
-
-static int
-unhold_clbk (void *caller_context, pthreadDebugKId_t kernel_tid)
-{
-  return ESUCCESS;
-}
-
-static int
-read_clbk (void *caller_context, void *address, void *buffer,
-           unsigned long size)
-{
-  int status = target_read_memory ((CORE_ADDR) address, buffer, size);
-
-  if (status != 0)
-    return EINVAL;
-
-  return ESUCCESS;
-}
-
-static int
-write_clbk (void *caller_context, void *address, void *buffer,
-            unsigned long size)
-{
-  int status = target_write_memory ((CORE_ADDR) address, buffer, size);
-  
-  if (status != 0)
-    return EINVAL;
-
-  return ESUCCESS;
-}
-
-/* Get integer regs.  */
-
-static int
-get_reg_clbk(void *caller_context, pthreadDebugGetRegRtn_t regs,
-             pthreadDebugKId_t kernel_tid)
-{
-  debug ("get_reg_clbk");
-
-  /* Not sure that we actually need to do anything in this callback.  */
-  return ESUCCESS;
-}
-
-/* Set integer regs.  */
-
-static int
-set_reg_clbk(void *caller_context, const pthreadDebugRegs_t *regs,
-             pthreadDebugKId_t kernel_tid)
-{
-  debug ("set_reg_clbk");
-
-  /* Not sure that we actually need to do anything in this callback.  */
-  return ESUCCESS;
-}
-
-static int
-output_clbk (void *caller_context, char *line)
-{
-  printf_filtered ("%s\n", line);
-  return ESUCCESS;
-}
-
-static int
-error_clbk (void *caller_context, char *line)
-{
-  fprintf_filtered (gdb_stderr, "%s\n", line);
-  return ESUCCESS;
-}
-
-/* Get floating-point regs.  */
-
-static int
-get_fpreg_clbk (void *caller_context, pthreadDebugFregs_p fregs,
-                pthreadDebugKId_t kernel_tid)
-{
-  debug ("get_fpreg_clbk");
-
-  /* Not sure that we actually need to do anything in this callback.  */
-  return ESUCCESS;
-}
-
-/* Set floating-point regs.  */
-
-static int
-set_fpreg_clbk (void *caller_context, const pthreadDebugFregs_t *fregs,
-                pthreadDebugKId_t kernel_tid)
-{
-  debug ("set_fpreg_clbk");
-
-  /* Not sure that we actually need to do anything in this callback.  */
-  return ESUCCESS;
-}
-
-static void *
-malloc_clbk (void *caller_context, size_t size)
-{
-  return xmalloc (size);
-}
-
-static void
-free_clbk (void *caller_context, void *address)
-{
-  xfree (address);
-}
-
-static int
-kthdinfo_clbk (pthreadDebugClient_t caller_context,
-               pthreadDebugKId_t kernel_tid,
-               pthreadDebugKThreadInfo_p thread_info)
-{
-  return ENOTSUP;
-}
-
-static int
-speckthd_clbk (pthreadDebugClient_t caller_context,
-               pthreadDebugSpecialType_t type,
-               pthreadDebugKId_t *kernel_tid)
-{
-  return ENOTSUP;
-}
-
-static pthreadDebugCallbacks_t debug_callbacks =
-{
-  PTHREAD_DEBUG_VERSION,
-  (pthreadDebugGetMemRtn_t) read_clbk,
-  (pthreadDebugSetMemRtn_t) write_clbk,
-  suspend_clbk,
-  resume_clbk,
-  kthdinfo_clbk,
-  hold_clbk,
-  unhold_clbk,
-  (pthreadDebugGetFregRtn_t) get_fpreg_clbk,
-  (pthreadDebugSetFregRtn_t) set_fpreg_clbk,
-  (pthreadDebugGetRegRtn_t) get_reg_clbk,
-  (pthreadDebugSetRegRtn_t) set_reg_clbk,
-  (pthreadDebugOutputRtn_t) output_clbk,
-  (pthreadDebugOutputRtn_t) error_clbk,
-  malloc_clbk,
-  free_clbk,
-  speckthd_clbk
-};
-
-/* Activate thread support if appropriate.  Do nothing if thread
-   support is already active.  */
-
-static void
-enable_dec_thread (void)
-{
-  struct bound_minimal_symbol msym;
-  void* caller_context;
-  int status;
-
-  /* If already active, nothing more to do.  */
-  if (dec_thread_active)
-    return;
-
-  msym = lookup_minimal_symbol ("__pthread_dbg_symtable", NULL, NULL);
-  if (msym.minsym == NULL)
-    {
-      debug ("enable_dec_thread: No __pthread_dbg_symtable");
-      return;
-    }
-
-  status = pthreadDebugContextInit (&caller_context, &debug_callbacks,
-                                    (void *) SYMBOL_VALUE_ADDRESS (msym.minsym),
-                                    &debug_context);
-  if (status != ESUCCESS)
-    {
-      debug ("enable_dec_thread: pthreadDebugContextInit -> %d",
-             status);
-      return;
-    }
-
-  push_target (&dec_thread_ops);
-  dec_thread_active = 1;
-
-  debug ("enable_dec_thread: Thread support enabled.");
-}
-
-/* Deactivate thread support.  Do nothing if thread support is
-   already inactive.  */
-
-static void
-disable_dec_thread (void)
-{
-  if (!dec_thread_active)
-    return;
-
-  pthreadDebugContextDestroy (debug_context);
-  unpush_target (&dec_thread_ops);
-  dec_thread_active = 0;
-}
-
-/* A structure that contains a thread ID and is associated
-   pthreadDebugThreadInfo_t data.  */
-
-struct dec_thread_info
-{
-  pthreadDebugId_t thread;
-  pthreadDebugThreadInfo_t info;
-};
-typedef struct dec_thread_info dec_thread_info_s;
-
-/* The list of user threads.  */
-
-DEF_VEC_O (dec_thread_info_s);
-VEC(dec_thread_info_s) *dec_thread_list;
-
-/* Release the memory used by the given VECP thread list pointer.
-   Then set *VECP to NULL.  */
-
-static void
-free_dec_thread_info_vec (VEC(dec_thread_info_s) **vecp)
-{
-  int i;
-  struct dec_thread_info *item;
-  VEC(dec_thread_info_s) *vec = *vecp;
-
-  for (i = 0; VEC_iterate (dec_thread_info_s, vec, i, item); i++)
-     xfree (item);
-  VEC_free (dec_thread_info_s, vec);
-  *vecp = NULL;
-}
-
-/* Return a thread's ptid given its associated INFO.  */
-
-static ptid_t
-ptid_build_from_info (struct dec_thread_info info)
-{
-  int pid = ptid_get_pid (inferior_ptid);
-
-  return ptid_build (pid, 0, (long) info.thread);
-}
-
-/* Return non-zero if PTID is still alive.
-
-   Assumes that DEC_THREAD_LIST is up to date.  */
-static int
-dec_thread_ptid_is_alive (ptid_t ptid)
-{
-  pthreadDebugId_t tid = ptid_get_tid (ptid);
-  int i;
-  struct dec_thread_info *info;
-
-  if (tid == 0)
-    /* This is the thread corresponding to the process.  This ptid
-       is always alive until the program exits.  */
-    return 1;
-
-  /* Search whether an entry with the same tid exists in the dec-thread
-     list of threads.  If it does, then the thread is still alive.
-     No match found means that the thread must be dead, now.  */
-  for (i = 0; VEC_iterate (dec_thread_info_s, dec_thread_list, i, info); i++)
-    if (info->thread == tid)
-      return 1;
-  return 0;
-}
-
-/* Recompute the list of user threads and store the result in
-   DEC_THREAD_LIST.  */
-
-static void
-update_dec_thread_list (void)
-{
-  pthreadDebugId_t thread;
-  pthreadDebugThreadInfo_t info;
-  int res;
-
-  free_dec_thread_info_vec (&dec_thread_list);
-  res = pthreadDebugThdSeqInit (debug_context, &thread);
-  while (res == ESUCCESS)
-    {
-
-      res = pthreadDebugThdGetInfo (debug_context, thread, &info);
-      if (res != ESUCCESS)
-        warning (_("unable to get thread info, ignoring thread %ld"),
-                   thread);
-      else if (info.kind == PTHREAD_DEBUG_THD_KIND_INITIAL
-               || info.kind == PTHREAD_DEBUG_THD_KIND_NORMAL)
-        {
-          struct dec_thread_info *item = 
-            xmalloc (sizeof (struct dec_thread_info));
-
-          item->thread = thread;
-          item->info = info;
-          VEC_safe_push (dec_thread_info_s, dec_thread_list, item);
-        }
-      res = pthreadDebugThdSeqNext (debug_context, &thread);
-    }
-  pthreadDebugThdSeqDestroy (debug_context);
-}
-
-/* Implement the update_thread_list target_ops method.  */
-
-static void
-dec_thread_update_thread_list (struct target_ops *ops)
-{
-  int i;
-  struct dec_thread_info *info;
-  struct thread_info *tp, *tmp;
-
-  update_dec_thread_list ();
-
-  /* Delete GDB-side threads no longer found in dec_thread_list.  */
-  ALL_NON_EXITED_THREADS_SAFE (tp, tmp)
-    {
-      for (i = 0; VEC_iterate (dec_thread_info_s, dec_thread_list, i, info); i++)
-       {
-         if (ptid_equal (info->ptid, tp->ptid))
-           break;
-       }
-      if (i == VEC_length (dec_thread_info_s, dec_thread_list))
-       {
-         /* Not found.  */
-         delete_thread (tp->ptid);
-       }
-    }
-
-  /* And now add new threads.  */
-  for (i = 0; VEC_iterate (dec_thread_info_s, dec_thread_list, i, info); i++)
-    {
-      ptid_t ptid = ptid_build_from_info (*info);
-
-      if (!in_thread_list (ptid))
-        add_thread (ptid);
-    }
-}
-
-/* The "to_detach" method of the dec_thread_ops.  */
-
-static void
-dec_thread_detach (struct target_ops *ops, const char *args, int from_tty)
-{   
-  struct target_ops *beneath = find_target_beneath (ops);
-
-  debug ("dec_thread_detach");
-
-  disable_dec_thread ();
-  beneath->to_detach (beneath, args, from_tty);
-}
-
-/* Return the ptid of the thread that is currently active.  */
-
-static ptid_t
-get_active_ptid (void)
-{
-  int i;
-  struct dec_thread_info *info;
-
-  for (i = 0; VEC_iterate (dec_thread_info_s, dec_thread_list, i, info);
-       i++)
-    if (info->info.state == PTHREAD_DEBUG_STATE_RUNNING)
-      return ptid_build_from_info (*info);
-
-  /* No active thread found.  This can happen when the program
-     has just exited.  */
-  return null_ptid;
-}
-
-/* The "to_wait" method of the dec_thread_ops.  */
-
-static ptid_t
-dec_thread_wait (struct target_ops *ops,
-                ptid_t ptid, struct target_waitstatus *status, int options)
-{
-  ptid_t active_ptid;
-  struct target_ops *beneath = find_target_beneath (ops);
-
-  debug ("dec_thread_wait");
-
-  ptid = beneath->to_wait (beneath, ptid, status, options);
-
-  /* The ptid returned by the target beneath us is the ptid of the process.
-     We need to find which thread is currently active and return its ptid.  */
-  dec_thread_update_thread_list (ops);
-  active_ptid = get_active_ptid ();
-  if (ptid_equal (active_ptid, null_ptid))
-    return ptid;
-  return active_ptid;
-}
-
-/* Fetch the general purpose and floating point registers for the given
-   thread TID, and store the result in GREGSET and FPREGSET.  Return
-   zero if successful.  */
-
-static int
-dec_thread_get_regsets (pthreadDebugId_t tid, gdb_gregset_t *gregset,
-                        gdb_fpregset_t *fpregset)
-{
-  int res;
-  pthreadDebugRegs_t regs;
-  pthreadDebugFregs_t fregs;
-
-  res = pthreadDebugThdGetReg (debug_context, tid, &regs);
-  if (res != ESUCCESS)
-    {
-      debug ("dec_thread_get_regsets: pthreadDebugThdGetReg -> %d", res);
-      return -1;
-    }
-  memcpy (gregset->regs, &regs, sizeof (regs));
-
-  res = pthreadDebugThdGetFreg (debug_context, tid, &fregs);
-  if (res != ESUCCESS)
-    {
-      debug ("dec_thread_get_regsets: pthreadDebugThdGetFreg -> %d", res);
-      return -1;
-    }
-  memcpy (fpregset->regs, &fregs, sizeof (fregs));
-
-  return 0;
-}
-
-/* The "to_fetch_registers" method of the dec_thread_ops.
-
-   Because the dec-thread debug API doesn't allow us to fetch
-   only one register, we simply ignore regno and fetch+supply all
-   registers.  */
-
-static void
-dec_thread_fetch_registers (struct target_ops *ops,
-                            struct regcache *regcache, int regno)
-{
-  pthreadDebugId_t tid = ptid_get_tid (inferior_ptid);
-  gregset_t gregset;
-  fpregset_t fpregset;
-  int res;
-
-  debug ("dec_thread_fetch_registers (tid=%ld, regno=%d)", tid, regno);
-
-
-  if (tid == 0 || ptid_equal (inferior_ptid, get_active_ptid ()))
-    {
-      struct target_ops *beneath = find_target_beneath (ops);
-
-      beneath->to_fetch_registers (beneath, regcache, regno);
-      return;
-    }
-
-  res = dec_thread_get_regsets (tid, &gregset, &fpregset);
-  if (res != 0)
-    return;
-
-  supply_gregset (regcache, &gregset);
-  supply_fpregset (regcache, &fpregset);
-}
-
-/* Store the registers given in GREGSET and FPREGSET into the associated
-   general purpose and floating point registers of thread TID.  Return
-   zero if successful.  */
-
-static int
-dec_thread_set_regsets (pthreadDebugId_t tid, gdb_gregset_t gregset,
-                        gdb_fpregset_t fpregset)
-{
-  int res;
-  pthreadDebugRegs_t regs;
-  pthreadDebugFregs_t fregs;
-
-  memcpy (&regs, gregset.regs, sizeof (regs));
-  res = pthreadDebugThdSetReg (debug_context, tid, &regs);
-  if (res != ESUCCESS)
-    {
-      debug ("dec_thread_set_regsets: pthreadDebugThdSetReg -> %d", res);
-      return -1;
-    }
-
-  memcpy (&fregs, fpregset.regs, sizeof (fregs));
-  res = pthreadDebugThdSetFreg (debug_context, tid, &fregs);
-  if (res != ESUCCESS)
-    {
-      debug ("dec_thread_set_regsets: pthreadDebugThdSetFreg -> %d", res);
-      return -1;
-    }
-
-  return 0;
-}
-
-/* The "to_store_registers" method of the dec_thread_ops.
-
-   Because the dec-thread debug API doesn't allow us to store
-   just one register, we store all the registers.  */
-
-static void
-dec_thread_store_registers (struct target_ops *ops,
-                            struct regcache *regcache, int regno)
-{
-  pthreadDebugId_t tid = ptid_get_tid (inferior_ptid);
-  gregset_t gregset;
-  fpregset_t fpregset;
-  int res;
-
-  debug ("dec_thread_store_registers (tid=%ld, regno=%d)", tid, regno);
-
-  if (tid == 0 || ptid_equal (inferior_ptid, get_active_ptid ()))
-    {
-      struct target_ops *beneath = find_target_beneath (ops);
-
-      beneath->to_store_registers (beneath, regcache, regno);
-      return;
-    }
-
-  /* FIXME: brobecker/2008-05-28: I wonder if we could simply check
-     in which register set the register is and then only store the
-     registers for that register set, instead of storing both register
-     sets.  */
-  fill_gregset (regcache, &gregset, -1);
-  fill_fpregset (regcache, &fpregset, -1);
-  
-  res = dec_thread_set_regsets (tid, gregset, fpregset);
-  if (res != 0)
-    warning (_("failed to store registers."));
-}
-
-/* The "to_mourn_inferior" method of the dec_thread_ops.  */
-
-static void
-dec_thread_mourn_inferior (struct target_ops *ops)
-{
-  struct target_ops *beneath = find_target_beneath (ops);
-
-  debug ("dec_thread_mourn_inferior");
-
-  disable_dec_thread ();
-  beneath->to_mourn_inferior (beneath);
-}
-
-/* The "to_thread_alive" method of the dec_thread_ops.  */
-static int
-dec_thread_thread_alive (struct target_ops *ops, ptid_t ptid)
-{
-  debug ("dec_thread_thread_alive (tid=%ld)", ptid_get_tid (ptid));
-
-  /* The thread list maintained by GDB is up to date, since we update
-     it everytime we stop.   So check this list.  */
-  return in_thread_list (ptid);
-}
-
-/* The "to_pid_to_str" method of the dec_thread_ops.  */
-
-static char *
-dec_thread_pid_to_str (struct target_ops *ops, ptid_t ptid)
-{
-  static char *ret = NULL;
-
-  if (ptid_get_tid (ptid) == 0)
-    {
-      struct target_ops *beneath = find_target_beneath (ops);
-
-      return beneath->to_pid_to_str (beneath, ptid);
-    }
-
-  /* Free previous return value; a new one will be allocated by
-     xstrprintf().  */
-  xfree (ret);
-
-  ret = xstrprintf (_("Thread %ld"), ptid_get_tid (ptid));
-  return ret;
-}
-
-/* A "new-objfile" observer.  Used to activate/deactivate dec-thread
-   support.  */
-
-static void
-dec_thread_new_objfile_observer (struct objfile *objfile)
-{
-  if (objfile != NULL)
-     enable_dec_thread ();
-  else
-     disable_dec_thread ();
-}
-
-/* The "to_get_ada_task_ptid" method of the dec_thread_ops.  */
-
-static ptid_t
-dec_thread_get_ada_task_ptid (struct target_ops *self, long lwp, long thread)
-{
-  int i;
-  struct dec_thread_info *info;
-
-  debug ("dec_thread_get_ada_task_ptid (struct target_ops *self,"
-        " lwp=0x%lx, thread=0x%lx)",
-         lwp, thread);
-
-  for (i = 0; VEC_iterate (dec_thread_info_s, dec_thread_list, i, info);
-       i++)
-    if (info->info.teb == (pthread_t) thread)
-      return ptid_build_from_info (*info);
-
-  warning (_("Could not find thread id from THREAD = 0x%lx"), thread);
-  return inferior_ptid;
-}
-
-static void
-init_dec_thread_ops (void)
-{
-  dec_thread_ops.to_shortname          = "dec-threads";
-  dec_thread_ops.to_longname           = _("DEC threads support");
-  dec_thread_ops.to_doc                = _("DEC threads support");
-  dec_thread_ops.to_detach             = dec_thread_detach;
-  dec_thread_ops.to_wait               = dec_thread_wait;
-  dec_thread_ops.to_fetch_registers    = dec_thread_fetch_registers;
-  dec_thread_ops.to_store_registers    = dec_thread_store_registers;
-  dec_thread_ops.to_mourn_inferior     = dec_thread_mourn_inferior;
-  dec_thread_ops.to_thread_alive       = dec_thread_thread_alive;
-  dec_thread_ops.to_update_thread_list = dec_thread_update_thread_list;
-  dec_thread_ops.to_pid_to_str         = dec_thread_pid_to_str;
-  dec_thread_ops.to_stratum            = thread_stratum;
-  dec_thread_ops.to_get_ada_task_ptid  = dec_thread_get_ada_task_ptid;
-  dec_thread_ops.to_magic              = OPS_MAGIC;
-}
-
-void
-_initialize_dec_thread (void)
-{
-  init_dec_thread_ops ();
-  complete_target_initialization (&dec_thread_ops);
-
-  observer_attach_new_objfile (dec_thread_new_objfile_observer);
-
-  add_setshow_boolean_cmd ("dec-thread", class_maintenance, &debug_dec_thread,
-                            _("Set debugging of DEC threads module."),
-                            _("Show debugging of DEC threads module."),
-                            _("Enables debugging output (used to debug GDB)."),
-                            NULL, NULL,
-                            &setdebuglist, &showdebuglist);
-}
index 8914512bc7a74d059151484779edf7c68cdae0c2..1eb43ebce4646c97369602d1c4fe7d389a479925 100644 (file)
@@ -514,7 +514,6 @@ enum gdb_osabi
   GDB_OSABI_SVR4,
   GDB_OSABI_HURD,
   GDB_OSABI_SOLARIS,
-  GDB_OSABI_OSF1,
   GDB_OSABI_LINUX,
   GDB_OSABI_FREEBSD_AOUT,
   GDB_OSABI_FREEBSD_ELF,
index d5e79e7893113b80dcc9948ec48a8055eac1ae43..432899b6da4ee5c34246c8aea787f57efa15c901 100644 (file)
@@ -1,3 +1,8 @@
+2014-10-17  Pedro Alves  <palves@redhat.com>
+
+       * gdb.texinfo (Ada Tasks and Core Files): Delete mention of Tru64.
+       (SVR4 Process Information): Delete mention of OSF/1.
+
 2014-10-01  Simon Marchi  <simon.marchi@ericsson.com>
 
        * gdb.texinfo (Miscellaneous gdb/mi Commands): Document new
index 429c650a682458b5b16e7fab111c2cfa93a04965..a1b8ac7aa9144e248d6ba2625714e4fdb5d94ba8 100644 (file)
@@ -15725,10 +15725,9 @@ When inspecting a core file, as opposed to debugging a live program,
 tasking support may be limited or even unavailable, depending on
 the platform being used.
 For instance, on x86-linux, the list of tasks is available, but task
-switching is not supported.  On Tru64, however, task switching will work
-as usual.
+switching is not supported.
 
-On certain platforms, including Tru64, the debugger needs to perform some
+On certain platforms, the debugger needs to perform some
 memory writes in order to provide Ada tasking support.  When inspecting
 a core file, this means that the core file must be opened with read-write
 privileges, using the command @samp{"set write on"} (@pxref{Patching}).
@@ -19726,8 +19725,7 @@ If @value{GDBN} is configured for an operating system with this
 facility, the command @code{info proc} is available to report
 information about the process running your program, or about any
 process running on your system.  This includes, as of this writing,
-@sc{gnu}/Linux, OSF/1 (Digital Unix), Solaris, and Irix, but
-not HP-UX, for example.
+@sc{gnu}/Linux and Solaris, but not HP-UX, for example.
 
 This command may also work on core files that were created on a system
 that has the @samp{/proc} facility.
index e716005ef6cbb0ab3c27cedaa7729beb3fa8819c..0129549c9222ccc1f9995737322d1349ff3ca620 100644 (file)
@@ -250,11 +250,9 @@ enum stop_kind
 
 /* Number of traps that happen between exec'ing the shell to run an
    inferior and when we finally get to the inferior code, not counting
-   the exec for the shell.  This is 1 on most implementations.
-   Overridden in nm.h files.  */
-#if !defined(START_INFERIOR_TRAPS_EXPECTED)
+   the exec for the shell.  This is 1 on all supported
+   implementations.  */
 #define START_INFERIOR_TRAPS_EXPECTED  1
-#endif
 
 struct private_inferior;
 
index cdba812fbde1f294bdbe3d44a923a644ac9cde6a..d33ef9ca08446f40b79d6bbac49c84615fba207e 100644 (file)
@@ -50,7 +50,6 @@ static const char * const gdb_osabi_names[] =
   "SVR4",
   "GNU/Hurd",
   "Solaris",
-  "OSF/1",
   "GNU/Linux",
   "FreeBSD a.out",
   "FreeBSD ELF",
index bd91a466f58996488c2cc6d53c8ecd1c9ee26ddf..d0598a8d6115b557ac41a46276d2b4ff4e431478 100644 (file)
@@ -2917,16 +2917,9 @@ procfs_debug_inferior (procinfo *pi)
   sysset_t *traced_syscall_exits;
   int status;
 
-#ifdef PROCFS_DONT_TRACE_FAULTS
-  /* On some systems (OSF), we don't trace hardware faults.
-     Apparently it's enough that we catch them as signals.
-     Wonder why we don't just do that in general?  */
-  premptyset (&traced_faults);         /* don't trace faults.  */
-#else
   /* Register to trace hardware faults in the child.  */
   prfillset (&traced_faults);          /* trace all faults...  */
   gdb_prdelset  (&traced_faults, FLTPAGE);     /* except page fault.  */
-#endif
   if (!proc_set_traced_faults  (pi, &traced_faults))
     return __LINE__;
 
@@ -4227,16 +4220,6 @@ unconditionally_kill_inferior (procinfo *pi)
   int parent_pid;
 
   parent_pid = proc_parent_pid (pi);
-#ifdef PROCFS_NEED_CLEAR_CURSIG_FOR_KILL
-  /* FIXME: use access functions.  */
-  /* Alpha OSF/1-3.x procfs needs a clear of the current signal
-     before the PIOCKILL, otherwise it might generate a corrupted core
-     file for the inferior.  */
-  if (ioctl (pi->ctl_fd, PIOCSSIG, NULL) < 0)
-    {
-      printf_filtered ("unconditionally_kill: SSIG failed!\n");
-    }
-#endif
 #ifdef PROCFS_NEED_PIOCSSIG_FOR_KILL
   /* Alpha OSF/1-2.x procfs needs a PIOCSSIG call with a SIGKILL signal
      to kill the inferior, otherwise it might remain stopped with a
diff --git a/gdb/solib-osf.c b/gdb/solib-osf.c
deleted file mode 100644 (file)
index 24915cb..0000000
+++ /dev/null
@@ -1,638 +0,0 @@
-/* Handle OSF/1, Digital UNIX, and Tru64 shared libraries
-   for GDB, the GNU Debugger.
-   Copyright (C) 1993-2014 Free Software Foundation, Inc.
-
-   This file is part of GDB.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
-   (at your option) any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
-
-/* When handling shared libraries, GDB has to find out the pathnames
-   of all shared libraries that are currently loaded (to read in their
-   symbols) and where the shared libraries are loaded in memory
-   (to relocate them properly from their prelinked addresses to the
-   current load address).
-
-   Under OSF/1 there are two possibilities to get at this information:
-
-   1) Peek around in the runtime loader structures.
-   These are not documented, and they are not defined in the system
-   header files.  The definitions below were obtained by experimentation,
-   but they seem stable enough.
-
-   2) Use the libxproc.a library, which contains the equivalent ldr_*
-   routines.  The library is documented in Tru64 5.x, but as of 5.1, it
-   only allows a process to examine itself.  On earlier versions, it
-   may require that the GDB executable be dynamically linked and that
-   NAT_CLIBS include -lxproc -Wl,-expect_unresolved,ldr_process_context
-   for GDB and all applications that are using libgdb.
-
-   We will use the peeking approach until libxproc.a works for other
-   processes.  */
-
-#include "defs.h"
-
-#include <sys/types.h>
-#include <signal.h>
-#include "bfd.h"
-#include "symtab.h"
-#include "symfile.h"
-#include "objfiles.h"
-#include "target.h"
-#include "inferior.h"
-#include "infrun.h"
-#include "gdbthread.h"
-#include "solist.h"
-#include "solib.h"
-
-#ifdef USE_LDR_ROUTINES
-# include <loader.h>
-#endif
-
-#ifndef USE_LDR_ROUTINES
-/* Definition of runtime loader structures, found by experimentation.  */
-#define RLD_CONTEXT_ADDRESS    0x3ffc0000000
-
-/* Per-module information structure referenced by ldr_context_t.head.  */
-
-typedef struct
-  {
-    CORE_ADDR next;
-    CORE_ADDR previous;
-    CORE_ADDR unknown1;
-    CORE_ADDR module_name;
-    CORE_ADDR modinfo_addr;    /* Used by next_link_map_member() to detect
-                                  the end of the shared module list.  */
-    long module_id;
-    CORE_ADDR unknown2;
-    CORE_ADDR unknown3;
-    long region_count;
-    CORE_ADDR regioninfo_addr;
-  }
-ldr_module_info_t;
-
-/* Per-region structure referenced by ldr_module_info_t.regioninfo_addr.  */
-
-typedef struct
-  {
-    long unknown1;
-    CORE_ADDR regionname_addr;
-    long protection;
-    CORE_ADDR vaddr;
-    CORE_ADDR mapaddr;
-    long size;
-    long unknown2[5];
-  }
-ldr_region_info_t;
-
-/* Structure at RLD_CONTEXT_ADDRESS specifying the start and finish addresses
-   of the shared module list.  */
-
-typedef struct
-  {
-    CORE_ADDR unknown1;
-    CORE_ADDR unknown2;
-    CORE_ADDR head;
-    CORE_ADDR tail;
-  }
-ldr_context_t;
-#endif   /* !USE_LDR_ROUTINES */
-
-/* Per-section information, stored in struct lm_info.secs.  */
-
-struct lm_sec
-  {
-    CORE_ADDR offset;          /* difference between default and actual
-                                  virtual addresses of section .name */
-    CORE_ADDR nameaddr;                /* address in inferior of section name */
-    const char *name;          /* name of section, null if not fetched */
-  };
-
-/* Per-module information, stored in struct so_list.lm_info.  */
-
-struct lm_info
-  {
-    int isloader;              /* whether the module is /sbin/loader */
-    int nsecs;                 /* length of .secs */
-    struct lm_sec secs[1];     /* variable-length array of sections, sorted
-                                  by name */
-  };
-
-/* Context for iterating through the inferior's shared module list.  */
-
-struct read_map_ctxt
-  {
-#ifdef USE_LDR_ROUTINES
-    ldr_process_t proc;
-    ldr_module_t next;
-#else
-    CORE_ADDR next;            /* next element in module list */
-    CORE_ADDR tail;            /* last element in module list */
-#endif
-  };
-
-/* Forward declaration for this module's autoinit function.  */
-
-extern void _initialize_osf_solib (void);
-
-#ifdef USE_LDR_ROUTINES
-# if 0
-/* This routine is intended to be called by ldr_* routines to read memory from
-   the current target.  Usage:
-
-     ldr_process = ldr_core_process ();
-     ldr_set_core_reader (ldr_read_memory);
-     ldr_xdetach (ldr_process);
-     ldr_xattach (ldr_process);
-
-   ldr_core_process() and ldr_read_memory() are neither documented nor
-   declared in system header files.  They work with OSF/1 2.x, and they might
-   work with later versions as well.  */
-
-static int
-ldr_read_memory (CORE_ADDR memaddr, char *myaddr, int len, int readstring)
-{
-  int result;
-  char *buffer;
-
-  if (readstring)
-    {
-      target_read_string (memaddr, &buffer, len, &result);
-      if (result == 0)
-       strcpy (myaddr, buffer);
-      xfree (buffer);
-    }
-  else
-    result = target_read_memory (memaddr, myaddr, len);
-
-  if (result != 0)
-    result = -result;
-  return result;
-}
-# endif   /* 0 */
-#endif   /* USE_LDR_ROUTINES */
-
-/* Comparison for qsort() and bsearch(): return -1, 0, or 1 according to
-   whether lm_sec *P1's name is lexically less than, equal to, or greater
-   than that of *P2.  */
-
-static int
-lm_sec_cmp (const void *p1, const void *p2)
-{
-  const struct lm_sec *lms1 = p1, *lms2 = p2;
-
-  return strcmp (lms1->name, lms2->name);
-}
-
-/* Sort LMI->secs so that osf_relocate_section_addresses() can binary-search
-   it.  */
-
-static void
-lm_secs_sort (struct lm_info *lmi)
-{
-  qsort (lmi->secs, lmi->nsecs, sizeof *lmi->secs, lm_sec_cmp);
-}
-
-/* Populate name fields of LMI->secs.  */
-
-static void
-fetch_sec_names (struct lm_info *lmi)
-{
-#ifndef USE_LDR_ROUTINES
-  int i, errcode;
-  struct lm_sec *lms;
-  char *name;
-
-  for (i = 0; i < lmi->nsecs; i++)
-    {
-      lms = lmi->secs + i;
-      target_read_string (lms->nameaddr, &name, PATH_MAX, &errcode);
-      if (errcode != 0)
-       {
-         warning (_("unable to read shared sec name at 0x%lx"),
-                  lms->nameaddr);
-         name = xstrdup ("");
-       }
-      lms->name = name;
-    }
-  lm_secs_sort (lmi);
-#endif
-}
-
-/* target_so_ops callback.  Adjust SEC's addresses after it's been mapped into
-   the process.  */
-
-static void
-osf_relocate_section_addresses (struct so_list *so,
-                               struct target_section *sec)
-{
-  struct lm_info *lmi;
-  struct lm_sec lms_key, *lms;
-
-  /* Fetch SO's section names if we haven't done so already.  */
-  lmi = so->lm_info;
-  if (lmi->nsecs && !lmi->secs[0].name)
-    fetch_sec_names (lmi);
-
-  /* Binary-search for offset information corresponding to SEC.  */
-  lms_key.name = sec->the_bfd_section->name;
-  lms = bsearch (&lms_key, lmi->secs, lmi->nsecs, sizeof *lms, lm_sec_cmp);
-  if (lms)
-    {
-      sec->addr += lms->offset;
-      sec->endaddr += lms->offset;
-    }
-}
-
-/* target_so_ops callback.  Free parts of SO allocated by this file.  */
-
-static void
-osf_free_so (struct so_list *so)
-{
-  int i;
-  const char *name;
-
-  for (i = 0; i < so->lm_info->nsecs; i++)
-    {
-      name = so->lm_info->secs[i].name;
-      if (name)
-       xfree ((void *) name);
-    }
-  xfree (so->lm_info);
-}
-
-/* target_so_ops callback.  Discard information accumulated by this file and
-   not freed by osf_free_so().  */
-
-static void
-osf_clear_solib (void)
-{
-  return;
-}
-
-/* target_so_ops callback.  Prepare to handle shared libraries after the
-   inferior process has been created but before it's executed any
-   instructions.
-
-   For a statically bound executable, the inferior's first instruction is the
-   one at "_start", or a similar text label.  No further processing is needed
-   in that case.
-
-   For a dynamically bound executable, this first instruction is somewhere
-   in the rld, and the actual user executable is not yet mapped in.
-   We continue the inferior again, rld then maps in the actual user
-   executable and any needed shared libraries and then sends
-   itself a SIGTRAP.
-
-   At that point we discover the names of all shared libraries and
-   read their symbols in.
-
-   FIXME
-
-   This code does not properly handle hitting breakpoints which the
-   user might have set in the rld itself.  Proper handling would have
-   to check if the SIGTRAP happened due to a kill call.
-
-   Also, what if child has exit()ed?  Must exit loop somehow.  */
-
-static void
-osf_solib_create_inferior_hook (int from_tty)
-{
-  struct inferior *inf;
-  struct thread_info *tp;
-
-  inf = current_inferior ();
-
-  /* If we are attaching to the inferior, the shared libraries
-     have already been mapped, so nothing more to do.  */
-  if (inf->attach_flag)
-    return;
-
-  /* Nothing to do for statically bound executables.  */
-
-  if (symfile_objfile == NULL
-      || symfile_objfile->obfd == NULL
-      || ((bfd_get_file_flags (symfile_objfile->obfd) & DYNAMIC) == 0))
-    return;
-
-  /* Now run the target.  It will eventually get a SIGTRAP, at
-     which point all of the libraries will have been mapped in and we
-     can go groveling around in the rld structures to find
-     out what we need to know about them.
-     
-     If debugging from a core file, we cannot resume the execution
-     of the inferior.  But this is actually not an issue, because
-     shared libraries have already been mapped anyways, which means
-     we have nothing more to do.  */
-  if (!target_can_run (&current_target))
-    return;
-
-  tp = inferior_thread ();
-  clear_proceed_status (0);
-  inf->control.stop_soon = STOP_QUIETLY;
-  tp->suspend.stop_signal = GDB_SIGNAL_0;
-  do
-    {
-      target_resume (minus_one_ptid, 0, tp->suspend.stop_signal);
-      wait_for_inferior ();
-    }
-  while (tp->suspend.stop_signal != GDB_SIGNAL_TRAP);
-
-  /*  solib_add will call reinit_frame_cache.
-     But we are stopped in the runtime loader and we do not have symbols
-     for the runtime loader.  So heuristic_proc_start will be called
-     and will put out an annoying warning.
-     Delaying the resetting of stop_soon until after symbol loading
-     suppresses the warning.  */
-  solib_add ((char *) 0, 0, (struct target_ops *) 0, auto_solib_add);
-  inf->control.stop_soon = NO_STOP_QUIETLY;
-}
-
-/* target_so_ops callback.  Do additional symbol handling, lookup, etc. after
-   symbols for a shared object have been loaded.  */
-
-static void
-osf_special_symbol_handling (void)
-{
-  return;
-}
-
-/* Initialize CTXT in preparation for iterating through the inferior's module
-   list using read_map().  Return success.  */
-
-static int
-open_map (struct read_map_ctxt *ctxt)
-{
-#ifdef USE_LDR_ROUTINES
-  /* Note: As originally written, ldr_my_process() was used to obtain
-     the value for ctxt->proc.  This is incorrect, however, since
-     ldr_my_process() retrieves the "unique identifier" associated
-     with the current process (i.e. GDB) and not the one being
-     debugged.  Presumably, the pid of the process being debugged is
-     compatible with the "unique identifier" used by the ldr_
-     routines, so we use that.  */
-  ctxt->proc = ptid_get_pid (inferior_ptid);
-  if (ldr_xattach (ctxt->proc) != 0)
-    return 0;
-  ctxt->next = LDR_NULL_MODULE;
-#else
-  CORE_ADDR ldr_context_addr, prev, next;
-  ldr_context_t ldr_context;
-
-  if (target_read_memory ((CORE_ADDR) RLD_CONTEXT_ADDRESS,
-                         (char *) &ldr_context_addr,
-                         sizeof (CORE_ADDR)) != 0)
-    return 0;
-  if (target_read_memory (ldr_context_addr,
-                         (char *) &ldr_context,
-                         sizeof (ldr_context_t)) != 0)
-    return 0;
-  ctxt->next = ldr_context.head;
-  ctxt->tail = ldr_context.tail;
-#endif
-  return 1;
-}
-
-/* Initialize SO to have module NAME, /sbin/loader indicator ISLOADR, and
-   space for NSECS sections.  */
-
-static void
-init_so (struct so_list *so, char *name, int isloader, int nsecs)
-{
-  int namelen, i;
-
-  /* solib.c requires various fields to be initialized to 0.  */
-  memset (so, 0, sizeof *so);
-
-  /* Copy the name.  */
-  namelen = strlen (name);
-  if (namelen >= SO_NAME_MAX_PATH_SIZE)
-    namelen = SO_NAME_MAX_PATH_SIZE - 1;
-
-  memcpy (so->so_original_name, name, namelen);
-  so->so_original_name[namelen] = '\0';
-  memcpy (so->so_name, so->so_original_name, namelen + 1);
-
-  /* Allocate section space.  */
-  so->lm_info = xmalloc (sizeof (struct lm_info)
-                         + (nsecs - 1) * sizeof (struct lm_sec));
-  so->lm_info->isloader = isloader;
-  so->lm_info->nsecs = nsecs;
-  for (i = 0; i < nsecs; i++)
-    so->lm_info->secs[i].name = NULL;
-}
-
-/* Initialize SO's section SECIDX with name address NAMEADDR, name string
-   NAME, default virtual address VADDR, and actual virtual address
-   MAPADDR.  */
-
-static void
-init_sec (struct so_list *so, int secidx, CORE_ADDR nameaddr,
-         const char *name, CORE_ADDR vaddr, CORE_ADDR mapaddr)
-{
-  struct lm_sec *lms;
-
-  lms = so->lm_info->secs + secidx;
-  lms->nameaddr = nameaddr;
-  lms->name = name;
-  lms->offset = mapaddr - vaddr;
-}
-
-/* If there are more elements starting at CTXT in inferior's module list,
-   store the next element in SO, advance CTXT to the next element, and return
-   1, else return 0.  */
-
-static int
-read_map (struct read_map_ctxt *ctxt, struct so_list *so)
-{
-  ldr_module_info_t minf;
-  ldr_region_info_t rinf;
-
-#ifdef USE_LDR_ROUTINES
-  size_t size;
-  ldr_region_t i;
-
-  /* Retrieve the next element.  */
-  if (ldr_next_module (ctxt->proc, &ctxt->next) != 0)
-    return 0;
-  if (ctxt->next == LDR_NULL_MODULE)
-    return 0;
-  if (ldr_inq_module (ctxt->proc, ctxt->next, &minf, sizeof minf, &size) != 0)
-    return 0;
-
-  /* Initialize the module name and section count.  */
-  init_so (so, minf.lmi_name, 0, minf.lmi_nregion);
-
-  /* Retrieve section names and offsets.  */
-  for (i = 0; i < minf.lmi_nregion; i++)
-    {
-      if (ldr_inq_region (ctxt->proc, ctxt->next, i, &rinf,
-                         sizeof rinf, &size) != 0)
-       goto err;
-      init_sec (so, (int) i, 0, xstrdup (rinf.lri_name),
-               (CORE_ADDR) rinf.lri_vaddr, (CORE_ADDR) rinf.lri_mapaddr);
-    }
-  lm_secs_sort (so->lm_info);
-#else
-  char *name;
-  int errcode, i;
-
-  /* Retrieve the next element.  */
-  if (!ctxt->next)
-    return 0;
-  if (target_read_memory (ctxt->next, (char *) &minf, sizeof minf) != 0)
-    return 0;
-  if (ctxt->next == ctxt->tail)
-    ctxt->next = 0;
-  else
-    ctxt->next = minf.next;
-
-  /* Initialize the module name and section count.  */
-  target_read_string (minf.module_name, &name, PATH_MAX, &errcode);
-  if (errcode != 0)
-    return 0;
-  init_so (so, name, !minf.modinfo_addr, minf.region_count);
-  xfree (name);
-
-  /* Retrieve section names and offsets.  */
-  for (i = 0; i < minf.region_count; i++)
-    {
-      if (target_read_memory (minf.regioninfo_addr + i * sizeof rinf,
-                             (char *) &rinf, sizeof rinf) != 0)
-       goto err;
-      init_sec (so, i, rinf.regionname_addr, NULL, rinf.vaddr, rinf.mapaddr);
-    }
-#endif   /* !USE_LDR_ROUTINES */
-  return 1;
-
- err:
-  osf_free_so (so);
-  return 0;
-}
-
-/* Free resources allocated by open_map (CTXT).  */
-
-static void
-close_map (struct read_map_ctxt *ctxt)
-{
-#ifdef USE_LDR_ROUTINES
-  ldr_xdetach (ctxt->proc);
-#endif
-}
-
-/* target_so_ops callback.  Return a list of shared objects currently loaded
-   in the inferior.  */
-
-static struct so_list *
-osf_current_sos (void)
-{
-  struct so_list *head = NULL, *tail = NULL, *newtail, so;
-  struct read_map_ctxt ctxt;
-  int skipped_main;
-
-  if (!open_map (&ctxt))
-    return NULL;
-
-  /* Read subsequent elements.  */
-  for (skipped_main = 0;;)
-    {
-      if (!read_map (&ctxt, &so))
-       break;
-
-      /* Skip the main program module, which is first in the list after
-         /sbin/loader.  */
-      if (!so.lm_info->isloader && !skipped_main)
-       {
-         osf_free_so (&so);
-         skipped_main = 1;
-         continue;
-       }
-
-      newtail = xmalloc (sizeof *newtail);
-      if (!head)
-       head = newtail;
-      else
-       tail->next = newtail;
-      tail = newtail;
-
-      memcpy (tail, &so, sizeof so);
-      tail->next = NULL;
-    }
-
-  close_map (&ctxt);
-  return head;
-}
-
-/* target_so_ops callback.  Attempt to locate and open the main symbol
-   file.  */
-
-static int
-osf_open_symbol_file_object (void *from_ttyp)
-{
-  struct read_map_ctxt ctxt;
-  struct so_list so;
-  int found;
-
-  if (symfile_objfile)
-    if (!query (_("Attempt to reload symbols from process? ")))
-      return 0;
-
-  /* The first module after /sbin/loader is the main program.  */
-  if (!open_map (&ctxt))
-    return 0;
-  for (found = 0; !found;)
-    {
-      if (!read_map (&ctxt, &so))
-       break;
-      found = !so.lm_info->isloader;
-      osf_free_so (&so);
-    }
-  close_map (&ctxt);
-
-  if (found)
-    symbol_file_add_main (so.so_name, *(int *) from_ttyp);
-  return found;
-}
-
-/* target_so_ops callback.  Return whether PC is in the dynamic linker.  */
-
-static int
-osf_in_dynsym_resolve_code (CORE_ADDR pc)
-{
-  /* This function currently always return False.  This is a temporary
-     solution which only consequence is to introduce a minor incovenience
-     for the user: When stepping inside a subprogram located in a shared
-     library, gdb might stop inside the dynamic loader code instead of
-     inside the subprogram itself.  See the explanations in infrun.c about
-     the in_solib_dynsym_resolve_code() function for more details.  */
-  return 0;
-}
-
-static struct target_so_ops osf_so_ops;
-
-void
-_initialize_osf_solib (void)
-{
-  osf_so_ops.relocate_section_addresses = osf_relocate_section_addresses;
-  osf_so_ops.free_so = osf_free_so;
-  osf_so_ops.clear_solib = osf_clear_solib;
-  osf_so_ops.solib_create_inferior_hook = osf_solib_create_inferior_hook;
-  osf_so_ops.special_symbol_handling = osf_special_symbol_handling;
-  osf_so_ops.current_sos = osf_current_sos;
-  osf_so_ops.open_symbol_file_object = osf_open_symbol_file_object;
-  osf_so_ops.in_dynsym_resolve_code = osf_in_dynsym_resolve_code;
-  osf_so_ops.bfd_open = solib_bfd_open;
-
-  /* FIXME: Don't do this here.  *_gdbarch_init() should set so_ops.  */
-  current_target_so_ops = &osf_so_ops;
-}
index 2eab6ab8921d600260dcbc3d1e4f4608005bbf56..aa952b57992e0a5be29c6d95040d48ffcf8358a8 100644 (file)
@@ -1,3 +1,16 @@
+2014-10-17  Pedro Alves  <palves@redhat.com>
+
+       * gdb.base/callfuncs.exp: emove references to osf.
+       * gdb.base/sigall.exp: Likewise.
+       * gdb.gdb/selftest.exp: Likewise.
+       * gdb.hp/gdb.base-hp/callfwmall.exp: Likewise.
+       * gdb.mi/non-stop.c: Likewise.
+       * gdb.mi/pthreads.c: Likewise.
+       * gdb.reverse/sigall-precsave.exp: Likewise.
+       * gdb.reverse/sigall-reverse.exp: Likewise.
+       * gdb.threads/pthreads.c: Likewise.
+       * gdb.threads/pthreads.exp: Likewise.
+
 2014-10-17  Yao Qi  <yao@codesourcery.com>
 
        * gdb.base/commands.exp (gdbvar_complex_if_while_test): Don't
index a8c8241f0eba26ad92cf74c05b7998d272c1a0cc..cff8bd0f8211b20dadf9890c715eeeffa2f8d626 100644 (file)
@@ -122,7 +122,7 @@ proc do_function_calls {} {
        if $prototypes then {
            setup_xfail "sparc-*-*" "mips*-*-*" 5318
            if { ! [test_compiler_info gcc-*-*] } then {
-               setup_xfail "alpha-dec-osf2*" "i*86-*-sysv4*" 5318
+               setup_xfail "i*86-*-sysv4*" 5318
            }
        }
         
index 7a4007f520f38a3dc4fabc0640f79404dd8a9f80..42927b614cb9462b9f58ff713f85375e4059ca1e 100644 (file)
@@ -54,17 +54,6 @@ proc test_one_sig {nextsig} {
            "Continuing.*Program received signal SIG$esig.*" \
                "get signal $esig"
     }
-    if [ istarget "alpha-dec-osf3*" ] then {
-       # OSF/1-3.x is unable to continue with a job control stop signal.
-       # The inferior remains stopped without an event of interest
-       # and GDB waits forever for the inferior to stop on an event
-       # of interest. Work around the kernel bug.
-       if { $thissig == "TSTP" || $thissig == "TTIN" || $thissig == "TTOU" } {
-           setup_xfail "alpha-dec-osf3*"
-           fail "cannot continue from signal $thissig"
-           set need_another_continue 0
-       }
-    }
 
     if $need_another_continue then {
        if { $thissig == "URG" } {
index 91142fe16d7675f3c8b5391a37366a14373884ba..cd066f40567f8e57127e7a859e73391aabeed75a 100644 (file)
@@ -459,15 +459,6 @@ proc test_with_self { executable } {
        -re "#0.*(read|poll).*in main \\(.*\\) at .*gdb\\.c.*$gdb_prompt $" {
            pass "$description"
        }
-       -re ".*$gdb_prompt $" {
-           # On the alpha, we hit the infamous problem about gdb
-           # being unable to get the frame pointer (mentioned in
-           # gdb/README).  As it is intermittent, there is no way to
-           # XFAIL it which will give us an XPASS if the problem goes
-           # away.
-           setup_xfail "alpha*-*-osf*"
-           fail "$description"
-       }
     }
 
 
index 75d25c8fda324ee7db78fded404a0d3c2ff7c9f7..a7f0ed47a2b08932c739861b194b512cdba87a6f 100644 (file)
@@ -208,7 +208,7 @@ proc do_function_calls {} {
        if $prototypes then {
            setup_xfail "sparc-*-*" "mips*-*-*" 5318
            if {!$gcc_compiled} then {
-               setup_xfail "alpha-dec-osf2*" "i*86-*-sysv4*" 5318
+               setup_xfail "i*86-*-sysv4*" 5318
            }
        }
        gdb_test "p t_float_values2(3.14159,float_val2)" " = 1"
index 67b68aaaa6ed023a2f744f35d05634e6e09009b7..79ec5627695e247ca4e4897745998e6c39a08888 100644 (file)
 #include <stdlib.h>
 #include <pthread.h>
 
-/* Under OSF 2.0 & 3.0 and HPUX 10, the second arg of pthread_create
+/* Under HPUX 10, the second arg of pthread_create
    is prototyped to be just a "pthread_attr_t", while under Solaris it
    is a "pthread_attr_t *".  Arg! */
 
-#if defined (__osf__) || defined (__hpux__)
+#if defined (__hpux__)
 #define PTHREAD_CREATE_ARG2(arg) arg
 #define PTHREAD_CREATE_NULL_ARG2 null_attr
 static pthread_attr_t null_attr;
index d6cb8972e9764c140d08bb3efa85e4355a02a119..933b31a8acf22473abaa9cfaa05b7a352b3b8774 100644 (file)
 #include <stdlib.h>
 #include <pthread.h>
 
-/* Under OSF 2.0 & 3.0 and HPUX 10, the second arg of pthread_create
+/* Under HPUX 10, the second arg of pthread_create
    is prototyped to be just a "pthread_attr_t", while under Solaris it
    is a "pthread_attr_t *".  Arg! */
 
-#if defined (__osf__) || defined (__hpux__)
+#if defined (__hpux__)
 #define PTHREAD_CREATE_ARG2(arg) arg
 #define PTHREAD_CREATE_NULL_ARG2 null_attr
 static pthread_attr_t null_attr;
index 4a4695e3dda7d54e4b12e291c6a95b7676c2ccb0..dcae868838a949cfe6f1c67f56e204ac58764d54 100644 (file)
@@ -65,17 +65,6 @@ proc test_one_sig {nextsig} {
            }
        }
     }
-    if [ istarget "alpha-dec-osf3*" ] then {
-       # OSF/1-3.x is unable to continue with a job control stop signal.
-       # The inferior remains stopped without an event of interest
-       # and GDB waits forever for the inferior to stop on an event
-       # of interest. Work around the kernel bug.
-       if { $thissig == "TSTP" || $thissig == "TTIN" || $thissig == "TTOU" } {
-           setup_xfail "alpha-dec-osf3*"
-           fail "cannot continue from signal $thissig"
-           set need_another_continue 0
-       }
-    }
 
     if $need_another_continue then {
        if { $thissig == "URG" } {
index fffc94e6d3ed205eb5b9358da9e5747dbe9af65f..0194ba4ee88789ad652466052f7167e5d40f8401 100644 (file)
@@ -64,17 +64,6 @@ proc test_one_sig {nextsig} {
            }
        }
     }
-    if [ istarget "alpha-dec-osf3*" ] then {
-       # OSF/1-3.x is unable to continue with a job control stop signal.
-       # The inferior remains stopped without an event of interest
-       # and GDB waits forever for the inferior to stop on an event
-       # of interest. Work around the kernel bug.
-       if { $thissig == "TSTP" || $thissig == "TTIN" || $thissig == "TTOU" } {
-           setup_xfail "alpha-dec-osf3*"
-           fail "cannot continue from signal $thissig"
-           set need_another_continue 0
-       }
-    }
 
     if $need_another_continue then {
        if { $thissig == "URG" } {
index 0bfc618d98466348f9981f9ae7b2e28f41bad5be..ac0f1330406405319d452bf885bda73174f0bd88 100644 (file)
 #include <stdlib.h>
 #include <pthread.h>
 
-/* Under OSF 2.0 & 3.0 and HPUX 10, the second arg of pthread_create
+/* Under HPUX 10, the second arg of pthread_create
    is prototyped to be just a "pthread_attr_t", while under Solaris it
    is a "pthread_attr_t *".  Arg! */
 
-#if defined (__osf__) || defined (__hpux__)
+#if defined (__hpux__)
 #define PTHREAD_CREATE_ARG2(arg) arg
 #define PTHREAD_CREATE_NULL_ARG2 null_attr
 static pthread_attr_t null_attr;
@@ -124,13 +124,11 @@ main(argc, argv)
 
   foo (1, 2, 3);
 
-#ifndef __osf__
   if (pthread_attr_init (&attr))
     {
       perror ("pthread_attr_init 1");
       exit (1);
     }
-#endif
 
 #ifdef PTHREAD_SCOPE_SYSTEM
   if (pthread_attr_setscope (&attr, PTHREAD_SCOPE_SYSTEM))
index 4900e1450460b3e9b70a122229cd0cefc4344b42..990dfaaddf4ba31cbea0320aee9bade123f89f4d 100644 (file)
@@ -266,9 +266,7 @@ proc check_backtraces {} {
     }
 }
 
-setup_xfail "alpha-*-osf*"
 if [runto_main] then {
-    clear_xfail "alpha-*-osf*"
     if [test_startup] then {
        if [check_control_c] then {
            warning "Could not stop child with ^C; skipping rest of tests.\n"
@@ -277,4 +275,3 @@ if [runto_main] then {
        check_backtraces
     }
 }
-clear_xfail "alpha-*-osf*"