Re: [PATCH][RFC] global errno considered harmful

Brian Gerst
2001-12-30T22:06:15Z

Ralf Baechle wrote:
>
> On Sun, Dec 30, 2001 at 02:56:21PM -0500, Jeff Dike wrote:
>
> > buytenh@gnu.org said:
> > > Is there any particular reason we need a global errno in the kernel at
> > > all? (which, by the way, doesn't seem to be subject to any kind of
> > > locking)
> >
> > As far as I've been able to tell, no.
>
> Historically the reason was to make unistd.h usable from userspace. Which
> is causing tremendous portability problems so apps better shouldn't think
> about using the syscall interface directly.
>
> > > It makes life for User Mode Linux somewhat more complicated
> > > than it could be, and it generally just seems a bad idea.
> >
> > Yeah. In order for -fno-common to not blow up the UML build (because of the
> > clash between libc errno and kernel errno), I had to add -Derrno=kernel_errno
> > to all the kernel file compiles. It would be nice to get rid of that wart.
> >
> > > Referenced patch deletes all mention of a global errno from the
> > > kernel
> >
> > Awesome. This definitely needs to happen. If no one spots any breakage,
> > send it in...
>
> As user application are trying to use unistd.h and expect errno to get
> set properly unistd.h or at least it's syscallX macros will have to be
> made unusable from userspace or silent breakage of such apps rebuild
> against new headers will occur.

Userspace should be using glibc's unistd.h. If it's using the kernel's,
it's broken.

--
Brian Gerst