__LINUX_ERRNO_EXTENSIONS__ and RTEMS

View: New views
3 Messages — Rating Filter:   Alert me  

__LINUX_ERRNO_EXTENSIONS__ and RTEMS

by Joel Sherrill <joel@OARcorp.com> :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi,

Ralf Corsepius didn't like my patch to turn on
__LINUX_ERRNO_EXTENSIONS__ for RTEMS.  So in fairness,
I did some analysis from an RTEMS perspective
and here are the results.

RTEMS includes a port of the FreeBSD TCP/IP stack
and a few other BSD network services.  I grep'ed
the RTEMS source for every errno marked as a
Linux extension by newlib.  Here is the result:

======== EBADR
cpukit/libnetworking/lib/ftpfs.c
========= EBADRQC
cpukit/libnetworking/lib/ftpfs.c
========= EPFNOSUPPORT
cpukit/librpc/src/rpc/bindresvport.c
cpukit/librpc/src/rpc/clnt_generic.c
========= EHOSTDOWN
cpukit/libnetworking/netinet/ip_input.c
cpukit/libnetworking/netinet/tcp_subr.c
cpukit/libnetworking/nfs/bootp_subr.c
cpukit/libnetworking/net/if_ethersubr.c
========= ETOOMANYREFS
cpukit/libnetworking/netinet/ip_output.c
========= EPROCLIM
cpukit/httpd/sock.c

What are the above files from?
+ libnetworking is the TCP/IP stack and some services.
+ libnetworking/ftpfs is RTEMS specific but tests for an error
  returned by the stack.
+ librpc is Sun RPC/XDR.
+ httpd is the GoAhead webserver.

Are there any relevant standards?

+ EHOSTDOWN is from
  http://www.opengroup.org/onlinepubs/009695399/functions/xsh_chap02_10.html
  so it is probably really not Linux specific anyway.

+ Every errno in this list appears in the Open Group test suite.
 
http://tetworks.opengroup.org/tet//sample_binaries/3.3/tet3.3-bin-linux2-dist.cpio.Z
  I was unable to uncompress this so don't know what that means.
  I didn't see any obvious references to them at opengroup.org in
  a standards page in my search.

It would be interesting to see if other errnos marked
Linux extensions are also used by *BSD but the set above
are the problems for RTEMS.  We cannot build RTEMS with
newlib cvs without those defined.

What is the best solution?

--
Joel Sherrill, Ph.D.             Director of Research & Development
joel.sherrill@...        On-Line Applications Research
Ask me about RTEMS: a free RTOS  Huntsville AL 35805
   Support Available             (256) 722-9985



Re: __LINUX_ERRNO_EXTENSIONS__ and RTEMS

by Jeff Johnston :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On 16/10/09 12:58 PM, Joel Sherrill wrote:

> Hi,
>
> Ralf Corsepius didn't like my patch to turn on
> __LINUX_ERRNO_EXTENSIONS__ for RTEMS. So in fairness,
> I did some analysis from an RTEMS perspective
> and here are the results.
> RTEMS includes a port of the FreeBSD TCP/IP stack
> and a few other BSD network services. I grep'ed
> the RTEMS source for every errno marked as a
> Linux extension by newlib. Here is the result:
>
> ======== EBADR
> cpukit/libnetworking/lib/ftpfs.c
> ========= EBADRQC
> cpukit/libnetworking/lib/ftpfs.c
> ========= EPFNOSUPPORT
> cpukit/librpc/src/rpc/bindresvport.c
> cpukit/librpc/src/rpc/clnt_generic.c
> ========= EHOSTDOWN
> cpukit/libnetworking/netinet/ip_input.c
> cpukit/libnetworking/netinet/tcp_subr.c
> cpukit/libnetworking/nfs/bootp_subr.c
> cpukit/libnetworking/net/if_ethersubr.c
> ========= ETOOMANYREFS
> cpukit/libnetworking/netinet/ip_output.c
> ========= EPROCLIM
> cpukit/httpd/sock.c
>
> What are the above files from?
> + libnetworking is the TCP/IP stack and some services.
> + libnetworking/ftpfs is RTEMS specific but tests for an error
> returned by the stack.
> + librpc is Sun RPC/XDR.
> + httpd is the GoAhead webserver.
>
> Are there any relevant standards?
>
> + EHOSTDOWN is from
> http://www.opengroup.org/onlinepubs/009695399/functions/xsh_chap02_10.html
> so it is probably really not Linux specific anyway.
>
> + Every errno in this list appears in the Open Group test suite.
>
> http://tetworks.opengroup.org/tet//sample_binaries/3.3/tet3.3-bin-linux2-dist.cpio.Z
>
> I was unable to uncompress this so don't know what that means.
> I didn't see any obvious references to them at opengroup.org in
> a standards page in my search.
>
> It would be interesting to see if other errnos marked
> Linux extensions are also used by *BSD but the set above
> are the problems for RTEMS. We cannot build RTEMS with
> newlib cvs without those defined.
>
> What is the best solution?
>

