[PATCH] sys/types.h: Avoid bit-manipulation of signed values
Nick Withers
nick.withers@anu.edu.au
Tue Nov 17 07:17:00 GMT 2015
On Mon, 2015-11-16 at 12:55 +0100, Corinna Vinschen wrote:
> On Nov 16 11:52, Sebastian Huber wrote:
> > On 14/11/15 10:55, Corinna Vinschen wrote:
> > > On Nov 13 15:44, Sebastian Huber wrote:
> > > > > On 13/11/15 10:53, Corinna Vinschen wrote:
> > > > > > > RTEMS guys, any input on how you handle this stuff? Do
> > > > > > > we have to stick
> > > > > > > to sys/types.h or shall we carefully rearrange the
> > > > > > > definitions to be
> > > > > > > better aligned with BSD, Linux, et al?
> > > > >
> > > > > It would be good to rearrange the definitions to be better
> > > > > aligned with BSD
> > > > > and Linux. My long term goal is to get rid of the RTEMS
> > > > > -specific param.h
> > > > > (newlib/libc/sys/rtems/include/sys/param.h).
> > > Sounds good. What about sys/select.h and the matching macros in
> > > sys/types.h?
> >
> > Newlib has currently no sys/select.h. RTEMS provides its own copy
> > of this
> > file. Do you plan to import a sys/select.h into Newlib and use it
> > for
> > Cygwin?
>
> Cygwin is using its own copy of sys/select.h. I hacked a bit on this
> and I came up with a sys/select.h which works for Cygwin and which
> might
> be ok for inclusion into newlib. See the attached patch. I removed
> the
> source patches required to make this work on Cygwin, so this patch
> only
> shows what affects all targets.
>
> Note especially:
>
> - I moved NBBY to sys/param.h.
>
> - Define howmany in sys/param.h.
>
> In sys/select.h, as on FreeBSD:
>
> - Use "8" instead of "NBBY" (avoids dependency to sys/param.h).
>
> - Redefine fd_mask as unsigned long, rather than signed long.
>
> - Use _howmany instead of howmany.
>
> Please have a look if these changes would be ok for you.
It won't address the issues I was harping about, but I'll send patch v2
once this has settled.
Cheers!
--
Nick Withers
Embedded Systems Programmer
Department of Nuclear Physics, Research School of Physics and Engineering
The Australian National University (CRICOS: 00120C)
More information about the Newlib
mailing list