[PATCH] sys/types.h: Avoid bit-manipulation of signed values

Joel Sherrill joel.sherrill@oarcorp.com
Wed Nov 18 07:47:00 GMT 2015

On 11/17/2015 1:17 AM, Sebastian Huber wrote:
> On 16/11/15 12:55, 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.
> Looks good. I need some time to use this in RTEMS, since I am currently
> busy with other stuff and this is only a nice to have.

Agreed. In general, we don't want to have our own versions of
standard .h files.


More information about the Newlib mailing list