<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<id>tag:old.nabble.com,2006:forum-12240</id>
	<title>Nabble - Sourceware - newlib</title>
	<updated>2009-12-22T02:47:08Z</updated>
	<link rel="self" type="application/atom+xml" href="http://old.nabble.com/Sourceware---newlib-f12240.xml" />
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Sourceware---newlib-f12240.html" />
	<subtitle type="html">Newlib is a C library intended for use on embedded systems. It is a conglomeration of several library parts. Sourceware - newlib home is &lt;a href=&quot;http://sourceware.org/newlib/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;.</subtitle>
	
<entry>
	<id>tag:old.nabble.com,2006:post-26886542</id>
	<title>Re: fix getsubopt declaration</title>
	<published>2009-12-22T02:47:08Z</published>
	<updated>2009-12-22T02:47:08Z</updated>
	<author>
		<name>Corinna Vinschen</name>
	</author>
	<content type="html">On Dec 21 22:11, Eric Blake wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; -----BEGIN PGP SIGNED MESSAGE-----
&lt;br&gt;&amp;gt; Hash: SHA1
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Any objections to this? &amp;nbsp;POSIX 2008 requires getsubopt in &amp;lt;stdlib.h&amp;gt; (even
&lt;br&gt;&amp;gt; though it also requires getopt in &amp;lt;unistd.h&amp;gt; - what a historical wart).
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 2009-12-22 &amp;nbsp;Eric Blake &amp;nbsp;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26886542&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;ebb9@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 	* libc/include/sys/unistd.h (suboptarg, getsubopt): Move...
&lt;br&gt;&amp;gt; 	* libc/include/stdlib.h: ...here, to match POSIX for getsubopt.
&lt;/div&gt;&lt;br&gt;Looks good to me. &amp;nbsp;Please apply.
&lt;br&gt;&lt;br&gt;&lt;br&gt;Thanks,
&lt;br&gt;Corinna
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Corinna Vinschen
&lt;br&gt;Cygwin Project Co-Leader
&lt;br&gt;Red Hat
&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Sourceware---newlib-list-f12241.html&quot; embed=&quot;fixTarget[12241]&quot; target=&quot;_top&quot; &gt;Sourceware - newlib list&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/fix-getsubopt-declaration-tp26884022p26886542.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26884022</id>
	<title>fix getsubopt declaration</title>
	<published>2009-12-21T21:11:08Z</published>
	<updated>2009-12-21T21:11:08Z</updated>
	<author>
		<name>Eric Blake</name>
	</author>
	<content type="html">-----BEGIN PGP SIGNED MESSAGE-----
&lt;br&gt;Hash: SHA1
&lt;br&gt;&lt;br&gt;Any objections to this? &amp;nbsp;POSIX 2008 requires getsubopt in &amp;lt;stdlib.h&amp;gt; (even
&lt;br&gt;though it also requires getopt in &amp;lt;unistd.h&amp;gt; - what a historical wart).
&lt;br&gt;&lt;br&gt;2009-12-22 &amp;nbsp;Eric Blake &amp;nbsp;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26884022&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;ebb9@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * libc/include/sys/unistd.h (suboptarg, getsubopt): Move...
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * libc/include/stdlib.h: ...here, to match POSIX for getsubopt.
&lt;br&gt;&lt;br&gt;- --
&lt;br&gt;Don't work too hard, make some time for fun as well!
&lt;br&gt;&lt;br&gt;Eric Blake &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26884022&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;ebb9@...&lt;/a&gt;
&lt;br&gt;-----BEGIN PGP SIGNATURE-----
&lt;br&gt;Version: GnuPG v1.4.9 (Cygwin)
&lt;br&gt;Comment: Public key at home.comcast.net/~ericblake/eblake.gpg
&lt;br&gt;Comment: Using GnuPG with Mozilla - &lt;a href=&quot;http://enigmail.mozdev.org/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://enigmail.mozdev.org/&lt;/a&gt;&lt;br&gt;&lt;br&gt;iEYEARECAAYFAkswVPkACgkQ84KuGfSFAYDVwgCeP4PCfcFs8wwRyXnJIk0mgs4g
&lt;br&gt;ChIAn1o912ryNC8lOlPfx0kDoUHrp7+G
&lt;br&gt;=H8QO
&lt;br&gt;-----END PGP SIGNATURE-----
&lt;br&gt;&lt;br /&gt;From ddf936891b7adf6fe397c81cfb8518b869e2a88d Mon Sep 17 00:00:00 2001
&lt;br&gt;From: Eric Blake &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26884022&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;ebb9@...&lt;/a&gt;&amp;gt;
&lt;br&gt;Date: Mon, 21 Dec 2009 22:09:55 -0700
&lt;br&gt;Subject: [PATCH] fix getsubopt header
&lt;br&gt;&lt;br&gt;---
&lt;br&gt;&amp;nbsp;newlib/libc/include/stdlib.h &amp;nbsp; &amp;nbsp; | &amp;nbsp; &amp;nbsp;4 ++++
&lt;br&gt;&amp;nbsp;newlib/libc/include/sys/unistd.h | &amp;nbsp; &amp;nbsp;3 ---
&lt;br&gt;&amp;nbsp;2 files changed, 4 insertions(+), 3 deletions(-)
&lt;br&gt;&lt;br&gt;diff --git a/newlib/libc/include/stdlib.h b/newlib/libc/include/stdlib.h
&lt;br&gt;index 82a2207..b33503d 100644
&lt;br&gt;--- a/newlib/libc/include/stdlib.h
&lt;br&gt;+++ b/newlib/libc/include/stdlib.h
&lt;br&gt;@@ -83,6 +83,10 @@ char * &amp;nbsp;_EXFUN(getenv,(const char *__string));
&lt;br&gt;&amp;nbsp;char *	_EXFUN(_getenv_r,(struct _reent *, const char *__string));
&lt;br&gt;&amp;nbsp;char *	_EXFUN(_findenv,(_CONST char *, int *));
&lt;br&gt;&amp;nbsp;char *	_EXFUN(_findenv_r,(struct _reent *, _CONST char *, int *));
&lt;br&gt;+#ifndef __STRICT_ANSI__
&lt;br&gt;+extern char *suboptarg;			/* getsubopt(3) external variable */
&lt;br&gt;+int	_EXFUN(getsubopt,(char **, char * const *, char **));
&lt;br&gt;+#endif
&lt;br&gt;&amp;nbsp;long	_EXFUN(labs,(long));
&lt;br&gt;&amp;nbsp;ldiv_t	_EXFUN(ldiv,(long __numer, long __denom));
&lt;br&gt;&amp;nbsp;_PTR	_EXFUN_NOTHROW(malloc,(size_t __size));
&lt;br&gt;diff --git a/newlib/libc/include/sys/unistd.h b/newlib/libc/include/sys/unistd.h
&lt;br&gt;index 80c35da..4193002 100644
&lt;br&gt;--- a/newlib/libc/include/sys/unistd.h
&lt;br&gt;+++ b/newlib/libc/include/sys/unistd.h
&lt;br&gt;@@ -191,9 +191,6 @@ extern int optreset;			/* getopt(3) external variable */
&lt;br&gt;&lt;br&gt;&amp;nbsp;#ifndef &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;_POSIX_SOURCE
&lt;br&gt;&amp;nbsp;pid_t &amp;nbsp; _EXFUN(vfork, (void ));
&lt;br&gt;-
&lt;br&gt;-extern char *suboptarg;			/* getsubopt(3) external variable */
&lt;br&gt;-int	 getsubopt(char **, char * const *, char **);
&lt;br&gt;&amp;nbsp;#endif /* _POSIX_SOURCE */
&lt;br&gt;&lt;br&gt;&amp;nbsp;#ifdef _COMPILING_NEWLIB
&lt;br&gt;-- 
&lt;br&gt;1.6.5.rc1
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Sourceware---newlib-list-f12241.html&quot; embed=&quot;fixTarget[12241]&quot; target=&quot;_top&quot; &gt;Sourceware - newlib list&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/fix-getsubopt-declaration-tp26884022p26884022.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26838197</id>
	<title>Re: VMIN/VTIME and read expectations</title>
	<published>2009-12-17T18:19:59Z</published>
	<updated>2009-12-17T18:19:59Z</updated>
	<author>
		<name>Joel Sherrill &lt;joel@OARcorp.com&gt;</name>
	</author>
	<content type="html">On 12/17/2009 06:05 PM, Eric Norum wrote:
&lt;br&gt;&amp;gt; ???
&lt;br&gt;&amp;gt; How did you make the TERMIOS stuff work on a socket?
&lt;br&gt;&amp;gt; I use SO_SNDTIMEOand SO_RCVTIMEO options for sockets on RTEMS. &amp;nbsp;This causes read to return -1 with errno=EWOULDBLOCK on timeout.
&lt;br&gt;I think this is the root of the problem. &amp;nbsp;The code behaves differently 
&lt;br&gt;on the
&lt;br&gt;head from the last release branch. &amp;nbsp;I need to see what has changed.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; We should probably take this correspondence off the newlib
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;
&lt;br&gt;Yep. &amp;nbsp;Sorry folks. &amp;nbsp;Moving...
&lt;br&gt;&lt;br&gt;--joel
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; On Dec 17, 2009, at 3:27 PM, Joel Sherrill wrote:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt; On 12/17/2009 04:30 PM, Eric Norum wrote:
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; When you're using VMIN=0, VTIME=255 you have ICANON=0 so 'end-of-file' doesn't really exist.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt; I was kind of guessing that. &amp;nbsp;Unfortunately &amp;nbsp;this is in the RTEMS login code.
&lt;br&gt;&amp;gt;&amp;gt; I can make it work OK for serial ports but when attached to a socket, I
&lt;br&gt;&amp;gt;&amp;gt; have no idea how to detect when the socket is dropped.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; I switched to calling read() and as documented, it always returns 0
&lt;br&gt;&amp;gt;&amp;gt; when there is no data. &amp;nbsp;When the connection is dropped, it returns 0
&lt;br&gt;&amp;gt;&amp;gt; VERY quickly. &amp;nbsp;Do you think this part is a bug in the read on a socket?
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; If this turns into an RTEMS specific issue, we need to switch lists.
&lt;br&gt;&amp;gt;&amp;gt; But I would really like to know what is correct. :)
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; --joel
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; On Dec 17, 2009, at 2:16 PM, Joel Sherrill wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Hi,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; I have been looking into a program on RTEMS that
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; uses VMIN=0, VTIME=255. The program calls
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; fgetc() which calls read().
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; fp-&amp;gt;_flags == 0x2806 before the fgetc() call.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; read() times out and returns 0.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; fgetc() returns -1 and fp-&amp;gt;_flags == 0x2826
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; The 0x0020 being set is _SEOF.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; My questions are:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + Is this correct behaviour?
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + How does the application programmer distinguish
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; between a real EOF and an unsatisfied read? &amp;nbsp;Even the
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Fedora read(2) man page says:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;On success, the number of bytes read is returned (zero indicates end of
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;file), and the file position is advanced by this number.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; So even if I dropped down to read(2), I still don't know
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; how to distinguish EOF from a read timeout.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Thanks.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; -- 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Joel Sherrill, Ph.D. &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Director of Research&amp; &amp;nbsp; &amp;nbsp;Development
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26838197&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;joel.sherrill@...&lt;/a&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;On-Line Applications Research
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Ask me about RTEMS: a free RTOS &amp;nbsp;Huntsville AL 35805
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp;Support Available &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (256) 722-9985
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; -- 
&lt;br&gt;&amp;gt;&amp;gt; Joel Sherrill, Ph.D. &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Director of Research&amp; &amp;nbsp; Development
&lt;br&gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26838197&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;joel.sherrill@...&lt;/a&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;On-Line Applications Research
&lt;br&gt;&amp;gt;&amp;gt; Ask me about RTEMS: a free RTOS &amp;nbsp;Huntsville AL 35805
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp;Support Available &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (256) 722-9985
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;
&lt;/div&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Sourceware---newlib-list-f12241.html&quot; embed=&quot;fixTarget[12241]&quot; target=&quot;_top&quot; &gt;Sourceware - newlib list&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/VMIN-VTIME-and-read-expectations-tp26835994p26838197.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26837178</id>
	<title>Re: VMIN/VTIME and read expectations</title>
	<published>2009-12-17T16:05:39Z</published>
	<updated>2009-12-17T16:05:39Z</updated>
	<author>
		<name>Eric Norum</name>
	</author>
	<content type="html">???
&lt;br&gt;How did you make the TERMIOS stuff work on a socket?
&lt;br&gt;I use SO_SNDTIMEOand SO_RCVTIMEO options for sockets on RTEMS. &amp;nbsp;This causes read to return -1 with errno=EWOULDBLOCK on timeout. &amp;nbsp;
&lt;br&gt;We should probably take this correspondence off the newlib 
&lt;br&gt;&lt;br&gt;On Dec 17, 2009, at 3:27 PM, Joel Sherrill wrote:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; On 12/17/2009 04:30 PM, Eric Norum wrote:
&lt;br&gt;&amp;gt;&amp;gt; When you're using VMIN=0, VTIME=255 you have ICANON=0 so 'end-of-file' doesn't really exist.
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; I was kind of guessing that. &amp;nbsp;Unfortunately &amp;nbsp;this is in the RTEMS login code.
&lt;br&gt;&amp;gt; I can make it work OK for serial ports but when attached to a socket, I
&lt;br&gt;&amp;gt; have no idea how to detect when the socket is dropped.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; I switched to calling read() and as documented, it always returns 0
&lt;br&gt;&amp;gt; when there is no data. &amp;nbsp;When the connection is dropped, it returns 0
&lt;br&gt;&amp;gt; VERY quickly. &amp;nbsp;Do you think this part is a bug in the read on a socket?
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; If this turns into an RTEMS specific issue, we need to switch lists.
&lt;br&gt;&amp;gt; But I would really like to know what is correct. :)
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; --joel
&lt;br&gt;&amp;gt;&amp;gt; On Dec 17, 2009, at 2:16 PM, Joel Sherrill wrote:
&lt;br&gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Hi,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; I have been looking into a program on RTEMS that
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; uses VMIN=0, VTIME=255. The program calls
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; fgetc() which calls read().
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; fp-&amp;gt;_flags == 0x2806 before the fgetc() call.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; read() times out and returns 0.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; fgetc() returns -1 and fp-&amp;gt;_flags == 0x2826
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; The 0x0020 being set is _SEOF.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; My questions are:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + Is this correct behaviour?
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + How does the application programmer distinguish
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; between a real EOF and an unsatisfied read? &amp;nbsp;Even the
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Fedora read(2) man page says:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; On success, the number of bytes read is returned (zero indicates end of
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; file), and the file position is advanced by this number.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; So even if I dropped down to read(2), I still don't know
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; how to distinguish EOF from a read timeout.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Thanks.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; -- 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Joel Sherrill, Ph.D. &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Director of Research&amp; &amp;nbsp; Development
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26837178&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;joel.sherrill@...&lt;/a&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;On-Line Applications Research
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Ask me about RTEMS: a free RTOS &amp;nbsp;Huntsville AL 35805
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; Support Available &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (256) 722-9985
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; -- 
&lt;br&gt;&amp;gt; Joel Sherrill, Ph.D. &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Director of Research&amp; &amp;nbsp;Development
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26837178&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;joel.sherrill@...&lt;/a&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;On-Line Applications Research
&lt;br&gt;&amp;gt; Ask me about RTEMS: a free RTOS &amp;nbsp;Huntsville AL 35805
&lt;br&gt;&amp;gt; &amp;nbsp; Support Available &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (256) 722-9985
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;Eric Norum
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26837178&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;eric@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Sourceware---newlib-list-f12241.html&quot; embed=&quot;fixTarget[12241]&quot; target=&quot;_top&quot; &gt;Sourceware - newlib list&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/VMIN-VTIME-and-read-expectations-tp26835994p26837178.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26836830</id>
	<title>RE: VMIN/VTIME and read expectations</title>
	<published>2009-12-17T15:31:52Z</published>
	<updated>2009-12-17T15:31:52Z</updated>
	<author>
		<name>Howland Craig D (Craig)</name>
	</author>
	<content type="html">In effect, you're set up to be using non-blocking I/O. &amp;nbsp;In that case,
