Remove ioctl-based procfs support on Solaris

John Baldwin jhb@freebsd.org
Tue Sep 26 21:09:00 GMT 2017


On Tuesday, September 26, 2017 02:23:35 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.
> 
> 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.

FYI, bsd-kvm.c uses HAVE_SYS_USER_H and also uses _KMEMUSER (which your
ChangeLog mentions, but I didn't see it removed in the configure.ac diff)
bsd-kvm.c also uses <sys/proc.h> but it uses it unconditionally.

-- 
John Baldwin



More information about the Gdb-patches mailing list