Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Mon, 8 Jul 2013 22:53:30 -0400
From: Rich Felker <dalias@...ifal.cx>
To: musl@...ts.openwall.com
Cc: "Michael Kerrisk (man-pages)" <mtk.manpages@...il.com>
Subject: Re: Re: Linux manpages (was Re: Request for volunteers)

On Tue, Jul 09, 2013 at 02:18:21AM +0200, Michael Kerrisk wrote:
> > However my feeling is that this would be a very big project
> > and I'm not sure if Michael would want to go in that direction. I do
> > think it would greatly improve the quality of Linux software
> > development, though.
> > 
> >> The man(2) section is rather glibc specific and makes the syscall details
> >> rather subsidiary. I will try to send some patches if these would be
> >> welcome.
> > 
> > I think it's an error to have anything glibc-specific in section 2 of
> > the manual, which should be documenting the kernel, not userspace.
> > What would be useful in the section 2 man pages is to document where
> 
> ("useful" to who? Few users care about the naked 
> syscall behavior.)

Admittedly, part of the answer is "to me". However I can think of a
good number of others:

1. Anyone doing pure asm programming on Linux. I think this is a
   rather bad idea, but there are people who do it.

2. People reading strace output. (For instance, if the kernel returns
   a bogus error code and userspace has to translate it, that's
   relevant to someone who sees the strace output and errno value in
   their program mismatching.)

3. Implementors of any component that uses or provides the syscall.
   That includes not only libc, but also qemu app-level emulation, BSD
   Linux-syscall ABI emulation, Zvi's psxcalls layer (intended to
   eventually allow using musl as the first-ever conforming Windows
   libc that's actually deployable, unlike cygwin), ...

4. Anyone trying to understand what libc (musl, glibc, or otherwise)
   is doing munging the syscall inputs/results.

5. Kernel developers who want to know the actual contract their
   interfaces are supposed to satisfy and preserve.

I suspect there are others, but those are the ones that came to mind
right off.

> > the syscall is insufficient to provide POSIX semantics, which are left
> > to userspace to provide. Such section 2 pages could then have
> > corresponding section 3 pages that document the library behavior.
> 
> See https://www.kernel.org/doc/man-pages/todo.html#migrate_to_kernel_source
> I think it would be a retrograde step to split syscall pages into 
> Sections 2 and 3.

Yes, that's understandable. I somewhat question why we even still have
a "section 2" in the manual, though...

Rich

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.