* [PATCH] solib-svr4.c: Remove old SCO-related code.
@ 2012-12-06 17:37 Pedro Alves
2012-12-10 16:44 ` Pedro Alves
0 siblings, 1 reply; 15+ messages in thread
From: Pedro Alves @ 2012-12-06 17:37 UTC (permalink / raw)
To: gdb-patches
Support for SCO has been removed in 2007, by:
http://sourceware.org/ml/gdb-patches/2007-03/msg00327.html
But this bit in svr4_solib_create_inferior_hook remains left behind.
Let me know if I missed anything, like a supported non-SCO target actually
defining _SCO_DS too, though that sounds very unlikely to me.
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.
2012-12-06 Pedro Alves <palves@redhat.com>
* solib-svr4.c (svr4_solib_create_inferior_hook) [_SCO_DS]: Remove
dead SCO code, and adjust function description comment.
---
gdb/solib-svr4.c | 41 +----------------------------------------
1 file changed, 1 insertion(+), 40 deletions(-)
diff --git a/gdb/solib-svr4.c b/gdb/solib-svr4.c
index 02e45a3..316c1b7 100644
--- a/gdb/solib-svr4.c
+++ b/gdb/solib-svr4.c
@@ -2212,25 +2212,11 @@ svr4_relocate_main_executable (void)
This function is responsible for discovering those names and
addresses, and saving sufficient information about them to allow
- their symbols to be read at a later time.
-
- FIXME
-
- Between enable_break() and disable_break(), this code does not
- properly handle hitting breakpoints which the user might have
- set in the startup code or in the dynamic linker itself. Proper
- handling will probably have to wait until the implementation is
- changed to use the "breakpoint handler function" method.
-
- Also, what if child has exit()ed? Must exit loop somehow. */
+ their symbols to be read at a later time. */
static void
svr4_solib_create_inferior_hook (int from_tty)
{
-#if defined(_SCO_DS)
- struct inferior *inf;
- struct thread_info *tp;
-#endif /* defined(_SCO_DS) */
struct svr4_info *info;
info = get_svr4_info ();
@@ -2248,31 +2234,6 @@ svr4_solib_create_inferior_hook (int from_tty)
if (!enable_break (info, from_tty))
return;
-
-#if defined(_SCO_DS)
- /* SCO needs the loop below, other systems should be using the
- special shared library breakpoints and the shared library breakpoint
- service routine.
-
- Now run the target. It will eventually hit the breakpoint, at
- which point all of the libraries will have been mapped in and we
- can go groveling around in the dynamic linker structures to find
- out what we need to know about them. */
-
- inf = current_inferior ();
- tp = inferior_thread ();
-
- clear_proceed_status ();
- inf->control.stop_soon = STOP_QUIETLY;
- tp->suspend.stop_signal = GDB_SIGNAL_0;
- do
- {
- target_resume (pid_to_ptid (-1), 0, tp->suspend.stop_signal);
- wait_for_inferior ();
- }
- while (tp->suspend.stop_signal != GDB_SIGNAL_TRAP);
- inf->control.stop_soon = NO_STOP_QUIETLY;
-#endif /* defined(_SCO_DS) */
}
static void
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH] solib-svr4.c: Remove old SCO-related code.
2012-12-06 17:37 [PATCH] solib-svr4.c: Remove old SCO-related code Pedro Alves
@ 2012-12-10 16:44 ` Pedro Alves
2012-12-10 18:02 ` [PATCH 1/2] Put a NT_PSTATUS note on solaris cores Pedro Alves
2012-12-10 18:04 ` [PATCH 2/2] Remove all traces of Unixware Pedro Alves
0 siblings, 2 replies; 15+ messages in thread
From: Pedro Alves @ 2012-12-10 16:44 UTC (permalink / raw)
Cc: gdb-patches
On 12/06/2012 05:36 PM, Pedro Alves wrote:
> 2012-12-06 Pedro Alves <palves@redhat.com>
>
> * solib-svr4.c (svr4_solib_create_inferior_hook) [_SCO_DS]: Remove
> dead SCO code, and adjust function description comment.
I went ahead and put this in.
--
Pedro Alves
^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH 1/2] Put a NT_PSTATUS note on solaris cores.
2012-12-10 16:44 ` Pedro Alves
@ 2012-12-10 18:02 ` Pedro Alves
2012-12-11 3:04 ` Joel Brobecker
2012-12-10 18:04 ` [PATCH 2/2] Remove all traces of Unixware Pedro Alves
1 sibling, 1 reply; 15+ messages in thread
From: Pedro Alves @ 2012-12-10 18:02 UTC (permalink / raw)
To: gdb-patches
This is basically the same patch I once posted at:
http://sourceware.org/ml/gdb-patches/2009-10/msg00188.html
Rationale:
This patch makes is to that cores generated with gdb's gcore on
solaris also get an NT_PSTATUS note. It is from this note that gdb
can extract the original pid of the process from the core. From
higher up on procfs.c, we see that pstatus_t is assumed to be defined
when NEW_PROC_API is defined, so this should be safe to not break
builds on supported hosts. NEW_PROC_API is also always defined on
unixware hosts. Older Solaris not using the the new proc api are
unaffected.
I had applied the patch back in 2009, and then shortly afterwards
backed it out, because it broke Solaris builds. A patch to bfd this
depended on was missing:
http://sourceware.org/ml/gdb-patches/2009-10/msg00214.html
The bfd patch when in 2010-01-04, but I never got back to pushing the
GDB bit in.
I no longer have easy access to Solaris hosts to test on though...
Anyone interested in trying this, and seeing it in? The user visible
change is just that GDB will know the real PID the process that dumped
core had (visible when you load the core, and in "info inferiors").
The next patch removes all #ifdef UNIXWARE code, and that would remove
this pstatus note code too.
2012-12-10 Pedro Alves <pedro@codesourcery.com>
gdb/
* procfs.c (procfs_make_note_section): Always output a NT_PSTATUS
note when NEW_PROC_API is defined.
---
gdb/procfs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gdb/procfs.c b/gdb/procfs.c
index 82c7cd0..da5e158 100644
--- a/gdb/procfs.c
+++ b/gdb/procfs.c
@@ -5544,7 +5544,7 @@ procfs_make_note_section (bfd *obfd, int *note_size)
stop_signal = find_stop_signal ();
-#ifdef UNIXWARE
+#ifdef NEW_PROC_API
fill_gregset (get_current_regcache (), &gregs, -1);
note_data = elfcore_write_pstatus (obfd, note_data, note_size,
PIDGET (inferior_ptid),
^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH 2/2] Remove all traces of Unixware.
2012-12-10 16:44 ` Pedro Alves
2012-12-10 18:02 ` [PATCH 1/2] Put a NT_PSTATUS note on solaris cores Pedro Alves
@ 2012-12-10 18:04 ` Pedro Alves
2012-12-10 19:24 ` Tom Tromey
` (2 more replies)
1 sibling, 3 replies; 15+ messages in thread
From: Pedro Alves @ 2012-12-10 18:04 UTC (permalink / raw)
To: gdb-patches
> 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 fdfd17c..53a6ca9 100755
--- a/gdb/configure
+++ b/gdb/configure
@@ -10807,11 +10807,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 db52804..5797561 100644
--- a/gdb/configure.ac
+++ b/gdb/configure.ac
@@ -1387,11 +1387,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..7de3f17 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" =================== */
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 2/2] Remove all traces of Unixware.
2012-12-10 18:04 ` [PATCH 2/2] Remove all traces of Unixware Pedro Alves
@ 2012-12-10 19:24 ` Tom Tromey
2012-12-11 2:57 ` Joel Brobecker
2012-12-11 4:20 ` Yao Qi
2 siblings, 0 replies; 15+ messages in thread
From: Tom Tromey @ 2012-12-10 19:24 UTC (permalink / raw)
To: Pedro Alves; +Cc: gdb-patches
>>>>> "Pedro" == Pedro Alves <palves@redhat.com> writes:
Pedro> Like so. Completely untested though.
Seems pretty reasonable to me.
Tom
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 2/2] Remove all traces of Unixware.
2012-12-10 18:04 ` [PATCH 2/2] Remove all traces of Unixware Pedro Alves
2012-12-10 19:24 ` Tom Tromey
@ 2012-12-11 2:57 ` Joel Brobecker
2012-12-11 11:37 ` Pedro Alves
2012-12-11 4:20 ` Yao Qi
2 siblings, 1 reply; 15+ messages in thread
From: Joel Brobecker @ 2012-12-11 2:57 UTC (permalink / raw)
To: Pedro Alves; +Cc: gdb-patches
[-- 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
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 1/2] Put a NT_PSTATUS note on solaris cores.
2012-12-10 18:02 ` [PATCH 1/2] Put a NT_PSTATUS note on solaris cores Pedro Alves
@ 2012-12-11 3:04 ` Joel Brobecker
2012-12-11 12:22 ` Pedro Alves
0 siblings, 1 reply; 15+ messages in thread
From: Joel Brobecker @ 2012-12-11 3:04 UTC (permalink / raw)
To: Pedro Alves; +Cc: gdb-patches
> 2012-12-10 Pedro Alves <pedro@codesourcery.com>
>
> gdb/
> * procfs.c (procfs_make_note_section): Always output a NT_PSTATUS
> note when NEW_PROC_API is defined.
Tested on sparc-solaris, but it seems to have no effect yet:
(gdb) core core.10498
[New LWP 1]
Core was generated by `/[...]/simple_main'.
Program terminated with signal 5, Trace/breakpoint trap.
#0 simple_main () at simple_main.adb:4
4 simple.test_simple;
(gdb) info inferiors
Num Description Executable
* 1 LWP 0 /[...]/simple_main
And after the patch:
(gdb) core core.15731
[New LWP 1]
Core was generated by `/[...]/simple_main'.
Program terminated with signal 5, Trace/breakpoint trap.
#0 simple_main () at simple_main.adb:4
4 simple.test_simple;
(gdb) info inferiors
Num Description Executable
* 1 LWP 0 /[...]/simple_main
I can see that the second core file is bigger, but I am lacking
the time to investigate this further at the moment. Maybe I am
doing the wrong test?
> ---
> gdb/procfs.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/gdb/procfs.c b/gdb/procfs.c
> index 82c7cd0..da5e158 100644
> --- a/gdb/procfs.c
> +++ b/gdb/procfs.c
> @@ -5544,7 +5544,7 @@ procfs_make_note_section (bfd *obfd, int *note_size)
>
> stop_signal = find_stop_signal ();
>
> -#ifdef UNIXWARE
> +#ifdef NEW_PROC_API
> fill_gregset (get_current_regcache (), &gregs, -1);
> note_data = elfcore_write_pstatus (obfd, note_data, note_size,
> PIDGET (inferior_ptid),
--
Joel
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 2/2] Remove all traces of Unixware.
2012-12-10 18:04 ` [PATCH 2/2] Remove all traces of Unixware Pedro Alves
2012-12-10 19:24 ` Tom Tromey
2012-12-11 2:57 ` Joel Brobecker
@ 2012-12-11 4:20 ` Yao Qi
2012-12-11 10:59 ` Pedro Alves
2 siblings, 1 reply; 15+ messages in thread
From: Yao Qi @ 2012-12-11 4:20 UTC (permalink / raw)
To: Pedro Alves; +Cc: gdb-patches
On 12/11/2012 02:02 AM, Pedro Alves wrote:
> @@ -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);
Looks this chunk replaces 'tab' with 'space's, so the change here is not
necessary.
--
Yao (é½å°§)
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 2/2] Remove all traces of Unixware.
2012-12-11 4:20 ` Yao Qi
@ 2012-12-11 10:59 ` Pedro Alves
0 siblings, 0 replies; 15+ messages in thread
From: Pedro Alves @ 2012-12-11 10:59 UTC (permalink / raw)
To: Yao Qi; +Cc: gdb-patches
On 12/11/2012 04:20 AM, Yao Qi wrote:
> On 12/11/2012 02:02 AM, Pedro Alves wrote:
>> @@ -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);
>
> Looks this chunk replaces 'tab' with 'space's, so the change here is not necessary.
Whoops, thanks. That was unintentional.
--
Pedro Alves
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 2/2] Remove all traces of Unixware.
2012-12-11 2:57 ` Joel Brobecker
@ 2012-12-11 11:37 ` Pedro Alves
2012-12-11 12:46 ` Eli Zaretskii
0 siblings, 1 reply; 15+ messages in thread
From: Pedro Alves @ 2012-12-11 11:37 UTC (permalink / raw)
To: Joel Brobecker; +Cc: gdb-patches
iHi Joel, many thanks for testing.
On 12/11/2012 02:57 AM, Joel Brobecker wrote:
> There was one tiny error, where the wrong #ifdef/#else branch was
> kept, in proc_get_gregs. The attached patch fixes this.
Whoops, thanks.
> Tested on sparc-solaris 2.8, with AdaCore's testsuite, no regression.
I think that's good enough. Looks like patch 1 will need more work,
so I rebased this one on top of mainline, and applied it. This means
the NT_PSTATUS bit goes away with this patch. I'll put it back in the
other patch.
gdb/
2012-12-11 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/
2012-12-11 Pedro Alves <palves@redhat.com>
* 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 | 76 +++++++++++----------------------------------------
8 files changed, 25 insertions(+), 113 deletions(-)
diff --git a/gdb/configure b/gdb/configure
index fdfd17c..53a6ca9 100755
--- a/gdb/configure
+++ b/gdb/configure
@@ -10807,11 +10807,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 db52804..5797561 100644
--- a/gdb/configure.ac
+++ b/gdb/configure.ac
@@ -1387,11 +1387,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..e60ebce 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 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 82c7cd0..fa18b46 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,
@@ -5544,13 +5507,6 @@ procfs_make_note_section (bfd *obfd, int *note_size)
stop_signal = find_stop_signal ();
-#ifdef UNIXWARE
- fill_gregset (get_current_regcache (), &gregs, -1);
- note_data = elfcore_write_pstatus (obfd, note_data, note_size,
- PIDGET (inferior_ptid),
- stop_signal, &gregs);
-#endif
-
thread_args.obfd = obfd;
thread_args.note_data = note_data;
thread_args.note_size = note_size;
@@ -5574,12 +5530,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" =================== */
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 1/2] Put a NT_PSTATUS note on solaris cores.
2012-12-11 3:04 ` Joel Brobecker
@ 2012-12-11 12:22 ` Pedro Alves
2012-12-11 15:12 ` Joel Brobecker
0 siblings, 1 reply; 15+ messages in thread
From: Pedro Alves @ 2012-12-11 12:22 UTC (permalink / raw)
To: Joel Brobecker; +Cc: gdb-patches
[-- Attachment #1: Type: text/plain, Size: 1464 bytes --]
On 12/11/2012 03:03 AM, Joel Brobecker wrote:
> Tested on sparc-solaris, but it seems to have no effect yet:
>
> (gdb) core core.10498
> [New LWP 1]
> Core was generated by `/[...]/simple_main'.
> Program terminated with signal 5, Trace/breakpoint trap.
> #0 simple_main () at simple_main.adb:4
> 4 simple.test_simple;
> (gdb) info inferiors
> Num Description Executable
> * 1 LWP 0 /[...]/simple_main
>
> And after the patch:
>
> (gdb) core core.15731
> [New LWP 1]
> Core was generated by `/[...]/simple_main'.
> Program terminated with signal 5, Trace/breakpoint trap.
> #0 simple_main () at simple_main.adb:4
> 4 simple.test_simple;
> (gdb) info inferiors
> Num Description Executable
> * 1 LWP 0 /[...]/simple_main
>
> I can see that the second core file is bigger, but I am lacking
> the time to investigate this further at the moment. Maybe I am
> doing the wrong test?
You're doing the right test. The issue is that core_pid_to_str
calls into the gdbarch_core_pid_to_str, and that isn't expecting
to be passed a "process pid" instead of an "LWP pid".
Could you try this one when you have a chance? This is rebased on
top of current mainline, so it restores the elfcore_write_pstatus
call that the Unixware-excise patch removed. I made sure it builds with
--enable-targets=all.
Thanks!
--
Pedro Alves
[-- Attachment #2: nt_pstatus.diff --]
[-- Type: text/x-patch, Size: 3232 bytes --]
commit 76583bee66b1faa3bfcf6de6f95e38dacc93d45a
Author: Pedro Alves <palves@redhat.com>
Date: Mon Dec 10 17:52:55 2012 +0000
Put a NT_PSTATUS note on solaris cores.
This is based on the patch I once posted at:
http://sourceware.org/ml/gdb-patches/2009-10/msg00188.html
Rationale:
This patch makes is so that cores generated with gdb's gcore on
solaris also get an NT_PSTATUS note. It is from this note that gdb
can extract the original pid of the process from the core. From
higher up on procfs.c, we see that pstatus_t is assumed to be defined
when NEW_PROC_API is defined, so this should be safe to not break
builds on supported hosts. Older Solaris not using the the new proc
api are unaffected.
I had applied the patch back in 2009, and then shortly afterwards
backed it out, because it broke Solaris builds. A patch to bfd this
depended on was missing:
http://sourceware.org/ml/gdb-patches/2009-10/msg00214.html
The bfd patch went in 2010-01-04, but I never got back to pushing the
GDB bit in.
The user visible change is just that GDB will know the real PID the
process that dumped core had (visible in "info inferiors").
2012-12-11 Pedro Alves <pedro@codesourcery.com>
Pedro Alves <palves@redhat.com>
gdb/
* procfs.c (procfs_make_note_section) [NEW_PROC_API]: Output a
NT_PSTATUS note.
* sol2-tdep.c (sol2_core_pid_to_str): Print process IDs
differently from LWP IDs.
v2:
- restore elfcore_write_pstatus call.
- make sol2_core_pid_to_str aware or process ids vs lwp ids.
diff --git a/gdb/procfs.c b/gdb/procfs.c
index fa18b46..1c5cc13 100644
--- a/gdb/procfs.c
+++ b/gdb/procfs.c
@@ -5507,6 +5507,13 @@ procfs_make_note_section (bfd *obfd, int *note_size)
stop_signal = find_stop_signal ();
+#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);
+#endif
+
thread_args.obfd = obfd;
thread_args.note_data = note_data;
thread_args.note_size = note_size;
diff --git a/gdb/sol2-tdep.c b/gdb/sol2-tdep.c
index e93758d..e292b8d 100644
--- a/gdb/sol2-tdep.c
+++ b/gdb/sol2-tdep.c
@@ -43,7 +43,29 @@ char *
sol2_core_pid_to_str (struct gdbarch *gdbarch, ptid_t ptid)
{
static char buf[80];
+ struct inferior *inf;
+ int pid;
- xsnprintf (buf, sizeof buf, "LWP %ld", ptid_get_lwp (ptid));
- return buf;
+ /* Check whether we're printing an LWP (gdb thread) or a
+ process. */
+ pid = ptid_get_lwp (ptid);
+ if (pid != 0)
+ {
+ /* A thread. */
+ xsnprintf (buf, sizeof buf, "LWP %ld", ptid_get_lwp (ptid));
+ return buf;
+ }
+
+ /* GDB didn't use to put a NT_PSTATUS note in Solaris cores. If
+ that's missing, then we're dealing with a fake PID corelow.c made
+ up. */
+ inf = find_inferior_pid (ptid_get_pid (ptid));
+ if (inf == NULL || inf->fake_pid_p)
+ {
+ xsnprintf (buf, sizeof buf, "<core>");
+ return buf;
+ }
+
+ /* Not fake; print as usual. */
+ return normal_pid_to_str (ptid);
}
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 2/2] Remove all traces of Unixware.
2012-12-11 11:37 ` Pedro Alves
@ 2012-12-11 12:46 ` Eli Zaretskii
0 siblings, 0 replies; 15+ messages in thread
From: Eli Zaretskii @ 2012-12-11 12:46 UTC (permalink / raw)
To: Pedro Alves; +Cc: brobecker, gdb-patches
> Date: Tue, 11 Dec 2012 11:37:11 +0000
> From: Pedro Alves <palves@redhat.com>
> CC: gdb-patches@sourceware.org
>
> gdb/
> 2012-12-11 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/
> 2012-12-11 Pedro Alves <palves@redhat.com>
>
> * gdb.texinfo: Remove all mentions of Unixware throughout.
The documentation part is obvious. Thanks.
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 1/2] Put a NT_PSTATUS note on solaris cores.
2012-12-11 12:22 ` Pedro Alves
@ 2012-12-11 15:12 ` Joel Brobecker
2012-12-11 15:16 ` Mark Kettenis
0 siblings, 1 reply; 15+ messages in thread
From: Joel Brobecker @ 2012-12-11 15:12 UTC (permalink / raw)
To: Pedro Alves; +Cc: gdb-patches
> You're doing the right test. The issue is that core_pid_to_str
> calls into the gdbarch_core_pid_to_str, and that isn't expecting
> to be passed a "process pid" instead of an "LWP pid".
>
> Could you try this one when you have a chance? This is rebased on
> top of current mainline, so it restores the elfcore_write_pstatus
> call that the Unixware-excise patch removed. I made sure it builds with
> --enable-targets=all.
Nice detective work :)
(gdb) core core.26444
[New LWP 1]
Core was generated by `/[...]/simple_main'.
Program terminated with signal 5, Trace/breakpoint trap.
#0 simple_main () at simple_main.adb:4
4 simple.test_simple;
(gdb) info inferiors
Num Description Executable
* 1 process 26444 /[...]/simple_main
And with an older core file, since your patch handles it too:
(gdb) info inferiors
Num Description Executable
* 1 <core> /[...]/simple_main
I tested the patch against our testsuite again, no regression either.
So it looks all good to go!
Cheers,
--
Joel
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 1/2] Put a NT_PSTATUS note on solaris cores.
2012-12-11 15:12 ` Joel Brobecker
@ 2012-12-11 15:16 ` Mark Kettenis
2012-12-11 16:45 ` Pedro Alves
0 siblings, 1 reply; 15+ messages in thread
From: Mark Kettenis @ 2012-12-11 15:16 UTC (permalink / raw)
To: palves; +Cc: brobecker, gdb-patches
> Date: Tue, 11 Dec 2012 19:11:36 +0400
> From: Joel Brobecker <brobecker@adacore.com>
>
> > You're doing the right test. The issue is that core_pid_to_str
> > calls into the gdbarch_core_pid_to_str, and that isn't expecting
> > to be passed a "process pid" instead of an "LWP pid".
> >
> > Could you try this one when you have a chance? This is rebased on
> > top of current mainline, so it restores the elfcore_write_pstatus
> > call that the Unixware-excise patch removed. I made sure it builds with
> > --enable-targets=all.
>
> Nice detective work :)
>
> (gdb) core core.26444
> [New LWP 1]
> Core was generated by `/[...]/simple_main'.
> Program terminated with signal 5, Trace/breakpoint trap.
> #0 simple_main () at simple_main.adb:4
> 4 simple.test_simple;
> (gdb) info inferiors
> Num Description Executable
> * 1 process 26444 /[...]/simple_main
>
> And with an older core file, since your patch handles it too:
>
> (gdb) info inferiors
> Num Description Executable
> * 1 <core> /[...]/simple_main
>
> I tested the patch against our testsuite again, no regression either.
> So it looks all good to go!
FWIIW, this is fine with me as well (both the Unixware removal and
fixing the Solaris core dump stuff).
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 1/2] Put a NT_PSTATUS note on solaris cores.
2012-12-11 15:16 ` Mark Kettenis
@ 2012-12-11 16:45 ` Pedro Alves
0 siblings, 0 replies; 15+ messages in thread
From: Pedro Alves @ 2012-12-11 16:45 UTC (permalink / raw)
To: Mark Kettenis; +Cc: brobecker, gdb-patches
On 12/11/2012 03:16 PM, Mark Kettenis wrote:
>> Date: Tue, 11 Dec 2012 19:11:36 +0400
>> From: Joel Brobecker <brobecker@adacore.com>
>>
>>> You're doing the right test. The issue is that core_pid_to_str
>>> calls into the gdbarch_core_pid_to_str, and that isn't expecting
>>> to be passed a "process pid" instead of an "LWP pid".
>>>
>>> Could you try this one when you have a chance? This is rebased on
>>> top of current mainline, so it restores the elfcore_write_pstatus
>>> call that the Unixware-excise patch removed. I made sure it builds with
>>> --enable-targets=all.
>>
>> Nice detective work :)
Nah, it was obvious to me what the problem was. :-)
>>
>> (gdb) core core.26444
>> [New LWP 1]
>> Core was generated by `/[...]/simple_main'.
>> Program terminated with signal 5, Trace/breakpoint trap.
>> #0 simple_main () at simple_main.adb:4
>> 4 simple.test_simple;
>> (gdb) info inferiors
>> Num Description Executable
>> * 1 process 26444 /[...]/simple_main
>>
>> And with an older core file, since your patch handles it too:
>>
>> (gdb) info inferiors
>> Num Description Executable
>> * 1 <core> /[...]/simple_main
>>
>> I tested the patch against our testsuite again, no regression either.
>> So it looks all good to go!
Great!
>
> FWIIW, this is fine with me as well (both the Unixware removal and
> fixing the Solaris core dump stuff).
>
Thanks a lot guys. Everything's checked in now.
--
Pedro Alves
^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2012-12-11 16:45 UTC | newest]
Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-12-06 17:37 [PATCH] solib-svr4.c: Remove old SCO-related code Pedro Alves
2012-12-10 16:44 ` Pedro Alves
2012-12-10 18:02 ` [PATCH 1/2] Put a NT_PSTATUS note on solaris cores Pedro Alves
2012-12-11 3:04 ` Joel Brobecker
2012-12-11 12:22 ` Pedro Alves
2012-12-11 15:12 ` Joel Brobecker
2012-12-11 15:16 ` Mark Kettenis
2012-12-11 16:45 ` Pedro Alves
2012-12-10 18:04 ` [PATCH 2/2] Remove all traces of Unixware Pedro Alves
2012-12-10 19:24 ` Tom Tromey
2012-12-11 2:57 ` Joel Brobecker
2012-12-11 11:37 ` Pedro Alves
2012-12-11 12:46 ` Eli Zaretskii
2012-12-11 4:20 ` Yao Qi
2012-12-11 10:59 ` Pedro Alves
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox