* [PATCH 1/3] alloc_hugepages.2, arch_prctl.2, capget.2, clone.2, delete_module.2, execveat.2, exit_group.2, get_robust_list.2, getunwind.2, init_module.2: Add note about the use of syscall(2) @ 2021-04-21 22:44 Alejandro Colomar 2021-04-21 22:44 ` [PATCH 2/3] Various pages: Remove unused <sys/ipc.h> (and <sys/types.h>) Alejandro Colomar ` (2 more replies) 0 siblings, 3 replies; 7+ messages in thread From: Alejandro Colomar @ 2021-04-21 22:44 UTC (permalink / raw) To: mtk.manpages; +Cc: Alejandro Colomar, linux-man, libc-alpha Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> --- man2/alloc_hugepages.2 | 5 +++++ man2/arch_prctl.2 | 6 ++++++ man2/capget.2 | 5 +++++ man2/clone.2 | 6 ++++++ man2/delete_module.2 | 6 ++++++ man2/execveat.2 | 6 ++++++ man2/exit_group.2 | 6 ++++++ man2/get_robust_list.2 | 5 +++++ man2/getunwind.2 | 6 ++++++ man2/init_module.2 | 5 +++++ 10 files changed, 56 insertions(+) diff --git a/man2/alloc_hugepages.2 b/man2/alloc_hugepages.2 index cc76fc495..47f9da6b0 100644 --- a/man2/alloc_hugepages.2 +++ b/man2/alloc_hugepages.2 @@ -35,6 +35,11 @@ alloc_hugepages, free_hugepages \- allocate or free huge pages .BI "int syscall(SYS_free_hugepages, void *" addr ); .\" asmlinkage int sys_free_hugepages(unsigned long addr); .fi +.PP +.IR Note : +glibc provides no wrappers for these system calls, +necessitating the use of +.BR syscall (2). .SH DESCRIPTION The system calls .BR alloc_hugepages () diff --git a/man2/arch_prctl.2 b/man2/arch_prctl.2 index 7ae5b350c..982416761 100644 --- a/man2/arch_prctl.2 +++ b/man2/arch_prctl.2 @@ -34,6 +34,12 @@ arch_prctl \- set architecture-specific thread state .BI "int syscall(SYS_arch_prctl, int " code ", unsigned long " addr ); .BI "int syscall(SYS_arch_prctl, int " code ", unsigned long *" addr ); .fi +.PP +.IR Note : +glibc provides no wrapper for +.BR arch_prctl (), +necessitating the use of +.BR syscall (2). .SH DESCRIPTION .BR arch_prctl () sets architecture-specific process or thread state. diff --git a/man2/capget.2 b/man2/capget.2 index 9dbc0404c..3ac05106f 100644 --- a/man2/capget.2 +++ b/man2/capget.2 @@ -28,6 +28,11 @@ capget, capset \- set/get capabilities of thread(s) .BI "int syscall(SYS_capset, cap_user_header_t " hdrp , .BI " const cap_user_data_t " datap ); .fi +.PP +.IR Note : +glibc provides no wrappers for these system calls, +necessitating the use of +.BR syscall (2). .SH DESCRIPTION These two system calls are the raw kernel interface for getting and setting thread capabilities. diff --git a/man2/clone.2 b/man2/clone.2 index f455c97d8..7253091a7 100644 --- a/man2/clone.2 +++ b/man2/clone.2 @@ -63,6 +63,12 @@ clone, __clone2, clone3 \- create a child process .PP .BI "long syscall(SYS_clone3, struct clone_args *" cl_args ", size_t " size ); .fi +.PP +.IR Note : +glibc provides no wrapper for +.BR clone3 (), +necessitating the use of +.BR syscall (2). .SH DESCRIPTION These system calls create a new ("child") process, in a manner similar to diff --git a/man2/delete_module.2 b/man2/delete_module.2 index 21c9e9d8d..3b14111c5 100644 --- a/man2/delete_module.2 +++ b/man2/delete_module.2 @@ -33,6 +33,12 @@ delete_module \- unload a kernel module .PP .BI "int syscall(SYS_delete_module, const char *" name ", unsigned int " flags ); .fi +.PP +.IR Note : +glibc provides no wrapper for +.BR delete_module (), +necessitating the use of +.BR syscall (2). .SH DESCRIPTION The .BR delete_module () diff --git a/man2/execveat.2 b/man2/execveat.2 index c566f53df..0c97a0eb3 100644 --- a/man2/execveat.2 +++ b/man2/execveat.2 @@ -36,6 +36,12 @@ execveat \- execute program relative to a directory file descriptor .BI " const char *const " argv "[], const char *const " envp [], .BI " int " flags ); .fi +.PP +.IR Note : +glibc provides no wrapper for +.BR execveat (), +necessitating the use of +.BR syscall (2). .\" FIXME . See https://sourceware.org/bugzilla/show_bug.cgi?id=27364 .SH DESCRIPTION .\" commit 51f39a1f0cea1cacf8c787f652f26dfee9611874 diff --git a/man2/exit_group.2 b/man2/exit_group.2 index b512927d4..96715d26a 100644 --- a/man2/exit_group.2 +++ b/man2/exit_group.2 @@ -32,6 +32,12 @@ exit_group \- exit all threads in a process .PP .BI "noreturn void syscall(SYS_exit_group, int " status ); .fi +.PP +.IR Note : +glibc provides no wrapper for +.BR exit_group (), +necessitating the use of +.BR syscall (2). .SH DESCRIPTION This system call is equivalent to .BR _exit (2) diff --git a/man2/get_robust_list.2 b/man2/get_robust_list.2 index d1b1c59bc..66b27d905 100644 --- a/man2/get_robust_list.2 +++ b/man2/get_robust_list.2 @@ -42,6 +42,11 @@ get_robust_list, set_robust_list \- get/set list of robust futexes .BI "long syscall(SYS_set_robust_list," .BI " struct robust_list_head *" head ", size_t " len ); .fi +.PP +.IR Note : +glibc provides no wrappers for these system calls, +necessitating the use of +.BR syscall (2). .SH DESCRIPTION These system calls deal with per-thread robust futex lists. These lists are managed in user space: diff --git a/man2/getunwind.2 b/man2/getunwind.2 index 2c44506c7..bf15a82b6 100644 --- a/man2/getunwind.2 +++ b/man2/getunwind.2 @@ -35,6 +35,12 @@ getunwind \- copy the unwind data to caller's buffer .PP .BI "long syscall(SYS_getunwind, void " *buf ", size_t " buf_size ); .fi +.PP +.IR Note : +glibc provides no wrapper for +.BR getunwind (), +necessitating the use of +.BR syscall (2). .SH DESCRIPTION .I Note: this system call is obsolete. .PP diff --git a/man2/init_module.2 b/man2/init_module.2 index 13d1b7f0a..aac0c6631 100644 --- a/man2/init_module.2 +++ b/man2/init_module.2 @@ -38,6 +38,11 @@ init_module, finit_module \- load a kernel module .BI "int syscall(SYS_finit_module, int " fd ", const char *" param_values , .BI " int " flags ); .fi +.PP +.IR Note : +glibc provides no wrappers for these system calls, +necessitating the use of +.BR syscall (2). .SH DESCRIPTION .BR init_module () loads an ELF image into kernel space, -- 2.31.0 ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 2/3] Various pages: Remove unused <sys/ipc.h> (and <sys/types.h>) 2021-04-21 22:44 [PATCH 1/3] alloc_hugepages.2, arch_prctl.2, capget.2, clone.2, delete_module.2, execveat.2, exit_group.2, get_robust_list.2, getunwind.2, init_module.2: Add note about the use of syscall(2) Alejandro Colomar @ 2021-04-21 22:44 ` Alejandro Colomar 2021-05-09 19:54 ` Michael Kerrisk (man-pages) 2021-04-21 22:44 ` [PATCH 3/3] open.2: Remove unused <sys/stat.h> Alejandro Colomar 2021-05-09 19:52 ` [PATCH 1/3] alloc_hugepages.2, arch_prctl.2, capget.2, clone.2, delete_module.2, execveat.2, exit_group.2, get_robust_list.2, getunwind.2, init_module.2: Add note about the use of syscall(2) Michael Kerrisk (man-pages) 2 siblings, 1 reply; 7+ messages in thread From: Alejandro Colomar @ 2021-04-21 22:44 UTC (permalink / raw) To: mtk.manpages; +Cc: Alejandro Colomar, linux-man, libc-alpha In b0b19983d9a2001ce94b908a99f4c05a50fd47ee we removed <sys/types.h>. For the same reasons there, remove now <sys/ipc.h> from many pages. If someone wonders why <sys/ipc.h> was needed, the reason was to get all the definitions of IPC_* constants. However, that header is now included by <sys/msg.h>, so it's not needed anymore to explicitly include it. Quoting POSIX: "In addition, the <sys/msg.h> header shall include the <sys/ipc.h> header." There were some remaining cases where I forgot to remove <sys/types.h>; remove them now too. Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> --- man2/msgctl.2 | 12 ------------ man2/msgget.2 | 12 ------------ man2/msgop.2 | 12 ------------ man2/semctl.2 | 12 ------------ man2/semget.2 | 12 ------------ man2/semop.2 | 12 ------------ man2/shmctl.2 | 12 ------------ man2/shmget.2 | 14 -------------- man3/ftok.3 | 1 - 9 files changed, 99 deletions(-) diff --git a/man2/msgctl.2 b/man2/msgctl.2 index d42a47d2b..72598dd4c 100644 --- a/man2/msgctl.2 +++ b/man2/msgctl.2 @@ -40,7 +40,6 @@ msgctl \- System V message control operations .SH SYNOPSIS .nf -.B #include <sys/ipc.h> .B #include <sys/msg.h> .PP .BI "int msgctl(int " msqid ", int " cmd ", struct msqid_ds *" buf ); @@ -405,17 +404,6 @@ capability). POSIX.1-2001, POSIX.1-2008, SVr4. .\" SVID does not document the EIDRM error condition. .SH NOTES -The inclusion of -.I <sys/ipc.h> -isn't required on Linux or by any version of POSIX. -However, -some old implementations required the inclusion of this header file, -and the SVID also documented its inclusion. -Applications intended to be portable to such old systems may need -to include this header file. -.\" Like Linux, the FreeBSD man pages still document -.\" the inclusion of this header file. -.PP The .BR IPC_INFO , .BR MSG_STAT , diff --git a/man2/msgget.2 b/man2/msgget.2 index edc91467b..fd9cbe0a1 100644 --- a/man2/msgget.2 +++ b/man2/msgget.2 @@ -37,7 +37,6 @@ msgget \- get a System V message queue identifier .SH SYNOPSIS .nf -.B #include <sys/ipc.h> .B #include <sys/msg.h> .PP .BI "int msgget(key_t " key ", int " msgflg ); @@ -188,17 +187,6 @@ would be exceeded. .SH CONFORMING TO POSIX.1-2001, POSIX.1-2008, SVr4. .SH NOTES -The inclusion of -.I <sys/ipc.h> -isn't required on Linux or by any version of POSIX. -However, -some old implementations required the inclusion of this header file, -and the SVID also documented its inclusion. -Applications intended to be portable to such old systems may need -to include this header file. -.\" Like Linux, the FreeBSD man pages still document -.\" the inclusion of this header file. -.PP .B IPC_PRIVATE isn't a flag field but a .I key_t diff --git a/man2/msgop.2 b/man2/msgop.2 index e56176f08..d46e5b1dd 100644 --- a/man2/msgop.2 +++ b/man2/msgop.2 @@ -42,7 +42,6 @@ msgrcv, msgsnd \- System V message queue operations .SH SYNOPSIS .nf -.B #include <sys/ipc.h> .B #include <sys/msg.h> .PP .BI "int msgsnd(int " msqid ", const void *" msgp ", size_t " msgsz \ @@ -480,17 +479,6 @@ their definitions can be obtained by defining the .\" MSG_COPY since glibc 2.18 feature test macro. .SH NOTES -The inclusion of -.I <sys/ipc.h> -isn't required on Linux or by any version of POSIX. -However, -some old implementations required the inclusion of this header file, -and the SVID also documented its inclusion. -Applications intended to be portable to such old systems may need -to include this header file. -.\" Like Linux, the FreeBSD man pages still document -.\" the inclusion of this header file. -.PP The .I msgp argument is declared as \fIstruct msgbuf\ *\fP in diff --git a/man2/semctl.2 b/man2/semctl.2 index 504cdf9da..ac8bd906d 100644 --- a/man2/semctl.2 +++ b/man2/semctl.2 @@ -44,7 +44,6 @@ semctl \- System V semaphore control operations .SH SYNOPSIS .nf -.B #include <sys/ipc.h> .B #include <sys/sem.h> .PP .BI "int semctl(int " semid ", int " semnum ", int " cmd ", ...);" @@ -536,17 +535,6 @@ It was also so defined on Linux 2.2 and earlier, but, since Linux 2.4, the field has the type .IR "unsigned\ long" . .SH NOTES -The inclusion of -.I <sys/ipc.h> -isn't required on Linux or by any version of POSIX. -However, -some old implementations required the inclusion of this header file, -and the SVID also documented its inclusion. -Applications intended to be portable to such old systems may need -to include this header file. -.\" Like Linux, the FreeBSD man pages still document -.\" the inclusion of these header files. -.PP The .BR IPC_INFO , .BR SEM_STAT , diff --git a/man2/semget.2 b/man2/semget.2 index b0914f900..2fce9b1ce 100644 --- a/man2/semget.2 +++ b/man2/semget.2 @@ -39,7 +39,6 @@ semget \- get a System V semaphore set identifier .SH SYNOPSIS .nf -.B #include <sys/ipc.h> .B #include <sys/sem.h> .fi .PP @@ -219,17 +218,6 @@ SVr4, POSIX.1-2001. .\" SVr4 documents additional error conditions EFBIG, E2BIG, EAGAIN, .\" ERANGE, EFAULT. .SH NOTES -The inclusion of -.I <sys/ipc.h> -isn't required on Linux or by any version of POSIX. -However, -some old implementations required the inclusion of this header file, -and the SVID also documented its inclusion. -Applications intended to be portable to such old systems may need -to include this header file. -.\" Like Linux, the FreeBSD man pages still document -.\" the inclusion of this header file. -.PP .B IPC_PRIVATE isn't a flag field but a .I key_t diff --git a/man2/semop.2 b/man2/semop.2 index 9479f7e4c..f0cd66302 100644 --- a/man2/semop.2 +++ b/man2/semop.2 @@ -37,7 +37,6 @@ semop, semtimedop \- System V semaphore operations .SH SYNOPSIS .nf -.B #include <sys/ipc.h> .B #include <sys/sem.h> .PP .BI "int semop(int " semid ", struct sembuf *" sops ", size_t " nsops ); @@ -383,17 +382,6 @@ first appeared in version 2.3.3. POSIX.1-2001, POSIX.1-2008, SVr4. .\" SVr4 documents additional error conditions EINVAL, EFBIG, ENOSPC. .SH NOTES -The inclusion of -.I <sys/ipc.h> -isn't required on Linux or by any version of POSIX. -However, -some old implementations required the inclusion of this header file, -and the SVID also documented its inclusion. -Applications intended to be portable to such old systems may need -to include this header file. -.\" Like Linux, the FreeBSD man pages still document -.\" the inclusion of this header file. -.PP The .I sem_undo structures of a process aren't inherited by the child produced by diff --git a/man2/shmctl.2 b/man2/shmctl.2 index 31c86af86..5aa74e676 100644 --- a/man2/shmctl.2 +++ b/man2/shmctl.2 @@ -49,7 +49,6 @@ shmctl \- System V shared memory control .SH SYNOPSIS .nf .ad l -.B #include <sys/ipc.h> .B #include <sys/shm.h> .PP .BI "int shmctl(int " shmid ", int " cmd ", struct shmid_ds *" buf ); @@ -466,17 +465,6 @@ POSIX.1-2001, POSIX.1-2008, SVr4. .\" ENOENT, ENOSPC, ENOMEM, EEXIST. Neither SVr4 nor SVID documents .\" an EIDRM error condition. .SH NOTES -The inclusion of -.I <sys/ipc.h> -isn't required on Linux or by any version of POSIX. -However, -some old implementations required the inclusion of this header file, -and the SVID also documented its inclusion. -Applications intended to be portable to such old systems may need -to include this header file. -.\" Like Linux, the FreeBSD man pages still document -.\" the inclusion of this header file. -.PP The .BR IPC_INFO , .BR SHM_STAT , diff --git a/man2/shmget.2 b/man2/shmget.2 index 1d9e6825c..757b7b7f1 100644 --- a/man2/shmget.2 +++ b/man2/shmget.2 @@ -41,7 +41,6 @@ shmget \- allocates a System V shared memory segment .SH SYNOPSIS .nf .ad l -.B #include <sys/ipc.h> .B #include <sys/shm.h> .PP .BI "int shmget(key_t " key ", size_t " size ", int " shmflg ); @@ -284,19 +283,6 @@ and .B SHM_NORESERVE are Linux extensions. .SH NOTES -The inclusion of -.I <sys/types.h> -and -.I <sys/ipc.h> -isn't required on Linux or by any version of POSIX. -However, -some old implementations required the inclusion of these header files, -and the SVID also documented their inclusion. -Applications intended to be portable to such old systems may need -to include these header files. -.\" Like Linux, the FreeBSD man pages still document -.\" the inclusion of these header files. -.PP .B IPC_PRIVATE isn't a flag field but a .I key_t diff --git a/man3/ftok.3 b/man3/ftok.3 index 5d8907b56..d46481356 100644 --- a/man3/ftok.3 +++ b/man3/ftok.3 @@ -31,7 +31,6 @@ ftok \- convert a pathname and a project identifier to a System V IPC key .SH SYNOPSIS .nf -.B #include <sys/types.h> .B #include <sys/ipc.h> .fi .PP -- 2.31.0 ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 2/3] Various pages: Remove unused <sys/ipc.h> (and <sys/types.h>) 2021-04-21 22:44 ` [PATCH 2/3] Various pages: Remove unused <sys/ipc.h> (and <sys/types.h>) Alejandro Colomar @ 2021-05-09 19:54 ` Michael Kerrisk (man-pages) 0 siblings, 0 replies; 7+ messages in thread From: Michael Kerrisk (man-pages) @ 2021-05-09 19:54 UTC (permalink / raw) To: Alejandro Colomar; +Cc: mtk.manpages, linux-man, libc-alpha Hello ALex, On 4/22/21 10:44 AM, Alejandro Colomar wrote: > In b0b19983d9a2001ce94b908a99f4c05a50fd47ee we removed > <sys/types.h>. For the same reasons there, remove now <sys/ipc.h> > from many pages. > > If someone wonders why <sys/ipc.h> was needed, the reason was to > get all the definitions of IPC_* constants. However, that header > is now included by <sys/msg.h>, so it's not needed anymore to > explicitly include it. Quoting POSIX: "In addition, the > <sys/msg.h> header shall include the <sys/ipc.h> header." > > There were some remaining cases where I forgot to remove > <sys/types.h>; remove them now too. Seems reasonable to me. Patch applied. Thanks, Michael > Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> > --- > man2/msgctl.2 | 12 ------------ > man2/msgget.2 | 12 ------------ > man2/msgop.2 | 12 ------------ > man2/semctl.2 | 12 ------------ > man2/semget.2 | 12 ------------ > man2/semop.2 | 12 ------------ > man2/shmctl.2 | 12 ------------ > man2/shmget.2 | 14 -------------- > man3/ftok.3 | 1 - > 9 files changed, 99 deletions(-) > > diff --git a/man2/msgctl.2 b/man2/msgctl.2 > index d42a47d2b..72598dd4c 100644 > --- a/man2/msgctl.2 > +++ b/man2/msgctl.2 > @@ -40,7 +40,6 @@ > msgctl \- System V message control operations > .SH SYNOPSIS > .nf > -.B #include <sys/ipc.h> > .B #include <sys/msg.h> > .PP > .BI "int msgctl(int " msqid ", int " cmd ", struct msqid_ds *" buf ); > @@ -405,17 +404,6 @@ capability). > POSIX.1-2001, POSIX.1-2008, SVr4. > .\" SVID does not document the EIDRM error condition. > .SH NOTES > -The inclusion of > -.I <sys/ipc.h> > -isn't required on Linux or by any version of POSIX. > -However, > -some old implementations required the inclusion of this header file, > -and the SVID also documented its inclusion. > -Applications intended to be portable to such old systems may need > -to include this header file. > -.\" Like Linux, the FreeBSD man pages still document > -.\" the inclusion of this header file. > -.PP > The > .BR IPC_INFO , > .BR MSG_STAT , > diff --git a/man2/msgget.2 b/man2/msgget.2 > index edc91467b..fd9cbe0a1 100644 > --- a/man2/msgget.2 > +++ b/man2/msgget.2 > @@ -37,7 +37,6 @@ > msgget \- get a System V message queue identifier > .SH SYNOPSIS > .nf > -.B #include <sys/ipc.h> > .B #include <sys/msg.h> > .PP > .BI "int msgget(key_t " key ", int " msgflg ); > @@ -188,17 +187,6 @@ would be exceeded. > .SH CONFORMING TO > POSIX.1-2001, POSIX.1-2008, SVr4. > .SH NOTES > -The inclusion of > -.I <sys/ipc.h> > -isn't required on Linux or by any version of POSIX. > -However, > -some old implementations required the inclusion of this header file, > -and the SVID also documented its inclusion. > -Applications intended to be portable to such old systems may need > -to include this header file. > -.\" Like Linux, the FreeBSD man pages still document > -.\" the inclusion of this header file. > -.PP > .B IPC_PRIVATE > isn't a flag field but a > .I key_t > diff --git a/man2/msgop.2 b/man2/msgop.2 > index e56176f08..d46e5b1dd 100644 > --- a/man2/msgop.2 > +++ b/man2/msgop.2 > @@ -42,7 +42,6 @@ > msgrcv, msgsnd \- System V message queue operations > .SH SYNOPSIS > .nf > -.B #include <sys/ipc.h> > .B #include <sys/msg.h> > .PP > .BI "int msgsnd(int " msqid ", const void *" msgp ", size_t " msgsz \ > @@ -480,17 +479,6 @@ their definitions can be obtained by defining the > .\" MSG_COPY since glibc 2.18 > feature test macro. > .SH NOTES > -The inclusion of > -.I <sys/ipc.h> > -isn't required on Linux or by any version of POSIX. > -However, > -some old implementations required the inclusion of this header file, > -and the SVID also documented its inclusion. > -Applications intended to be portable to such old systems may need > -to include this header file. > -.\" Like Linux, the FreeBSD man pages still document > -.\" the inclusion of this header file. > -.PP > The > .I msgp > argument is declared as \fIstruct msgbuf\ *\fP in > diff --git a/man2/semctl.2 b/man2/semctl.2 > index 504cdf9da..ac8bd906d 100644 > --- a/man2/semctl.2 > +++ b/man2/semctl.2 > @@ -44,7 +44,6 @@ > semctl \- System V semaphore control operations > .SH SYNOPSIS > .nf > -.B #include <sys/ipc.h> > .B #include <sys/sem.h> > .PP > .BI "int semctl(int " semid ", int " semnum ", int " cmd ", ...);" > @@ -536,17 +535,6 @@ It was also so defined on Linux 2.2 and earlier, > but, since Linux 2.4, the field has the type > .IR "unsigned\ long" . > .SH NOTES > -The inclusion of > -.I <sys/ipc.h> > -isn't required on Linux or by any version of POSIX. > -However, > -some old implementations required the inclusion of this header file, > -and the SVID also documented its inclusion. > -Applications intended to be portable to such old systems may need > -to include this header file. > -.\" Like Linux, the FreeBSD man pages still document > -.\" the inclusion of these header files. > -.PP > The > .BR IPC_INFO , > .BR SEM_STAT , > diff --git a/man2/semget.2 b/man2/semget.2 > index b0914f900..2fce9b1ce 100644 > --- a/man2/semget.2 > +++ b/man2/semget.2 > @@ -39,7 +39,6 @@ > semget \- get a System V semaphore set identifier > .SH SYNOPSIS > .nf > -.B #include <sys/ipc.h> > .B #include <sys/sem.h> > .fi > .PP > @@ -219,17 +218,6 @@ SVr4, POSIX.1-2001. > .\" SVr4 documents additional error conditions EFBIG, E2BIG, EAGAIN, > .\" ERANGE, EFAULT. > .SH NOTES > -The inclusion of > -.I <sys/ipc.h> > -isn't required on Linux or by any version of POSIX. > -However, > -some old implementations required the inclusion of this header file, > -and the SVID also documented its inclusion. > -Applications intended to be portable to such old systems may need > -to include this header file. > -.\" Like Linux, the FreeBSD man pages still document > -.\" the inclusion of this header file. > -.PP > .B IPC_PRIVATE > isn't a flag field but a > .I key_t > diff --git a/man2/semop.2 b/man2/semop.2 > index 9479f7e4c..f0cd66302 100644 > --- a/man2/semop.2 > +++ b/man2/semop.2 > @@ -37,7 +37,6 @@ > semop, semtimedop \- System V semaphore operations > .SH SYNOPSIS > .nf > -.B #include <sys/ipc.h> > .B #include <sys/sem.h> > .PP > .BI "int semop(int " semid ", struct sembuf *" sops ", size_t " nsops ); > @@ -383,17 +382,6 @@ first appeared in version 2.3.3. > POSIX.1-2001, POSIX.1-2008, SVr4. > .\" SVr4 documents additional error conditions EINVAL, EFBIG, ENOSPC. > .SH NOTES > -The inclusion of > -.I <sys/ipc.h> > -isn't required on Linux or by any version of POSIX. > -However, > -some old implementations required the inclusion of this header file, > -and the SVID also documented its inclusion. > -Applications intended to be portable to such old systems may need > -to include this header file. > -.\" Like Linux, the FreeBSD man pages still document > -.\" the inclusion of this header file. > -.PP > The > .I sem_undo > structures of a process aren't inherited by the child produced by > diff --git a/man2/shmctl.2 b/man2/shmctl.2 > index 31c86af86..5aa74e676 100644 > --- a/man2/shmctl.2 > +++ b/man2/shmctl.2 > @@ -49,7 +49,6 @@ shmctl \- System V shared memory control > .SH SYNOPSIS > .nf > .ad l > -.B #include <sys/ipc.h> > .B #include <sys/shm.h> > .PP > .BI "int shmctl(int " shmid ", int " cmd ", struct shmid_ds *" buf ); > @@ -466,17 +465,6 @@ POSIX.1-2001, POSIX.1-2008, SVr4. > .\" ENOENT, ENOSPC, ENOMEM, EEXIST. Neither SVr4 nor SVID documents > .\" an EIDRM error condition. > .SH NOTES > -The inclusion of > -.I <sys/ipc.h> > -isn't required on Linux or by any version of POSIX. > -However, > -some old implementations required the inclusion of this header file, > -and the SVID also documented its inclusion. > -Applications intended to be portable to such old systems may need > -to include this header file. > -.\" Like Linux, the FreeBSD man pages still document > -.\" the inclusion of this header file. > -.PP > The > .BR IPC_INFO , > .BR SHM_STAT , > diff --git a/man2/shmget.2 b/man2/shmget.2 > index 1d9e6825c..757b7b7f1 100644 > --- a/man2/shmget.2 > +++ b/man2/shmget.2 > @@ -41,7 +41,6 @@ shmget \- allocates a System V shared memory segment > .SH SYNOPSIS > .nf > .ad l > -.B #include <sys/ipc.h> > .B #include <sys/shm.h> > .PP > .BI "int shmget(key_t " key ", size_t " size ", int " shmflg ); > @@ -284,19 +283,6 @@ and > .B SHM_NORESERVE > are Linux extensions. > .SH NOTES > -The inclusion of > -.I <sys/types.h> > -and > -.I <sys/ipc.h> > -isn't required on Linux or by any version of POSIX. > -However, > -some old implementations required the inclusion of these header files, > -and the SVID also documented their inclusion. > -Applications intended to be portable to such old systems may need > -to include these header files. > -.\" Like Linux, the FreeBSD man pages still document > -.\" the inclusion of these header files. > -.PP > .B IPC_PRIVATE > isn't a flag field but a > .I key_t > diff --git a/man3/ftok.3 b/man3/ftok.3 > index 5d8907b56..d46481356 100644 > --- a/man3/ftok.3 > +++ b/man3/ftok.3 > @@ -31,7 +31,6 @@ > ftok \- convert a pathname and a project identifier to a System V IPC key > .SH SYNOPSIS > .nf > -.B #include <sys/types.h> > .B #include <sys/ipc.h> > .fi > .PP > -- Michael Kerrisk Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/ Linux/UNIX System Programming Training: http://man7.org/training/ ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 3/3] open.2: Remove unused <sys/stat.h> 2021-04-21 22:44 [PATCH 1/3] alloc_hugepages.2, arch_prctl.2, capget.2, clone.2, delete_module.2, execveat.2, exit_group.2, get_robust_list.2, getunwind.2, init_module.2: Add note about the use of syscall(2) Alejandro Colomar 2021-04-21 22:44 ` [PATCH 2/3] Various pages: Remove unused <sys/ipc.h> (and <sys/types.h>) Alejandro Colomar @ 2021-04-21 22:44 ` Alejandro Colomar 2021-05-09 20:02 ` Michael Kerrisk (man-pages) 2021-05-09 19:52 ` [PATCH 1/3] alloc_hugepages.2, arch_prctl.2, capget.2, clone.2, delete_module.2, execveat.2, exit_group.2, get_robust_list.2, getunwind.2, init_module.2: Add note about the use of syscall(2) Michael Kerrisk (man-pages) 2 siblings, 1 reply; 7+ messages in thread From: Alejandro Colomar @ 2021-04-21 22:44 UTC (permalink / raw) To: mtk.manpages; +Cc: Alejandro Colomar, linux-man, libc-alpha I can't see a reason to include it. <fcntl.h> provides O_* constants for 'flags', S_* constants for 'mode', and mode_t. Probably a long time ago, some of those weren't defined in <fcntl.h>, and both headers needed to be included, or maybe it's a historical error. Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> --- man2/open.2 | 1 - 1 file changed, 1 deletion(-) diff --git a/man2/open.2 b/man2/open.2 index bac1ee806..1bcd995f4 100644 --- a/man2/open.2 +++ b/man2/open.2 @@ -53,7 +53,6 @@ open, openat, creat \- open and possibly create a file .SH SYNOPSIS .nf -.B #include <sys/stat.h> .B #include <fcntl.h> .PP .BI "int open(const char *" pathname ", int " flags ); -- 2.31.0 ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 3/3] open.2: Remove unused <sys/stat.h> 2021-04-21 22:44 ` [PATCH 3/3] open.2: Remove unused <sys/stat.h> Alejandro Colomar @ 2021-05-09 20:02 ` Michael Kerrisk (man-pages) 2021-05-09 20:09 ` Alejandro Colomar (man-pages) 0 siblings, 1 reply; 7+ messages in thread From: Michael Kerrisk (man-pages) @ 2021-05-09 20:02 UTC (permalink / raw) To: Alejandro Colomar; +Cc: mtk.manpages, linux-man, libc-alpha Hello Alex, On 4/22/21 10:44 AM, Alejandro Colomar wrote: > I can't see a reason to include it. <fcntl.h> provides O_* > constants for 'flags', S_* constants for 'mode', and mode_t. > > Probably a long time ago, some of those weren't defined in > <fcntl.h>, and both headers needed to be included, or maybe it's > a historical error. > > Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> So, I am uncertain what to do about this patch. I agree that we don't need the <sys/stat.h> on Linux. But, look at open(3p): SYNOPSIS #include <sys/stat.h> #include <fcntl.h> int open(const char *path, int oflag, ...); O_CREAT [...] and the access permission bits (see <sys/stat.h>) of the file mode shall be set to the value of the argument following the oflag argument taken as type mode_t modified as follows... But, seemingly in contradiction, fcntl.h(0p) says: The <fcntl.h> header shall define the symbolic constants for file modes for use as values of mode_t as described in <sys/stat.h>. It almost seems like a small bug in POSIX. I see also that open(2) on FreeBSD mentions only the need to include <fcntl.h>. What are your thoughts on the above. I'm willing to apply your patch if you still think we should apply it. Thanks, Michael > --- > man2/open.2 | 1 - > 1 file changed, 1 deletion(-) > > diff --git a/man2/open.2 b/man2/open.2 > index bac1ee806..1bcd995f4 100644 > --- a/man2/open.2 > +++ b/man2/open.2 > @@ -53,7 +53,6 @@ > open, openat, creat \- open and possibly create a file > .SH SYNOPSIS > .nf > -.B #include <sys/stat.h> > .B #include <fcntl.h> > .PP > .BI "int open(const char *" pathname ", int " flags ); > -- Michael Kerrisk Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/ Linux/UNIX System Programming Training: http://man7.org/training/ ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 3/3] open.2: Remove unused <sys/stat.h> 2021-05-09 20:02 ` Michael Kerrisk (man-pages) @ 2021-05-09 20:09 ` Alejandro Colomar (man-pages) 0 siblings, 0 replies; 7+ messages in thread From: Alejandro Colomar (man-pages) @ 2021-05-09 20:09 UTC (permalink / raw) To: Michael Kerrisk (man-pages); +Cc: linux-man, libc-alpha Hi Michael! On 5/9/21 10:02 PM, Michael Kerrisk (man-pages) wrote: > It almost seems like a small bug in POSIX. Yes, it seems so. > > I see also that open(2) on FreeBSD mentions only the need to > include <fcntl.h>. > > What are your thoughts on the above. I'm willing to apply your > patch if you still think we should apply it. We could file a bug to the Open Group. Could you do that? I don't know how to do it. Let's wait and see. I don't have any patches that depend on this one, so we can hold on. I'll ping you in a month or so if needed. I guess that POSIX will confirm that we can remove it, but let's wait. Thanks, Alex -- Alejandro Colomar Linux man-pages comaintainer; https://www.kernel.org/doc/man-pages/ http://www.alejandro-colomar.es/ ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 1/3] alloc_hugepages.2, arch_prctl.2, capget.2, clone.2, delete_module.2, execveat.2, exit_group.2, get_robust_list.2, getunwind.2, init_module.2: Add note about the use of syscall(2) 2021-04-21 22:44 [PATCH 1/3] alloc_hugepages.2, arch_prctl.2, capget.2, clone.2, delete_module.2, execveat.2, exit_group.2, get_robust_list.2, getunwind.2, init_module.2: Add note about the use of syscall(2) Alejandro Colomar 2021-04-21 22:44 ` [PATCH 2/3] Various pages: Remove unused <sys/ipc.h> (and <sys/types.h>) Alejandro Colomar 2021-04-21 22:44 ` [PATCH 3/3] open.2: Remove unused <sys/stat.h> Alejandro Colomar @ 2021-05-09 19:52 ` Michael Kerrisk (man-pages) 2 siblings, 0 replies; 7+ messages in thread From: Michael Kerrisk (man-pages) @ 2021-05-09 19:52 UTC (permalink / raw) To: Alejandro Colomar; +Cc: mtk.manpages, linux-man, libc-alpha Hello Alex, On 4/22/21 10:44 AM, Alejandro Colomar wrote: > Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> > --- > man2/alloc_hugepages.2 | 5 +++++ > man2/arch_prctl.2 | 6 ++++++ > man2/capget.2 | 5 +++++ > man2/clone.2 | 6 ++++++ > man2/delete_module.2 | 6 ++++++ > man2/execveat.2 | 6 ++++++ > man2/exit_group.2 | 6 ++++++ > man2/get_robust_list.2 | 5 +++++ > man2/getunwind.2 | 6 ++++++ > man2/init_module.2 | 5 +++++ > 10 files changed, 56 insertions(+) Patch applied. Thanks! Cheers, Michael > diff --git a/man2/alloc_hugepages.2 b/man2/alloc_hugepages.2 > index cc76fc495..47f9da6b0 100644 > --- a/man2/alloc_hugepages.2 > +++ b/man2/alloc_hugepages.2 > @@ -35,6 +35,11 @@ alloc_hugepages, free_hugepages \- allocate or free huge pages > .BI "int syscall(SYS_free_hugepages, void *" addr ); > .\" asmlinkage int sys_free_hugepages(unsigned long addr); > .fi > +.PP > +.IR Note : > +glibc provides no wrappers for these system calls, > +necessitating the use of > +.BR syscall (2). > .SH DESCRIPTION > The system calls > .BR alloc_hugepages () > diff --git a/man2/arch_prctl.2 b/man2/arch_prctl.2 > index 7ae5b350c..982416761 100644 > --- a/man2/arch_prctl.2 > +++ b/man2/arch_prctl.2 > @@ -34,6 +34,12 @@ arch_prctl \- set architecture-specific thread state > .BI "int syscall(SYS_arch_prctl, int " code ", unsigned long " addr ); > .BI "int syscall(SYS_arch_prctl, int " code ", unsigned long *" addr ); > .fi > +.PP > +.IR Note : > +glibc provides no wrapper for > +.BR arch_prctl (), > +necessitating the use of > +.BR syscall (2). > .SH DESCRIPTION > .BR arch_prctl () > sets architecture-specific process or thread state. > diff --git a/man2/capget.2 b/man2/capget.2 > index 9dbc0404c..3ac05106f 100644 > --- a/man2/capget.2 > +++ b/man2/capget.2 > @@ -28,6 +28,11 @@ capget, capset \- set/get capabilities of thread(s) > .BI "int syscall(SYS_capset, cap_user_header_t " hdrp , > .BI " const cap_user_data_t " datap ); > .fi > +.PP > +.IR Note : > +glibc provides no wrappers for these system calls, > +necessitating the use of > +.BR syscall (2). > .SH DESCRIPTION > These two system calls are the raw kernel interface for getting and > setting thread capabilities. > diff --git a/man2/clone.2 b/man2/clone.2 > index f455c97d8..7253091a7 100644 > --- a/man2/clone.2 > +++ b/man2/clone.2 > @@ -63,6 +63,12 @@ clone, __clone2, clone3 \- create a child process > .PP > .BI "long syscall(SYS_clone3, struct clone_args *" cl_args ", size_t " size ); > .fi > +.PP > +.IR Note : > +glibc provides no wrapper for > +.BR clone3 (), > +necessitating the use of > +.BR syscall (2). > .SH DESCRIPTION > These system calls > create a new ("child") process, in a manner similar to > diff --git a/man2/delete_module.2 b/man2/delete_module.2 > index 21c9e9d8d..3b14111c5 100644 > --- a/man2/delete_module.2 > +++ b/man2/delete_module.2 > @@ -33,6 +33,12 @@ delete_module \- unload a kernel module > .PP > .BI "int syscall(SYS_delete_module, const char *" name ", unsigned int " flags ); > .fi > +.PP > +.IR Note : > +glibc provides no wrapper for > +.BR delete_module (), > +necessitating the use of > +.BR syscall (2). > .SH DESCRIPTION > The > .BR delete_module () > diff --git a/man2/execveat.2 b/man2/execveat.2 > index c566f53df..0c97a0eb3 100644 > --- a/man2/execveat.2 > +++ b/man2/execveat.2 > @@ -36,6 +36,12 @@ execveat \- execute program relative to a directory file descriptor > .BI " const char *const " argv "[], const char *const " envp [], > .BI " int " flags ); > .fi > +.PP > +.IR Note : > +glibc provides no wrapper for > +.BR execveat (), > +necessitating the use of > +.BR syscall (2). > .\" FIXME . See https://sourceware.org/bugzilla/show_bug.cgi?id=27364 > .SH DESCRIPTION > .\" commit 51f39a1f0cea1cacf8c787f652f26dfee9611874 > diff --git a/man2/exit_group.2 b/man2/exit_group.2 > index b512927d4..96715d26a 100644 > --- a/man2/exit_group.2 > +++ b/man2/exit_group.2 > @@ -32,6 +32,12 @@ exit_group \- exit all threads in a process > .PP > .BI "noreturn void syscall(SYS_exit_group, int " status ); > .fi > +.PP > +.IR Note : > +glibc provides no wrapper for > +.BR exit_group (), > +necessitating the use of > +.BR syscall (2). > .SH DESCRIPTION > This system call is equivalent to > .BR _exit (2) > diff --git a/man2/get_robust_list.2 b/man2/get_robust_list.2 > index d1b1c59bc..66b27d905 100644 > --- a/man2/get_robust_list.2 > +++ b/man2/get_robust_list.2 > @@ -42,6 +42,11 @@ get_robust_list, set_robust_list \- get/set list of robust futexes > .BI "long syscall(SYS_set_robust_list," > .BI " struct robust_list_head *" head ", size_t " len ); > .fi > +.PP > +.IR Note : > +glibc provides no wrappers for these system calls, > +necessitating the use of > +.BR syscall (2). > .SH DESCRIPTION > These system calls deal with per-thread robust futex lists. > These lists are managed in user space: > diff --git a/man2/getunwind.2 b/man2/getunwind.2 > index 2c44506c7..bf15a82b6 100644 > --- a/man2/getunwind.2 > +++ b/man2/getunwind.2 > @@ -35,6 +35,12 @@ getunwind \- copy the unwind data to caller's buffer > .PP > .BI "long syscall(SYS_getunwind, void " *buf ", size_t " buf_size ); > .fi > +.PP > +.IR Note : > +glibc provides no wrapper for > +.BR getunwind (), > +necessitating the use of > +.BR syscall (2). > .SH DESCRIPTION > .I Note: this system call is obsolete. > .PP > diff --git a/man2/init_module.2 b/man2/init_module.2 > index 13d1b7f0a..aac0c6631 100644 > --- a/man2/init_module.2 > +++ b/man2/init_module.2 > @@ -38,6 +38,11 @@ init_module, finit_module \- load a kernel module > .BI "int syscall(SYS_finit_module, int " fd ", const char *" param_values , > .BI " int " flags ); > .fi > +.PP > +.IR Note : > +glibc provides no wrappers for these system calls, > +necessitating the use of > +.BR syscall (2). > .SH DESCRIPTION > .BR init_module () > loads an ELF image into kernel space, > -- Michael Kerrisk Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/ Linux/UNIX System Programming Training: http://man7.org/training/ ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2021-05-09 20:09 UTC | newest] Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2021-04-21 22:44 [PATCH 1/3] alloc_hugepages.2, arch_prctl.2, capget.2, clone.2, delete_module.2, execveat.2, exit_group.2, get_robust_list.2, getunwind.2, init_module.2: Add note about the use of syscall(2) Alejandro Colomar 2021-04-21 22:44 ` [PATCH 2/3] Various pages: Remove unused <sys/ipc.h> (and <sys/types.h>) Alejandro Colomar 2021-05-09 19:54 ` Michael Kerrisk (man-pages) 2021-04-21 22:44 ` [PATCH 3/3] open.2: Remove unused <sys/stat.h> Alejandro Colomar 2021-05-09 20:02 ` Michael Kerrisk (man-pages) 2021-05-09 20:09 ` Alejandro Colomar (man-pages) 2021-05-09 19:52 ` [PATCH 1/3] alloc_hugepages.2, arch_prctl.2, capget.2, clone.2, delete_module.2, execveat.2, exit_group.2, get_robust_list.2, getunwind.2, init_module.2: Add note about the use of syscall(2) Michael Kerrisk (man-pages)
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).