&lt;br&gt;read() is supposed to set errno to EAGAIN to indicate that it failed
&lt;br&gt;because nothing was available. &amp;nbsp;So the way to tell would be to check
&lt;br&gt;errno. &amp;nbsp;(I'm not sure how you'd tell from a C streams level, but since
&lt;br&gt;you've gone to read, it doesn't matter.)
&lt;br&gt;&amp;nbsp;
&lt;br&gt;Craig
&lt;br&gt;&lt;br&gt;&lt;br&gt;-----Original Message-----
&lt;br&gt;From: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26836830&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;newlib-owner@...&lt;/a&gt; [mailto:&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26836830&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;newlib-owner@...&lt;/a&gt;]
&lt;br&gt;On Behalf Of Joel Sherrill
&lt;br&gt;Sent: Thursday, December 17, 2009 6:28 PM
&lt;br&gt;To: Eric Norum
&lt;br&gt;Cc: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26836830&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;newlib@...&lt;/a&gt;
&lt;br&gt;Subject: Re: VMIN/VTIME and read expectations
&lt;br&gt;&lt;br&gt;On 12/17/2009 04:30 PM, Eric Norum wrote:
&lt;br&gt;&amp;gt; When you're using VMIN=0, VTIME=255 you have ICANON=0 so 'end-of-file'
&lt;br&gt;doesn't really exist.
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&lt;br&gt;I was kind of guessing that. &amp;nbsp;Unfortunately &amp;nbsp;this is in the RTEMS login 
&lt;br&gt;code.
&lt;br&gt;I can make it work OK for serial ports but when attached to a socket, I
&lt;br&gt;have no idea how to detect when the socket is dropped.
&lt;br&gt;&lt;br&gt;I switched to calling read() and as documented, it always returns 0
&lt;br&gt;when there is no data. &amp;nbsp;When the connection is dropped, it returns 0
&lt;br&gt;VERY quickly. &amp;nbsp;Do you think this part is a bug in the read on a socket?
&lt;br&gt;&lt;br&gt;If this turns into an RTEMS specific issue, we need to switch lists.
&lt;br&gt;But I would really like to know what is correct. :)
&lt;br&gt;&lt;br&gt;--joel
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; On Dec 17, 2009, at 2:16 PM, Joel Sherrill wrote:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt; Hi,
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; I have been looking into a program on RTEMS that
&lt;br&gt;&amp;gt;&amp;gt; uses VMIN=0, VTIME=255. The program calls
&lt;br&gt;&amp;gt;&amp;gt; fgetc() which calls read().
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; fp-&amp;gt;_flags == 0x2806 before the fgetc() call.
&lt;br&gt;&amp;gt;&amp;gt; read() times out and returns 0.
&lt;br&gt;&amp;gt;&amp;gt; fgetc() returns -1 and fp-&amp;gt;_flags == 0x2826
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; The 0x0020 being set is _SEOF.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; My questions are:
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; + Is this correct behaviour?
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; + How does the application programmer distinguish
&lt;br&gt;&amp;gt;&amp;gt; between a real EOF and an unsatisfied read? &amp;nbsp;Even the
&lt;br&gt;&amp;gt;&amp;gt; Fedora read(2) man page says:
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;On success, the number of bytes read is returned (zero
&lt;/div&gt;indicates end of
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;file), and the file position is advanced by this number.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; So even if I dropped down to read(2), I still don't know
&lt;br&gt;&amp;gt;&amp;gt; how to distinguish EOF from a read timeout.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Thanks.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; -- 
&lt;br&gt;&amp;gt;&amp;gt; Joel Sherrill, Ph.D. &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Director of Research&amp; &amp;nbsp; Development
&lt;br&gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26836830&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;joel.sherrill@...&lt;/a&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;On-Line Applications Research
&lt;br&gt;&amp;gt;&amp;gt; Ask me about RTEMS: a free RTOS &amp;nbsp;Huntsville AL 35805
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp;Support Available &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (256) 722-9985
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;
&lt;/div&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Joel Sherrill, Ph.D. &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Director of Research&amp; &amp;nbsp;Development
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26836830&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;joel.sherrill@...&lt;/a&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;On-Line Applications Research
&lt;br&gt;Ask me about RTEMS: a free RTOS &amp;nbsp;Huntsville AL 35805
&lt;br&gt;&amp;nbsp; &amp;nbsp; Support Available &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (256) 722-9985
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Sourceware---newlib-list-f12241.html&quot; embed=&quot;fixTarget[12241]&quot; target=&quot;_top&quot; &gt;Sourceware - newlib list&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/VMIN-VTIME-and-read-expectations-tp26835994p26836830.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26836780</id>
	<title>Re: VMIN/VTIME and read expectations</title>
	<published>2009-12-17T15:27:49Z</published>
	<updated>2009-12-17T15:27:49Z</updated>
	<author>
		<name>Joel Sherrill &lt;joel@OARcorp.com&gt;</name>
	</author>
	<content type="html">On 12/17/2009 04:30 PM, Eric Norum wrote:
&lt;br&gt;&amp;gt; When you're using VMIN=0, VTIME=255 you have ICANON=0 so 'end-of-file' doesn't really exist.
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&lt;br&gt;I was kind of guessing that. &amp;nbsp;Unfortunately &amp;nbsp;this is in the RTEMS login 
&lt;br&gt;code.
&lt;br&gt;I can make it work OK for serial ports but when attached to a socket, I
&lt;br&gt;have no idea how to detect when the socket is dropped.
&lt;br&gt;&lt;br&gt;I switched to calling read() and as documented, it always returns 0
&lt;br&gt;when there is no data. &amp;nbsp;When the connection is dropped, it returns 0
&lt;br&gt;VERY quickly. &amp;nbsp;Do you think this part is a bug in the read on a socket?
&lt;br&gt;&lt;br&gt;If this turns into an RTEMS specific issue, we need to switch lists.
&lt;br&gt;But I would really like to know what is correct. :)
&lt;br&gt;&lt;br&gt;--joel
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; On Dec 17, 2009, at 2:16 PM, Joel Sherrill wrote:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt; Hi,
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; I have been looking into a program on RTEMS that
&lt;br&gt;&amp;gt;&amp;gt; uses VMIN=0, VTIME=255. The program calls
&lt;br&gt;&amp;gt;&amp;gt; fgetc() which calls read().
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; fp-&amp;gt;_flags == 0x2806 before the fgetc() call.
&lt;br&gt;&amp;gt;&amp;gt; read() times out and returns 0.
&lt;br&gt;&amp;gt;&amp;gt; fgetc() returns -1 and fp-&amp;gt;_flags == 0x2826
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; The 0x0020 being set is _SEOF.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; My questions are:
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; + Is this correct behaviour?
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; + How does the application programmer distinguish
&lt;br&gt;&amp;gt;&amp;gt; between a real EOF and an unsatisfied read? &amp;nbsp;Even the
&lt;br&gt;&amp;gt;&amp;gt; Fedora read(2) man page says:
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;On success, the number of bytes read is returned (zero indicates end of
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;file), and the file position is advanced by this number.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; So even if I dropped down to read(2), I still don't know
&lt;br&gt;&amp;gt;&amp;gt; how to distinguish EOF from a read timeout.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Thanks.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; -- 
&lt;br&gt;&amp;gt;&amp;gt; Joel Sherrill, Ph.D. &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Director of Research&amp; &amp;nbsp; Development
&lt;br&gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26836780&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;joel.sherrill@...&lt;/a&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;On-Line Applications Research
&lt;br&gt;&amp;gt;&amp;gt; Ask me about RTEMS: a free RTOS &amp;nbsp;Huntsville AL 35805
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp;Support Available &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (256) 722-9985
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;
&lt;/div&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Joel Sherrill, Ph.D. &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Director of Research&amp; &amp;nbsp;Development
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26836780&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;joel.sherrill@...&lt;/a&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;On-Line Applications Research
&lt;br&gt;Ask me about RTEMS: a free RTOS &amp;nbsp;Huntsville AL 35805
&lt;br&gt;&amp;nbsp; &amp;nbsp; Support Available &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (256) 722-9985
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Sourceware---newlib-list-f12241.html&quot; embed=&quot;fixTarget[12241]&quot; target=&quot;_top&quot; &gt;Sourceware - newlib list&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/VMIN-VTIME-and-read-expectations-tp26835994p26836780.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26836272</id>
	<title>Re: VMIN/VTIME and read expectations</title>
	<published>2009-12-17T14:36:56Z</published>
	<updated>2009-12-17T14:36:56Z</updated>
	<author>
		<name>Eric Norum</name>
	</author>
	<content type="html">Hit 'send' too soon.
&lt;br&gt;Of course if you're using the modem control lines (CLOCAL=0) then a loss-of-carrier will also result in read returning 0.
&lt;br&gt;So I guess there is a ambiguity after all. &amp;nbsp;
&lt;br&gt;&lt;br&gt;On Dec 17, 2009, at 2:30 PM, Eric Norum wrote:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; When you're using VMIN=0, VTIME=255 you have ICANON=0 so 'end-of-file' doesn't really exist. &amp;nbsp; 
&lt;br&gt;&amp;gt; On Dec 17, 2009, at 2:16 PM, Joel Sherrill wrote:
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; Hi,
&lt;br&gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; I have been looking into a program on RTEMS that
&lt;br&gt;&amp;gt;&amp;gt; uses VMIN=0, VTIME=255. The program calls
&lt;br&gt;&amp;gt;&amp;gt; fgetc() which calls read().
&lt;br&gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; fp-&amp;gt;_flags == 0x2806 before the fgetc() call.
&lt;br&gt;&amp;gt;&amp;gt; read() times out and returns 0.
&lt;br&gt;&amp;gt;&amp;gt; fgetc() returns -1 and fp-&amp;gt;_flags == 0x2826
&lt;br&gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; The 0x0020 being set is _SEOF.
&lt;br&gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; My questions are:
&lt;br&gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; + Is this correct behaviour?
&lt;br&gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; + How does the application programmer distinguish
&lt;br&gt;&amp;gt;&amp;gt; between a real EOF and an unsatisfied read? &amp;nbsp;Even the
&lt;br&gt;&amp;gt;&amp;gt; Fedora read(2) man page says:
&lt;br&gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;On success, the number of bytes read is returned (zero indicates end of
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;file), and the file position is advanced by this number.
&lt;br&gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; So even if I dropped down to read(2), I still don't know
&lt;br&gt;&amp;gt;&amp;gt; how to distinguish EOF from a read timeout.
&lt;br&gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; Thanks.
&lt;br&gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; -- 
&lt;br&gt;&amp;gt;&amp;gt; Joel Sherrill, Ph.D. &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Director of Research&amp; &amp;nbsp;Development
&lt;br&gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26836272&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;joel.sherrill@...&lt;/a&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;On-Line Applications Research
&lt;br&gt;&amp;gt;&amp;gt; Ask me about RTEMS: a free RTOS &amp;nbsp;Huntsville AL 35805
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;Support Available &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (256) 722-9985
&lt;br&gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; -- 
&lt;br&gt;&amp;gt; Eric Norum
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26836272&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;eric@...&lt;/a&gt;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;Eric Norum
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26836272&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;eric@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Sourceware---newlib-list-f12241.html&quot; embed=&quot;fixTarget[12241]&quot; target=&quot;_top&quot; &gt;Sourceware - newlib list&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/VMIN-VTIME-and-read-expectations-tp26835994p26836272.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26836199</id>
	<title>Re: VMIN/VTIME and read expectations</title>
	<published>2009-12-17T14:30:39Z</published>
	<updated>2009-12-17T14:30:39Z</updated>
	<author>
		<name>Eric Norum</name>
	</author>
	<content type="html">When you're using VMIN=0, VTIME=255 you have ICANON=0 so 'end-of-file' doesn't really exist. &amp;nbsp; 
&lt;br&gt;On Dec 17, 2009, at 2:16 PM, Joel Sherrill wrote:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Hi,
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; I have been looking into a program on RTEMS that
&lt;br&gt;&amp;gt; uses VMIN=0, VTIME=255. The program calls
&lt;br&gt;&amp;gt; fgetc() which calls read().
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; fp-&amp;gt;_flags == 0x2806 before the fgetc() call.
&lt;br&gt;&amp;gt; read() times out and returns 0.
&lt;br&gt;&amp;gt; fgetc() returns -1 and fp-&amp;gt;_flags == 0x2826
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; The 0x0020 being set is _SEOF.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; My questions are:
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; + Is this correct behaviour?
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; + How does the application programmer distinguish
&lt;br&gt;&amp;gt; between a real EOF and an unsatisfied read? &amp;nbsp;Even the
&lt;br&gt;&amp;gt; Fedora read(2) man page says:
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; On success, the number of bytes read is returned (zero indicates end of
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; file), and the file position is advanced by this number.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; So even if I dropped down to read(2), I still don't know
&lt;br&gt;&amp;gt; how to distinguish EOF from a read timeout.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Thanks.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; -- 
&lt;br&gt;&amp;gt; Joel Sherrill, Ph.D. &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Director of Research&amp; &amp;nbsp;Development
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26836199&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;joel.sherrill@...&lt;/a&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;On-Line Applications Research
&lt;br&gt;&amp;gt; Ask me about RTEMS: a free RTOS &amp;nbsp;Huntsville AL 35805
&lt;br&gt;&amp;gt; &amp;nbsp; Support Available &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (256) 722-9985
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;Eric Norum
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26836199&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;eric@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Sourceware---newlib-list-f12241.html&quot; embed=&quot;fixTarget[12241]&quot; target=&quot;_top&quot; &gt;Sourceware - newlib list&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/VMIN-VTIME-and-read-expectations-tp26835994p26836199.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26836193</id>
	<title>Away for the holidays</title>
	<published>2009-12-17T14:30:11Z</published>
	<updated>2009-12-17T14:30:11Z</updated>
	<author>
		<name>Jeff Johnston</name>
	</author>
	<content type="html">I will be away until Jan 4th on Christmas vacation. &amp;nbsp;If you celebrate 
&lt;br&gt;Christmas, Merry Christmas to you, otherwise, enjoy Happy Holidays and 
&lt;br&gt;have a Happy New Year.
&lt;br&gt;&lt;br&gt;If there are any 1.18.0 issues, I'll deal with them in the New Year.
&lt;br&gt;&lt;br&gt;Regards,
&lt;br&gt;&lt;br&gt;-- Jeff J.
&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Sourceware---newlib-list-f12241.html&quot; embed=&quot;fixTarget[12241]&quot; target=&quot;_top&quot; &gt;Sourceware - newlib list&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Away-for-the-holidays-tp26836193p26836193.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26836110</id>
	<title>Newlib 1.18.0 is released</title>
	<published>2009-12-17T14:24:09Z</published>
	<updated>2009-12-17T14:24:09Z</updated>
	<author>
		<name>Jeff Johnston</name>
	</author>
	<content type="html">The latest snapshot is on the web-site.
&lt;br&gt;&lt;br&gt;Thanks to everyone who contributed.
&lt;br&gt;&lt;br&gt;*** Major changes in newlib version 1.18.0:
&lt;br&gt;&lt;br&gt;* wide-char enhancements
&lt;br&gt;* long double math routines added for platforms where LDBL == DBL
&lt;br&gt;* long long math routines added
&lt;br&gt;* math cleanup
&lt;br&gt;* UTF-16 modifications for Cygwin
&lt;br&gt;* major locale charset overhaul including added charsets
&lt;br&gt;* added moxie platform
&lt;br&gt;* added rx platform
&lt;br&gt;* added xc16x platform
&lt;br&gt;* various cleanups
&lt;br&gt;* various bug fixes
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Sourceware---newlib-list-f12241.html&quot; embed=&quot;fixTarget[12241]&quot; target=&quot;_top&quot; &gt;Sourceware - newlib list&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Newlib-1.18.0-is-released-tp26836110p26836110.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26835994</id>
	<title>VMIN/VTIME and read expectations</title>
	<published>2009-12-17T14:16:14Z</published>
	<updated>2009-12-17T14:16:14Z</updated>
	<author>
		<name>Joel Sherrill &lt;joel@OARcorp.com&gt;</name>
	</author>
	<content type="html">Hi,
&lt;br&gt;&lt;br&gt;I have been looking into a program on RTEMS that
&lt;br&gt;uses VMIN=0, VTIME=255. The program calls
&lt;br&gt;fgetc() which calls read().
&lt;br&gt;&lt;br&gt;fp-&amp;gt;_flags == 0x2806 before the fgetc() call.
&lt;br&gt;read() times out and returns 0.
&lt;br&gt;fgetc() returns -1 and fp-&amp;gt;_flags == 0x2826
&lt;br&gt;&lt;br&gt;&lt;br&gt;The 0x0020 being set is _SEOF.
&lt;br&gt;&lt;br&gt;My questions are:
&lt;br&gt;&lt;br&gt;+ Is this correct behaviour?
&lt;br&gt;&lt;br&gt;+ How does the application programmer distinguish
&lt;br&gt;between a real EOF and an unsatisfied read? &amp;nbsp;Even the
&lt;br&gt;Fedora read(2) man page says:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; On success, the number of bytes read is returned (zero indicates 
&lt;br&gt;end of
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; file), and the file position is advanced by this number.
&lt;br&gt;&lt;br&gt;So even if I dropped down to read(2), I still don't know
&lt;br&gt;how to distinguish EOF from a read timeout.
&lt;br&gt;&lt;br&gt;Thanks.
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Joel Sherrill, Ph.D. &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Director of Research&amp; &amp;nbsp;Development
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26835994&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;joel.sherrill@...&lt;/a&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;On-Line Applications Research
&lt;br&gt;Ask me about RTEMS: a free RTOS &amp;nbsp;Huntsville AL 35805
&lt;br&gt;&amp;nbsp; &amp;nbsp; Support Available &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (256) 722-9985
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Sourceware---newlib-list-f12241.html&quot; embed=&quot;fixTarget[12241]&quot; target=&quot;_top&quot; &gt;Sourceware - newlib list&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/VMIN-VTIME-and-read-expectations-tp26835994p26835994.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26833807</id>
	<title>Re: Mixing function pointers and regular functions with the _EXFUN  macro</title>
	<published>2009-12-17T11:43:59Z</published>
	<updated>2009-12-17T11:43:59Z</updated>
	<author>
		<name>Jeff Johnston</name>
	</author>
	<content type="html">On 16/12/09 07:41 PM, Jerker Bäck wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt;&amp;gt; Leave the original _EXPARM macro alone and create a new macro: _EXFNPTR
