Re: [PATCH 2/2] Remove all traces of Unixware.

Joel Brobecker
2012-12-11T02:57:30Z

[-- Attachment #1: Type: text/plain, Size: 1051 bytes --]

Hi Pedro,

> Like so. Completely untested though.
>
> 2012-12-10 Pedro Alves <palves@redhat.com>
>
> * configure.ac (detect type of /proc): Remove Unixware handling.
> * configure: Regenerate.
> * proc-api.c (ioctl_table) [PIOCLSTATUS]: Don't mention Unixware.
> (ioctl_table) [PCRESET]: Remove entry.
> * proc-events.c (SYS_lwp_create, SYS_lwp_exit, SYS_lwp_wait)
> (SYS_lwp_self, SYS_lwp_info, SYS_lwp_private, SYS_lwp_kill)
> (SYS_lwp_suspend, SYS_lwp_continue): Don't define.
> * proc-why.c (pr_why_table) [PR_SUSPENDED]: Don't mention Unixware.
> * procfs.c: Remove all UNIXWARE guarded code, and all traces of
> Unixware in comments throughout.
> * i386-tdep.c (i386_svr4_sigtramp_p): Don't match _sigacthandler,
> and remove mention of Unixware.
>
> gdb/doc/
> * gdb.texinfo: Remove all mentions of Unixware throughout.

There was one tiny error, where the wrong #ifdef/#else branch was
kept, in proc_get_gregs. The attached patch fixes this.

Tested on sparc-solaris 2.8, with AdaCore's testsuite, no regression.

--
Joel

[-- Attachment #2: 0001-Remove-all-traces-of-Unixware.patch --]
[-- Type: text/x-diff, Size: 14389 bytes --]

From d69d7189badcdfc4d11ffb82d454aa58c7e200b1 Mon Sep 17 00:00:00 2001
From: Pedro Alves <palves@redhat.com>
Date: Mon, 10 Dec 2012 18:02:22 +0000
Subject: [PATCH] Remove all traces of Unixware.

> I notice that unixware support has also been dropped in that same 2007
> change, so it seems like all the #ifdef UNIXWARE checks in procfs.c could
> be removed too, along with the "*-*-unixware*" check in configure.ac.

Like so. Completely untested though.

2012-12-10 Pedro Alves <palves@redhat.com>

* configure.ac (detect type of /proc): Remove Unixware handling.
* configure: Regenerate.
* proc-api.c (ioctl_table) [PIOCLSTATUS]: Don't mention Unixware.
(ioctl_table) [PCRESET]: Remove entry.
* proc-events.c (SYS_lwp_create, SYS_lwp_exit, SYS_lwp_wait)
(SYS_lwp_self, SYS_lwp_info, SYS_lwp_private, SYS_lwp_kill)
(SYS_lwp_suspend, SYS_lwp_continue): Don't define.
* proc-why.c (pr_why_table) [PR_SUSPENDED]: Don't mention Unixware.
* procfs.c: Remove all UNIXWARE guarded code, and all traces of
Unixware in comments throughout.
* i386-tdep.c (i386_svr4_sigtramp_p): Don't match _sigacthandler,
and remove mention of Unixware.

gdb/doc/
* gdb.texinfo: Remove all mentions of Unixware throughout.
---
gdb/configure | 4 +-
gdb/configure.ac | 4 +-
gdb/doc/gdb.texinfo | 4 +-
gdb/i386-tdep.c | 4 +--
gdb/proc-api.c | 5 +---
gdb/proc-events.c | 39 ---------------------------
gdb/proc-why.c | 2 +-
gdb/procfs.c | 73 ++++++++++++--------------------------------------
8 files changed, 27 insertions(+), 108 deletions(-)

diff --git a/gdb/configure b/gdb/configure
index 3587391..ce77693 100755
--- a/gdb/configure
+++ b/gdb/configure
@@ -10860,11 +10860,11 @@ $as_echo "#define HAVE_PT_GETXMMREGS 1" >>confdefs.h

fi

-# Detect which type of /proc is in use, such as for Unixware or Solaris.
+# Detect which type of /proc is in use, such as for Solaris.

if test "${target}" = "${host}"; then
case "${host}" in
- *-*-unixware* | *-*-sysv4.2* | *-*-sysv5* | *-*-interix* )
+ *-*-sysv4.2* | *-*-sysv5* | *-*-interix* )

