diff options
author | Jan Kratochvil <jan.kratochvil@redhat.com> | 2015-03-13 20:24:22 +0100 |
---|---|---|
committer | Jan Kratochvil <jan.kratochvil@redhat.com> | 2015-03-13 20:24:22 +0100 |
commit | 61a12cfa7b25746914493cc0d94e5053a8492aa5 (patch) | |
tree | 0e0dba4bca36624868979e4b36d8efa313383f05 /gdb/hppa-hpux-nat.c | |
parent | 25268153a182eef28d31ed2bc03ab7c6c0ab40e3 (diff) | |
download | gdb-61a12cfa7b25746914493cc0d94e5053a8492aa5.zip gdb-61a12cfa7b25746914493cc0d94e5053a8492aa5.tar.gz gdb-61a12cfa7b25746914493cc0d94e5053a8492aa5.tar.bz2 |
Remove HPUX
IIUC it is a pre-requisite for IPv6 support, some UNICes do not support
getaddrinfo required for IPv6. But coincidentally such UNICes are no longer
really supported by GDB. Therefore it was concluded we can remove all such
UNICes and then we can implement IPv6 easily with getaddrinfo.
In mail
Re: getaddrinfo available on all GDB hosts? [Re: [PATCH v2] Add IPv6 support for remote TCP connections]
Message-ID: <20140211034157.GG5485@adacore.com>
https://sourceware.org/ml/gdb-patches/2014-02/msg00333.html
Joel said:
So I chose HP-UX first for this patch.
gdb/ChangeLog
2014-10-16 Jan Kratochvil <jan.kratochvil@redhat.com>
Remove HPUX.
* Makefile.in (ALL_64_TARGET_OBS): Remove ia64-hpux-tdep.o.
(ALL_TARGET_OBS): Remove hppa-hpux-tdep.o, solib-som.o and solib-pa64.o.
(HFILES_NO_SRCDIR): Remove solib-som.h, inf-ttrace.h, solib-pa64.h and
ia64-hpux-tdep.h, solib-ia64-hpux.h.
(ALLDEPFILES): Remove hppa-hpux-tdep.c, hppa-hpux-nat.c,
ia64-hpux-nat.c, ia64-hpux-tdep.c, somread.c and solib-som.c.
* config/djgpp/fnchange.lst: Remove hppa-hpux-nat.c and
hppa-hpux-tdep.c.
* config/ia64/hpux.mh: Remove file.
* config/pa/hpux.mh: Remove file.
* configure: Rebuilt.
* configure.ac (dlgetmodinfo, somread.o): Remove.
* configure.host (hppa*-*-hpux*, ia64-*-hpux*): Make them obsolete.
(ia64-*-hpux*): Remove its float format exception.
* configure.tgt (hppa*-*-hpux*, ia64-*-hpux*): Make them obsolete.
* hppa-hpux-nat.c: Remove file.
* hppa-hpux-tdep.c: Remove file.
* hppa-tdep.c (struct hppa_unwind_info, struct hppa_objfile_private):
Move them here from hppa-tdep.h
(hppa_objfile_priv_data, hppa_init_objfile_priv_data): Make it static.
(hppa_frame_prev_register_helper): Remove HPPA_FLAGS_REGNUM exception.
* hppa-tdep.h (struct hppa_unwind_info, struct hppa_objfile_private):
Move them to hppa-tdep.c.
(hppa_objfile_priv_data, hppa_init_objfile_priv_data): Remove
declarations.
* ia64-hpux-nat.c: Remove file.
* ia64-hpux-tdep.c: Remove file.
* ia64-hpux-tdep.h: Remove file.
* inf-ttrace.c: Remove file.
* inf-ttrace.h: Remove file.
* solib-ia64-hpux.c: Remove file.
* solib-ia64-hpux.h: Remove file.
* solib-pa64.c: Remove file.
* solib-pa64.h: Remove file.
* solib-som.c: Remove file.
* solib-som.h: Remove file.
* somread.c: Remove file.
Diffstat (limited to 'gdb/hppa-hpux-nat.c')
-rw-r--r-- | gdb/hppa-hpux-nat.c | 273 |
1 files changed, 0 insertions, 273 deletions
diff --git a/gdb/hppa-hpux-nat.c b/gdb/hppa-hpux-nat.c deleted file mode 100644 index 0727568..0000000 --- a/gdb/hppa-hpux-nat.c +++ /dev/null @@ -1,273 +0,0 @@ -/* Native-dependent code for PA-RISC HP-UX. - - Copyright (C) 2004-2015 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 "regcache.h" -#include "target.h" - -#include <sys/ptrace.h> -#include <sys/utsname.h> -#include <machine/save_state.h> - -#ifdef HAVE_TTRACE -#include <sys/ttrace.h> -#endif - -#include "hppa-tdep.h" -#include "solib-som.h" -#include "inf-ptrace.h" -#include "inf-ttrace.h" - -/* Return the offset of register REGNUM within `struct save_state'. - The offset returns depends on the flags in the "flags" register and - the register size (32-bit or 64-bit). These are taken from - REGCACHE. */ - -static LONGEST -hppa_hpux_save_state_offset (struct regcache *regcache, int regnum) -{ - LONGEST offset; - - if (regnum == HPPA_FLAGS_REGNUM) - return ssoff (ss_flags); - - if (HPPA_R0_REGNUM < regnum && regnum < HPPA_FP0_REGNUM) - { - struct gdbarch *arch = get_regcache_arch (regcache); - size_t size = register_size (arch, HPPA_R1_REGNUM); - ULONGEST flags; - - gdb_assert (size == 4 || size == 8); - - regcache_cooked_read_unsigned (regcache, HPPA_FLAGS_REGNUM, &flags); - if (flags & SS_WIDEREGS) - offset = ssoff (ss_wide) + (8 - size) + (regnum - HPPA_R0_REGNUM) * 8; - else - offset = ssoff (ss_narrow) + (regnum - HPPA_R1_REGNUM) * 4; - } - else - { - struct gdbarch *arch = get_regcache_arch (regcache); - size_t size = register_size (arch, HPPA_FP0_REGNUM); - - gdb_assert (size == 4 || size == 8); - gdb_assert (regnum >= HPPA_FP0_REGNUM); - offset = ssoff(ss_fpblock) + (regnum - HPPA_FP0_REGNUM) * size; - } - - gdb_assert (offset < sizeof (save_state_t)); - return offset; -} - -/* Just in case a future version of PA-RISC HP-UX won't have ptrace(2) - at all. */ -#ifndef PTRACE_TYPE_RET -#define PTRACE_TYPE_RET void -#endif - -static void -hppa_hpux_fetch_register (struct regcache *regcache, int regnum) -{ - struct gdbarch *gdbarch = get_regcache_arch (regcache); - enum bfd_endian byte_order = gdbarch_byte_order (gdbarch); - CORE_ADDR addr; - size_t size; - PTRACE_TYPE_RET *buf; - pid_t pid; - int i; - - pid = ptid_get_pid (inferior_ptid); - - /* This isn't really an address, but ptrace thinks of it as one. */ - addr = hppa_hpux_save_state_offset (regcache, regnum); - size = register_size (gdbarch, regnum); - - gdb_assert (size == 4 || size == 8); - buf = alloca (size); - -#ifdef HAVE_TTRACE - { - lwpid_t lwp = ptid_get_lwp (inferior_ptid); - - if (ttrace (TT_LWP_RUREGS, pid, lwp, addr, size, (uintptr_t)buf) == -1) - error (_("Couldn't read register %s (#%d): %s"), - gdbarch_register_name (gdbarch, regnum), - regnum, safe_strerror (errno)); - } -#else - { - int i; - - /* Read the register contents from the inferior a chuck at the time. */ - for (i = 0; i < size / sizeof (PTRACE_TYPE_RET); i++) - { - errno = 0; - buf[i] = ptrace (PT_RUREGS, pid, (PTRACE_TYPE_ARG3) addr, 0, 0); - if (errno != 0) - error (_("Couldn't read register %s (#%d): %s"), - gdbarch_register_name (gdbarch, regnum), - regnum, safe_strerror (errno)); - - addr += sizeof (PTRACE_TYPE_RET); - } - } -#endif - - /* Take care with the "flags" register. It's stored as an `int' in - `struct save_state', even for 64-bit code. */ - if (regnum == HPPA_FLAGS_REGNUM && size == 8) - { - ULONGEST flags; - flags = extract_unsigned_integer ((gdb_byte *)buf, 4, byte_order); - store_unsigned_integer ((gdb_byte *)buf, 8, byte_order, flags); - } - - regcache_raw_supply (regcache, regnum, buf); -} - -static void -hppa_hpux_fetch_inferior_registers (struct target_ops *ops, - struct regcache *regcache, int regnum) -{ - if (regnum == -1) - for (regnum = 0; - regnum < gdbarch_num_regs (get_regcache_arch (regcache)); - regnum++) - hppa_hpux_fetch_register (regcache, regnum); - else - hppa_hpux_fetch_register (regcache, regnum); -} - -/* Store register REGNUM into the inferior. */ - -static void -hppa_hpux_store_register (struct regcache *regcache, int regnum) -{ - struct gdbarch *gdbarch = get_regcache_arch (regcache); - enum bfd_endian byte_order = gdbarch_byte_order (gdbarch); - CORE_ADDR addr; - size_t size; - PTRACE_TYPE_RET *buf; - pid_t pid; - - pid = ptid_get_pid (inferior_ptid); - - /* This isn't really an address, but ptrace thinks of it as one. */ - addr = hppa_hpux_save_state_offset (regcache, regnum); - size = register_size (gdbarch, regnum); - - gdb_assert (size == 4 || size == 8); - buf = alloca (size); - - regcache_raw_collect (regcache, regnum, buf); - - /* Take care with the "flags" register. It's stored as an `int' in - `struct save_state', even for 64-bit code. */ - if (regnum == HPPA_FLAGS_REGNUM && size == 8) - { - ULONGEST flags; - flags = extract_unsigned_integer ((gdb_byte *)buf, 8, byte_order); - store_unsigned_integer ((gdb_byte *)buf, 4, byte_order, flags); - size = 4; - } - -#ifdef HAVE_TTRACE - { - lwpid_t lwp = ptid_get_lwp (inferior_ptid); - - if (ttrace (TT_LWP_WUREGS, pid, lwp, addr, size, (uintptr_t)buf) == -1) - error (_("Couldn't write register %s (#%d): %s"), - gdbarch_register_name (gdbarch, regnum), - regnum, safe_strerror (errno)); - } -#else - { - int i; - - /* Write the register contents into the inferior a chunk at the time. */ - for (i = 0; i < size / sizeof (PTRACE_TYPE_RET); i++) - { - errno = 0; - ptrace (PT_WUREGS, pid, (PTRACE_TYPE_ARG3) addr, buf[i], 0); - if (errno != 0) - error (_("Couldn't write register %s (#%d): %s"), - gdbarch_register_name (gdbarch, regnum), - regnum, safe_strerror (errno)); - - addr += sizeof (PTRACE_TYPE_RET); - } - } -#endif -} - -/* Store register REGNUM back into the inferior. If REGNUM is -1, do - this for all registers (including the floating point registers). */ - -static void -hppa_hpux_store_inferior_registers (struct target_ops *ops, - struct regcache *regcache, int regnum) -{ - if (regnum == -1) - for (regnum = 0; - regnum < gdbarch_num_regs (get_regcache_arch (regcache)); - regnum++) - hppa_hpux_store_register (regcache, regnum); - else - hppa_hpux_store_register (regcache, regnum); -} - -/* Set hpux_major_release variable to the value retrieved from a call to - uname function. */ - -static void -set_hpux_major_release (void) -{ - struct utsname x; - char *p; - - uname (&x); - p = strchr (x.release, '.'); - if (p) - hpux_major_release = atoi (p + 1); -} - - - -/* Prevent warning from -Wmissing-prototypes. */ -void _initialize_hppa_hpux_nat (void); - -void -_initialize_hppa_hpux_nat (void) -{ - struct target_ops *t; - - set_hpux_major_release (); - -#ifdef HAVE_TTRACE - t = inf_ttrace_target (); -#else - t = inf_ptrace_target (); -#endif - - t->to_fetch_registers = hppa_hpux_fetch_inferior_registers; - t->to_store_registers = hppa_hpux_store_inferior_registers; - - add_target (t); -} |