-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 04/07/2012 01:31 PM, Kevin Cernekee 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:
We already have this kind of patch in future branch IIRC > > O_NONBLOCK: correct SOCK_NONBLOCK: correct (tst-sock-nonblock > passes) EPOLL_NONBLOCK: correct SFD_NONBLOCK: correct (fixed in > commit f87898ca; tst-signalfd passes) TFD_NONBLOCK: incorrect > (tst-timerfd fails) IN_NONBLOCK: incorrect (tst-inotify fails) > > The proposed change is to add #ifdef clauses for __mips__, similar > to what was done for SFD_NONBLOCK in include/sys/signalfd.h . This > fixes the two failing test cases. > > Signed-off-by: Kevin Cernekee <cerne...@gmail.com> --- > libc/sysdeps/linux/common/sys/inotify.h | 11 +++++++++++ > libc/sysdeps/linux/common/sys/timerfd.h | 11 +++++++++++ 2 files > changed, 22 insertions(+), 0 deletions(-) > > diff --git a/libc/sysdeps/linux/common/sys/inotify.h > b/libc/sysdeps/linux/common/sys/inotify.h index dc4e19d..4a10d6b > 100644 --- a/libc/sysdeps/linux/common/sys/inotify.h +++ > b/libc/sysdeps/linux/common/sys/inotify.h @@ -23,6 +23,16 @@ > > > /* Flags for the parameter of inotify_init1. */ +#if defined > __mips__ +enum + { + IN_CLOEXEC = 02000000, +#define IN_CLOEXEC > IN_CLOEXEC + IN_NONBLOCK = 0200 +#define IN_NONBLOCK > IN_NONBLOCK + }; + +#else enum { IN_CLOEXEC = 02000000, @@ -30,6 > +40,7 @@ enum IN_NONBLOCK = 04000 #define IN_NONBLOCK IN_NONBLOCK > }; +#endif > > > /* Structure describing an inotify event. */ diff --git > a/libc/sysdeps/linux/common/sys/timerfd.h > b/libc/sysdeps/linux/common/sys/timerfd.h index c1bb06f..141338e > 100644 --- a/libc/sysdeps/linux/common/sys/timerfd.h +++ > b/libc/sysdeps/linux/common/sys/timerfd.h @@ -23,6 +23,16 @@ > > > /* Bits to be set in the FLAGS parameter of `timerfd_create'. */ > +#if defined __mips__ +enum + { + TFD_CLOEXEC = 02000000, > +#define TFD_CLOEXEC TFD_CLOEXEC + TFD_NONBLOCK = 0200 +#define > TFD_NONBLOCK TFD_NONBLOCK + }; + +#else enum { TFD_CLOEXEC = > 02000000, @@ -30,6 +40,7 @@ enum TFD_NONBLOCK = 04000 #define > TFD_NONBLOCK TFD_NONBLOCK }; +#endif > > > /* Bits to be set in the FLAGS parameter of `timerfd_settime'. */ -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAk+ArSAACgkQuwUzVZGdMxQe4QCfayl21bSKN+i/tmV215Y9sBNU iGwAn3Jst/+F2YEiowvsgPU9lq/ushGY =9yaC -----END PGP SIGNATURE----- _______________________________________________ uClibc mailing list uClibc@uclibc.org http://lists.busybox.net/mailman/listinfo/uclibc