$as_echo "#define NEW_PROC_API 1" >>confdefs.h

diff --git a/gdb/configure.ac b/gdb/configure.ac
index 3badfd4..40ae3c1 100644
--- a/gdb/configure.ac
+++ b/gdb/configure.ac
@@ -1418,11 +1418,11 @@ if test $gdb_cv_have_pt_getxmmregs = yes; then
[Define if sys/ptrace.h defines the PT_GETXMMREGS request.])
fi

-# Detect which type of /proc is in use, such as for Unixware or Solaris.
+# Detect which type of /proc is in use, such as for Solaris.

if test "${target}" = "${host}"; then
case "${host}" in
- *-*-unixware* | *-*-sysv4.2* | *-*-sysv5* | *-*-interix* )
+ *-*-sysv4.2* | *-*-sysv5* | *-*-interix* )
AC_DEFINE(NEW_PROC_API, 1,
[Define if you want to use new multi-fd /proc interface
(replaces HAVE_MULTIPLE_PROC_FDS as well as other macros).])
diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
index 9ffdb77..ce8f002 100644
--- a/gdb/doc/gdb.texinfo
+++ b/gdb/doc/gdb.texinfo
@@ -9951,7 +9951,7 @@ specified, the file name defaults to @file{core.@var{pid}}, where
@var{pid} is the inferior process ID.

Note that this command is implemented only for some systems (as of
-this writing, @sc{gnu}/Linux, FreeBSD, Solaris, Unixware, and S390).
+this writing, @sc{gnu}/Linux, FreeBSD, Solaris, and S390).
@end table

@node Character Sets
@@ -18655,7 +18655,7 @@ proc} is available to report information about the process running
your program, or about any process running on your system. @code{info
proc} works only on SVR4 systems that include the @code{procfs} code.
This includes, as of this writing, @sc{gnu}/Linux, OSF/1 (Digital
-Unix), Solaris, Irix, and Unixware, but not HP-UX, for example.
+Unix), Solaris, Irix, but not HP-UX, for example.

@table @code
@kindex info proc
diff --git a/gdb/i386-tdep.c b/gdb/i386-tdep.c
index 52b5c70..9e620ce 100644
--- a/gdb/i386-tdep.c
+++ b/gdb/i386-tdep.c
@@ -3413,11 +3413,9 @@ i386_svr4_sigtramp_p (struct frame_info *this_frame)
CORE_ADDR pc = get_frame_pc (this_frame);
const char *name;

- /* UnixWare uses _sigacthandler. The origin of the other symbols is
- currently unknown. */
+ /* The origin of these other symbols is currently unknown. */
find_pc_partial_function (pc, &name, NULL, NULL);
return (name && (strcmp ("_sigreturn", name) == 0
- || strcmp ("_sigacthandler", name) == 0
|| strcmp ("sigvechandler", name) == 0));
}

