Date: Wed, 13 May 2020 21:16:03 +0000 (UTC) From: John Baldwin <jhb@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r361020 - in stable: 11/lib/libsysdecode 11/sys/fs/procfs 11/sys/sys 11/usr.sbin/procctl 12/lib/libsysdecode 12/sys/fs/procfs 12/sys/sys Message-ID: <202005132116.04DLG3Ig023365@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: jhb Date: Wed May 13 21:16:02 2020 New Revision: 361020 URL: https://svnweb.freebsd.org/changeset/base/361020 Log: MFC 359047,359054: Deprecate procfs-based process debugging. 359047: Mark procfs-based process debugging as deprecated for FreeBSD 13. Attempting to use ioctls on /proc/<pid>/mem to control a process will trigger warnings on the console. The <sys/pioctl.h> include file will also now emit a compile-time warning when used from userland. 359054: Fix the workaround to ignore the #warning for GCC. clang and gcc use different warning flags for #warning preprocessor directives. For both 12 and 11, adjust the GCC warning flags to only be added in 4.7 and later since 4.2.1 does not support -Wno-cpp. For 11, add the needed warning suppression to procctl's build. procctl was removed in 12.0. Modified: stable/12/lib/libsysdecode/Makefile stable/12/sys/fs/procfs/procfs_ioctl.c stable/12/sys/sys/pioctl.h Directory Properties: stable/12/ (props changed) Changes in other areas also in this revision: Modified: stable/11/lib/libsysdecode/Makefile stable/11/sys/fs/procfs/procfs_ioctl.c stable/11/sys/sys/pioctl.h stable/11/usr.sbin/procctl/Makefile Directory Properties: stable/11/ (props changed) Modified: stable/12/lib/libsysdecode/Makefile ============================================================================== --- stable/12/lib/libsysdecode/Makefile Wed May 13 20:37:46 2020 (r361019) +++ stable/12/lib/libsysdecode/Makefile Wed May 13 21:16:02 2020 (r361020) @@ -120,6 +120,13 @@ CFLAGS+=-DPF # Workaround duplicate declarations in <netinet/ip_compat.h> CFLAGS.gcc.ioctl.c+= -Wno-redundant-decls +# Ignore deprecation warning in <sys/pioctl.h> +CFLAGS.clang.ioctl.c+= -Wno-\#warnings +.if ${COMPILER_TYPE} == "gcc" && ${COMPILER_VERSION} >= 40700 +CFLAGS.gcc.ioctl.c+= -Wno-cpp +.endif + +CFLAGS.clang+= ${CFLAGS.clang.${.IMPSRC}} CFLAGS.gcc+= ${CFLAGS.gcc.${.IMPSRC}} DEPENDOBJS+= tables.h Modified: stable/12/sys/fs/procfs/procfs_ioctl.c ============================================================================== --- stable/12/sys/fs/procfs/procfs_ioctl.c Wed May 13 20:37:46 2020 (r361019) +++ stable/12/sys/fs/procfs/procfs_ioctl.c Wed May 13 21:16:02 2020 (r361020) @@ -69,10 +69,53 @@ procfs_ioctl(PFS_IOCTL_ARGS) #ifdef COMPAT_FREEBSD6 int ival; #endif + static struct timeval lasttime; + static struct timeval interval = { .tv_sec = 1, .tv_usec = 0 }; KASSERT(p != NULL, ("%s() called without a process", __func__)); PROC_LOCK_ASSERT(p, MA_OWNED); + + switch (cmd) { +#if defined(COMPAT_FREEBSD5) || defined(COMPAT_FREEBSD4) || defined(COMPAT_43) + case _IOC(IOC_IN, 'p', 1, 0): +#endif +#ifdef COMPAT_FREEBSD6 + case _IO('p', 1): +#endif + case PIOCBIS: +#if defined(COMPAT_FREEBSD5) || defined(COMPAT_FREEBSD4) || defined(COMPAT_43) + case _IOC(IOC_IN, 'p', 2, 0): +#endif +#ifdef COMPAT_FREEBSD6 + case _IO('p', 2): +#endif + case PIOCBIC: +#if defined(COMPAT_FREEBSD5) || defined(COMPAT_FREEBSD4) || defined(COMPAT_43) + case _IOC(IOC_IN, 'p', 3, 0): +#endif +#ifdef COMPAT_FREEBSD6 + case _IO('p', 3): +#endif + case PIOCSFL: + case PIOCGFL: + case PIOCWAIT: + case PIOCSTATUS: +#ifdef COMPAT_FREEBSD32 + case PIOCWAIT32: + case PIOCSTATUS32: +#endif +#if defined(COMPAT_FREEBSD5) || defined(COMPAT_FREEBSD4) || defined(COMPAT_43) + case _IOC(IOC_IN, 'p', 5, 0): +#endif +#ifdef COMPAT_FREEBSD6 + case _IO('p', 5): +#endif + case PIOCCONT: + if (ratecheck(&lasttime, &interval) != 0) + gone_in(13, "procfs-based process debugging"); + break; + } error = 0; switch (cmd) { Modified: stable/12/sys/sys/pioctl.h ============================================================================== --- stable/12/sys/sys/pioctl.h Wed May 13 20:37:46 2020 (r361019) +++ stable/12/sys/sys/pioctl.h Wed May 13 21:16:02 2020 (r361020) @@ -41,6 +41,10 @@ #ifndef _SYS_PIOCTL_H # define _SYS_PIOCTL_H +#ifndef _KERNEL +#warning "<sys/pioctl.h> is deprecated, ptrace() should be used instead" +#endif + # include <sys/ioccom.h> struct procfs_status {
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202005132116.04DLG3Ig023365>