Newlib's non-posix'ness [Re: KSH is pdksh]

Christopher Faylor cgf@redhat.com
Thu Jan 25 21:23:00 GMT 2001


On Thu, Jan 25, 2001 at 04:30:52PM -0600, Mumit Khan wrote:
>On Thu, 25 Jan 2001, Earnie Boyd wrote:
>
>> Matthew Smith wrote:
>> > 
>> > Can anyone suggest an elegant way around this?
>> > 
>> 
>> Fix the code.  Remove the redefinitions.
>
>FYI, it's newlib that provides the incorrect declaration. It's one of 
>those cases where newlib's declarations don't quite match POSIX/UNIX98, 
>but small enough that nobody has bothered to fix those. Mostly has to 
>do with signed vs unsigned (eg., size_t vs ssize_t) and those little
>nits. Interestingly enough, someone, quite possibly Joel Scherrill, had 
>gone through newlib and fixed most of these, if not all, but only for 
>RTEMS! 
>
>POSIX:
>    ssize_t read (int, void *, size_t);
>
>newlib:
>    #ifdef __rtems__
>      ssize_t read (int, void *, size_t);
>    #else
>      int read (int, void *, size_t);
>    #endif
>
>Perhaps Chris and/or DJ know why that is the case.

Because the only thing that Joel cares about is RTEMS, basically.  He
broke Cygwin builds a couple of times with his changes and, I assume,
rather than try to build Cygwin after a change, opted to just
conditionalize everything.

>When you have a conflict between Glenn Fowler's AT&T AST and another 
>library, chances are that AST is doing the right thing.

Probably, but any package that doesn't build because it relies on read
being defined as ssize_t is not exactly portable.

cgf

--
Want to unsubscribe from this list?
Check out: http://cygwin.com/ml/#unsubscribe-simple



More information about the Cygwin mailing list