{"thread":{"id":"56816","subject":"[PATCH 00/22] man2: Add [[deprecated]] attribute","startedAt":"2021-10-30T21:31:59Z","lastAt":"2021-10-30T22:23:49Z","messageCount":24,"participants":["Alejandro Colomar","Junio C Hamano"],"isPatch":true,"patchVersion":1,"patchTotal":22},"messages":[{"id":"440141","messageId":"20211030213131.140429-1-alx.manpages@gmail.com","threadId":"56816","inReplyTo":null,"subject":"[PATCH 00/22] man2: Add [[deprecated]] attribute","fromName":"Alejandro Colomar","fromEmail":"alx.manpages@gmail.com","sentAt":"2021-10-30T21:31:10Z","receivedAt":"2021-10-30T21:31:59Z","isPatch":true,"sender":{"key":"alx.manpages@gmail.com","avatar":null},"body":"Hello Michael,\n\nI added the C2X [[deprecated]] attribute to the prototypes of some\nsystem calls.  All of the cases where I added that were already\nmarked as deprecated or obsolete somewhere in the manual page,\nso this is just about uniformity and visual effect rather than\na new deprecation notice.\n\nThere are cases where the syscalls have been simply removed, and\nso they are obviously not to be used any more.\n\nThere are cases where some implementation (not necessarily Linux)\nis dangerous.\n\nIn some other cases, the functions have been obsoleted by POSIX,\nbut are still there in Linux without any deprecation notices.\nIn these cases, if there's no clear replacement, or if the\nreplacement is not a straight drop-in, or if the replacement adds\nmore complexity, I didn't add the [[deprecated]] attribute.\n\nA list of the system calls that I skipped in this patch set:\n\n- utime(2)\n\tMany filesystems have 1 second resolution, so it makes\n\tsense to use it in those cases.  git(1) for example uses\n\tutime(2) consistently.  Although deprecated by POSIX, it\n\tis still part of POSIX; if it ever removes it, we can\n\treconsider.\n\n- setpgrp(2) (the POSIX/SysV version)\n\tPOSIX deprecated it (not yet removed), but the manual page\n\tdoesn't mention any replacement.\n\nCheers,\n\nAlex\n\n\n---\n\nAlejandro Colomar (22):\n  bdflush.2: SYNOPSIS: Mark as [[deprecated]]\n  create_module.2: SYNOPSIS: Mark as [[deprecated]]\n  get_kernel_syms.2: SYNOPSIS: Mark as [[deprecated]]\n  getunwind.2: SYNOPSIS: Mark as [[deprecated]]\n  iopl.2: SYNOPSIS: Mark as [[deprecated]]\n  query_module.2: SYNOPSIS: Mark as [[deprecated]]\n  remap_file_pages.2: SYNOPSIS: Mark as [[deprecated]]\n  sigprocmask.2: SYNOPSIS: Mark the legacy system call as [[deprecated]]\n  statfs.2: SYNOPSIS: Mark as [[deprecated]]\n  stime.2: SYNOPSIS: Mark as [[deprecated]]\n  ustat.2: SYNOPSIS: Mark as [[deprecated]]\n  pthread_mutex_consistent.3: Mark *_np() old function as [[deprecated]]\n  sysctl.2: SYNOPSIS: Mark as [[deprecated]]\n  vfork.2: SYNOPSIS: Mark as [[deprecated]]\n  tkill.2: SYNOPSIS: Mark tkill() as [[deprecated]]\n  sgetmask.2: SYNOPSIS: Mark as [[deprecated]]\n  getitimer.2: SYNOPSIS: Mark as [[deprecated]]\n  futimesat.2: SYNOPSIS: Mark as [[deprecated]]\n  gettimeofday.2: SYNOPSIS: Mark as [[deprecated]]\n  setpgid.2: SYNOPSIS: Mark BSD versions of getpgrp() and setpgrp() as\n    [[deprecated]]\n  sysfs.2: SYNOPSIS: Mark as [[deprecated]]\n  uselib.2: SYNOPSIS: Mark as [[deprecated]]\n\n man2/bdflush.2                  |  4 ++--\n man2/create_module.2            |  2 +-\n man2/futimesat.2                |  4 ++--\n man2/get_kernel_syms.2          |  2 +-\n man2/getitimer.2                |  7 ++++---\n man2/gettimeofday.2             |  8 ++++----\n man2/getunwind.2                |  3 ++-\n man2/iopl.2                     |  2 +-\n man2/query_module.2             |  5 +++--\n man2/remap_file_pages.2         |  5 +++--\n man2/setpgid.2                  |  8 ++++----\n man2/sgetmask.2                 |  4 ++--\n man2/sigprocmask.2              | 12 +++++++-----\n man2/statfs.2                   |  4 ++--\n man2/stime.2                    |  2 +-\n man2/sysctl.2                   |  2 +-\n man2/sysfs.2                    |  6 +++---\n man2/tkill.2                    |  2 +-\n man2/uselib.2                   |  2 +-\n man2/ustat.2                    |  2 +-\n man2/vfork.2                    |  2 +-\n man3/pthread_mutex_consistent.3 |  1 +\n 22 files changed, 48 insertions(+), 41 deletions(-)\n\n-- \n2.33.1\n\n"},{"id":"440142","messageId":"20211030213131.140429-2-alx.manpages@gmail.com","threadId":"56816","inReplyTo":"20211030213131.140429-1-alx.manpages@gmail.com","subject":"[PATCH 01/22] bdflush.2: SYNOPSIS: Mark as [[deprecated]]","fromName":"Alejandro Colomar","fromEmail":"alx.manpages@gmail.com","sentAt":"2021-10-30T21:31:11Z","receivedAt":"2021-10-30T21:32:05Z","isPatch":true,"sender":{"key":"alx.manpages@gmail.com","avatar":null},"body":"This syscal is not supported anymore by glibc, and does nothing.\n\nSigned-off-by: Alejandro Colomar <alx.manpages@gmail.com>\n---\n man2/bdflush.2 | 4 ++--\n 1 file changed, 2 insertions(+), 2 deletions(-)\n\ndiff --git a/man2/bdflush.2 b/man2/bdflush.2\nindex 710da7b18..8ad5dfc2b 100644\n--- a/man2/bdflush.2\n+++ b/man2/bdflush.2\n@@ -31,8 +31,8 @@ bdflush \\- start, flush, or tune buffer-dirty-flush daemon\n .nf\n .B #include <sys/kdaemon.h>\n .PP\n-.BI \"int bdflush(int \"  func \", long *\" address );\n-.BI \"int bdflush(int \"  func \", long \" data );\n+.BI \"[[deprecated]] int bdflush(int \"  func \", long *\" address );\n+.BI \"[[deprecated]] int bdflush(int \"  func \", long \" data );\n .fi\n .PP\n .IR Note :\n-- \n2.33.1\n\n"},{"id":"440143","messageId":"20211030213131.140429-3-alx.manpages@gmail.com","threadId":"56816","inReplyTo":"20211030213131.140429-1-alx.manpages@gmail.com","subject":"[PATCH 02/22] create_module.2: SYNOPSIS: Mark as [[deprecated]]","fromName":"Alejandro Colomar","fromEmail":"alx.manpages@gmail.com","sentAt":"2021-10-30T21:31:12Z","receivedAt":"2021-10-30T21:32:05Z","isPatch":true,"sender":{"key":"alx.manpages@gmail.com","avatar":null},"body":"This syscall was removed in Linux 2.6.\n\nSigned-off-by: Alejandro Colomar <alx.manpages@gmail.com>\n---\n man2/create_module.2 | 2 +-\n 1 file changed, 1 insertion(+), 1 deletion(-)\n\ndiff --git a/man2/create_module.2 b/man2/create_module.2\nindex 81136fe06..a4b0fa603 100644\n--- a/man2/create_module.2\n+++ b/man2/create_module.2\n@@ -14,7 +14,7 @@ create_module \\- create a loadable module entry\n .nf\n .B #include <linux/module.h>\n .PP\n-.BI \"caddr_t create_module(const char *\" name \", size_t \" size );\n+.BI \"[[deprecated]] caddr_t create_module(const char *\" name \", size_t \" size );\n .fi\n .PP\n .IR Note :\n-- \n2.33.1\n\n"},{"id":"440144","messageId":"20211030213131.140429-4-alx.manpages@gmail.com","threadId":"56816","inReplyTo":"20211030213131.140429-1-alx.manpages@gmail.com","subject":"[PATCH 03/22] get_kernel_syms.2: SYNOPSIS: Mark as [[deprecated]]","fromName":"Alejandro Colomar","fromEmail":"alx.manpages@gmail.com","sentAt":"2021-10-30T21:31:13Z","receivedAt":"2021-10-30T21:32:06Z","isPatch":true,"sender":{"key":"alx.manpages@gmail.com","avatar":null},"body":"This syscall was removed in Linux 2.6.\n\nSigned-off-by: Alejandro Colomar <alx.manpages@gmail.com>\n---\n man2/get_kernel_syms.2 | 2 +-\n 1 file changed, 1 insertion(+), 1 deletion(-)\n\ndiff --git a/man2/get_kernel_syms.2 b/man2/get_kernel_syms.2\nindex beb26e539..aa5a23f6e 100644\n--- a/man2/get_kernel_syms.2\n+++ b/man2/get_kernel_syms.2\n@@ -14,7 +14,7 @@ get_kernel_syms \\- retrieve exported kernel and module symbols\n .nf\n .B #include <linux/module.h>\n .PP\n-.BI \"int get_kernel_syms(struct kernel_sym *\" table );\n+.BI \"[[deprecated]] int get_kernel_syms(struct kernel_sym *\" table );\n .fi\n .PP\n .IR Note :\n-- \n2.33.1\n\n"},{"id":"440145","messageId":"20211030213131.140429-5-alx.manpages@gmail.com","threadId":"56816","inReplyTo":"20211030213131.140429-1-alx.manpages@gmail.com","subject":"[PATCH 04/22] getunwind.2: SYNOPSIS: Mark as [[deprecated]]","fromName":"Alejandro Colomar","fromEmail":"alx.manpages@gmail.com","sentAt":"2021-10-30T21:31:14Z","receivedAt":"2021-10-30T21:32:12Z","isPatch":true,"sender":{"key":"alx.manpages@gmail.com","avatar":null},"body":"Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>\n---\n man2/getunwind.2 | 3 ++-\n 1 file changed, 2 insertions(+), 1 deletion(-)\n\ndiff --git a/man2/getunwind.2 b/man2/getunwind.2\nindex 0935497c6..68b9efc36 100644\n--- a/man2/getunwind.2\n+++ b/man2/getunwind.2\n@@ -33,7 +33,8 @@ getunwind \\- copy the unwind data to caller's buffer\n .BR \"#include <sys/syscall.h>\" \"      /* Definition of \" SYS_* \" constants */\"\n .B #include <unistd.h>\n .PP\n-.BI \"long syscall(SYS_getunwind, void \" *buf \", size_t \" buf_size );\n+.BI \"[[deprecated]] long syscall(SYS_getunwind, void \" *buf \\\n+\", size_t \" buf_size );\n .fi\n .PP\n .IR Note :\n-- \n2.33.1\n\n"},{"id":"440146","messageId":"20211030213131.140429-7-alx.manpages@gmail.com","threadId":"56816","inReplyTo":"20211030213131.140429-1-alx.manpages@gmail.com","subject":"[PATCH 06/22] query_module.2: SYNOPSIS: Mark as [[deprecated]]","fromName":"Alejandro Colomar","fromEmail":"alx.manpages@gmail.com","sentAt":"2021-10-30T21:31:16Z","receivedAt":"2021-10-30T21:32:13Z","isPatch":true,"sender":{"key":"alx.manpages@gmail.com","avatar":null},"body":"This syscall was removed in Linux 2.6.\n\nSigned-off-by: Alejandro Colomar <alx.manpages@gmail.com>\n---\n man2/query_module.2 | 5 +++--\n 1 file changed, 3 insertions(+), 2 deletions(-)\n\ndiff --git a/man2/query_module.2 b/man2/query_module.2\nindex ef8d803ee..4e657189c 100644\n--- a/man2/query_module.2\n+++ b/man2/query_module.2\n@@ -14,8 +14,9 @@ query_module \\- query the kernel for various bits pertaining to modules\n .nf\n .B #include <linux/module.h>\n .PP\n-.BI \"int query_module(const char *\" name \", int \" which \", void *\" buf ,\n-.BI \"                 size_t \" bufsize \", size_t *\" ret );\n+.BI \"[[deprecated]] int query_module(const char *\" name \", int \" which \\\n+\", void *\" buf ,\n+.BI \"                                size_t \" bufsize \", size_t *\" ret );\n .fi\n .PP\n .IR Note :\n-- \n2.33.1\n\n"},{"id":"440147","messageId":"20211030213131.140429-6-alx.manpages@gmail.com","threadId":"56816","inReplyTo":"20211030213131.140429-1-alx.manpages@gmail.com","subject":"[PATCH 05/22] iopl.2: SYNOPSIS: Mark as [[deprecated]]","fromName":"Alejandro Colomar","fromEmail":"alx.manpages@gmail.com","sentAt":"2021-10-30T21:31:15Z","receivedAt":"2021-10-30T21:32:13Z","isPatch":true,"sender":{"key":"alx.manpages@gmail.com","avatar":null},"body":"Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>\n---\n man2/iopl.2 | 2 +-\n 1 file changed, 1 insertion(+), 1 deletion(-)\n\ndiff --git a/man2/iopl.2 b/man2/iopl.2\nindex f0a241b97..7a348fb78 100644\n--- a/man2/iopl.2\n+++ b/man2/iopl.2\n@@ -37,7 +37,7 @@ iopl \\- change I/O privilege level\n .nf\n .B #include <sys/io.h>\n .PP\n-.BI \"int iopl(int \" level );\n+.BI \"[[deprecated]] int iopl(int \" level );\n .fi\n .SH DESCRIPTION\n .BR iopl ()\n-- \n2.33.1\n\n"},{"id":"440148","messageId":"20211030213131.140429-8-alx.manpages@gmail.com","threadId":"56816","inReplyTo":"20211030213131.140429-1-alx.manpages@gmail.com","subject":"[PATCH 07/22] remap_file_pages.2: SYNOPSIS: Mark as [[deprecated]]","fromName":"Alejandro Colomar","fromEmail":"alx.manpages@gmail.com","sentAt":"2021-10-30T21:31:17Z","receivedAt":"2021-10-30T21:32:14Z","isPatch":true,"sender":{"key":"alx.manpages@gmail.com","avatar":null},"body":"This syscall was marked as deprecated in Linux 3.16.\n\nSigned-off-by: Alejandro Colomar <alx.manpages@gmail.com>\n---\n man2/remap_file_pages.2 | 5 +++--\n 1 file changed, 3 insertions(+), 2 deletions(-)\n\ndiff --git a/man2/remap_file_pages.2 b/man2/remap_file_pages.2\nindex 2ed31bbff..69b37bb8b 100644\n--- a/man2/remap_file_pages.2\n+++ b/man2/remap_file_pages.2\n@@ -33,8 +33,9 @@ remap_file_pages \\- create a nonlinear file mapping\n .BR \"#define _GNU_SOURCE\" \"         /* See feature_test_macros(7) */\"\n .B #include <sys/mman.h>\n .PP\n-.BI \"int remap_file_pages(void *\" addr \", size_t \" size \", int \" prot ,\n-.BI \"                     size_t \" pgoff \", int \" flags );\n+.BI \"[[deprecated]] int remap_file_pages(void *\" addr \", size_t \" size \\\n+\", int \" prot ,\n+.BI \"                                    size_t \" pgoff \", int \" flags );\n .fi\n .SH DESCRIPTION\n .BR Note :\n-- \n2.33.1\n\n"},{"id":"440149","messageId":"20211030213131.140429-9-alx.manpages@gmail.com","threadId":"56816","inReplyTo":"20211030213131.140429-1-alx.manpages@gmail.com","subject":"[PATCH 08/22] sigprocmask.2: SYNOPSIS: Mark the legacy system call as [[deprecated]]","fromName":"Alejandro Colomar","fromEmail":"alx.manpages@gmail.com","sentAt":"2021-10-30T21:31:18Z","receivedAt":"2021-10-30T21:32:16Z","isPatch":true,"sender":{"key":"alx.manpages@gmail.com","avatar":null},"body":"Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>\n---\n man2/sigprocmask.2 | 12 +++++++-----\n 1 file changed, 7 insertions(+), 5 deletions(-)\n\ndiff --git a/man2/sigprocmask.2 b/man2/sigprocmask.2\nindex b82386f14..6d961f84f 100644\n--- a/man2/sigprocmask.2\n+++ b/man2/sigprocmask.2\n@@ -35,7 +35,7 @@ sigprocmask, rt_sigprocmask \\- examine and change blocked signals\n .nf\n /* Prototype for the glibc wrapper function */\n .BI \"int sigprocmask(int \" how \", const sigset_t *restrict \" set ,\n-.BI \"                sigset_t *restrict \" oldset );\n+.BI \"                           sigset_t *restrict \" oldset );\n .PP\n .BR \"#include <signal.h>\" \"           /* Definition of \" SIG_* \" constants */\"\n .BR \"#include <sys/syscall.h>\" \"      /* Definition of \" SYS_* \" constants */\"\n@@ -43,11 +43,13 @@ sigprocmask, rt_sigprocmask \\- examine and change blocked signals\n .PP\n /* Prototype for the underlying system call */\n .BI \"int syscall(SYS_rt_sigprocmask, int \" how \", const kernel_sigset_t *\" set ,\n-.BI \"                kernel_sigset_t *\" oldset \", size_t \" sigsetsize );\n+.BI \"                           kernel_sigset_t *\" oldset \\\n+\", size_t \" sigsetsize );\n .PP\n-/* Prototype for the legacy system call (deprecated) */\n-.BI \"int syscall(SYS_sigprocmask, int \" how \", const old_kernel_sigset_t *\" set ,\n-.BI \"                old_kernel_sigset_t *\" oldset );\n+/* Prototype for the legacy system call */\n+.BI \"[[deprecated]] int syscall(SYS_sigprocmask, int \" how ,\n+.BI \"                           const old_kernel_sigset_t *\" set ,\n+.BI \"                           old_kernel_sigset_t *\" oldset );\n .fi\n .PP\n .RS -4\n-- \n2.33.1\n\n"},{"id":"440150","messageId":"20211030213131.140429-10-alx.manpages@gmail.com","threadId":"56816","inReplyTo":"20211030213131.140429-1-alx.manpages@gmail.com","subject":"[PATCH 09/22] statfs.2: SYNOPSIS: Mark as [[deprecated]]","fromName":"Alejandro Colomar","fromEmail":"alx.manpages@gmail.com","sentAt":"2021-10-30T21:31:19Z","receivedAt":"2021-10-30T21:32:17Z","isPatch":true,"sender":{"key":"alx.manpages@gmail.com","avatar":null},"body":"LSB deprecated these syscalls in favor of [f]statvfs(3).\n\nSigned-off-by: Alejandro Colomar <alx.manpages@gmail.com>\n---\n man2/statfs.2 | 4 ++--\n 1 file changed, 2 insertions(+), 2 deletions(-)\n\ndiff --git a/man2/statfs.2 b/man2/statfs.2\nindex 77abd7e4b..92dd83460 100644\n--- a/man2/statfs.2\n+++ b/man2/statfs.2\n@@ -32,8 +32,8 @@ statfs, fstatfs \\- get filesystem statistics\n .nf\n .BR \"#include <sys/vfs.h>    \" \"/* or <sys/statfs.h> */\"\n .PP\n-.BI \"int statfs(const char *\" path \", struct statfs *\" buf );\n-.BI \"int fstatfs(int \" fd \", struct statfs *\" buf );\n+.BI \"[[deprecated]] int statfs(const char *\" path \", struct statfs *\" buf );\n+.BI \"[[deprecated]] int fstatfs(int \" fd \", struct statfs *\" buf );\n .fi\n .SH DESCRIPTION\n The\n-- \n2.33.1\n\n"},{"id":"440151","messageId":"20211030213131.140429-11-alx.manpages@gmail.com","threadId":"56816","inReplyTo":"20211030213131.140429-1-alx.manpages@gmail.com","subject":"[PATCH 10/22] stime.2: SYNOPSIS: Mark as [[deprecated]]","fromName":"Alejandro Colomar","fromEmail":"alx.manpages@gmail.com","sentAt":"2021-10-30T21:31:20Z","receivedAt":"2021-10-30T21:32:18Z","isPatch":true,"sender":{"key":"alx.manpages@gmail.com","avatar":null},"body":"This syscall was removed from glibc 2.31 for newly linked\nprograms.\n\nSigned-off-by: Alejandro Colomar <alx.manpages@gmail.com>\n---\n man2/stime.2 | 2 +-\n 1 file changed, 1 insertion(+), 1 deletion(-)\n\ndiff --git a/man2/stime.2 b/man2/stime.2\nindex 4aaa6c775..5d40495d0 100644\n--- a/man2/stime.2\n+++ b/man2/stime.2\n@@ -34,7 +34,7 @@ stime \\- set time\n .nf\n .B #include <time.h>\n .PP\n-.BI \"int stime(const time_t *\" t );\n+.BI \"[[deprecated]] int stime(const time_t *\" t );\n .fi\n .PP\n .RS -4\n-- \n2.33.1\n\n"},{"id":"440152","messageId":"20211030213131.140429-12-alx.manpages@gmail.com","threadId":"56816","inReplyTo":"20211030213131.140429-1-alx.manpages@gmail.com","subject":"[PATCH 11/22] ustat.2: SYNOPSIS: Mark as [[deprecated]]","fromName":"Alejandro Colomar","fromEmail":"alx.manpages@gmail.com","sentAt":"2021-10-30T21:31:21Z","receivedAt":"2021-10-30T21:32:19Z","isPatch":true,"sender":{"key":"alx.manpages@gmail.com","avatar":null},"body":"Glibc 2.28 removed the wrapper for this syscall.\n\nSigned-off-by: Alejandro Colomar <alx.manpages@gmail.com>\n---\n man2/ustat.2 | 2 +-\n 1 file changed, 1 insertion(+), 1 deletion(-)\n\ndiff --git a/man2/ustat.2 b/man2/ustat.2\nindex cb26ab23e..6079861ad 100644\n--- a/man2/ustat.2\n+++ b/man2/ustat.2\n@@ -36,7 +36,7 @@ ustat \\- get filesystem statistics\n .BR \"#include <unistd.h>\" \"    /* libc[45] */\"\n .BR \"#include <ustat.h>\" \"     /* glibc2 */\"\n .PP\n-.BI \"int ustat(dev_t \" dev \", struct ustat *\" ubuf );\n+.BI \"[[deprecated]] int ustat(dev_t \" dev \", struct ustat *\" ubuf );\n .fi\n .SH DESCRIPTION\n .BR ustat ()\n-- \n2.33.1\n\n"},{"id":"440153","messageId":"20211030213131.140429-14-alx.manpages@gmail.com","threadId":"56816","inReplyTo":"20211030213131.140429-1-alx.manpages@gmail.com","subject":"[PATCH 13/22] sysctl.2: SYNOPSIS: Mark as [[deprecated]]","fromName":"Alejandro Colomar","fromEmail":"alx.manpages@gmail.com","sentAt":"2021-10-30T21:31:23Z","receivedAt":"2021-10-30T21:32:22Z","isPatch":true,"sender":{"key":"alx.manpages@gmail.com","avatar":null},"body":"This syscall no longer exists!\n\nSigned-off-by: Alejandro Colomar <alx.manpages@gmail.com>\n---\n man2/sysctl.2 | 2 +-\n 1 file changed, 1 insertion(+), 1 deletion(-)\n\ndiff --git a/man2/sysctl.2 b/man2/sysctl.2\nindex 2188389dc..46b189243 100644\n--- a/man2/sysctl.2\n+++ b/man2/sysctl.2\n@@ -35,7 +35,7 @@ sysctl \\- read/write system parameters\n .B #include <unistd.h>\n .B #include <linux/sysctl.h>\n .PP\n-.BI \"int _sysctl(struct __sysctl_args *\" args );\n+.BI \"[[deprecated]] int _sysctl(struct __sysctl_args *\" args );\n .fi\n .SH DESCRIPTION\n .B This system call no longer exists on current kernels!\n-- \n2.33.1\n\n"},{"id":"440154","messageId":"20211030213131.140429-13-alx.manpages@gmail.com","threadId":"56816","inReplyTo":"20211030213131.140429-1-alx.manpages@gmail.com","subject":"[PATCH 12/22] pthread_mutex_consistent.3: Mark *_np() old function as [[deprecated]]","fromName":"Alejandro Colomar","fromEmail":"alx.manpages@gmail.com","sentAt":"2021-10-30T21:31:22Z","receivedAt":"2021-10-30T21:32:22Z","isPatch":true,"sender":{"key":"alx.manpages@gmail.com","avatar":null},"body":"Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>\n---\n man3/pthread_mutex_consistent.3 | 1 +\n 1 file changed, 1 insertion(+)\n\ndiff --git a/man3/pthread_mutex_consistent.3 b/man3/pthread_mutex_consistent.3\nindex c4963582b..ab280e961 100644\n--- a/man3/pthread_mutex_consistent.3\n+++ b/man3/pthread_mutex_consistent.3\n@@ -85,6 +85,7 @@ glibc defined the following equivalent nonstandard function if\n was defined:\n .PP\n .nf\n+.B [[deprecated]]\n .BI \"int pthread_mutex_consistent_np(const pthread_mutex_t *\" mutex );\n .fi\n .PP\n-- \n2.33.1\n\n"},{"id":"440155","messageId":"20211030213131.140429-15-alx.manpages@gmail.com","threadId":"56816","inReplyTo":"20211030213131.140429-1-alx.manpages@gmail.com","subject":"[PATCH 14/22] vfork.2: SYNOPSIS: Mark as [[deprecated]]","fromName":"Alejandro Colomar","fromEmail":"alx.manpages@gmail.com","sentAt":"2021-10-30T21:31:24Z","receivedAt":"2021-10-30T21:32:25Z","isPatch":true,"sender":{"key":"alx.manpages@gmail.com","avatar":null},"body":"Since 4.2BSD this syscall was called to be eliminated.\nPOSIX removed it.\n\nSigned-off-by: Alejandro Colomar <alx.manpages@gmail.com>\n---\n man2/vfork.2 | 2 +-\n 1 file changed, 1 insertion(+), 1 deletion(-)\n\ndiff --git a/man2/vfork.2 b/man2/vfork.2\nindex cd59a374f..655781c1d 100644\n--- a/man2/vfork.2\n+++ b/man2/vfork.2\n@@ -33,7 +33,7 @@ vfork \\- create a child process and block parent\n .nf\n .B #include <unistd.h>\n .PP\n-.B pid_t vfork(void);\n+.B [[deprecated]] pid_t vfork(void);\n .fi\n .PP\n .RS -4\n-- \n2.33.1\n\n"},{"id":"440156","messageId":"20211030213131.140429-16-alx.manpages@gmail.com","threadId":"56816","inReplyTo":"20211030213131.140429-1-alx.manpages@gmail.com","subject":"[PATCH 15/22] tkill.2: SYNOPSIS: Mark tkill() as [[deprecated]]","fromName":"Alejandro Colomar","fromEmail":"alx.manpages@gmail.com","sentAt":"2021-10-30T21:31:25Z","receivedAt":"2021-10-30T21:32:26Z","isPatch":true,"sender":{"key":"alx.manpages@gmail.com","avatar":null},"body":"tkill(2) has been superseeded by tgkill(2).\n\nSigned-off-by: Alejandro Colomar <alx.manpages@gmail.com>\n---\n man2/tkill.2 | 2 +-\n 1 file changed, 1 insertion(+), 1 deletion(-)\n\ndiff --git a/man2/tkill.2 b/man2/tkill.2\nindex 6e1afcd36..8a6c45380 100644\n--- a/man2/tkill.2\n+++ b/man2/tkill.2\n@@ -35,7 +35,7 @@ tkill, tgkill \\- send a signal to a thread\n .BR \"#include <sys/syscall.h>\" \"      /* Definition of \" SYS_* \" constants */\"\n .B #include <unistd.h>\n .PP\n-.BI \"int syscall(SYS_tkill, pid_t \" tid \", int \" sig );\n+.BI \"[[deprecated]] int syscall(SYS_tkill, pid_t \" tid \", int \" sig );\n .PP\n .B #include <signal.h>\n .PP\n-- \n2.33.1\n\n"},{"id":"440157","messageId":"20211030213131.140429-20-alx.manpages@gmail.com","threadId":"56816","inReplyTo":"20211030213131.140429-1-alx.manpages@gmail.com","subject":"[PATCH 19/22] gettimeofday.2: SYNOPSIS: Mark as [[deprecated]]","fromName":"Alejandro Colomar","fromEmail":"alx.manpages@gmail.com","sentAt":"2021-10-30T21:31:29Z","receivedAt":"2021-10-30T21:32:36Z","isPatch":true,"sender":{"key":"alx.manpages@gmail.com","avatar":null},"body":"Use clock_gettime(2) instead.\n\nSigned-off-by: Alejandro Colomar <alx.manpages@gmail.com>\n---\n man2/gettimeofday.2 | 8 ++++----\n 1 file changed, 4 insertions(+), 4 deletions(-)\n\ndiff --git a/man2/gettimeofday.2 b/man2/gettimeofday.2\nindex 8101e311d..f4b7189d7 100644\n--- a/man2/gettimeofday.2\n+++ b/man2/gettimeofday.2\n@@ -44,10 +44,10 @@ gettimeofday, settimeofday \\- get / set time\n .nf\n .B #include <sys/time.h>\n .PP\n-.BI \"int gettimeofday(struct timeval *restrict \" tv ,\n-.BI \"                 struct timezone *restrict \" tz );\n-.BI \"int settimeofday(const struct timeval *\" tv ,\n-.BI \"                 const struct timezone *\" tz );\n+.BI \"[[deprecated]] int gettimeofday(struct timeval *restrict \" tv ,\n+.BI \"                                struct timezone *restrict \" tz );\n+.BI \"[[deprecated]] int settimeofday(const struct timeval *\" tv ,\n+.BI \"                                const struct timezone *\" tz );\n .fi\n .PP\n .RS -4\n-- \n2.33.1\n\n"},{"id":"440158","messageId":"20211030213131.140429-19-alx.manpages@gmail.com","threadId":"56816","inReplyTo":"20211030213131.140429-1-alx.manpages@gmail.com","subject":"[PATCH 18/22] futimesat.2: SYNOPSIS: Mark as [[deprecated]]","fromName":"Alejandro Colomar","fromEmail":"alx.manpages@gmail.com","sentAt":"2021-10-30T21:31:28Z","receivedAt":"2021-10-30T21:32:37Z","isPatch":true,"sender":{"key":"alx.manpages@gmail.com","avatar":null},"body":"Use utimensat(2) instead.\n\nSigned-off-by: Alejandro Colomar <alx.manpages@gmail.com>\n---\n man2/futimesat.2 | 4 ++--\n 1 file changed, 2 insertions(+), 2 deletions(-)\n\ndiff --git a/man2/futimesat.2 b/man2/futimesat.2\nindex 40d352c56..c1ceb7687 100644\n--- a/man2/futimesat.2\n+++ b/man2/futimesat.2\n@@ -31,8 +31,8 @@ directory file descriptor\n .BR \"#include <fcntl.h>\" \"            /* Definition of \" AT_* \" constants */\"\n .B #include <sys/time.h>\n .PP\n-.BI \"int futimesat(int \" dirfd \", const char *\" pathname ,\n-.BI \"              const struct timeval \" times [2]);\n+.BI \"[[deprecated]] int futimesat(int \" dirfd \", const char *\" pathname ,\n+.BI \"                             const struct timeval \" times [2]);\n .fi\n .PP\n .RS -4\n-- \n2.33.1\n\n"},{"id":"440159","messageId":"20211030213131.140429-18-alx.manpages@gmail.com","threadId":"56816","inReplyTo":"20211030213131.140429-1-alx.manpages@gmail.com","subject":"[PATCH 17/22] getitimer.2: SYNOPSIS: Mark as [[deprecated]]","fromName":"Alejandro Colomar","fromEmail":"alx.manpages@gmail.com","sentAt":"2021-10-30T21:31:27Z","receivedAt":"2021-10-30T21:32:39Z","isPatch":true,"sender":{"key":"alx.manpages@gmail.com","avatar":null},"body":"POSIX deprecates them and recommends the almost identical\ntimer_[gs]ettime(2).  Those use 'struct timespec' instead of\n'struct timeval'.\n\nSigned-off-by: Alejandro Colomar <alx.manpages@gmail.com>\n---\n man2/getitimer.2 | 7 ++++---\n 1 file changed, 4 insertions(+), 3 deletions(-)\n\ndiff --git a/man2/getitimer.2 b/man2/getitimer.2\nindex 7d74df174..9c9ad1978 100644\n--- a/man2/getitimer.2\n+++ b/man2/getitimer.2\n@@ -17,9 +17,10 @@ getitimer, setitimer \\- get or set value of an interval timer\n .nf\n .B #include <sys/time.h>\n .PP\n-.BI \"int getitimer(int \" which \", struct itimerval *\" curr_value );\n-.BI \"int setitimer(int \" which \", const struct itimerval *restrict \" new_value ,\n-.BI \"              struct itimerval *restrict \" old_value );\n+.BI \"[[deprecated]] int getitimer(int \" which \", struct itimerval *\" curr_value );\n+.BI \"[[deprecated]] int setitimer(int \" which ,\n+.BI \"                            const struct itimerval *restrict \" new_value ,\n+.BI \"                            struct itimerval *restrict \" old_value );\n .fi\n .SH DESCRIPTION\n These system calls provide access to interval timers, that is,\n-- \n2.33.1\n\n"},{"id":"440160","messageId":"20211030213131.140429-17-alx.manpages@gmail.com","threadId":"56816","inReplyTo":"20211030213131.140429-1-alx.manpages@gmail.com","subject":"[PATCH 16/22] sgetmask.2: SYNOPSIS: Mark as [[deprecated]]","fromName":"Alejandro Colomar","fromEmail":"alx.manpages@gmail.com","sentAt":"2021-10-30T21:31:26Z","receivedAt":"2021-10-30T21:32:40Z","isPatch":true,"sender":{"key":"alx.manpages@gmail.com","avatar":null},"body":"Use sigprocmask(2) instead.\n\nSigned-off-by: Alejandro Colomar <alx.manpages@gmail.com>\n---\n man2/sgetmask.2 | 4 ++--\n 1 file changed, 2 insertions(+), 2 deletions(-)\n\ndiff --git a/man2/sgetmask.2 b/man2/sgetmask.2\nindex 59b58ceaf..37452ec05 100644\n--- a/man2/sgetmask.2\n+++ b/man2/sgetmask.2\n@@ -30,8 +30,8 @@ sgetmask, ssetmask \\- manipulation of signal mask (obsolete)\n .BR \"#include <sys/syscall.h>\" \"      /* Definition of \" SYS_* \" constants */\"\n .B #include <unistd.h>\n .PP\n-.B \"long syscall(SYS_sgetmask, void);\"\n-.BI \"long syscall(SYS_ssetmask, long \" newmask );\n+.B [[deprecated]] long syscall(SYS_sgetmask, void);\n+.BI \"[[deprecated]] long syscall(SYS_ssetmask, long \" newmask );\n .fi\n .PP\n .IR Note :\n-- \n2.33.1\n\n"},{"id":"440161","messageId":"20211030213131.140429-21-alx.manpages@gmail.com","threadId":"56816","inReplyTo":"20211030213131.140429-1-alx.manpages@gmail.com","subject":"[PATCH 20/22] setpgid.2: SYNOPSIS: Mark BSD versions of getpgrp() and setpgrp() as [[deprecated]]","fromName":"Alejandro Colomar","fromEmail":"alx.manpages@gmail.com","sentAt":"2021-10-30T21:31:30Z","receivedAt":"2021-10-30T21:32:44Z","isPatch":true,"sender":{"key":"alx.manpages@gmail.com","avatar":null},"body":"The BSD version of getpgrp(2) was superseeded by the POSIX one.\nThe BSD version of setpgrp(2) was superseeded by the POSIX one.\n\nSigned-off-by: Alejandro Colomar <alx.manpages@gmail.com>\n---\n man2/setpgid.2 | 8 ++++----\n 1 file changed, 4 insertions(+), 4 deletions(-)\n\ndiff --git a/man2/setpgid.2 b/man2/setpgid.2\nindex f3be0eef4..2f09b246e 100644\n--- a/man2/setpgid.2\n+++ b/man2/setpgid.2\n@@ -55,11 +55,11 @@ setpgid, getpgid, setpgrp, getpgrp \\- set/get process group\n .BI \"int setpgid(pid_t \" pid \", pid_t \" pgid );\n .BI \"pid_t getpgid(pid_t \" pid );\n .PP\n-.BR \"pid_t getpgrp(void);\" \"                 /* POSIX.1 version */\"\n-.BI \"pid_t getpgrp(pid_t \" pid \");\\fR            /* BSD version */\"\n+.BR \"pid_t getpgrp(void);\" \"                            /* POSIX.1 version */\"\n+.BI \"[[deprecated]] pid_t getpgrp(pid_t \" pid \");\\fR        /* BSD version */\"\n .PP\n-.BR \"int setpgrp(void);\" \"                   /* System V version */\"\n-.BI \"int setpgrp(pid_t \" pid \", pid_t \" pgid \");\\fR  /* BSD version */\"\n+.BR \"int setpgrp(void);\" \"                              /* System V version */\"\n+.BI \"[[deprecated]] int setpgrp(pid_t \" pid \", pid_t \" pgid \");\\fR  /* BSD version */\"\n .fi\n .PP\n .RS -4\n-- \n2.33.1\n\n"},{"id":"440162","messageId":"20211030213131.140429-22-alx.manpages@gmail.com","threadId":"56816","inReplyTo":"20211030213131.140429-1-alx.manpages@gmail.com","subject":"[PATCH 21/22] sysfs.2: SYNOPSIS: Mark as [[deprecated]]","fromName":"Alejandro Colomar","fromEmail":"alx.manpages@gmail.com","sentAt":"2021-10-30T21:31:31Z","receivedAt":"2021-10-30T21:32:49Z","isPatch":true,"sender":{"key":"alx.manpages@gmail.com","avatar":null},"body":"Use proc(5) instead.\n\nSigned-off-by: Alejandro Colomar <alx.manpages@gmail.com>\n---\n man2/sysfs.2 | 6 +++---\n 1 file changed, 3 insertions(+), 3 deletions(-)\n\ndiff --git a/man2/sysfs.2 b/man2/sysfs.2\nindex 0bf2a60c0..10a4f0d43 100644\n--- a/man2/sysfs.2\n+++ b/man2/sysfs.2\n@@ -29,9 +29,9 @@\n sysfs \\- get filesystem type information\n .SH SYNOPSIS\n .nf\n-.BI \"int sysfs(int \" option \", const char *\" fsname );\n-.BI \"int sysfs(int \" option \", unsigned int \" fs_index \", char *\" buf );\n-.BI \"int sysfs(int \" option );\n+.BI \"[[deprecated]] int sysfs(int \" option \", const char *\" fsname );\n+.BI \"[[deprecated]] int sysfs(int \" option \", unsigned int \" fs_index \", char *\" buf );\n+.BI \"[[deprecated]] int sysfs(int \" option );\n .fi\n .SH DESCRIPTION\n .BR \"Note\" :\n-- \n2.33.1\n\n"},{"id":"440163","messageId":"20211030213131.140429-23-alx.manpages@gmail.com","threadId":"56816","inReplyTo":"20211030213131.140429-1-alx.manpages@gmail.com","subject":"[PATCH 22/22] uselib.2: SYNOPSIS: Mark as [[deprecated]]","fromName":"Alejandro Colomar","fromEmail":"alx.manpages@gmail.com","sentAt":"2021-10-30T21:31:32Z","receivedAt":"2021-10-30T21:32:56Z","isPatch":true,"sender":{"key":"alx.manpages@gmail.com","avatar":null},"body":"Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>\n---\n man2/uselib.2 | 2 +-\n 1 file changed, 1 insertion(+), 1 deletion(-)\n\ndiff --git a/man2/uselib.2 b/man2/uselib.2\nindex f6feca9f0..32417c9d2 100644\n--- a/man2/uselib.2\n+++ b/man2/uselib.2\n@@ -35,7 +35,7 @@ uselib \\- load shared library\n .nf\n .B #include <unistd.h>\n .PP\n-.BI \"int uselib(const char *\" library );\n+.BI \"[[deprecated]] int uselib(const char *\" library );\n .fi\n .PP\n .IR Note :\n-- \n2.33.1\n\n"},{"id":"440273","messageId":"CAPc5daWURksnU02wWZzBsx+6nsw82Lgd1K+rBRnmnqA1SJ0UBQ@mail.gmail.com","threadId":"56816","inReplyTo":"20211030213131.140429-1-alx.manpages@gmail.com","subject":"Re: [PATCH 00/22] man2: Add [[deprecated]] attribute","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2021-10-30T22:23:34Z","receivedAt":"2021-10-30T22:23:49Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"[jc: moved everybody else to bcc]\n\nPlease do not spam the git mailing list with these manual page update\npatches. We may be interested in the final contents of the manual\npages, we appreciate the work done by the linux-man project, but we\nalready have our share of patch traffic on this list that people are\nswamped with.\n\n\n2021年10月30日(土) 14:32 Alejandro Colomar <alx.manpages@gmail.com>:\n>\n> Hello Michael,\n>\n> I added the C2X [[deprecated]] attribute to the prototypes of some\n> system calls.  All of the cases where I added that were already\n> marked as deprecated or obsolete somewhere in the manual page,\n> so this is just about uniformity and visual effect rather than\n> a new deprecation notice.\n>\n> There are cases where the syscalls have been simply removed, and\n> so they are obviously not to be used any more.\n>\n> There are cases where some implementation (not necessarily Linux)\n> is dangerous.\n>\n> In some other cases, the functions have been obsoleted by POSIX,\n> but are still there in Linux without any deprecation notices.\n> In these cases, if there's no clear replacement, or if the\n> replacement is not a straight drop-in, or if the replacement adds\n> more complexity, I didn't add the [[deprecated]] attribute.\n>\n> A list of the system calls that I skipped in this patch set:\n>\n> - utime(2)\n>         Many filesystems have 1 second resolution, so it makes\n>         sense to use it in those cases.  git(1) for example uses\n>         utime(2) consistently.  Although deprecated by POSIX, it\n>         is still part of POSIX; if it ever removes it, we can\n>         reconsider.\n>\n> - setpgrp(2) (the POSIX/SysV version)\n>         POSIX deprecated it (not yet removed), but the manual page\n>         doesn't mention any replacement.\n>\n> Cheers,\n>\n> Alex\n>\n>\n> ---\n>\n> Alejandro Colomar (22):\n>   bdflush.2: SYNOPSIS: Mark as [[deprecated]]\n>   create_module.2: SYNOPSIS: Mark as [[deprecated]]\n>   get_kernel_syms.2: SYNOPSIS: Mark as [[deprecated]]\n>   getunwind.2: SYNOPSIS: Mark as [[deprecated]]\n>   iopl.2: SYNOPSIS: Mark as [[deprecated]]\n>   query_module.2: SYNOPSIS: Mark as [[deprecated]]\n>   remap_file_pages.2: SYNOPSIS: Mark as [[deprecated]]\n>   sigprocmask.2: SYNOPSIS: Mark the legacy system call as [[deprecated]]\n>   statfs.2: SYNOPSIS: Mark as [[deprecated]]\n>   stime.2: SYNOPSIS: Mark as [[deprecated]]\n>   ustat.2: SYNOPSIS: Mark as [[deprecated]]\n>   pthread_mutex_consistent.3: Mark *_np() old function as [[deprecated]]\n>   sysctl.2: SYNOPSIS: Mark as [[deprecated]]\n>   vfork.2: SYNOPSIS: Mark as [[deprecated]]\n>   tkill.2: SYNOPSIS: Mark tkill() as [[deprecated]]\n>   sgetmask.2: SYNOPSIS: Mark as [[deprecated]]\n>   getitimer.2: SYNOPSIS: Mark as [[deprecated]]\n>   futimesat.2: SYNOPSIS: Mark as [[deprecated]]\n>   gettimeofday.2: SYNOPSIS: Mark as [[deprecated]]\n>   setpgid.2: SYNOPSIS: Mark BSD versions of getpgrp() and setpgrp() as\n>     [[deprecated]]\n>   sysfs.2: SYNOPSIS: Mark as [[deprecated]]\n>   uselib.2: SYNOPSIS: Mark as [[deprecated]]\n>\n>  man2/bdflush.2                  |  4 ++--\n>  man2/create_module.2            |  2 +-\n>  man2/futimesat.2                |  4 ++--\n>  man2/get_kernel_syms.2          |  2 +-\n>  man2/getitimer.2                |  7 ++++---\n>  man2/gettimeofday.2             |  8 ++++----\n>  man2/getunwind.2                |  3 ++-\n>  man2/iopl.2                     |  2 +-\n>  man2/query_module.2             |  5 +++--\n>  man2/remap_file_pages.2         |  5 +++--\n>  man2/setpgid.2                  |  8 ++++----\n>  man2/sgetmask.2                 |  4 ++--\n>  man2/sigprocmask.2              | 12 +++++++-----\n>  man2/statfs.2                   |  4 ++--\n>  man2/stime.2                    |  2 +-\n>  man2/sysctl.2                   |  2 +-\n>  man2/sysfs.2                    |  6 +++---\n>  man2/tkill.2                    |  2 +-\n>  man2/uselib.2                   |  2 +-\n>  man2/ustat.2                    |  2 +-\n>  man2/vfork.2                    |  2 +-\n>  man3/pthread_mutex_consistent.3 |  1 +\n>  22 files changed, 48 insertions(+), 41 deletions(-)\n>\n> --\n> 2.33.1\n>\n"}]}