[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: update-menus error



>>>>> Joost Witteveen writes:

 JW> i.e., 1073741942, or 2**30+118 (doesn't look very special to me).
 JW> As far as I can see, whenever fcntl returns -1, it _should_ set
 JW> errno to something more sensible than that.

Hurd errnos are quite different from Linux errnos, and the errno
you're looking at is quite a sensible one: EOPNOTSUPP (a weaker
version of ENOSYS).  File locking is not fully implemented on the
Hurd, and your program is asking for something that the Hurd doesn't
(yet) understand.  This is a known bug.

So, the correct thing to do is treat this code as a failure.  It will
stop being returned once that particular fcntl is implemented by the
libc and Hurd servers.

The explanation: the Hurd errno space is carved up into server errors,
microkernel errors, etc.  The Mach error code conventions are followed
by or'ing the code (118) with a constant to tell strerror that this is
the Hurd subsystem.  I found EOPNOTSUPP by looking at
libc/manual/error.texi: there's an `@comment errno NNN' line for each
code.

-- 
 Gordon Matzigkeit <gord@fig.org>  //\ I'm a FIG (http://fig.org/)
Committed to diversity and freedom \// Do Screen (http://fig.org/gnu/screen/)



Reply to: