This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: Remove ioctl-based procfs support on Solaris
- From: Pedro Alves <palves at redhat dot com>
- To: Rainer Orth <ro at CeBiTec dot Uni-Bielefeld dot DE>, gdb-patches at sourceware dot org
- Date: Tue, 26 Sep 2017 15:03:21 +0100
- Subject: Re: Remove ioctl-based procfs support on Solaris
- Authentication-results: sourceware.org; auth=none
- Authentication-results: ext-mx04.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com
- Authentication-results: ext-mx04.extmail.prod.ext.phx2.redhat.com; spf=fail smtp.mailfrom=palves at redhat dot com
- Dmarc-filter: OpenDMARC Filter v1.3.2 mx1.redhat.com F3C6F1F593
- References: <yddy3p1vebc.fsf@CeBiTec.Uni-Bielefeld.DE>
On 09/26/2017 01:23 PM, Rainer Orth wrote:
> 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/11 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.
>
Awesome, perfect intro. You've preemptively answered any question
that I might have. And thanks much for diff -w!
> 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.
Hurray!
This all looks good to me FWIW, with a couple tiny nits below.
> /proc file system, which is used on many versions of Unix
> as a means for debuggers to control other processes.
Could you update this comment in procfs.c to mention Solaris
explicitly, please? Likewise the first line of the file.
>
> - Examples of the systems that use this interface are:
> -
> - Irix
> - Solaris
> - OSF
> - AIX5
...
> - There are three methods for doing this function:
> - 1) Newest: read/write [PCSET/PCRESET/PCUNSET]
> - [Sol6, Sol7, UW]
> - 2) Middle: PIOCSET/PIOCRESET
> - [Irix, Sol5]
> - 3) Oldest: PIOCSFORK/PIOCRFORK/PIOCSRLC/PIOCRRLC
> - [OSF, Sol5]
> -
> - Note: Irix does not define PR_ASYNC.
> - Note: OSF does not define PR_KLC.
> - Note: OSF is the only one that can ONLY use the oldest method.
> + This function is done using read/write [PCSET/PCRESET/PCUNSET] [Sol6, Sol7].
I think the "[Sol6, Sol7]" above referred to Solaris 2.6-7.
Should we remove that?
Thanks,
Pedro Alves