&lt;br&gt;&amp;gt;&amp;gt; which you can define as you have changed _EXPARM. &amp;nbsp;Use the new macro in
&lt;br&gt;&amp;gt;&amp;gt; your patch and please post the finished patch &amp;quot;here&amp;quot; and not in the bug.
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp;I am going to close bugzillas from now on immediately.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; If you can do this by tomorrow afternoon, I'll get the patch in for the
&lt;br&gt;&amp;gt;&amp;gt; snapshot.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; -- Jeff J.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; OK, thanks!
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I agree completely with Craig that _EXFNPTR is a better name. I also think
&lt;br&gt;&amp;gt; that the original idea from 2000 is a clever model, since it solves a common
&lt;br&gt;&amp;gt; issue when compiling unix source in Windows. Just note that for the patch to
&lt;br&gt;&amp;gt; work, it has to be consistently applied to all function pointers, leaving
&lt;br&gt;&amp;gt; the old macro name obsolete. Also note the changes in unistd.h.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Cheers
&lt;br&gt;&amp;gt; Jerker B
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;/div&gt;&lt;br&gt;Patch applied.
&lt;br&gt;&lt;br&gt;-- Jeff J.
&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Sourceware---newlib-list-f12241.html&quot; embed=&quot;fixTarget[12241]&quot; target=&quot;_top&quot; &gt;Sourceware - newlib list&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Mixing-function-pointers-and-regular-functions-with-the-_EXFUN-macro-tp26744013p26833807.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26833576</id>
	<title>Re: RTEMS patch sweep 5</title>
	<published>2009-12-17T11:26:52Z</published>
	<updated>2009-12-17T11:26:52Z</updated>
	<author>
		<name>Jeff Johnston</name>
	</author>
	<content type="html">On 17/12/09 01:45 AM, Ralf Corsepius wrote:
&lt;br&gt;&amp;gt; 2009-12-17	Ralf CorsÃ©pius&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26833576&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;ralf.corsepius@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; 	* libc/include/machine/ieeefp.h: Rework __IEEE_*_ENDIAN handling.
&lt;br&gt;&amp;gt; 	* libc/machine/arm/machine/endian.h: Remove (Conflicts with
&lt;br&gt;&amp;gt; 	libc/include/machine/endian.h)
&lt;br&gt;&amp;gt;
&lt;br&gt;&lt;br&gt;Patch applied.
&lt;br&gt;&lt;br&gt;-- Jeff J.
&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Sourceware---newlib-list-f12241.html&quot; embed=&quot;fixTarget[12241]&quot; target=&quot;_top&quot; &gt;Sourceware - newlib list&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/RTEMS-patch-sweep-5-tp26823941p26833576.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26833549</id>
	<title>Re: RTEMS patch sweep 4</title>
	<published>2009-12-17T11:24:34Z</published>
	<updated>2009-12-17T11:24:34Z</updated>
	<author>
		<name>Jeff Johnston</name>
	</author>
	<content type="html">On 17/12/09 01:09 AM, Ralf Corsepius wrote:
&lt;br&gt;&amp;gt; 2009-12-17	Ralf CorsÃ©pius&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26833549&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;ralf.corsepius@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; 	* libc/include/machine/setjmp.h: Set up _JBLEN #ifdef __m68k__.
&lt;br&gt;&amp;gt;
&lt;br&gt;&lt;br&gt;Patch applied. &amp;nbsp;Thanks.
&lt;br&gt;&lt;br&gt;-- Jeff J.
&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Sourceware---newlib-list-f12241.html&quot; embed=&quot;fixTarget[12241]&quot; target=&quot;_top&quot; &gt;Sourceware - newlib list&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/RTEMS-patch-sweep-4-tp26823670p26833549.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26833527</id>
	<title>Re: RTEMS patch sweep 3</title>
	<published>2009-12-17T11:22:58Z</published>
	<updated>2009-12-17T11:22:58Z</updated>
	<author>
		<name>Jeff Johnston</name>
	</author>
	<content type="html">On 17/12/09 02:19 PM, Jeff Johnston wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; On 17/12/09 11:55 AM, Ralf Corsepius wrote:
&lt;br&gt;&amp;gt;&amp;gt; On 12/17/2009 05:34 PM, Jeff Johnston wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; On 16/12/09 10:42 PM, Ralf Corsepius wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; On 12/16/2009 07:45 PM, Jeff Johnston wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; On 16/12/09 12:53 PM, Ralf Corsepius wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; On 12/16/2009 06:50 PM, Ralf Corsepius wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Hi,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; ... and another one.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; This patch aims at making some parts of newlib more posix compliant.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; One part is #ifdef'ed __rtems__, because it relies on (POSIX) types
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; which (AFAICT) newlib currently are only supplies for RTEMS
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; (blksize_t,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; blkcnt_t) and because we haven't tested it in other configurations
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; but
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; in RTEMS configurations.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Ralf
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Oops, fingers faster than brains - The attachment containing the
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; patch
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; was missing ;)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Ralf
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Shouldn't the added #endif be after the long st_spare4[]? Otherwise,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; you
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; are changing the struct for the #if before it which normally wouldn't
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; have included this field.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; I am not sure. It would depend upon which purpose st_spare4 was
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; intended
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; to be used for, IMO.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Probably it was only &amp;quot;having 2 longs in reserve&amp;quot; to void breaking
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; backward compatibility, in case should one want to extend &amp;quot;struct
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; stat&amp;quot;.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; As we consider newlib-version upgrades to be &amp;quot;not ABI/API-preserving&amp;quot;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; and utilize newlib-version upgrades to deliberately break API/ABIs,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; this
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; point is not of much importance to us.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; The only effect keeping st_spare4 should have on RTEMS would be
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;quot;wasting
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; 2 longs&amp;quot; on &amp;quot;struct stat&amp;quot; and keeping this field available should
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; newlib
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; start using it internally.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; That said, I don't have a problem with moving the #endif, such that
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; st_spare4 stays also preserved on RTEMS.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Below is an updated patch, now with st_spare4 kept for RTEMS.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Ralf
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Actually, I am referring to the fact that the
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; #if defined(__svr4__) &amp;&amp; !defined(__PPC__) &amp;&amp; !defined(__sun__)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; did not previously get the spare fields prior to your change. Now they
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; do. I believe that both #endifs belong after the spare fields.
&lt;br&gt;&amp;gt;&amp;gt; Ah, now I see! Yes, this wasn't intended. I had wanted to preserve the
&lt;br&gt;&amp;gt;&amp;gt; previous state for the non-rtems targets.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Can you change this or shall I submit another patch?
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Ralf
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I'll fix it. Just wanted to make sure what was intended.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; -- Jeff J.
&lt;/div&gt;&lt;br&gt;Done with modification.
&lt;br&gt;&lt;br&gt;-- Jeff J.
&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Sourceware---newlib-list-f12241.html&quot; embed=&quot;fixTarget[12241]&quot; target=&quot;_top&quot; &gt;Sourceware - newlib list&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/RTEMS-patch-sweep-3-tp26815455p26833527.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26833470</id>
	<title>Re: RTEMS patch sweep 3</title>
	<published>2009-12-17T11:19:09Z</published>
	<updated>2009-12-17T11:19:09Z</updated>
	<author>
		<name>Jeff Johnston</name>
	</author>
	<content type="html">On 17/12/09 11:55 AM, Ralf Corsepius wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; On 12/17/2009 05:34 PM, Jeff Johnston wrote:
&lt;br&gt;&amp;gt;&amp;gt; On 16/12/09 10:42 PM, Ralf Corsepius wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; On 12/16/2009 07:45 PM, Jeff Johnston wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; On 16/12/09 12:53 PM, Ralf Corsepius wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; On 12/16/2009 06:50 PM, Ralf Corsepius wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Hi,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; ... and another one.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; This patch aims at making some parts of newlib more posix compliant.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; One part is #ifdef'ed __rtems__, because it relies on (POSIX) types
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; which (AFAICT) newlib currently are only supplies for RTEMS
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; (blksize_t,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; blkcnt_t) and because we haven't tested it in other configurations
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; but
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; in RTEMS configurations.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Ralf
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Oops, fingers faster than brains - The attachment containing the patch
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; was missing ;)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Ralf
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Shouldn't the added #endif be after the long st_spare4[]? Otherwise,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; you
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; are changing the struct for the #if before it which normally wouldn't
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; have included this field.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; I am not sure. It would depend upon which purpose st_spare4 was intended
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; to be used for, IMO.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Probably it was only &amp;quot;having 2 longs in reserve&amp;quot; to void breaking
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; backward compatibility, in case should one want to extend &amp;quot;struct stat&amp;quot;.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; As we consider newlib-version upgrades to be &amp;quot;not ABI/API-preserving&amp;quot;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; and utilize newlib-version upgrades to deliberately break API/ABIs, this
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; point is not of much importance to us.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; The only effect keeping st_spare4 should have on RTEMS would be &amp;quot;wasting
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; 2 longs&amp;quot; on &amp;quot;struct stat&amp;quot; and keeping this field available should newlib
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; start using it internally.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; That said, I don't have a problem with moving the #endif, such that
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; st_spare4 stays also preserved on RTEMS.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Below is an updated patch, now with st_spare4 kept for RTEMS.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Ralf
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Actually, I am referring to the fact that the
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; #if defined(__svr4__) &amp;&amp; !defined(__PPC__) &amp;&amp; !defined(__sun__)
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; did not previously get the spare fields prior to your change. Now they
&lt;br&gt;&amp;gt;&amp;gt; do. I believe that both #endifs belong after the spare fields.
&lt;br&gt;&amp;gt; Ah, now I see! Yes, this wasn't intended. I had wanted to preserve the
&lt;br&gt;&amp;gt; previous state for the non-rtems targets.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Can you change this or shall I submit another patch?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Ralf
&lt;br&gt;&amp;gt;
&lt;/div&gt;&lt;br&gt;I'll fix it. &amp;nbsp;Just wanted to make sure what was intended.
&lt;br&gt;&lt;br&gt;-- Jeff J.
&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Sourceware---newlib-list-f12241.html&quot; embed=&quot;fixTarget[12241]&quot; target=&quot;_top&quot; &gt;Sourceware - newlib list&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/RTEMS-patch-sweep-3-tp26815455p26833470.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26831251</id>
	<title>Re: RTEMS patch sweep 3</title>
	<published>2009-12-17T08:55:21Z</published>
	<updated>2009-12-17T08:55:21Z</updated>
	<author>
		<name>Ralf Corsepius-2</name>
	</author>
	<content type="html">On 12/17/2009 05:34 PM, Jeff Johnston wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; On 16/12/09 10:42 PM, Ralf Corsepius wrote:
&lt;br&gt;&amp;gt;&amp;gt; On 12/16/2009 07:45 PM, Jeff Johnston wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; On 16/12/09 12:53 PM, Ralf Corsepius wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; On 12/16/2009 06:50 PM, Ralf Corsepius wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Hi,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; ... and another one.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; This patch aims at making some parts of newlib more posix compliant.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; One part is #ifdef'ed __rtems__, because it relies on (POSIX) types
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; which (AFAICT) newlib currently are only supplies for RTEMS 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; (blksize_t,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; blkcnt_t) and because we haven't tested it in other configurations 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; but
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; in RTEMS configurations.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Ralf
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Oops, fingers faster than brains - The attachment containing the patch
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; was missing ;)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Ralf
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Shouldn't the added #endif be after the long st_spare4[]? Otherwise, 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; you
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; are changing the struct for the #if before it which normally wouldn't
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; have included this field.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; I am not sure. It would depend upon which purpose st_spare4 was intended
&lt;br&gt;&amp;gt;&amp;gt; to be used for, IMO.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Probably it was only &amp;quot;having 2 longs in reserve&amp;quot; to void breaking
&lt;br&gt;&amp;gt;&amp;gt; backward compatibility, in case should one want to extend &amp;quot;struct stat&amp;quot;.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; As we consider newlib-version upgrades to be &amp;quot;not ABI/API-preserving&amp;quot;
&lt;br&gt;&amp;gt;&amp;gt; and utilize newlib-version upgrades to deliberately break API/ABIs, this
&lt;br&gt;&amp;gt;&amp;gt; point is not of much importance to us.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; The only effect keeping st_spare4 should have on RTEMS would be &amp;quot;wasting
&lt;br&gt;&amp;gt;&amp;gt; 2 longs&amp;quot; on &amp;quot;struct stat&amp;quot; and keeping this field available should newlib
&lt;br&gt;&amp;gt;&amp;gt; start using it internally.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; That said, I don't have a problem with moving the #endif, such that
&lt;br&gt;&amp;gt;&amp;gt; st_spare4 stays also preserved on RTEMS.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Below is an updated patch, now with st_spare4 kept for RTEMS.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Ralf
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Actually, I am referring to the fact that the
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; #if defined(__svr4__) &amp;&amp; !defined(__PPC__) &amp;&amp; !defined(__sun__)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; did not previously get the spare fields prior to your change. &amp;nbsp;Now 
&lt;br&gt;&amp;gt; they do. &amp;nbsp;I believe that both #endifs belong after the spare fields.
&lt;/div&gt;Ah, now I see! Yes, this wasn't intended. I had wanted to preserve the 
&lt;br&gt;previous state for the non-rtems targets.
&lt;br&gt;&lt;br&gt;Can you change this or shall I submit another patch?
&lt;br&gt;&lt;br&gt;Ralf
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Sourceware---newlib-list-f12241.html&quot; embed=&quot;fixTarget[12241]&quot; target=&quot;_top&quot; &gt;Sourceware - newlib list&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/RTEMS-patch-sweep-3-tp26815455p26831251.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26830905</id>
	<title>Re: RTEMS patch sweep 3</title>
	<published>2009-12-17T08:34:13Z</published>
	<updated>2009-12-17T08:34:13Z</updated>
	<author>
		<name>Jeff Johnston</name>
	</author>
	<content type="html">On 16/12/09 10:42 PM, Ralf Corsepius wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; On 12/16/2009 07:45 PM, Jeff Johnston wrote:
&lt;br&gt;&amp;gt;&amp;gt; On 16/12/09 12:53 PM, Ralf Corsepius wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; On 12/16/2009 06:50 PM, Ralf Corsepius wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Hi,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; ... and another one.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; This patch aims at making some parts of newlib more posix compliant.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; One part is #ifdef'ed __rtems__, because it relies on (POSIX) types
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; which (AFAICT) newlib currently are only supplies for RTEMS (blksize_t,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; blkcnt_t) and because we haven't tested it in other configurations but
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; in RTEMS configurations.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Ralf
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Oops, fingers faster than brains - The attachment containing the patch
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; was missing ;)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Ralf
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Shouldn't the added #endif be after the long st_spare4[]? Otherwise, you
&lt;br&gt;&amp;gt;&amp;gt; are changing the struct for the #if before it which normally wouldn't
&lt;br&gt;&amp;gt;&amp;gt; have included this field.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I am not sure. It would depend upon which purpose st_spare4 was intended
&lt;br&gt;&amp;gt; to be used for, IMO.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Probably it was only &amp;quot;having 2 longs in reserve&amp;quot; to void breaking
&lt;br&gt;&amp;gt; backward compatibility, in case should one want to extend &amp;quot;struct stat&amp;quot;.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; As we consider newlib-version upgrades to be &amp;quot;not ABI/API-preserving&amp;quot;
&lt;br&gt;&amp;gt; and utilize newlib-version upgrades to deliberately break API/ABIs, this
&lt;br&gt;&amp;gt; point is not of much importance to us.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; The only effect keeping st_spare4 should have on RTEMS would be &amp;quot;wasting
&lt;br&gt;&amp;gt; 2 longs&amp;quot; on &amp;quot;struct stat&amp;quot; and keeping this field available should newlib
&lt;br&gt;&amp;gt; start using it internally.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; That said, I don't have a problem with moving the #endif, such that
&lt;br&gt;&amp;gt; st_spare4 stays also preserved on RTEMS.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Below is an updated patch, now with st_spare4 kept for RTEMS.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Ralf
&lt;/div&gt;&lt;br&gt;Actually, I am referring to the fact that the
&lt;br&gt;&lt;br&gt;#if defined(__svr4__) &amp;&amp; !defined(__PPC__) &amp;&amp; !defined(__sun__)
&lt;br&gt;&lt;br&gt;did not previously get the spare fields prior to your change. &amp;nbsp;Now they 
&lt;br&gt;do. &amp;nbsp;I believe that both #endifs belong after the spare fields.
&lt;br&gt;&lt;br&gt;-- Jeff J.
&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Sourceware---newlib-list-f12241.html&quot; embed=&quot;fixTarget[12241]&quot; target=&quot;_top&quot; &gt;Sourceware - newlib list&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/RTEMS-patch-sweep-3-tp26815455p26830905.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26830498</id>
	<title>Re: RTEMS patch sweep</title>
	<published>2009-12-17T08:10:58Z</published>
	<updated>2009-12-17T08:10:58Z</updated>
	<author>
		<name>Jeff Johnston</name>
	</author>
	<content type="html">On 16/12/09 10:10 PM, Ralf Corsepius wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; On 12/16/2009 07:28 PM, Jeff Johnston wrote:
&lt;br&gt;&amp;gt;&amp;gt; On 16/12/09 12:28 PM, Ralf Corsepius wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Hi,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Below is a patch containing RTEMS-only patches to newlib, we would like
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; to see incorporated in the upcoming newlib tarball.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Ralf
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Patch applied.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Could it be you missed to
&lt;br&gt;&amp;gt; cvs add libc/sys/rtems/machine/_types.h ?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Ralf
&lt;/div&gt;&lt;br&gt;Yes, thanks for catching that. &amp;nbsp;Fixed.
&lt;br&gt;&lt;br&gt;-- Jeff J.
&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Sourceware---newlib-list-f12241.html&quot; embed=&quot;fixTarget[12241]&quot; target=&quot;_top&quot; &gt;Sourceware - newlib list&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/RTEMS-patch-sweep-tp26815087p26830498.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26823941</id>
	<title>RTEMS patch sweep 5</title>
	<published>2009-12-16T22:45:43Z</published>
	<updated>2009-12-16T22:45:43Z</updated>
	<author>
		<name>Ralf Corsepius-2</name>
	</author>
	<content type="html">... and another one:
