diff options
author | Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | 2017-11-30 16:05:30 +0100 |
---|---|---|
committer | Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | 2017-11-30 16:05:30 +0100 |
commit | 44122162aefcbabb2fbe5b531412d157da5e59fc (patch) | |
tree | 7be0b7973d186ba56980092141d533464da2737f /gdb/proc-why.c | |
parent | 7ac20022477c163983de77e5b16c016d518ca7bc (diff) | |
download | gdb-44122162aefcbabb2fbe5b531412d157da5e59fc.zip gdb-44122162aefcbabb2fbe5b531412d157da5e59fc.tar.gz gdb-44122162aefcbabb2fbe5b531412d157da5e59fc.tar.bz2 |
Remove ioctl-based procfs support on Solaris
This is the previously mentioned patch to get rid of
unstructured/ioctl-based procfs support in procfs.c. Given that support
for structured procfs was introduced in Solaris 2.6 back in 1997 and
we're just removing support for Solaris < 10, there's no point in
carrying that baggage (and tons of support for IRIX and OSF/1 as well)
around any longer.
Most of the patch should be straightforward (removing support for
!NEW_PROC_API, non-Solaris OSes and pre-Solaris 10 quirks).
Only a few points need explanations:
* <sys/syscall.h> was already included unconditionally in most places,
so there's no need to have guards in a few remaining ones.
* configure.host already obsoletes i?86-*-sysv4.2, i?86-*-sysv5, so
NEW_PROC_API detection for those in configure.ac can go.
* I'm still including <sys/procfs.h> with #define _STRUCTURED_PROC 1.
Theoretically, it would be better to include <procfs.h> on Solaris
(which includes that define), but that breaks the build over
<procfs.h> vs. gdb's "procfs.h", and doesn't exist on Linux.
* I've regenerated syscall_table[] in proc-events.c with a small script
from Solaris 10, 11.3, 11.4 <sys/syscall.h>, so there should be no
traces of older Solaris versions and other OSes left.
* prsysent_t and DYNAMIC_SYSCALLS was only used for AIX 5, but AIX
doesn't use procfs.c any longer, so all related code can go.
The patch was generated with diff -w so one can easier see changes
without being distracted by simple reindentations.
So far, it has only been compiled and smoke-tested on
amd64-pc-solaris2.1[01], sparcv9-sun-solaris2.1[01], and
x86_64-pc-linux-gnu. Certainly needs more testing (Solaris 11.3
vs. 11.4, 32-bit gdb, testsuite once I've figured out what's wrong on
Solaris 10 etc.), but it's enough to get a first impression how much
cleanup is possible here.
* configure.ac Don't check for sys/fault.h, sys/syscall.h,
sys/proc.h.
(NEW_PROC_API): Remove.
(prsysent_t, pr_sigset_t, pr_sigaction64_t, pr_siginfo64_t):
Likewise.
* common/common.m4 (GDB_AC_COMMON): Don't check for sys/syscall.h.
* configure: Regenerate.
* config.in: Regenerate.
* gdbserver/configure: Regenerate.
* gdbserver/config.in: Regenerate.
* i386-sol2-nat.c (_initialize_amd64_sol2_nat): Remove
NEW_PROC_API test.
* sparc-sol2-nat.c (_initialize_sparc_sol2_nat): Likewise.
* linux-btrace.c: Remove HAVE_SYS_SYSCALL_H test.
* proc-api.c: Remove !NEW_PROC_API support.
Remove HAVE_SYS_PROC_H and HAVE_SYS_USER_H tests.
Remove tests for macros always defined on Solaris.
* proc-events.c: Remove !NEW_PROC_API support.
Remove Remove HAVE_SYS_SYSCALL_H, HAVE_SYS_PROC_H and
HAVE_SYS_USER_H tests.
(init_syscall_table): Remove non-Solaris syscalls.
Remove tests for syscalls present on all Solaris versions.
Add missing Solaris 10+ syscalls.
(signal_table): Remove non-Solaris signals.
Remove tests for signals present on all Solaris versions.
(fault_table): Remove non-Solaris faults.
Remove tests for faults present on all Solaris versions.
* proc-flags.c: Remove !NEW_PROC_API support.
(pr_flag_table): Remove non-Solaris and pre-Solaris 7 comments.
Remove non-Solaris flags.
* proc-why.c: Remove !NEW_PROC_API support.
(pr_why_table): Remove meaningless comments.
Remove tests for reasons present on all Solaris versions.
Remove OSF/1 cases.
(proc_prettyfprint_why): Likewise.
* procfs.c: Remove !NEW_PROC_API and DYNAMIC_SYSCALLS support.
Remove HAVE_SYS_FAULT_H and HAVE_SYS_SYSCALL_H tests.
Remove WA_READ test, IRIX watchpoint support.
(gdb_sigset_t, gdb_sigaction_t, gdb_siginfo_t): Replace by base
types. Change users.
(gdb_praddset, gdb_prdelset, gdb_premptysysset, gdb_praddsysset)
(gdb_prdelset, gdb_pr_issyssetmember): Replace by base macros.
Change callers.
Remove CTL_PROC_NAME_FMT tests.
(gdb_prstatus_t, gdb_lwpstatus_t): Replace by base types. Change
users.
(sysset_t_size): Remove. Use sizeof (sysset_t) in callers.
Remove PROCFS_DONT_PIOCSSIG_CURSIG support.
(proc_modify_flag): Replace GDBRESET by PCUNSET.
Remove PR_ASYNC, PR_KLC tests.
(proc_unset_inherit_on_fork): Remove PR_ASYNC test.
(proc_parent_pid): Remove PCWATCH etc. tests.
(proc_set_watchpoint): Remove !PCWATCH && !PIOCSWATCH support.
Remove PCAGENT test.
(proc_get_nthreads) [PIOCNTHR && PIOCTLIST]: Remove.
Remove SYS_lwpcreate || SYS_lwp_create test.
(proc_get_current_thread): Likewise.
[PIOCNTHR && PIOCTLIST]: Remove.
[PIOCLSTATUS]: Remove.
(procfs_debug_inferior): Remove non-Solaris cases, conditionals.
[PRFS_STOPEXEC]: Remove.
(syscall_is_lwp_exit): Remove non-Solaris cases, conditionals.
(syscall_is_exit): Likewise.
(syscall_is_exec): Likewise.
(syscall_is_lwp_create): Likewise.
Remove SYS_syssgi support.
(procfs_wait): Remove PR_ASYNC, !PIOCSSPCACT tests.
[SYS_syssgi]: Remove.
Remove non-Solaris cases, conditionals.
(unconditionally_kill_inferior) [PROCFS_NEED_PIOCSSIG_FOR_KILL]:
Remove.
(procfs_init_inferior) [SYS_syssgi]: Remove.
(procfs_set_exec_trap) [PRFS_STOPEXEC]: Remove.
(procfs_inferior_created) [SYS_syssgi]: Remove.
(procfs_set_watchpoint): Remove !AIX5 test.
(procfs_stopped_by_watchpoint): Remove FLTWATCH test, FLTKWATCH
case.
(mappingflags) [MA_PHYS]: Remove.
(info_mappings_callback): Remove PCAGENT test.
Remove PIOCOPENLWP || PCAGENT test.
Diffstat (limited to 'gdb/proc-why.c')
-rw-r--r-- | gdb/proc-why.c | 61 |
1 files changed, 1 insertions, 60 deletions
diff --git a/gdb/proc-why.c b/gdb/proc-why.c index 9c60635..c867c69 100644 --- a/gdb/proc-why.c +++ b/gdb/proc-why.c @@ -1,4 +1,4 @@ -/* Machine-independent support for SVR4 /proc (process file system) +/* Machine-independent support for Solaris /proc (process file system) Copyright (C) 1999-2017 Free Software Foundation, Inc. @@ -20,9 +20,7 @@ #include "defs.h" -#ifdef NEW_PROC_API #define _STRUCTURED_PROC 1 -#endif #include <sys/types.h> #include <sys/procfs.h> @@ -47,55 +45,15 @@ struct trans static struct trans pr_why_table[] = { -#if defined (PR_REQUESTED) - /* All platforms. */ { PR_REQUESTED, "PR_REQUESTED", "Directed to stop by debugger via P(IO)CSTOP or P(IO)CWSTOP" }, -#endif -#if defined (PR_SIGNALLED) - /* All platforms. */ { PR_SIGNALLED, "PR_SIGNALLED", "Receipt of a traced signal" }, -#endif -#if defined (PR_SYSENTRY) - /* All platforms. */ { PR_SYSENTRY, "PR_SYSENTRY", "Entry to a traced system call" }, -#endif -#if defined (PR_SYSEXIT) - /* All platforms. */ { PR_SYSEXIT, "PR_SYSEXIT", "Exit from a traced system call" }, -#endif -#if defined (PR_JOBCONTROL) - /* All platforms. */ { PR_JOBCONTROL, "PR_JOBCONTROL", "Default job control stop signal action" }, -#endif -#if defined (PR_FAULTED) - /* All platforms. */ { PR_FAULTED, "PR_FAULTED", "Incurred a traced hardware fault" }, -#endif -#if defined (PR_SUSPENDED) - /* Solaris only. */ { PR_SUSPENDED, "PR_SUSPENDED", "Process suspended" }, -#endif -#if defined (PR_CHECKPOINT) - /* Solaris only. */ { PR_CHECKPOINT, "PR_CHECKPOINT", "Process stopped at checkpoint" }, -#endif -#if defined (PR_FORKSTOP) - /* OSF/1 only. */ - { PR_FORKSTOP, "PR_FORKSTOP", "Process stopped at end of fork call" }, -#endif -#if defined (PR_TCRSTOP) - /* OSF/1 only. */ - { PR_TCRSTOP, "PR_TCRSTOP", "Process stopped on thread creation" }, -#endif -#if defined (PR_TTSTOP) - /* OSF/1 only. */ - { PR_TTSTOP, "PR_TTSTOP", "Process stopped on thread termination" }, -#endif -#if defined (PR_DEAD) - /* OSF/1 only. */ - { PR_DEAD, "PR_DEAD", "Process stopped in exit system call" }, -#endif }; /* Pretty-print the pr_why field of a `struct prstatus' or `struct @@ -118,42 +76,25 @@ proc_prettyfprint_why (FILE *file, unsigned long why, unsigned long what, fprintf (file, ": %s ", pr_why_table[i].desc); switch (why) { -#ifdef PR_REQUESTED case PR_REQUESTED: break; /* Nothing more to print. */ -#endif -#ifdef PR_SIGNALLED case PR_SIGNALLED: proc_prettyfprint_signal (file, what, verbose); break; -#endif -#ifdef PR_FAULTED case PR_FAULTED: proc_prettyfprint_fault (file, what, verbose); break; -#endif -#ifdef PR_SYSENTRY case PR_SYSENTRY: fprintf (file, "Entry to "); proc_prettyfprint_syscall (file, what, verbose); break; -#endif -#ifdef PR_SYSEXIT case PR_SYSEXIT: fprintf (file, "Exit from "); proc_prettyfprint_syscall (file, what, verbose); break; -#endif -#ifdef PR_JOBCONTROL case PR_JOBCONTROL: proc_prettyfprint_signal (file, what, verbose); break; -#endif -#ifdef PR_DEAD - case PR_DEAD: - fprintf (file, "Exit status: %ld\n", what); - break; -#endif default: fprintf (file, "Unknown why %ld, what %ld\n", why, what); break; |