I believe it was RTEMS originally that had the problem with all the
errnos being exposed so I am totally ok with you creating a new flag:
__OPEN_GROUP_ERRNO_EXTENSIONS__ and using this flag or'd with the
__LINUX_ERRNO_EXTENSIONS__ flag for the errnos above.

Another alternative would be to override sys/errno.h for RTEMS.

-- Jeff J.

Re: __LINUX_ERRNO_EXTENSIONS__ and RTEMS

by Joel Sherrill <joel@OARcorp.com> :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Jeff Johnston wrote:

> On 16/10/09 12:58 PM, Joel Sherrill wrote:
>  
>> Hi,
>>
>> Ralf Corsepius didn't like my patch to turn on
>> __LINUX_ERRNO_EXTENSIONS__ for RTEMS. So in fairness,
>> I did some analysis from an RTEMS perspective
>> and here are the results.
>> RTEMS includes a port of the FreeBSD TCP/IP stack
>> and a few other BSD network services. I grep'ed
>> the RTEMS source for every errno marked as a
>> Linux extension by newlib. Here is the result:
>>
>> ======== EBADR
>> cpukit/libnetworking/lib/ftpfs.c
>> ========= EBADRQC
>> cpukit/libnetworking/lib/ftpfs.c
>> ========= EPFNOSUPPORT
>> cpukit/librpc/src/rpc/bindresvport.c
>> cpukit/librpc/src/rpc/clnt_generic.c
>> ========= EHOSTDOWN
>> cpukit/libnetworking/netinet/ip_input.c
>> cpukit/libnetworking/netinet/tcp_subr.c
>> cpukit/libnetworking/nfs/bootp_subr.c
>> cpukit/libnetworking/net/if_ethersubr.c
>> ========= ETOOMANYREFS
>> cpukit/libnetworking/netinet/ip_output.c
>> ========= EPROCLIM
>> cpukit/httpd/sock.c
>>
>> What are the above files from?
>> + libnetworking is the TCP/IP stack and some services.
>> + libnetworking/ftpfs is RTEMS specific but tests for an error
>> returned by the stack.
>> + librpc is Sun RPC/XDR.
>> + httpd is the GoAhead webserver.
>>
>> Are there any relevant standards?
>>
>> + EHOSTDOWN is from
>> http://www.opengroup.org/onlinepubs/009695399/functions/xsh_chap02_10.html
>> so it is probably really not Linux specific anyway.
>>
>> + Every errno in this list appears in the Open Group test suite.
>>
>> http://tetworks.opengroup.org/tet//sample_binaries/3.3/tet3.3-bin-linux2-dist.cpio.Z
>>
>> I was unable to uncompress this so don't know what that means.
>> I didn't see any obvious references to them at opengroup.org in
>> a standards page in my search.
>>
>> It would be interesting to see if other errnos marked
>> Linux extensions are also used by *BSD but the set above
>> are the problems for RTEMS. We cannot build RTEMS with
>> newlib cvs without those defined.
>>
>> What is the best solution?
>>
>>    
>
> I believe it was RTEMS originally that had the problem with all the
> errnos being exposed so I am totally ok with you creating a new flag:
> __OPEN_GROUP_ERRNO_EXTENSIONS__ and using this flag or'd with the
> __LINUX_ERRNO_EXTENSIONS__ flag for the errnos above.
>
>  
Ralf.. is this OK with you?
> Another alternative would be to override sys/errno.h for RTEMS.
>
>  
I would rather not do that.
> -- Jeff J.
>  


--
Joel Sherrill, Ph.D.             Director of Research & Development
joel.sherrill@...        On-Line Applications Research
Ask me about RTEMS: a free RTOS  Huntsville AL 35805
   Support Available             (256) 722-9985