[PATCH 2/2] MIPS: Fix more *_NONBLOCK definitions

Bernhard Reutner-Fischer rep.dot.nop at gmail.com
Thu Feb 9 08:16:07 UTC 2012


On 9 February 2012 07:12, Kevin Cernekee <cernekee at gmail.com> wrote:
> MIPS defines O_NONBLOCK differently from most other architectures.  The
> common definitions use 04000 / 0x800, but MIPS uses 0200 / 0x80 instead.
>
> After seeing a problem report involving one of the O_NONBLOCK
> "derivatives," I looked through the tree to see what else might be
> affected.  Here is what I found:
>
> O_NONBLOCK: correct
> SOCK_NONBLOCK: correct
> EPOLL_NONBLOCK: correct
> SFD_NONBLOCK: correct (fixed in recent commit f87898ca)
> TFD_NONBLOCK: incorrect
> IN_NONBLOCK: incorrect
>
> The proposed fix, cribbed from glibc, is to fork {timerfd,inotify}.h
> for each architecture that needs special treatment.

I would prefer to handle this in the common file like we already do
for e.g. signalfd.h
This would automatically cleanup the apparent confusion about the
signedness of the second arg to inotify_rm_watch, for example; The
kernel docs talk about an u32, the kernel impl seems to use s32 and
glibc apparently fixed the signedness for the generic impl to be
signed but not for alpha and sparc.

cheers,


More information about the uClibc mailing list