&lt;br&gt;&lt;br&gt;This patch addresses 2 issues with newlib's arm support:
&lt;br&gt;&lt;br&gt;* libc/machine/arm/machine/endian.h clashes with
&lt;br&gt;libc/include/machine/endian.h.
&lt;br&gt;&lt;br&gt;The build machinery physically replaces libc/include/machine/endian.h 
&lt;br&gt;with libc/machine/arm/machine/endian.h, resulting into broken installations.
&lt;br&gt;&lt;br&gt;* Several subtile issues in arm fpu handling in ieeefp.h.
&lt;br&gt;&lt;br&gt;Ralf
&lt;br&gt;&lt;br /&gt;2009-12-17	Ralf CorsÃ©pius &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26823941&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;ralf.corsepius@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * libc/include/machine/ieeefp.h: Rework __IEEE_*_ENDIAN handling.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * libc/machine/arm/machine/endian.h: Remove (Conflicts with 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; libc/include/machine/endian.h)
&lt;br&gt;&lt;br&gt;Index: libc/include/machine/ieeefp.h
&lt;br&gt;===================================================================
&lt;br&gt;RCS file: /cvs/src/src/newlib/libc/include/machine/ieeefp.h,v
&lt;br&gt;retrieving revision 1.43
&lt;br&gt;diff -u -r1.43 ieeefp.h
&lt;br&gt;--- libc/include/machine/ieeefp.h	10 Dec 2009 17:12:11 -0000	1.43
&lt;br&gt;+++ libc/include/machine/ieeefp.h	17 Dec 2009 06:36:39 -0000
&lt;br&gt;@@ -62,8 +62,12 @@
&lt;br&gt;&amp;nbsp;# &amp;nbsp;define __IEEE_BIG_ENDIAN
&lt;br&gt;&amp;nbsp;# endif
&lt;br&gt;&amp;nbsp;#else
&lt;br&gt;-# define __IEEE_BIG_ENDIAN
&lt;br&gt;&amp;nbsp;# ifdef __ARMEL__
&lt;br&gt;+# &amp;nbsp;define __IEEE_LITTLE_ENDIAN
&lt;br&gt;+# else
&lt;br&gt;+# &amp;nbsp;define __IEEE_BIG_ENDIAN
&lt;br&gt;+# endif
&lt;br&gt;+# ifdef __ARMWEL__
&lt;br&gt;&amp;nbsp;# &amp;nbsp;define __IEEE_BYTES_LITTLE_ENDIAN
&lt;br&gt;&amp;nbsp;# endif
&lt;br&gt;&amp;nbsp;#endif
&lt;br&gt;Index: libc/machine/arm/machine/endian.h
&lt;br&gt;===================================================================
&lt;br&gt;RCS file: libc/machine/arm/machine/endian.h
&lt;br&gt;diff -N libc/machine/arm/machine/endian.h
&lt;br&gt;--- libc/machine/arm/machine/endian.h	7 May 2004 20:29:24 -0000	1.1
&lt;br&gt;+++ /dev/null	1 Jan 1970 00:00:00 -0000
&lt;br&gt;@@ -1,12 +0,0 @@
&lt;br&gt;-/* ARM configuration file */
&lt;br&gt;-
&lt;br&gt;-#ifndef _MACHINE_ENDIAN_H
&lt;br&gt;-# define _MACHINE_ENDIAN_H
&lt;br&gt;-
&lt;br&gt;-#ifdef __ARMEB__
&lt;br&gt;-#define BYTE_ORDER BIG_ENDIAN
&lt;br&gt;-#else
&lt;br&gt;-#define BYTE_ORDER LITTLE_ENDIAN
&lt;br&gt;-#endif
&lt;br&gt;-
&lt;br&gt;-#endif
&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Sourceware---newlib-list-f12241.html&quot; embed=&quot;fixTarget[12241]&quot; target=&quot;_top&quot; &gt;Sourceware - newlib list&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/RTEMS-patch-sweep-5-tp26823941p26823941.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26823670</id>
	<title>RTEMS patch sweep 4</title>
	<published>2009-12-16T22:09:37Z</published>
	<updated>2009-12-16T22:09:37Z</updated>
	<author>
		<name>Ralf Corsepius-2</name>
	</author>
	<content type="html">Hi,