diff --git a/gdb/proc-api.c b/gdb/proc-api.c
index 876d08c..77c0f71 100644
--- a/gdb/proc-api.c
+++ b/gdb/proc-api.c
@@ -161,7 +161,7 @@ static struct trans ioctl_table[] = {
{ PIOCLDT, "PIOCLDT", "get LDT" },
{ PIOCNLDT, "PIOCNLDT", "get number of LDT entries" },
#endif
-#ifdef PIOCLSTATUS /* solaris and unixware */
+#ifdef PIOCLSTATUS /* solaris */
{ PIOCLSTATUS, "PIOCLSTATUS", "get status of all lwps" },
{ PIOCLUSAGE, "PIOCLUSAGE", "get resource usage of all lwps" },
{ PIOCOPENLWP, "PIOCOPENLWP", "get lwp file descriptor" },
@@ -410,9 +410,6 @@ static struct trans rw_table[] = {
{ PCREAD, "PCREAD", "read from the address space" },
{ PCWRITE, "PCWRITE", "write to the address space" },
#endif
-#ifdef PCRESET /* unixware */
- { PCRESET, "PCRESET", "unset modes" },
-#endif
{ PCRUN, "PCRUN", "make process/lwp runnable" },
#ifdef PCSASRS /* solaris 2.7 only */
{ PCSASRS, "PCSASRS", "set ancillary state registers" },
diff --git a/gdb/proc-events.c b/gdb/proc-events.c
index 216a65a..22566f6 100644
--- a/gdb/proc-events.c
+++ b/gdb/proc-events.c
@@ -63,45 +63,6 @@ struct trans

/* Pretty print syscalls. */

-/* Ugh -- UnixWare and Solaris spell these differently! */
-
-#ifdef SYS_lwpcreate
-#define SYS_lwp_create SYS_lwpcreate
-#endif
-
-#ifdef SYS_lwpexit
-#define SYS_lwp_exit SYS_lwpexit
-#endif
-
-#ifdef SYS_lwpwait
-#define SYS_lwp_wait SYS_lwpwait
-#endif
-
-#ifdef SYS_lwpself
-#define SYS_lwp_self SYS_lwpself
-#endif
-
-#ifdef SYS_lwpinfo
-#define SYS_lwp_info SYS_lwpinfo
-#endif
-
-#ifdef SYS_lwpprivate
-#define SYS_lwp_private SYS_lwpprivate
-#endif
-
-#ifdef SYS_lwpkill
-#define SYS_lwp_kill SYS_lwpkill
-#endif
-
-#ifdef SYS_lwpsuspend
-#define SYS_lwp_suspend SYS_lwpsuspend
-#endif
-
-#ifdef SYS_lwpcontinue
-#define SYS_lwp_continue SYS_lwpcontinue
-#endif
-
-
/* Syscall translation table. */

#define MAX_SYSCALLS 262 /* Pretty arbitrary. */
diff --git a/gdb/proc-why.c b/gdb/proc-why.c
index 97a3760..0ce0a84 100644
--- a/gdb/proc-why.c
+++ b/gdb/proc-why.c
@@ -75,7 +75,7 @@ static struct trans pr_why_table[] =
{ PR_FAULTED, "PR_FAULTED", "Incurred a traced hardware fault" },
#endif
#if defined (PR_SUSPENDED)
- /* Solaris and UnixWare. */
+ /* Solaris only. */
{ PR_SUSPENDED, "PR_SUSPENDED", "Process suspended" },
#endif
#if defined (PR_CHECKPOINT)
diff --git a/gdb/procfs.c b/gdb/procfs.c
index da5e158..40ac0ab 100644
--- a/gdb/procfs.c
+++ b/gdb/procfs.c
@@ -62,7 +62,6 @@
Irix
Solaris
OSF
- Unixware
AIX5

/proc works by imitating a file system: you open a simulated file
@@ -549,7 +548,7 @@ open_procinfo_files (procinfo *pi, int which)
/* This function is getting ALMOST long enough to break up into
several. Here is some rationale:

- NEW_PROC_API (Solaris 2.6, Solaris 2.7, Unixware):
+ NEW_PROC_API (Solaris 2.6, Solaris 2.7):
There are several file descriptors that may need to be open
for any given process or LWP. The ones we're intereted in are:
- control (ctl) write-only change the state
@@ -1075,16 +1074,6 @@ proc_get_status (procinfo *pi)
(char *) &pi->prstatus,
sizeof (gdb_prstatus_t))
== sizeof (gdb_prstatus_t));
-#if 0 /*def UNIXWARE*/
- if (pi->status_valid &&
- (pi->prstatus.pr_lwp.pr_flags & PR_ISTOP) &&
- pi->prstatus.pr_lwp.pr_why == PR_REQUESTED)
- /* Unixware peculiarity -- read the damn thing again! */
- pi->status_valid = (read (pi->status_fd,
- (char *) &pi->prstatus,
- sizeof (gdb_prstatus_t))
- == sizeof (gdb_prstatus_t));
-#endif /* UNIXWARE */
}
}
#else /* ioctl method */
@@ -1148,14 +1137,7 @@ proc_flags (procinfo *pi)
return 0; /* FIXME: not a good failure value (but what is?) */

#ifdef NEW_PROC_API
-# ifdef UNIXWARE
- /* UnixWare 7.1 puts process status flags, e.g. PR_ASYNC, in
- pstatus_t and LWP status flags, e.g. PR_STOPPED, in lwpstatus_t.
- The two sets of flags don't overlap. */
- return pi->prstatus.pr_flags | pi->prstatus.pr_lwp.pr_flags;
-# else
return pi->prstatus.pr_lwp.pr_flags;
-# endif
#else
return pi->prstatus.pr_flags;
#endif
@@ -1317,7 +1299,7 @@ proc_modify_flag (procinfo *pi, long flag, long mode)
if (pi->pid != 0)
pi = find_procinfo_or_die (pi->pid, 0);

-#ifdef NEW_PROC_API /* Newest method: UnixWare and newer Solarii. */
+#ifdef NEW_PROC_API /* Newest method: Newer Solarii. */
/* First normalize the PCUNSET/PCRESET command opcode
(which for no obvious reason has a different definition
from one operating system to the next...) */
@@ -1821,11 +1803,7 @@ proc_get_held_signals (procinfo *pi, gdb_sigset_t *save)
if (!proc_get_status (pi))
return NULL;

-#ifdef UNIXWARE
- ret = &pi->prstatus.pr_lwp.pr_context.uc_sigmask;
-#else
ret = &pi->prstatus.pr_lwp.pr_lwphold;
-#endif /* UNIXWARE */
#else /* not NEW_PROC_API */
{
static gdb_sigset_t sigheld;
@@ -2207,15 +2185,8 @@ proc_get_gregs (procinfo *pi)
if (!proc_get_status (pi))
return NULL;

- /* OK, sorry about the ifdef's. There's three cases instead of two,
- because in this case Unixware and Solaris/RW differ. */
-
#ifdef NEW_PROC_API
-# ifdef UNIXWARE /* FIXME: Should be autoconfigured. */
- return &pi->prstatus.pr_lwp.pr_context.uc_mcontext.gregs;
-# else
return &pi->prstatus.pr_lwp.pr_reg;
-# endif
#else
return &pi->prstatus.pr_reg;
#endif
@@ -2232,11 +2203,7 @@ proc_get_fpregs (procinfo *pi)
if (!proc_get_status (pi))
return NULL;

-# ifdef UNIXWARE /* FIXME: Should be autoconfigured. */
- return &pi->prstatus.pr_lwp.pr_context.uc_mcontext.fpregs;
-# else
return &pi->prstatus.pr_lwp.pr_fpreg;
-# endif

#else /* not NEW_PROC_API */
if (pi->fpregs_valid)
@@ -2451,7 +2418,7 @@ proc_parent_pid (procinfo *pi)
(a.k.a void pointer)! */

#if (defined (PCWATCH) || defined (PIOCSWATCH)) \
- && !(defined (PIOCOPENLWP) || defined (UNIXWARE))
+ && !(defined (PIOCOPENLWP))
static void *
procfs_address_to_host_pointer (CORE_ADDR addr)
{
@@ -2475,7 +2442,7 @@ proc_set_watchpoint (procinfo *pi, CORE_ADDR addr, int len, int wflags)
return 0;
#else
/* Horrible hack! Detect Solaris 2.5, because this doesn't work on 2.5. */
-#if defined (PIOCOPENLWP) || defined (UNIXWARE) /* Solaris 2.5: bail out. */
+#if defined (PIOCOPENLWP) /* Solaris 2.5: bail out. */
return 0;
#else
struct {
@@ -2648,7 +2615,7 @@ proc_get_nthreads (procinfo *pi)

#else
#if defined (SYS_lwpcreate) || defined (SYS_lwp_create) /* FIXME: multiple */
-/* Solaris and Unixware version */
+/* Solaris version */
static int
proc_get_nthreads (procinfo *pi)
{
@@ -2683,7 +2650,7 @@ proc_get_nthreads (procinfo *pi)
currently executing. */

#if defined (SYS_lwpcreate) || defined (SYS_lwp_create) /* FIXME: multiple */
-/* Solaris and Unixware version */
+/* Solaris version */
static int
proc_get_current_thread (procinfo *pi)
{
@@ -2791,7 +2758,7 @@ proc_update_threads (procinfo *pi)
}
#else
#ifdef NEW_PROC_API
-/* Unixware and Solaris 6 (and later) version. */
+/* Solaris 6 (and later) version. */
static void
do_closedir_cleanup (void *dir)
{
@@ -2818,13 +2785,11 @@ proc_update_threads (procinfo *pi)

proc_iterate_over_threads (pi, proc_delete_dead_threads, NULL);

- /* Unixware
-
- Note: this brute-force method is the only way I know of to
- accomplish this task on Unixware. This method will also work on
- Solaris 2.6 and 2.7. There is a much simpler and more elegant
- way to do this on Solaris, but the margins of this manuscript are
- too small to write it here... ;-) */
+ /* Note: this brute-force method was originally devised for Unixware
+ (support removed since), and will also work on Solaris 2.6 and
+ 2.7. The original comment mentioned the existence of a much
+ simpler and more elegant way to do this on Solaris, but didn't
+ point out what that was. */

strcpy (pathname, pi->pathname);
strcat (pathname, "/lwp");
@@ -4815,7 +4780,6 @@ static int
procfs_set_watchpoint (ptid_t ptid, CORE_ADDR addr, int len, int rwflag,
int after)
{
-#ifndef UNIXWARE
#ifndef AIX5
int pflags = 0;
procinfo *pi;
@@ -4857,7 +4821,6 @@ procfs_set_watchpoint (ptid_t ptid, CORE_ADDR addr, int len, int rwflag,
proc_error (pi, "set_watchpoint", __LINE__);
}
#endif /* AIX5 */
-#endif /* UNIXWARE */
return 0;
}

@@ -5403,8 +5366,8 @@ procfs_first_available (void)
}

/* =================== GCORE .NOTE "MODULE" =================== */
-#if defined (UNIXWARE) || defined (PIOCOPENLWP) || defined (PCAGENT)
-/* gcore only implemented on solaris and unixware (so far) */
+#if defined (PIOCOPENLWP) || defined (PCAGENT)
+/* gcore only implemented on solaris (so far) */

static char *
procfs_do_thread_registers (bfd *obfd, ptid_t ptid,
@@ -5547,8 +5510,8 @@ procfs_make_note_section (bfd *obfd, int *note_size)
#ifdef NEW_PROC_API
fill_gregset (get_current_regcache (), &gregs, -1);
note_data = elfcore_write_pstatus (obfd, note_data, note_size,
- PIDGET (inferior_ptid),
- stop_signal, &gregs);
+ PIDGET (inferior_ptid),
+ stop_signal, &gregs);
#endif

thread_args.obfd = obfd;
@@ -5574,12 +5537,12 @@ procfs_make_note_section (bfd *obfd, int *note_size)
make_cleanup (xfree, note_data);
return note_data;
}
-#else /* !(Solaris or Unixware) */
+#else /* !Solaris */
static char *
procfs_make_note_section (bfd *obfd, int *note_size)
{
error (_("gcore not implemented for this host."));
return NULL; /* lint */
}
-#endif /* Solaris or Unixware */
+#endif /* Solaris */
/* =================== END GCORE .NOTE "MODULE" =================== */
--
1.7.0.4