&lt;br&gt;&lt;br&gt;another RTEMS patch, we would like to see incorporated into the upcoming 
&lt;br&gt;newlib release.
&lt;br&gt;&lt;br&gt;We are carrying this patch with us for many years, but it for some 
&lt;br&gt;reasons has never made it into the &amp;quot;official newlib&amp;quot;.
&lt;br&gt;&lt;br&gt;IIRC, it originates from GCC once having switched from unconditionally 
&lt;br&gt;supplying __mc68000__ to __m68k__, many years ago, but I don't fully 
&lt;br&gt;recall the reasons for us using this patch :(
&lt;br&gt;&lt;br&gt;Ralf
&lt;br&gt;&lt;br /&gt;2009-12-17	Ralf CorsÃ©pius &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26823670&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;ralf.corsepius@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * libc/include/machine/setjmp.h: Set up _JBLEN #ifdef __m68k__.
&lt;br&gt;&lt;br&gt;Index: libc/include/machine/setjmp.h
&lt;br&gt;===================================================================
&lt;br&gt;RCS file: /cvs/src/src/newlib/libc/include/machine/setjmp.h,v
&lt;br&gt;retrieving revision 1.41
&lt;br&gt;diff -u -r1.41 setjmp.h
&lt;br&gt;--- libc/include/machine/setjmp.h	26 Oct 2009 10:05:22 -0000	1.41
&lt;br&gt;+++ libc/include/machine/setjmp.h	17 Dec 2009 04:45:49 -0000
&lt;br&gt;@@ -27,7 +27,7 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;/* necv70 was 9 as well. */
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-#ifdef __mc68000__
&lt;br&gt;+#if defined(__m68k__) || defined(__mc68000__)
&lt;br&gt;&amp;nbsp;/*
&lt;br&gt;&amp;nbsp; * onsstack,sigmask,sp,pc,psl,d2-d7,a2-a6,
&lt;br&gt;&amp;nbsp; * fp2-fp7	for 68881.
&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Sourceware---newlib-list-f12241.html&quot; embed=&quot;fixTarget[12241]&quot; target=&quot;_top&quot; &gt;Sourceware - newlib list&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/RTEMS-patch-sweep-4-tp26823670p26823670.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26822859</id>
	<title>Re: Joel's Only Outstanding RTEMS Newlib Patch</title>
	<published>2009-12-16T20:13:28Z</published>
	<updated>2009-12-16T20:13:28Z</updated>
	<author>
		<name>Ralf Corsepius-2</name>
	</author>
	<content type="html">On 12/17/2009 12:00 AM, Joel Sherrill wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; On 12/16/2009 04:12 PM, Jeff Johnston wrote:
&lt;br&gt;&amp;gt;&amp;gt; On 16/12/09 04:55 PM, Joel Sherrill wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; On 12/16/2009 03:37 PM, Jeff Johnston wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; On 16/12/09 04:13 PM, Joel Sherrill wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; 2009-12-16 Joel Sherrill&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26822859&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;joel.sherrill@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; * libc/sys/rtems/machine/param.h: Only use sizeof(double) -1
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; for ALIGNBYTES on SPARC.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Patch checked in. I still need to hear from you guys regarding my
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; comments to Ralf's 3rd patch (re: the #endif position).
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; I think your reading of the placement is right. I don't think
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; we want the st_spare4. That should only show up on
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; the &amp;quot;sun, etc.&amp;quot; path.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Is that what you mean?
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; --joel
&lt;br&gt;&amp;gt;&amp;gt; Yes.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; I think it is OK but it is midnight in Germany,
&lt;br&gt;&amp;gt; so Ralf will
&lt;br&gt;&amp;gt; probably not reply until he wakes up. :)
&lt;/div&gt;Right, he just woke up and is checking emails ;)
&lt;br&gt;&lt;br&gt;Wrt. st_spare4, cf. my other mail, I sent a couple of minutes ago.
&lt;br&gt;&lt;br&gt;Wrt. your sparc-ALIGNBYTES patch: I think this patch is wrong, and feel 
&lt;br&gt;are playing with symptoms of a bug lurking somewhere else:
&lt;br&gt;&lt;br&gt;a) Keying ALIGNBYTES to sizeof(double) doesn't make any sense to me, 
&lt;br&gt;because I don't see how doubles are related to alignment at all.
&lt;br&gt;Likely sizeof(double) (8 in your case) is big enough to give enough room 
&lt;br&gt;to pamper over some other bug elsewhere.
&lt;br&gt;&lt;br&gt;b) Alignment is a compiler-tuneable feature. It's wrong to hardcode it 
&lt;br&gt;anywhere in newlib.
&lt;br&gt;&lt;br&gt;Ralf
&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Sourceware---newlib-list-f12241.html&quot; embed=&quot;fixTarget[12241]&quot; target=&quot;_top&quot; &gt;Sourceware - newlib list&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Joel%27s-Only-Outstanding-RTEMS-Newlib-Patch-tp26818581p26822859.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26822657</id>
	<title>Re: RTEMS patch sweep 3</title>
	<published>2009-12-16T19:42:58Z</published>
	<updated>2009-12-16T19:42:58Z</updated>
	<author>
		<name>Ralf Corsepius-2</name>
	</author>
	<content type="html">On 12/16/2009 07:45 PM, Jeff Johnston wrote:
&lt;div class='shrinkable-quote'&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; On 16/12/09 12:53 PM, Ralf Corsepius wrote:
&lt;br&gt;&amp;gt;&amp;gt; On 12/16/2009 06:50 PM, Ralf Corsepius wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Hi,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; ... and another one.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; This patch aims at making some parts of newlib more posix compliant.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; One part is #ifdef'ed __rtems__, because it relies on (POSIX) types
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; which (AFAICT) newlib currently are only supplies for RTEMS (blksize_t,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; blkcnt_t) and because we haven't tested it in other configurations but
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; in RTEMS configurations.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Ralf
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Oops, fingers faster than brains - The attachment containing the patch
&lt;br&gt;&amp;gt;&amp;gt; was missing ;)
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Ralf
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Shouldn't the added #endif be after the long st_spare4[]? Otherwise, you
&lt;br&gt;&amp;gt; are changing the struct for the #if before it which normally wouldn't
&lt;br&gt;&amp;gt; have included this field.
&lt;/div&gt;&lt;/div&gt;I am not sure. It would depend upon which purpose st_spare4 was intended 
&lt;br&gt;to be used for, IMO.
&lt;br&gt;&lt;br&gt;Probably it was only &amp;quot;having 2 longs in reserve&amp;quot; to void breaking 
&lt;br&gt;backward compatibility, in case should one want to extend &amp;quot;struct stat&amp;quot;.
&lt;br&gt;&lt;br&gt;&lt;br&gt;As we consider newlib-version upgrades to be &amp;quot;not ABI/API-preserving&amp;quot; 
&lt;br&gt;and utilize newlib-version upgrades to deliberately break API/ABIs, this 
&lt;br&gt;point is not of much importance to us.
&lt;br&gt;&lt;br&gt;The only effect keeping st_spare4 should have on RTEMS would be &amp;quot;wasting 
&lt;br&gt;2 longs&amp;quot; on &amp;quot;struct stat&amp;quot; and keeping this field available should newlib 
&lt;br&gt;start using it internally.
&lt;br&gt;&lt;br&gt;That said, I don't have a problem with moving the #endif, such that 
&lt;br&gt;st_spare4 stays also preserved on RTEMS.
&lt;br&gt;&lt;br&gt;Below is an updated patch, now with st_spare4 kept for RTEMS.
&lt;br&gt;&lt;br&gt;Ralf
&lt;br&gt;&lt;br /&gt;2009-12-17	Ralf Corsepius &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26822657&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;ralf.corsepius@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * libc/include/pthread.h: Add pthread_atfork, pthread_rwlock_unlock 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * libc/include/sys/stat.h: Use struct timespec st_*tim,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; blksize_t st_blksize, blkcnt_t st_blocks.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Add st_*time compatibility macros.
&lt;br&gt;&lt;br&gt;Index: libc/include/pthread.h
&lt;br&gt;===================================================================
&lt;br&gt;RCS file: /cvs/src/src/newlib/libc/include/pthread.h,v
&lt;br&gt;retrieving revision 1.7
&lt;br&gt;diff -u -r1.7 pthread.h
&lt;br&gt;--- libc/include/pthread.h	17 Jun 2009 16:47:02 -0000	1.7
&lt;br&gt;+++ libc/include/pthread.h	16 Dec 2009 17:34:13 -0000
&lt;br&gt;@@ -33,21 +33,10 @@
&lt;br&gt;&amp;nbsp;#include &amp;lt;time.h&amp;gt;
&lt;br&gt;&amp;nbsp;#include &amp;lt;sys/sched.h&amp;gt;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-/* Register Fork Handlers, P1003.1c/Draft 10, P1003.1c/Draft 10, p. 27
&lt;br&gt;- &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;If an OS does not support processes, then it falls under this provision
&lt;br&gt;- &amp;nbsp; &amp;nbsp;and may not provide pthread_atfork():
&lt;br&gt;- &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;quot;Either the implementation shall support the pthread_atfork() function
&lt;br&gt;- &amp;nbsp; &amp;nbsp; as described above or the pthread_atfork() funciton shall not be 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; provided.&amp;quot;
&lt;br&gt;- &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;NOTE: RTEMS does not provide pthread_atfork(). &amp;nbsp;*/
&lt;br&gt;-
&lt;br&gt;-#if !defined(__rtems__) &amp;&amp; !defined(__XMK__)
&lt;br&gt;-#warning &amp;quot;Add pthread_atfork() prototype&amp;quot;
&lt;br&gt;-#endif
&lt;br&gt;-
&lt;br&gt;+/* Register Fork Handlers */
&lt;br&gt;+int	_EXFUN(pthread_atfork,(void (*prepare)(void), void (*parent)(void),
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; void (*child)(void)));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp;/* Mutex Initialization Attributes, P1003.1c/Draft 10, p. 81 */
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;int	_EXFUN(pthread_mutexattr_init, (pthread_mutexattr_t *__attr));
&lt;br&gt;@@ -345,6 +334,7 @@
&lt;br&gt;&amp;nbsp;int	_EXFUN(pthread_rwlock_tryrdlock,(pthread_rwlock_t *__rwlock));
&lt;br&gt;&amp;nbsp;int	_EXFUN(pthread_rwlock_timedrdlock,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(pthread_rwlock_t *__rwlock, _CONST struct timespec *__abstime));
&lt;br&gt;+int	_EXFUN(pthread_rwlock_unlock,(pthread_rwlock_t *__rwlock));
&lt;br&gt;&amp;nbsp;int	_EXFUN(pthread_rwlock_wrlock,(pthread_rwlock_t *__rwlock));
&lt;br&gt;&amp;nbsp;int	_EXFUN(pthread_rwlock_trywrlock,(pthread_rwlock_t *__rwlock));
&lt;br&gt;&amp;nbsp;int	_EXFUN(pthread_rwlock_timedwrlock,
&lt;br&gt;Index: libc/include/sys/stat.h
&lt;br&gt;===================================================================
&lt;br&gt;RCS file: /cvs/src/src/newlib/libc/include/sys/stat.h,v
&lt;br&gt;retrieving revision 1.20
&lt;br&gt;diff -u -r1.20 stat.h
&lt;br&gt;--- libc/include/sys/stat.h	26 Apr 2008 07:49:39 -0000	1.20
&lt;br&gt;+++ libc/include/sys/stat.h	17 Dec 2009 03:40:53 -0000
&lt;br&gt;@@ -32,6 +32,13 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp;gid_t		st_gid;
&lt;br&gt;&amp;nbsp; &amp;nbsp;dev_t		st_rdev;
&lt;br&gt;&amp;nbsp; &amp;nbsp;off_t		st_size;
&lt;br&gt;+#if defined(__rtems__)
&lt;br&gt;+ &amp;nbsp;struct timespec st_atim;
&lt;br&gt;+ &amp;nbsp;struct timespec st_mtim;
&lt;br&gt;+ &amp;nbsp;struct timespec st_ctim;
&lt;br&gt;+ &amp;nbsp;blksize_t &amp;nbsp; &amp;nbsp; st_blksize;
&lt;br&gt;+ &amp;nbsp;blkcnt_t	st_blocks;
&lt;br&gt;+#else
&lt;br&gt;&amp;nbsp; &amp;nbsp;/* SysV/sco doesn't have the rest... But Solaris, eabi does. &amp;nbsp;*/
&lt;br&gt;&amp;nbsp;#if defined(__svr4__) &amp;&amp; !defined(__PPC__) &amp;&amp; !defined(__sun__)
&lt;br&gt;&amp;nbsp; &amp;nbsp;time_t	st_atime;
&lt;br&gt;@@ -46,9 +53,17 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp;long		st_spare3;
&lt;br&gt;&amp;nbsp; &amp;nbsp;long		st_blksize;
&lt;br&gt;&amp;nbsp; &amp;nbsp;long		st_blocks;
&lt;br&gt;- &amp;nbsp;long	st_spare4[2];
&lt;br&gt;&amp;nbsp;#endif
&lt;br&gt;+#endif
&lt;br&gt;+ &amp;nbsp;long	st_spare4[2];
&lt;br&gt;&amp;nbsp;};
&lt;br&gt;+
&lt;br&gt;+#if defined(__rtems__)
&lt;br&gt;+#define st_atime st_atim.tv_sec
&lt;br&gt;+#define st_ctime st_ctim.tv_sec
&lt;br&gt;+#define st_mtime st_mtim.tv_sec
&lt;br&gt;+#endif
&lt;br&gt;+
&lt;br&gt;&amp;nbsp;#endif
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;#define	_IFMT		0170000	/* type of file */
&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Sourceware---newlib-list-f12241.html&quot; embed=&quot;fixTarget[12241]&quot; target=&quot;_top&quot; &gt;Sourceware - newlib list&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/RTEMS-patch-sweep-3-tp26815455p26822657.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26822455</id>
	<title>Re: RTEMS patch sweep</title>
	<published>2009-12-16T19:10:22Z</published>
	<updated>2009-12-16T19:10:22Z</updated>
	<author>
		<name>Ralf Corsepius-2</name>
	</author>
	<content type="html">On 12/16/2009 07:28 PM, Jeff Johnston wrote:
&lt;br&gt;&amp;gt; On 16/12/09 12:28 PM, Ralf Corsepius wrote:
&lt;br&gt;&amp;gt;&amp;gt; Hi,
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Below is a patch containing RTEMS-only patches to newlib, we would like
&lt;br&gt;&amp;gt;&amp;gt; to see incorporated in the upcoming newlib tarball.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Ralf
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Patch applied.
&lt;br&gt;&lt;br&gt;Could it be you missed to
&lt;br&gt;cvs add libc/sys/rtems/machine/_types.h ?
&lt;br&gt;&lt;br&gt;Ralf
&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Sourceware---newlib-list-f12241.html&quot; embed=&quot;fixTarget[12241]&quot; target=&quot;_top&quot; &gt;Sourceware - newlib list&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/RTEMS-patch-sweep-tp26815087p26822455.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26821248</id>
	<title>Re: Mixing function pointers and regular functions with the _EXFUN macro</title>
	<published>2009-12-16T16:41:32Z</published>
	<updated>2009-12-16T16:41:32Z</updated>
	<author>
		<name>Jerker Bäck-3</name>
	</author>
	<content type="html">&amp;gt; Leave the original _EXPARM macro alone and create a new macro: _EXFNPTR
&lt;br&gt;&amp;gt; which you can define as you have changed _EXPARM. &amp;nbsp;Use the new macro in
&lt;br&gt;&amp;gt; your patch and please post the finished patch &amp;quot;here&amp;quot; and not in the bug.
&lt;br&gt;&amp;gt; &amp;nbsp; I am going to close bugzillas from now on immediately.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; If you can do this by tomorrow afternoon, I'll get the patch in for the
&lt;br&gt;&amp;gt; snapshot.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; -- Jeff J.
&lt;br&gt;&lt;br&gt;OK, thanks!
&lt;br&gt;&lt;br&gt;I agree completely with Craig that _EXFNPTR is a better name. I also think
&lt;br&gt;that the original idea from 2000 is a clever model, since it solves a common
&lt;br&gt;issue when compiling unix source in Windows. Just note that for the patch to
&lt;br&gt;work, it has to be consistently applied to all function pointers, leaving
&lt;br&gt;the old macro name obsolete. Also note the changes in unistd.h.
&lt;br&gt;&lt;br&gt;Cheers
&lt;br&gt;Jerker B
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;br&gt;Patch for enable calling conventions on function pointers
&lt;br&gt;&lt;br&gt;&lt;br&gt;Index: libc/include/_ansi.h
&lt;br&gt;===================================================================
&lt;br&gt;RCS file: /cvs/src/src/newlib/libc/include/_ansi.h,v
&lt;br&gt;retrieving revision 1.8
&lt;br&gt;diff -d -u -p -r1.8 _ansi.h
&lt;br&gt;--- libc/include/_ansi.h	21 Apr 2009 18:24:59 -0000	1.8
&lt;br&gt;+++ libc/include/_ansi.h	16 Dec 2009 22:18:44 -0000
&lt;br&gt;@@ -19,7 +19,7 @@
&lt;br&gt;&amp;nbsp;/* FIXME: This probably needs some work. &amp;nbsp;Perhaps sys/config.h can be
&lt;br&gt;&amp;nbsp; &amp;nbsp; prevailed upon to give us a clue. &amp;nbsp;*/
&lt;br&gt;&amp;nbsp;
&lt;br&gt;#ifdef __STDC__
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -59,12 +59,14 @@
&lt;br&gt;&amp;nbsp;#define _VOID void
&lt;br&gt;&amp;nbsp;#ifdef __CYGWIN__
&lt;br&gt;&amp;nbsp;#define	_EXFUN_NOTHROW(name, proto)	__cdecl name proto _NOTHROW
&lt;br&gt;#define	_EXFUN(name, proto)		__cdecl name proto
&lt;br&gt;&amp;nbsp;#define	_EXPARM(name, proto)		(* __cdecl name) proto
&lt;br&gt;+#define	_EXFNPTR(name, proto)		(__cdecl * name) proto
&lt;br&gt;&amp;nbsp;#else
&lt;br&gt;&amp;nbsp;#define	_EXFUN_NOTHROW(name, proto)	name proto _NOTHROW
&lt;br&gt;&amp;nbsp;#define	_EXFUN(name, proto)		name proto
&lt;br&gt;&amp;nbsp;#define _EXPARM(name, proto)		(* name) proto
&lt;br&gt;+#define _EXFNPTR(name, proto)		(* name) proto
&lt;br&gt;&amp;nbsp;#endif
&lt;br&gt;&amp;nbsp;#define	_DEFUN(name, arglist, args)	name(args)
&lt;br&gt;&amp;nbsp;#define	_DEFUN_VOID(name)		name(_NOARGS)
&lt;br&gt;&lt;br&gt;&amp;nbsp; 
&lt;br&gt;Index: libc/iconv/lib/conv.h
&lt;br&gt;===================================================================
&lt;br&gt;RCS file: /cvs/src/src/newlib/libc/iconv/lib/conv.h,v
&lt;br&gt;retrieving revision 1.1
&lt;br&gt;diff -d -u -p -r1.1 conv.h
&lt;br&gt;--- libc/iconv/lib/conv.h	25 Jun 2004 20:32:44 -0000	1.1
&lt;br&gt;+++ libc/iconv/lib/conv.h	16 Dec 2009 22:18:44 -0000
&lt;br&gt;@@ -63,7 +63,7 @@ typedef struct
&lt;br&gt;&amp;nbsp; &amp;nbsp; * &amp;nbsp; Pointer to conversion-specific data if success. In case of error
&lt;br&gt;&amp;nbsp; &amp;nbsp; * &amp;nbsp; returns NULL and sets current thread's/process's errno.
&lt;br&gt;&amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp;_VOID_PTR _EXPARM(open, (struct _reent *rptr,
&lt;br&gt;+ &amp;nbsp;_VOID_PTR _EXFNPTR(open, (struct _reent *rptr,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;_CONST char *to,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;_CONST char *from));
&lt;br&gt;&amp;nbsp; &amp;nbsp;
&lt;br&gt;@@ -81,7 +81,7 @@ typedef struct
&lt;br&gt;&amp;nbsp; &amp;nbsp; * &amp;nbsp; When successful, returns (size_t)0. In case of error, sets current
&lt;br&gt;&amp;nbsp; &amp;nbsp; * &amp;nbsp; thread's/process's errno and returns (size_t)-1 (same as iconv_open()).
&lt;br&gt;&amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp;size_t _EXPARM(close, (struct _reent *rptr,
&lt;br&gt;+ &amp;nbsp;size_t _EXFNPTR(close, (struct _reent *rptr,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;_VOID_PTR data));
&lt;br&gt;&amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp;/* convert - perform encoding conversion.
&lt;br&gt;@@ -114,7 +114,7 @@ typedef struct
&lt;br&gt;&amp;nbsp; &amp;nbsp; * &amp;nbsp; Reversible conversions are not counted. In case of error, sets current
&lt;br&gt;&amp;nbsp; &amp;nbsp; * &amp;nbsp; thread's/process's errno and returns (size_t)-1 (same as iconv()).
&lt;br&gt;&amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp;size_t _EXPARM(convert, (struct _reent *rptr,
&lt;br&gt;+ &amp;nbsp;size_t _EXFNPTR(convert, (struct _reent *rptr,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; _VOID_PTR data,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; _CONST unsigned char **inbuf,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; size_t *inbytesleft,
&lt;br&gt;@@ -135,7 +135,7 @@ typedef struct
&lt;br&gt;&amp;nbsp; &amp;nbsp; * &amp;nbsp; If 'direction' is 0, &amp;quot;from&amp;quot; encoding is tested, else
&lt;br&gt;&amp;nbsp; &amp;nbsp; * &amp;nbsp; &amp;quot;to&amp;quot; encoding is tested.
&lt;br&gt;&amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp;_VOID _EXPARM(get_state, (_VOID_PTR data,
&lt;br&gt;+ &amp;nbsp;_VOID _EXFNPTR(get_state, (_VOID_PTR data,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; mbstate_t *state,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int direction));
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -154,7 +154,7 @@ typedef struct
&lt;br&gt;&amp;nbsp; &amp;nbsp; * &amp;nbsp; &amp;quot;to&amp;quot; encoding is set.
&lt;br&gt;&amp;nbsp; &amp;nbsp; * &amp;nbsp; Returns 0 if '*state' object has right format, -1 else.
&lt;br&gt;&amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp;int _EXPARM(set_state, (_VOID_PTR data,
&lt;br&gt;+ &amp;nbsp;int _EXFNPTR(set_state, (_VOID_PTR data,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; mbstate_t *state,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int direction));
&lt;br&gt;&amp;nbsp; &amp;nbsp;
&lt;br&gt;@@ -170,7 +170,7 @@ typedef struct
&lt;br&gt;&amp;nbsp; &amp;nbsp; * &amp;nbsp; If 'direction' is 0, &amp;quot;from&amp;quot; encoding is tested, else
&lt;br&gt;&amp;nbsp; &amp;nbsp; * &amp;nbsp; &amp;quot;to&amp;quot; encoding is tested.
&lt;br&gt;&amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp;int _EXPARM(get_mb_cur_max, (_VOID_PTR data,
&lt;br&gt;+ &amp;nbsp;int _EXFNPTR(get_mb_cur_max, (_VOID_PTR data,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int direction));
&lt;br&gt;&amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp;/*
&lt;br&gt;@@ -185,7 +185,7 @@ typedef struct
&lt;br&gt;&amp;nbsp; &amp;nbsp; * &amp;nbsp; If 'direction' is 0, &amp;quot;from&amp;quot; encoding is tested, else
&lt;br&gt;&amp;nbsp; &amp;nbsp; * &amp;nbsp; &amp;quot;to&amp;quot; encoding is tested.
&lt;br&gt;&amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp;int _EXPARM(is_stateful, (_VOID_PTR data,
&lt;br&gt;+ &amp;nbsp;int _EXFNPTR(is_stateful, (_VOID_PTR data,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int direction));
&lt;br&gt;&amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp;} iconv_conversion_handlers_t;
&lt;br&gt;&lt;br&gt;&lt;br&gt;Index: libc/iconv/lib/ucsconv.h
&lt;br&gt;===================================================================
&lt;br&gt;RCS file: /cvs/src/src/newlib/libc/iconv/lib/ucsconv.h,v
&lt;br&gt;retrieving revision 1.1
&lt;br&gt;diff -d -u -p -r1.1 ucsconv.h
&lt;br&gt;--- libc/iconv/lib/ucsconv.h	25 Jun 2004 20:32:44 -0000	1.1
&lt;br&gt;+++ libc/iconv/lib/ucsconv.h	16 Dec 2009 22:18:44 -0000
&lt;br&gt;@@ -68,7 +68,7 @@ typedef struct
&lt;br&gt;&amp;nbsp; &amp;nbsp; * &amp;nbsp; Returns CES-specific data pointer if success. In case of error returns
&lt;br&gt;&amp;nbsp; &amp;nbsp; * &amp;nbsp; NULL and sets current thread's/process's errno.
&lt;br&gt;&amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp;_VOID_PTR _EXPARM(init, (struct _reent *rptr,
&lt;br&gt;+ &amp;nbsp;_VOID_PTR _EXFNPTR(init, (struct _reent *rptr,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;_CONST char *encoding));
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp;/*
&lt;br&gt;@@ -84,7 +84,7 @@ typedef struct
&lt;br&gt;&amp;nbsp; &amp;nbsp; * &amp;nbsp; Returns (size_t)0 if success. In case of error returns (size_t)-1 and
&lt;br&gt;&amp;nbsp; &amp;nbsp; * &amp;nbsp; sets current thread's/process's errno.
&lt;br&gt;&amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp;size_t _EXPARM(close, (struct _reent *rptr,
&lt;br&gt;+ &amp;nbsp;size_t _EXFNPTR(close, (struct _reent *rptr,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;_VOID_PTR data));
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp;/*
&lt;br&gt;@@ -96,7 +96,7 @@ typedef struct
&lt;br&gt;&amp;nbsp; &amp;nbsp; * DESCRIPTION:
&lt;br&gt;&amp;nbsp; &amp;nbsp; * &amp;nbsp; Returns encoding's maximum character length.
&lt;br&gt;&amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp;int _EXPARM(get_mb_cur_max, (_VOID_PTR data));
&lt;br&gt;+ &amp;nbsp;int _EXFNPTR(get_mb_cur_max, (_VOID_PTR data));
&lt;br&gt;&amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp;/*
&lt;br&gt;&amp;nbsp; &amp;nbsp; * get_state - get current shift state.
&lt;br&gt;@@ -108,7 +108,7 @@ typedef struct
&lt;br&gt;&amp;nbsp; &amp;nbsp; * DESCRIPTION:
&lt;br&gt;&amp;nbsp; &amp;nbsp; * &amp;nbsp; Returns encoding's current shift sequence.
&lt;br&gt;&amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp;_VOID _EXPARM(get_state, (_VOID_PTR data,
&lt;br&gt;+ &amp;nbsp;_VOID _EXFNPTR(get_state, (_VOID_PTR data,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; mbstate_t *state));
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp;/*
&lt;br&gt;@@ -123,7 +123,7 @@ typedef struct
&lt;br&gt;&amp;nbsp; &amp;nbsp; * &amp;nbsp; object is zero-object - reset current shift state.
&lt;br&gt;&amp;nbsp; &amp;nbsp; * &amp;nbsp; Returns 0 if '*state' object has right format, -1 else.
&lt;br&gt;&amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp;int _EXPARM(set_state, (_VOID_PTR data,
&lt;br&gt;+ &amp;nbsp;int _EXFNPTR(set_state, (_VOID_PTR data,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; mbstate_t *state));
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp;/*
&lt;br&gt;@@ -135,7 +135,7 @@ typedef struct
&lt;br&gt;&amp;nbsp; &amp;nbsp; * DESCRIPTION:
&lt;br&gt;&amp;nbsp; &amp;nbsp; * &amp;nbsp; Returns 0 if encoding is stateless, else returns 1.
&lt;br&gt;&amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp;int _EXPARM(is_stateful, (_VOID_PTR data));
&lt;br&gt;+ &amp;nbsp;int _EXFNPTR(is_stateful, (_VOID_PTR data));
&lt;br&gt;&amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp;/*
&lt;br&gt;&amp;nbsp; &amp;nbsp; * convert_to_ucs - convert character to UCS.
&lt;br&gt;@@ -155,7 +155,7 @@ typedef struct
&lt;br&gt;&amp;nbsp; &amp;nbsp; * &amp;nbsp; returns ICONV_CES_INVALID_CHARACTER. If invalid or incomplete bytes
&lt;br&gt;&amp;nbsp; &amp;nbsp; * &amp;nbsp; sequence was met, returns ICONV_CES_BAD_SEQUENCE.
&lt;br&gt;&amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp;ucs4_t _EXPARM(convert_to_ucs, (_VOID_PTR data,
&lt;br&gt;+ &amp;nbsp;ucs4_t _EXFNPTR(convert_to_ucs, (_VOID_PTR data,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; _CONST unsigned char **inbuf,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; size_t *inbytesleft));
&lt;br&gt;&amp;nbsp;} iconv_to_ucs_ces_handlers_t;
&lt;br&gt;@@ -172,26 +172,26 @@ typedef struct
&lt;br&gt;&amp;nbsp;typedef struct
&lt;br&gt;&amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp;/* Same as in iconv_to_ucs_ces_handlers_t */
&lt;br&gt;- &amp;nbsp;_VOID_PTR _EXPARM(init, (struct _reent *rptr,
&lt;br&gt;+ &amp;nbsp;_VOID_PTR _EXFNPTR(init, (struct _reent *rptr,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;_CONST char *encoding));
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp;/* Same as in iconv_to_ucs_ces_handlers_t */
&lt;br&gt;- &amp;nbsp;size_t _EXPARM(close, (struct _reent *rptr,
&lt;br&gt;+ &amp;nbsp;size_t _EXFNPTR(close, (struct _reent *rptr,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;_VOID_PTR data));
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp;/* Same as in iconv_to_ucs_ces_handlers_t */
&lt;br&gt;- &amp;nbsp;int _EXPARM(get_mb_cur_max, (_VOID_PTR data));
&lt;br&gt;+ &amp;nbsp;int _EXFNPTR(get_mb_cur_max, (_VOID_PTR data));
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp;/* Same as in iconv_to_ucs_ces_handlers_t */
&lt;br&gt;- &amp;nbsp;_VOID _EXPARM(get_state, (_VOID_PTR data,
&lt;br&gt;+ &amp;nbsp;_VOID _EXFNPTR(get_state, (_VOID_PTR data,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; mbstate_t *state));
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp;/* Same as in iconv_to_ucs_ces_handlers_t */
&lt;br&gt;- &amp;nbsp;int _EXPARM(set_state, (_VOID_PTR data,
&lt;br&gt;+ &amp;nbsp;int _EXFNPTR(set_state, (_VOID_PTR data,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; mbstate_t *state));
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp;/* Same as in iconv_to_ucs_ces_handlers_t */
&lt;br&gt;- &amp;nbsp;int _EXPARM(is_stateful, (_VOID_PTR data));
&lt;br&gt;+ &amp;nbsp;int _EXFNPTR(is_stateful, (_VOID_PTR data));
&lt;br&gt;&amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp;/*
&lt;br&gt;&amp;nbsp; &amp;nbsp; * convert_from_ucs - convert UCS character to destination encoding.
&lt;br&gt;@@ -215,7 +215,7 @@ typedef struct
&lt;br&gt;&amp;nbsp; &amp;nbsp; * &amp;nbsp; If there is no corresponding character in destination encoding, returns
&lt;br&gt;&amp;nbsp; &amp;nbsp; * &amp;nbsp; ICONV_CES_INVALID_CHARACTER.
&lt;br&gt;&amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp;size_t _EXPARM(convert_from_ucs, (_VOID_PTR data,
&lt;br&gt;+ &amp;nbsp;size_t _EXFNPTR(convert_from_ucs, (_VOID_PTR data,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ucs4_t in,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; unsigned char **outbuf,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; size_t *outbytesleft));
&lt;br&gt;&lt;br&gt;&lt;br&gt;Index: libc/include/stdlib.h
&lt;br&gt;===================================================================
&lt;br&gt;RCS file: /cvs/src/src/newlib/libc/include/stdlib.h,v
&lt;br&gt;retrieving revision 1.36
&lt;br&gt;diff -d -u -p -r1.36 stdlib.h
&lt;br&gt;--- libc/include/stdlib.h	22 Sep 2009 21:49:20 -0000	1.36
&lt;br&gt;+++ libc/include/stdlib.h	16 Dec 2009 22:18:44 -0000
&lt;br&gt;@@ -74,7 +74,7 @@ _PTR	_EXFUN(bsearch,(const _PTR __key,
&lt;br&gt;&amp;nbsp;		 &amp;nbsp; &amp;nbsp; &amp;nbsp; const _PTR __base,
&lt;br&gt;&amp;nbsp;		 &amp;nbsp; &amp;nbsp; &amp;nbsp; size_t __nmemb,
&lt;br&gt;&amp;nbsp;		 &amp;nbsp; &amp;nbsp; &amp;nbsp; size_t __size,
&lt;br&gt;-		 &amp;nbsp; &amp;nbsp; &amp;nbsp; int _EXPARM(_compar,(const _PTR, const _PTR))));
&lt;br&gt;+		 &amp;nbsp; &amp;nbsp; &amp;nbsp; int _EXFNPTR(_compar,(const _PTR, const _PTR))));
&lt;br&gt;&amp;nbsp;_PTR	_EXFUN_NOTHROW(calloc,(size_t __nmemb, size_t __size));
&lt;br&gt;&amp;nbsp;div_t	_EXFUN(div,(int __numer, int __denom));
&lt;br&gt;&amp;nbsp;_VOID	_EXFUN(exit,(int __status) _ATTRIBUTE ((noreturn)));
&lt;br&gt;&lt;br&gt;Index: libc/include/sys/reent.h
&lt;br&gt;===================================================================
&lt;br&gt;RCS file: /cvs/src/src/newlib/libc/include/sys/reent.h,v
&lt;br&gt;retrieving revision 1.47
&lt;br&gt;diff -d -u -p -r1.47 reent.h
&lt;br&gt;--- libc/include/sys/reent.h	23 Nov 2009 17:02:19 -0000	1.47
&lt;br&gt;+++ libc/include/sys/reent.h	16 Dec 2009 22:18:45 -0000
&lt;br&gt;@@ -182,12 +182,12 @@ struct __sFILE {
&lt;br&gt;&amp;nbsp; &amp;nbsp;/* operations */
&lt;br&gt;&amp;nbsp; &amp;nbsp;_PTR	_cookie;	/* cookie passed to io functions */
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp;_READ_WRITE_RETURN_TYPE _EXFUN((*_read),(struct _reent *, _PTR,
&lt;br&gt;+ &amp;nbsp;_READ_WRITE_RETURN_TYPE _EXFNPTR(_read, (struct _reent *, _PTR,
&lt;br&gt;&amp;nbsp;					 &amp;nbsp; char *, int));
&lt;br&gt;- &amp;nbsp;_READ_WRITE_RETURN_TYPE _EXFUN((*_write),(struct _reent *, _PTR,
&lt;br&gt;+ &amp;nbsp;_READ_WRITE_RETURN_TYPE _EXFNPTR(_write, (struct _reent *, _PTR,
&lt;br&gt;&amp;nbsp;					 &amp;nbsp; &amp;nbsp;const char *, int));
&lt;br&gt;- &amp;nbsp;_fpos_t _EXFUN((*_seek),(struct _reent *, _PTR, _fpos_t, int));
&lt;br&gt;- &amp;nbsp;int _EXFUN((*_close),(struct _reent *, _PTR));
&lt;br&gt;+ &amp;nbsp;_fpos_t _EXFNPTR(_seek, (struct _reent *, _PTR, _fpos_t, int));
&lt;br&gt;+ &amp;nbsp;int _EXFNPTR(_close, (struct _reent *, _PTR));
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp;/* separate buffer for long sequences of ungetc() */
&lt;br&gt;&amp;nbsp; &amp;nbsp;struct __sbuf _ub;	/* ungetc buffer */
&lt;br&gt;@@ -237,12 +237,12 @@ struct __sFILE64 {
&lt;br&gt;&amp;nbsp; &amp;nbsp;/* operations */
&lt;br&gt;&amp;nbsp; &amp;nbsp;_PTR	_cookie;	/* cookie passed to io functions */
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp;_READ_WRITE_RETURN_TYPE _EXFUN((*_read),(struct _reent *, _PTR,
&lt;br&gt;+ &amp;nbsp;_READ_WRITE_RETURN_TYPE _EXFNPTR(_read, (struct _reent *, _PTR,
&lt;br&gt;&amp;nbsp;					 &amp;nbsp; char *, int));
&lt;br&gt;- &amp;nbsp;_READ_WRITE_RETURN_TYPE _EXFUN((*_write),(struct _reent *, _PTR,
&lt;br&gt;+ &amp;nbsp;_READ_WRITE_RETURN_TYPE _EXFNPTR(_write, (struct _reent *, _PTR,
&lt;br&gt;&amp;nbsp;					 &amp;nbsp; &amp;nbsp;const char *, int));
&lt;br&gt;- &amp;nbsp;_fpos_t _EXFUN((*_seek),(struct _reent *, _PTR, _fpos_t, int));
&lt;br&gt;- &amp;nbsp;int _EXFUN((*_close),(struct _reent *, _PTR));
&lt;br&gt;+ &amp;nbsp;_fpos_t _EXFNPTR(_seek, (struct _reent *, _PTR, _fpos_t, int));
&lt;br&gt;+ &amp;nbsp;int _EXFNPTR(_close, (struct _reent *, _PTR));
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp;/* separate buffer for long sequences of ungetc() */
&lt;br&gt;&amp;nbsp; &amp;nbsp;struct __sbuf _ub;	/* ungetc buffer */
&lt;br&gt;@@ -261,7 +261,7 @@ struct __sFILE64 {
&lt;br&gt;&amp;nbsp; &amp;nbsp;int &amp;nbsp; _flags2; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/* for future use */
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp;_off64_t _offset; &amp;nbsp; &amp;nbsp; /* current lseek offset */
&lt;br&gt;- &amp;nbsp;_fpos64_t _EXFUN((*_seek64),(struct _reent *, _PTR, _fpos64_t, int));
&lt;br&gt;+ &amp;nbsp;_fpos64_t _EXFNPTR(_seek64, (struct _reent *, _PTR, _fpos64_t, int));
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;#ifndef __SINGLE_THREAD__
&lt;br&gt;&amp;nbsp; &amp;nbsp;_flock_t _lock;	/* for thread-safety locking */
&lt;br&gt;@@ -376,7 +376,7 @@ struct _reent
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp;struct _mprec *_mp;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp;void _EXFUN((*__cleanup),(struct _reent *));
&lt;br&gt;+ &amp;nbsp;void _EXFNPTR(__cleanup, (struct _reent *));
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp;int _gamma_signgam;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -593,7 +593,7 @@ struct _reent
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp;int __sdidinit;		/* 1 means stdio has been init'd */
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp;void _EXFUN((*__cleanup),(struct _reent *));
&lt;br&gt;+ &amp;nbsp;void _EXFNPTR(__cleanup, (struct _reent *));
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp;/* used by mprec routines */
&lt;br&gt;&amp;nbsp; &amp;nbsp;struct _Bigint *_result;
&lt;br&gt;&lt;br&gt;&lt;br&gt;Index: libc/include/sys/unistd.h
&lt;br&gt;===================================================================
&lt;br&gt;RCS file: /cvs/src/src/newlib/libc/include/sys/unistd.h,v
&lt;br&gt;retrieving revision 1.73
&lt;br&gt;diff -d -u -p -r1.73 unistd.h
&lt;br&gt;--- libc/include/sys/unistd.h	8 Dec 2009 13:50:41 -0000	1.73
&lt;br&gt;+++ libc/include/sys/unistd.h	16 Dec 2009 22:18:45 -0000
&lt;br&gt;@@ -30,8 +30,8 @@ int &amp;nbsp; &amp;nbsp; _EXFUN(close, (int __fildes ));
&lt;br&gt;&amp;nbsp;#if defined(__CYGWIN__)
&lt;br&gt;&amp;nbsp;size_t	_EXFUN(confstr, (int __name, char *__buf, size_t __len));
&lt;br&gt;&amp;nbsp;#endif
&lt;br&gt;-char &amp;nbsp; &amp;nbsp;_EXFUN(*ctermid, (char *__s ));
&lt;br&gt;-char &amp;nbsp; &amp;nbsp;_EXFUN(*cuserid, (char *__s ));
&lt;br&gt;+char * &amp;nbsp;_EXFUN(ctermid, (char *__s ));
&lt;br&gt;+char * &amp;nbsp;_EXFUN(cuserid, (char *__s ));
&lt;br&gt;&amp;nbsp;#if defined(__CYGWIN__)
&lt;br&gt;&amp;nbsp;int	_EXFUN(daemon, (int nochdir, int noclose));
&lt;br&gt;&amp;nbsp;#endif
&lt;br&gt;@@ -67,7 +67,7 @@ pid_t &amp;nbsp; _EXFUN(fork, (void ));
&lt;br&gt;&amp;nbsp;long &amp;nbsp; &amp;nbsp;_EXFUN(fpathconf, (int __fd, int __name ));
&lt;br&gt;&amp;nbsp;int &amp;nbsp; &amp;nbsp; _EXFUN(fsync, (int __fd));
&lt;br&gt;&amp;nbsp;int &amp;nbsp; &amp;nbsp; _EXFUN(fdatasync, (int __fd));
&lt;br&gt;-char &amp;nbsp; &amp;nbsp;_EXFUN(*getcwd, (char *__buf, size_t __size ));
&lt;br&gt;+char * &amp;nbsp;_EXFUN(getcwd, (char *__buf, size_t __size ));
&lt;br&gt;&amp;nbsp;#if defined(__CYGWIN__)
&lt;br&gt;&amp;nbsp;int	_EXFUN(getdomainname ,(char *__name, size_t __len));
&lt;br&gt;&amp;nbsp;#endif
&lt;br&gt;@@ -80,11 +80,11 @@ int &amp;nbsp; &amp;nbsp; _EXFUN(getgroups, (int __gidsets
&lt;br&gt;&amp;nbsp;#if defined(__CYGWIN__)
&lt;br&gt;&amp;nbsp;long &amp;nbsp; &amp;nbsp;_EXFUN(gethostid, (void));
&lt;br&gt;&amp;nbsp;#endif
&lt;br&gt;-char &amp;nbsp; &amp;nbsp;_EXFUN(*getlogin, (void ));
&lt;br&gt;+char * &amp;nbsp;_EXFUN(getlogin, (void ));
&lt;br&gt;&amp;nbsp;#if defined(_POSIX_THREAD_SAFE_FUNCTIONS)
&lt;br&gt;&amp;nbsp;int _EXFUN(getlogin_r, (char *name, size_t namesize) );
&lt;br&gt;&amp;nbsp;#endif
&lt;br&gt;-char 	_EXFUN(*getpass, (const char *__prompt));
&lt;br&gt;+char * &amp;nbsp;_EXFUN(getpass, (const char *__prompt));
&lt;br&gt;&amp;nbsp;int	_EXFUN(getpagesize, (void));
&lt;br&gt;&amp;nbsp;#if defined(__CYGWIN__)
&lt;br&gt;&amp;nbsp;int &amp;nbsp; &amp;nbsp;_EXFUN(getpeereid, (int, uid_t *, gid_t *));
&lt;br&gt;@@ -101,7 +101,7 @@ uid_t &amp;nbsp; _EXFUN(getuid, (void ));
&lt;br&gt;&amp;nbsp;#endif
&lt;br&gt;&amp;nbsp;#ifdef __CYGWIN__
&lt;br&gt;&amp;nbsp;char *	_EXFUN(getusershell, (void));
&lt;br&gt;-char &amp;nbsp; &amp;nbsp;_EXFUN(*getwd, (char *__buf ));
&lt;br&gt;+char * &amp;nbsp;_EXFUN(getwd, (char *__buf ));
&lt;br&gt;&amp;nbsp;int	_EXFUN(iruserok, (unsigned long raddr, int superuser, const char *ruser, const char *luser));
&lt;br&gt;&amp;nbsp;#endif
&lt;br&gt;&amp;nbsp;int &amp;nbsp; &amp;nbsp; _EXFUN(isatty, (int __fildes ));
&lt;br&gt;@@ -169,7 +169,7 @@ void &amp;nbsp; &amp;nbsp;_EXFUN(swab, (const void *, void
&lt;br&gt;&amp;nbsp;long &amp;nbsp; &amp;nbsp;_EXFUN(sysconf, (int __name ));
&lt;br&gt;&amp;nbsp;pid_t &amp;nbsp; _EXFUN(tcgetpgrp, (int __fildes ));
&lt;br&gt;&amp;nbsp;int &amp;nbsp; &amp;nbsp; _EXFUN(tcsetpgrp, (int __fildes, pid_t __pgrp_id ));
&lt;br&gt;-char &amp;nbsp; &amp;nbsp;_EXFUN(*ttyname, (int __fildes ));
&lt;br&gt;+char * &amp;nbsp;_EXFUN(ttyname, (int __fildes ));
&lt;br&gt;&amp;nbsp;#if defined(__CYGWIN__) || defined(__rtems__)
&lt;br&gt;&amp;nbsp;int &amp;nbsp; &amp;nbsp; _EXFUN(ttyname_r, (int, char *, size_t)); 
&lt;br&gt;&amp;nbsp;#endif
&lt;br&gt;&lt;br&gt;Index: libc/search/bsearch.c
&lt;br&gt;===================================================================
&lt;br&gt;RCS file: /cvs/src/src/newlib/libc/search/bsearch.c,v
&lt;br&gt;retrieving revision 1.1
&lt;br&gt;diff -d -u -p -r1.1 bsearch.c
&lt;br&gt;--- libc/search/bsearch.c	20 Jun 2002 19:51:31 -0000	1.1
&lt;br&gt;+++ libc/search/bsearch.c	16 Dec 2009 22:18:47 -0000
&lt;br&gt;@@ -69,7 +69,7 @@ _DEFUN (bsearch, (key, base, nmemb, size
&lt;br&gt;&amp;nbsp;	_CONST _PTR base _AND
&lt;br&gt;&amp;nbsp;	size_t nmemb _AND
&lt;br&gt;&amp;nbsp;	size_t size _AND
&lt;br&gt;-	int _EXFUN ((*compar), (const _PTR, const _PTR)))
&lt;br&gt;+	int _EXFNPTR(compar, (const _PTR, const _PTR)))
&lt;br&gt;&amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp;_PTR current;
&lt;br&gt;&amp;nbsp; &amp;nbsp;size_t lower = 0;
&lt;br&gt;&lt;br&gt;Index: libc/stdio/fseek.c
&lt;br&gt;===================================================================
&lt;br&gt;RCS file: /cvs/src/src/newlib/libc/stdio/fseek.c,v
&lt;br&gt;retrieving revision 1.22
&lt;br&gt;diff -d -u -p -r1.22 fseek.c
&lt;br&gt;--- libc/stdio/fseek.c	24 Apr 2009 22:52:52 -0000	1.22
&lt;br&gt;+++ libc/stdio/fseek.c	16 Dec 2009 22:18:47 -0000
&lt;br&gt;@@ -123,7 +123,7 @@ _DEFUN(_fseek_r, (ptr, fp, offset, whenc
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; long offset &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;_AND
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int whence)
&lt;br&gt;&amp;nbsp;{
&lt;br&gt;- &amp;nbsp;_fpos_t _EXFUN((*seekfn), (struct _reent *, _PTR, _fpos_t, int));
&lt;br&gt;+ &amp;nbsp;_fpos_t _EXFNPTR(seekfn, (struct _reent *, _PTR, _fpos_t, int));
&lt;br&gt;&amp;nbsp; &amp;nbsp;_fpos_t target;
&lt;br&gt;&amp;nbsp; &amp;nbsp;_fpos_t curoff = 0;
&lt;br&gt;&lt;br&gt;Index: libc/stdio64/fseeko64.c
&lt;br&gt;===================================================================
&lt;br&gt;RCS file: /cvs/src/src/newlib/libc/stdio64/fseeko64.c,v
&lt;br&gt;retrieving revision 1.13
&lt;br&gt;diff -d -u -p -r1.13 fseeko64.c
&lt;br&gt;--- libc/stdio64/fseeko64.c	24 Nov 2008 17:15:43 -0000	1.13
&lt;br&gt;+++ libc/stdio64/fseeko64.c	16 Dec 2009 22:18:47 -0000
&lt;br&gt;@@ -104,7 +104,7 @@ _DEFUN (_fseeko64_r, (ptr, fp, offset, w
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; _off64_t offset _AND
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; int whence)
&lt;br&gt;&amp;nbsp;{
&lt;br&gt;- &amp;nbsp;_fpos64_t _EXFUN ((*seekfn), (struct _reent *, void *, _fpos64_t, int));
&lt;br&gt;+ &amp;nbsp;_fpos64_t _EXFNPTR(seekfn, (struct _reent *, void *, _fpos64_t, int));
&lt;br&gt;&amp;nbsp; &amp;nbsp;_fpos64_t target, curoff;
&lt;br&gt;&amp;nbsp; &amp;nbsp;size_t n;
&lt;br&gt;&lt;br&gt;Index: libc/stdlib/atexit.c
&lt;br&gt;===================================================================
&lt;br&gt;RCS file: /cvs/src/src/newlib/libc/stdlib/atexit.c,v
&lt;br&gt;retrieving revision 1.7
&lt;br&gt;diff -d -u -p -r1.7 atexit.c
&lt;br&gt;--- libc/stdlib/atexit.c	9 Sep 2004 19:46:54 -0000	1.7
&lt;br&gt;+++ libc/stdlib/atexit.c	16 Dec 2009 22:18:47 -0000
&lt;br&gt;@@ -60,7 +60,7 @@ Supporting OS subroutines required: &amp;lt;&amp;lt;cl
&lt;br&gt;&amp;nbsp;int
&lt;br&gt;&amp;nbsp;_DEFUN (atexit,
&lt;br&gt;&amp;nbsp;	(fn),
&lt;br&gt;-	_VOID _EXFUN ((*fn), (_VOID)))
&lt;br&gt;+	_VOID _EXFNPTR(fn, (_VOID)))
&lt;br&gt;&amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp;return __register_exitproc (__et_atexit, fn, NULL, NULL);
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;&lt;br&gt;Index: libc/stdlib/on_exit.c
&lt;br&gt;===================================================================
&lt;br&gt;RCS file: /cvs/src/src/newlib/libc/stdlib/on_exit.c,v
&lt;br&gt;retrieving revision 1.4
&lt;br&gt;diff -d -u -p -r1.4 on_exit.c
&lt;br&gt;--- libc/stdlib/on_exit.c	9 Sep 2004 19:46:54 -0000	1.4
&lt;br&gt;+++ libc/stdlib/on_exit.c	16 Dec 2009 22:18:47 -0000
&lt;br&gt;@@ -65,7 +65,7 @@ Supporting OS subroutines required: None
&lt;br&gt;&amp;nbsp;int
&lt;br&gt;&amp;nbsp;_DEFUN (on_exit,
&lt;br&gt;&amp;nbsp;	(fn, arg),
&lt;br&gt;-	_VOID _EXFUN ((*fn), (int, _PTR)) _AND
&lt;br&gt;+	_VOID _EXFNPTR(fn, (int, _PTR)) _AND
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;_PTR arg)
&lt;br&gt;&amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp;return __register_exitproc (__et_onexit, (void (*)(void)) fn, arg, NULL);
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Sourceware---newlib-list-f12241.html&quot; embed=&quot;fixTarget[12241]&quot; target=&quot;_top&quot; &gt;Sourceware - newlib list&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Mixing-function-pointers-and-regular-functions-with-the-_EXFUN-macro-tp26744013p26821248.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26820049</id>
	<title>Re: Joel's Only Outstanding RTEMS Newlib Patch</title>
	<published>2009-12-16T15:00:15Z</published>
	<updated>2009-12-16T15:00:15Z</updated>
	<author>
		<name>Joel Sherrill &lt;joel@OARcorp.com&gt;</name>
	</author>
	<content type="html">On 12/16/2009 04:12 PM, Jeff Johnston wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; On 16/12/09 04:55 PM, Joel Sherrill wrote:
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt; On 12/16/2009 03:37 PM, Jeff Johnston wrote:
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; On 16/12/09 04:13 PM, Joel Sherrill wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; 2009-12-16 Joel Sherrill&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26820049&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;joel.sherrill@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; * libc/sys/rtems/machine/param.h: Only use sizeof(double) -1
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; for ALIGNBYTES on SPARC.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Patch checked in. I still need to hear from you guys regarding my
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; comments to Ralf's 3rd patch (re: the #endif position).
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt; I think your reading of the placement is right. I don't think
&lt;br&gt;&amp;gt;&amp;gt; we want the st_spare4. That should only show up on
&lt;br&gt;&amp;gt;&amp;gt; the &amp;quot;sun, etc.&amp;quot; path.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Is that what you mean?
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; --joel
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;gt; Yes.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;
&lt;/div&gt;I think it is OK but it is midnight in Germany so Ralf will
&lt;br&gt;probably not reply until he wakes up. :)
&lt;br&gt;&lt;br&gt;--joel
&lt;br&gt;&amp;gt; -- Jeff J.
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Joel Sherrill, Ph.D. &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Director of Research&amp; &amp;nbsp;Development
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26820049&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;joel.sherrill@...&lt;/a&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;On-Line Applications Research
&lt;br&gt;Ask me about RTEMS: a free RTOS &amp;nbsp;Huntsville AL 35805
&lt;br&gt;&amp;nbsp; &amp;nbsp; Support Available &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (256) 722-9985
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Sourceware---newlib-list-f12241.html&quot; embed=&quot;fixTarget[12241]&quot; target=&quot;_top&quot; &gt;Sourceware - newlib list&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Joel%27s-Only-Outstanding-RTEMS-Newlib-Patch-tp26818581p26820049.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26819392</id>
	<title>Re: Joel's Only Outstanding RTEMS Newlib Patch</title>
	<published>2009-12-16T14:12:09Z</published>
	<updated>2009-12-16T14:12:09Z</updated>
	<author>
		<name>Jeff Johnston</name>
	</author>
	<content type="html">On 16/12/09 04:55 PM, Joel Sherrill wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; On 12/16/2009 03:37 PM, Jeff Johnston wrote:
&lt;br&gt;&amp;gt;&amp;gt; On 16/12/09 04:13 PM, Joel Sherrill wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; 2009-12-16 Joel Sherrill&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26819392&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;joel.sherrill@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; * libc/sys/rtems/machine/param.h: Only use sizeof(double) -1
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; for ALIGNBYTES on SPARC.
&lt;br&gt;&amp;gt;&amp;gt; Patch checked in. I still need to hear from you guys regarding my
&lt;br&gt;&amp;gt;&amp;gt; comments to Ralf's 3rd patch (re: the #endif position).
&lt;br&gt;&amp;gt; I think your reading of the placement is right. I don't think
&lt;br&gt;&amp;gt; we want the st_spare4. That should only show up on
&lt;br&gt;&amp;gt; the &amp;quot;sun, etc.&amp;quot; path.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Is that what you mean?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; --joel
&lt;/div&gt;&lt;br&gt;Yes.
&lt;br&gt;&lt;br&gt;-- Jeff J.
&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Sourceware---newlib-list-f12241.html&quot; embed=&quot;fixTarget[12241]&quot; target=&quot;_top&quot; &gt;Sourceware - newlib list&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Joel%27s-Only-Outstanding-RTEMS-Newlib-Patch-tp26818581p26819392.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26819152</id>
	<title>Re: Joel's Only Outstanding RTEMS Newlib Patch</title>
	<published>2009-12-16T13:55:06Z</published>
	<updated>2009-12-16T13:55:06Z</updated>
	<author>
		<name>Joel Sherrill &lt;joel@OARcorp.com&gt;</name>
	</author>
	<content type="html">On 12/16/2009 03:37 PM, Jeff Johnston wrote:
&lt;br&gt;&amp;gt; On 16/12/09 04:13 PM, Joel Sherrill wrote:
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt; 2009-12-16 &amp;nbsp;Joel Sherrill&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26819152&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;joel.sherrill@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; * libc/sys/rtems/machine/param.h: Only use sizeof(double) -1
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; for ALIGNBYTES on SPARC.
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;gt; Patch checked in. &amp;nbsp;I still need to hear from you guys regarding my
&lt;br&gt;&amp;gt; comments to Ralf's 3rd patch (re: the #endif position).
&lt;br&gt;I think your reading of the placement is right. &amp;nbsp;I don't think
&lt;br&gt;we want the st_spare4. &amp;nbsp;That should only show up on
&lt;br&gt;the &amp;quot;sun, etc.&amp;quot; path.
&lt;br&gt;&lt;br&gt;Is that what you mean?
&lt;br&gt;&lt;br&gt;--joel
&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Sourceware---newlib-list-f12241.html&quot; embed=&quot;fixTarget[12241]&quot; target=&quot;_top&quot; &gt;Sourceware - newlib list&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Joel%27s-Only-Outstanding-RTEMS-Newlib-Patch-tp26818581p26819152.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26818903</id>
	<title>Re: Joel's Only Outstanding RTEMS Newlib Patch</title>
	<published>2009-12-16T13:37:07Z</published>
	<updated>2009-12-16T13:37:07Z</updated>
	<author>
		<name>Jeff Johnston</name>
	</author>
	<content type="html">On 16/12/09 04:13 PM, Joel Sherrill wrote:
&lt;br&gt;&amp;gt; 2009-12-16 &amp;nbsp;Joel Sherrill &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26818903&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;joel.sherrill@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;* libc/sys/rtems/machine/param.h: Only use sizeof(double) -1
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;for ALIGNBYTES on SPARC.
&lt;br&gt;&lt;br&gt;Patch checked in. &amp;nbsp;I still need to hear from you guys regarding my 
&lt;br&gt;comments to Ralf's 3rd patch (re: the #endif position).
&lt;br&gt;&lt;br&gt;-- Jeff J.
&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Sourceware---newlib-list-f12241.html&quot; embed=&quot;fixTarget[12241]&quot; target=&quot;_top&quot; &gt;Sourceware - newlib list&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Joel%27s-Only-Outstanding-RTEMS-Newlib-Patch-tp26818581p26818903.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26818581</id>
	<title>Joel's Only Outstanding RTEMS Newlib Patch</title>
	<published>2009-12-16T13:13:30Z</published>
	<updated>2009-12-16T13:13:30Z</updated>
	<author>
		<name>Joel Sherrill &lt;joel@OARcorp.com&gt;</name>
	</author>
	<content type="html">Hi,
&lt;br&gt;&lt;br&gt;A while back I submitted a patch to use sizeof(double)-1
&lt;br&gt;for ALIGNBYTES to avoid an unaligned access on SPARC.
&lt;br&gt;param.h in BSD is target specific and this made it safe
&lt;br&gt;but larger than necessary. &amp;nbsp;The attached patch makes
&lt;br&gt;if &amp;quot;sizeof(double)-1&amp;quot; for SPARC and retains the old
&lt;br&gt;value of &amp;quot;sizeof(int) - 1&amp;quot; for other targets.
&lt;br&gt;&lt;br&gt;Our machine/param.h came from i386 so it isn't that surprising
&lt;br&gt;that it turned up an issue on a RISC CPU. It just took a long
&lt;br&gt;time and &amp;quot;ls&amp;quot; ported from BSD. :)
&lt;br&gt;&lt;br&gt;2009-12-16 &amp;nbsp;Joel Sherrill &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26818581&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;joel.sherrill@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;* libc/sys/rtems/machine/param.h: Only use sizeof(double) -1
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;for ALIGNBYTES on SPARC.
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Joel Sherrill, Ph.D. &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Director of Research&amp; &amp;nbsp;Development
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26818581&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;joel.sherrill@...&lt;/a&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;On-Line Applications Research
&lt;br&gt;Ask me about RTEMS: a free RTOS &amp;nbsp;Huntsville AL 35805
&lt;br&gt;&amp;nbsp; &amp;nbsp; Support Available &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (256) 722-9985
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;Index: libc/sys/rtems/machine/param.h
&lt;br&gt;===================================================================
&lt;br&gt;RCS file: /cvs/src/src/newlib/libc/sys/rtems/machine/param.h,v
&lt;br&gt;retrieving revision 1.3
&lt;br&gt;diff -u -r1.3 param.h
&lt;br&gt;--- libc/sys/rtems/machine/param.h	19 Jun 2009 18:15:35 -0000	1.3
&lt;br&gt;+++ libc/sys/rtems/machine/param.h	16 Dec 2009 21:09:13 -0000
&lt;br&gt;@@ -19,7 +19,11 @@
&lt;br&gt;&amp;nbsp; * for all data types (int, long, ...). &amp;nbsp; The result is unsigned int
&lt;br&gt;&amp;nbsp; * and must be cast to any desired pointer type.
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;+#if defined(__sparc__)
&lt;br&gt;&amp;nbsp;#define ALIGNBYTES	(sizeof(double) - 1)
&lt;br&gt;+#else
&lt;br&gt;+#define ALIGNBYTES	(sizeof(int) - 1)
&lt;br&gt;+#endif
&lt;br&gt;&amp;nbsp;#define ALIGN(p)	(((unsigned)(p) + ALIGNBYTES) &amp; ~ALIGNBYTES)
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;#define PAGE_SHIFT	12		/* LOG2(PAGE_SIZE) */
&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Sourceware---newlib-list-f12241.html&quot; embed=&quot;fixTarget[12241]&quot; target=&quot;_top&quot; &gt;Sourceware - newlib list&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Joel%27s-Only-Outstanding-RTEMS-Newlib-Patch-tp26818581p26818581.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26817542</id>
	<title>Re: Infineon xc16x support</title>
	<published>2009-12-16T12:02:10Z</published>
	<updated>2009-12-16T12:02:10Z</updated>
	<author>
		<name>Jeff Johnston</name>
	</author>
	<content type="html">On 16/12/09 02:42 PM, Conny Marco Menebröcker wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; &amp;nbsp; On Tuesday 15 December 2009 20:35:07 Jeff Johnston wrote:
&lt;br&gt;&amp;gt;&amp;gt; On 15/12/09 01:48 PM, Conny Marco Menebröcker wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp;On Thursday 10 December 2009 18:22:19 Jeff Johnston wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; On 04/12/09 12:34 PM, Conny Marco Menebröcker wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; On Sunday 15 November 2009 10:38:52 Conny Marco Menebröcker wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Hi,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; sorry my first patch file was defect.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; I've got problems sending my patch as atachment. The last mails got
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; all lost, without any debounce mail. So please donload the file:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://www.menebroecker-web.de/wp-content/uploads/2009/11/newlib_xc16x&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.menebroecker-web.de/wp-content/uploads/2009/11/newlib_xc16x&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; .t ar. gz
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Thanks and best regards,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Conny
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Hi,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; please review my patch.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Best regards,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Conny
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Patch has been committed with the following changes:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; putchar.c has been moved to libc/machine/xc16x and its prototype has
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; been changed to accept an int rather than a char, per ANSI.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; puts.c has also been moved libc/machine/xc16x.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; You should understand that the shared putchar macro in stdio.h will get
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; invoked by any user including stdio.h unless they surround the function
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; call with parentheses or #undef the macro. &amp;nbsp;It calls putc() which
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; eventually will end up using your write syscall in libgloss. &amp;nbsp;I'm not
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; sure why you chose to override this particular function by itself other
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; than a possible performance improvement or experiment, but be aware of
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; the previous information. &amp;nbsp;If it was only meant as an experiment, feel
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; free to request it being removed.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; I regenerated the autotool files locally.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Regards,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; -- Jeff J.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Hi Jeff,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; thank you for commiting my patch. But there is a typing error in
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; makefile.am. Please see attached my patch. This time I used
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; automake-1.11, so I think you can use my patch without regenerating the
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; autotool files.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; As I wrote in my first email, I just reworked the patch from Shrirang
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Khishti. So I am not sure why he overrides the putchar function. But I
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; will work on it in the next days.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Best regards
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Conny
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Typo fixed and file regenerated. &amp;nbsp;I usually regenerate the files myself
&lt;br&gt;&amp;gt;&amp;gt; to avoid inconsistencies between autoconf/automake releases.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; -- Jeff J.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; Hi Jeff,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Sorry, but I did some mistakes in the configure and makefiles for libgloss.
&lt;br&gt;&amp;gt; Please see attached another patch.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Best regards
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Conny
&lt;br&gt;&amp;gt;
&lt;/div&gt;&lt;br&gt;Patch applied without change to generated files which I generated here.
&lt;br&gt;&lt;br&gt;-- Jeff J.
&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Sourceware---newlib-list-f12241.html&quot; embed=&quot;fixTarget[12241]&quot; target=&quot;_top&quot; &gt;Sourceware - newlib list&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Infineon-xc16x-support-tp26291496p26817542.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26817240</id>
	<title>Re: Infineon xc16x support</title>
	<published>2009-12-16T11:42:37Z</published>
	<updated>2009-12-16T11:42:37Z</updated>
	<author>
		<name>Conny Marco Menebröcker-3</name>
	</author>
	<content type="html">&amp;nbsp;On Tuesday 15 December 2009 20:35:07 Jeff Johnston wrote: 
&lt;div class='shrinkable-quote'&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; On 15/12/09 01:48 PM, Conny Marco Menebröcker wrote:
&lt;br&gt;&amp;gt; &amp;gt; &amp;nbsp; On Thursday 10 December 2009 18:22:19 Jeff Johnston wrote:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; On 04/12/09 12:34 PM, Conny Marco Menebröcker wrote:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp;On Sunday 15 November 2009 10:38:52 Conny Marco Menebröcker wrote:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; Hi,
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; sorry my first patch file was defect.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; I've got problems sending my patch as atachment. The last mails got
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; all lost, without any debounce mail. So please donload the file:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://www.menebroecker-web.de/wp-content/uploads/2009/11/newlib_xc16x&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.menebroecker-web.de/wp-content/uploads/2009/11/newlib_xc16x&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;.t ar. gz
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; Thanks and best regards,
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; Conny
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; Hi,
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; please review my patch.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; Best regards,
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; Conny
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; Patch has been committed with the following changes:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; putchar.c has been moved to libc/machine/xc16x and its prototype has
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; been changed to accept an int rather than a char, per ANSI.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; puts.c has also been moved libc/machine/xc16x.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; You should understand that the shared putchar macro in stdio.h will get
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; invoked by any user including stdio.h unless they surround the function
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; call with parentheses or #undef the macro. &amp;nbsp;It calls putc() which
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; eventually will end up using your write syscall in libgloss. &amp;nbsp;I'm not
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; sure why you chose to override this particular function by itself other
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; than a possible performance improvement or experiment, but be aware of
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; the previous information. &amp;nbsp;If it was only meant as an experiment, feel
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; free to request it being removed.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; I regenerated the autotool files locally.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; Regards,
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; -- Jeff J.
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; Hi Jeff,
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; thank you for commiting my patch. But there is a typing error in
&lt;br&gt;&amp;gt; &amp;gt; makefile.am. Please see attached my patch. This time I used
&lt;br&gt;&amp;gt; &amp;gt; automake-1.11, so I think you can use my patch without regenerating the
&lt;br&gt;&amp;gt; &amp;gt; autotool files.
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; As I wrote in my first email, I just reworked the patch from Shrirang
&lt;br&gt;&amp;gt; &amp;gt; Khishti. So I am not sure why he overrides the putchar function. But I
&lt;br&gt;&amp;gt; &amp;gt; will work on it in the next days.
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; Best regards
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; Conny
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Typo fixed and file regenerated. &amp;nbsp;I usually regenerate the files myself
&lt;br&gt;&amp;gt; to avoid inconsistencies between autoconf/automake releases.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; -- Jeff J.
&lt;br&gt;&amp;gt;
&lt;/div&gt;Hi Jeff,
&lt;/div&gt;&amp;nbsp; 
&lt;br&gt;Sorry, but I did some mistakes in the configure and makefiles for libgloss.
&lt;br&gt;Please see attached another patch. 
&lt;br&gt;&lt;br&gt;Best regards
&lt;br&gt;&lt;br&gt;Conny
&lt;br&gt;&lt;br&gt;&lt;br /&gt; &lt;div class=&quot;small&quot;&gt;&lt;br/&gt;&lt;img src=&quot;http://old.nabble.com/images/icon_attachment.gif&quot; &gt; &lt;strong&gt;xc16x_libgloss.tar.gz&lt;/strong&gt; (30K) &lt;a href=&quot;http://old.nabble.com/attachment/26817240/0/xc16x_libgloss.tar.gz&quot; target=&quot;_top&quot;&gt;Download Attachment&lt;/a&gt;&lt;/div&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Sourceware---newlib-list-f12241.html&quot; embed=&quot;fixTarget[12241]&quot; target=&quot;_top&quot; &gt;Sourceware - newlib list&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Infineon-xc16x-support-tp26291496p26817240.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26817216</id>
	<title>Re: Mixing function pointers and regular functions with the _EXFUN  macro</title>
	<published>2009-12-16T11:41:12Z</published>
	<updated>2009-12-16T11:41:12Z</updated>
	<author>
		<name>Jeff Johnston</name>
	</author>
	<content type="html">Jerker,
&lt;br&gt;&lt;br&gt;Leave the original _EXPARM macro alone and create a new macro: _EXFNPTR 
&lt;br&gt;which you can define as you have changed _EXPARM. &amp;nbsp;Use the new macro in 
&lt;br&gt;your patch and please post the finished patch &amp;quot;here&amp;quot; and not in the bug. 
&lt;br&gt;&amp;nbsp; I am going to close bugzillas from now on immediately.
&lt;br&gt;&lt;br&gt;If you can do this by tomorrow afternoon, I'll get the patch in for the 
&lt;br&gt;snapshot.
&lt;br&gt;&lt;br&gt;-- Jeff J.
&lt;br&gt;&lt;br&gt;On 14/12/09 06:53 PM, Howland Craig D (Craig) wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; A thought related not to the goal of this patch, but to a detail of how
&lt;br&gt;&amp;gt; it is done.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; The stated intent of the _EXFUN macro is to be used for defining function
&lt;br&gt;&amp;gt; parameters. &amp;nbsp;(2000-09-06 ChangeLog entry says &amp;quot;New macro for defining a
&lt;br&gt;&amp;gt; function parameter.&amp;quot;) &amp;nbsp;The proposal assumes a more general intent, and
&lt;br&gt;&amp;gt; the patch accordingly uses it for purposes other than this. &amp;nbsp;For example
&lt;br&gt;&amp;gt; (the diff coming in the middle of the struct __sFILE definition in
&lt;br&gt;&amp;gt; libc/sys/reent.h):
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; - &amp;nbsp;_READ_WRITE_RETURN_TYPE _EXFUN((*_read),(struct _reent *, _PTR,
&lt;br&gt;&amp;gt; + &amp;nbsp;_READ_WRITE_RETURN_TYPE _EXPARM((_read),(struct _reent *, _PTR,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I have thought of two objections to using _EXPARM outside of function
&lt;br&gt;&amp;gt; parameter lists--both of which relate to maintenance, not to proper function.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; First, the name _EXPARM does not make sense in this context--in a
&lt;br&gt;&amp;gt; structure, for example, what sense does it make to have an &amp;quot;external
&lt;br&gt;&amp;gt; parameter&amp;quot; member? &amp;nbsp;(A result of extending the use beyond its original
&lt;br&gt;&amp;gt; intent, which speaks only to lack of perfect foresight in the original
&lt;br&gt;&amp;gt; wording, and not to the goal of this patch.)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Secondly, using it in this context removes the * from in front of the
&lt;br&gt;&amp;gt; function pointer name, which makes it much less obvious that a function
&lt;br&gt;&amp;gt; pointer is the item in question--a bit of a step backwards. &amp;nbsp;That is,
&lt;br&gt;&amp;gt; with the * there (e.g. *_read of the present form), it only takes a glance
&lt;br&gt;&amp;gt; to see it is a pointer. &amp;nbsp;Without the *, it takes a partially-informed
&lt;br&gt;&amp;gt; guess--or a-priori knowledge--that a function pointer is the subject.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Both of these objections could be eliminated by changing the name of
&lt;br&gt;&amp;gt; the macro. &amp;nbsp;Given that a major reason for using the macro at all is that
&lt;br&gt;&amp;gt; the _cdecl stuff needs to be brought in, a name keeping EX at the front
&lt;br&gt;&amp;gt; is probably best. &amp;nbsp;So instead of _EXPARM(), something like
&lt;br&gt;&amp;gt; _EXFUNCPTR(), _EXFUNCP(), _EXFP(),
&lt;br&gt;&amp;gt; _EXFPTR(), _EXFNPTR(), _EXFTNPTR(), etc.
&lt;br&gt;&amp;gt; (I don't think that any of these are ideal, but they are much more clear
&lt;br&gt;&amp;gt; than _EXPARM.)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; For the sake of a starting point for discussion, I suggest that _EXPARM
&lt;br&gt;&amp;gt; should be changed to _EXFUNCPTR. &amp;nbsp;(This could be considered independently
&lt;br&gt;&amp;gt; of this patch, of course, but it probably makes sense to tie them
&lt;br&gt;&amp;gt; together.) &amp;nbsp;The intended use of the macro would be for function pointers
&lt;br&gt;&amp;gt; used in parameter lists and in structure declarations--the two cases
&lt;br&gt;&amp;gt; for which it is being used in the proposed patch.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Craig
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; -----Original Message-----
&lt;br&gt;&amp;gt; From: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26817216&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;newlib-owner@...&lt;/a&gt; [mailto:&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26817216&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;newlib-owner@...&lt;/a&gt;] On Behalf Of Jerker Bäck
&lt;br&gt;&amp;gt; Sent: Friday, December 11, 2009 8:08 AM
&lt;br&gt;&amp;gt; To: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26817216&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;newlib@...&lt;/a&gt;
&lt;br&gt;&amp;gt; Cc: 'Dave Korn'; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26817216&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jjohnstn@...&lt;/a&gt;
&lt;br&gt;&amp;gt; Subject: Mixing function pointers and regular functions with the _EXFUN macro
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; ...
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I'm assuming that the _EXPARM macro (_ansi.h) is intended to be used for
&lt;br&gt;&amp;gt; function pointers. In current newlib both function pointers and regular
&lt;br&gt;&amp;gt; functions are declared with the _EXFUN macro. That is OK (although not very
&lt;br&gt;&amp;gt; articulate), unless the __CYGWIN__ macro is defined and activates the
&lt;br&gt;&amp;gt; __cdecl function modifier keyword.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; The proposed patch change function pointer declaration to use the _EXPARM
&lt;br&gt;&amp;gt; macro instead of the _EXFUN macro. It also change the order (syntax) of the
&lt;br&gt;&amp;gt; __cdecl keyword in the _EXPARM macro.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; ...
&lt;br&gt;&amp;gt; Cheers
&lt;br&gt;&amp;gt; Jerker B
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;/div&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Sourceware---newlib-list-f12241.html&quot; embed=&quot;fixTarget[12241]&quot; target=&quot;_top&quot; &gt;Sourceware - newlib list&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Mixing-function-pointers-and-regular-functions-with-the-_EXFUN-macro-tp26744013p26817216.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26817104</id>
	<title>Re: errno's needed by rtems marked as linux extensions</title>
	<published>2009-12-16T11:34:16Z</published>
	<updated>2009-12-16T11:34:16Z</updated>
	<author>
		<name>Jeff Johnston</name>
	</author>
	<content type="html">A patch has been made to move the 3 errnos into the general list.
&lt;br&gt;&lt;br&gt;&lt;br&gt;2009-12-16 &amp;nbsp;Jeff Johnston &amp;nbsp;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26817104&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jjohnstn@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* libc/include/sys/errno.h: Move EHOSTDOWN, EPFNOSUPPORT,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;and ETOOMANYREFS into general list as they are referenced
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;by OpenGroup and needed by RTEMS.
&lt;br&gt;&lt;br&gt;-- Jeff J.
&lt;br&gt;&lt;br&gt;On 16/12/09 01:12 PM, Joel Sherrill wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Hi,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; RTEMS TCP/IP code will not compile against the newlib
&lt;br&gt;&amp;gt; head.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I posted earlier this year about errno's that had
&lt;br&gt;&amp;gt; been marked as Linux specified which are really not.
&lt;br&gt;&amp;gt; I found 6 errnos originally but the two others
&lt;br&gt;&amp;gt; on the original list were part of a longer string so
&lt;br&gt;&amp;gt; showed up via grep but were not really used.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; ========= EBADRQC (RTEMS code we can change)
&lt;br&gt;&amp;gt; cpukit/libnetworking/lib/ftpfs.c
&lt;br&gt;&amp;gt; ========= EPFNOSUPPORT (used in Sun RPC/XDR)
&lt;br&gt;&amp;gt; cpukit/librpc/src/rpc/bindresvport.c
&lt;br&gt;&amp;gt; cpukit/librpc/src/rpc/clnt_generic.c
&lt;br&gt;&amp;gt; ========= EHOSTDOWN (used in BSD TCP/IP stack)
&lt;br&gt;&amp;gt; cpukit/libnetworking/netinet/ip_input.c
&lt;br&gt;&amp;gt; cpukit/libnetworking/netinet/tcp_subr.c
&lt;br&gt;&amp;gt; cpukit/libnetworking/nfs/bootp_subr.c
&lt;br&gt;&amp;gt; cpukit/libnetworking/net/if_ethersubr.c
&lt;br&gt;&amp;gt; ========= ETOOMANYREFS (BSD TCP/IP stack)
&lt;br&gt;&amp;gt; cpukit/libnetworking/netinet/ip_output.c
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; So EBADRQC can be changed on our site. That code
&lt;br&gt;&amp;gt; is specific to RTEMS and we can changed that to EINVAL.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; So that leaves EPFNOSUPPORT, EHOSTDOWN, and ETOOMANYREFS.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; EHOSTDOWN is defined in OpenGroup. The other two I don't know.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; In general, the &amp;quot;Linux specific patch&amp;quot; marked some BSD
&lt;br&gt;&amp;gt; and OpenGroup errnos as Linux specific. That covers
&lt;br&gt;&amp;gt; the 3 we care about.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; IMO EHOSTDOWN should just be enabled. It is incorrect
&lt;br&gt;&amp;gt; to mark is as Linux specific.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; The other two are from BSD. What to do about them is
&lt;br&gt;&amp;gt; up to you. They are NOT proprietary to RTEMS.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; When I looked originally, I found these OpenGroup references
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Are there any relevant standards?
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; + EHOSTDOWN is from
&lt;br&gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://www.opengroup.org/onlinepubs/009695399/functions/xsh_chap02_10.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.opengroup.org/onlinepubs/009695399/functions/xsh_chap02_10.html&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; so it is probably really not Linux specific anyway.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; + Every errno in this list appears in the Open Group test suite.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://tetworks.opengroup.org/tet//sample_binaries/3.3/tet3.3-bin-linux2-dist.cpio.Z&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://tetworks.opengroup.org/tet//sample_binaries/3.3/tet3.3-bin-linux2-dist.cpio.Z&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; I was unable to uncompress this so don't know what that means.
&lt;br&gt;&amp;gt;&amp;gt; I didn't see any obvious references to them at opengroup.org in
&lt;br&gt;&amp;gt;&amp;gt; a standards page in my search.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; It would be interesting to see if other errnos marked
&lt;br&gt;&amp;gt;&amp;gt; Linux extensions are also used by *BSD but the set above
&lt;br&gt;&amp;gt;&amp;gt; are the problems for RTEMS. We cannot build RTEMS with
&lt;br&gt;&amp;gt;&amp;gt; newlib cvs without those defined.
&lt;br&gt;&amp;gt;
&lt;/div&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Sourceware---newlib-list-f12241.html&quot; embed=&quot;fixTarget[12241]&quot; target=&quot;_top&quot; &gt;Sourceware - newlib list&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/errno%27s-needed-by-rtems-marked-as-linux-extensions-tp26815801p26817104.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26816296</id>
	<title>Re: RTEMS patch sweep 3</title>
	<published>2009-12-16T10:45:08Z</published>
	<updated>2009-12-16T10:45:08Z</updated>
	<author>
		<name>Jeff Johnston</name>
	</author>
	<content type="html">On 16/12/09 12:53 PM, Ralf Corsepius wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; On 12/16/2009 06:50 PM, Ralf Corsepius wrote:
&lt;br&gt;&amp;gt;&amp;gt; Hi,
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; ... and another one.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; This patch aims at making some parts of newlib more posix compliant.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; One part is #ifdef'ed __rtems__, because it relies on (POSIX) types
&lt;br&gt;&amp;gt;&amp;gt; which (AFAICT) newlib currently are only supplies for RTEMS (blksize_t,
&lt;br&gt;&amp;gt;&amp;gt; blkcnt_t) and because we haven't tested it in other configurations but
&lt;br&gt;&amp;gt;&amp;gt; in RTEMS configurations.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Ralf
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Oops, fingers faster than brains - The attachment containing the patch
&lt;br&gt;&amp;gt; was missing ;)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Ralf
&lt;/div&gt;&lt;br&gt;Shouldn't the added #endif be after the long st_spare4[]? &amp;nbsp;Otherwise, 
&lt;br&gt;you are changing the struct for the #if before it which normally 
&lt;br&gt;wouldn't have included this field.
&lt;br&gt;&lt;br&gt;-- Jeff J.
&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Sourceware---newlib-list-f12241.html&quot; embed=&quot;fixTarget[12241]&quot; target=&quot;_top&quot; &gt;Sourceware - newlib list&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/RTEMS-patch-sweep-3-tp26815455p26816296.html" />
</entry>

</feed>
