[PATCH] Fix stdin,-out and -err for multithreaded apps

Thomas Pfaff tpfaff@gmx.net
Tue Sep 23 07:09:00 GMT 2003

Attached is a patch that should fix the bug reported at


which is another __DYNAMIC_REENT related problem.

It will change stdin, -out and -err locations to use _GLOBAL_REENT 
instead of _REENT where appropriate, and it includes a change for the 
stdin, stdout and stderr defines that i suggested some time ago (see 
This will allow to change stdin, stdout and stderr without recompiling 
all user apps in the future.

If speed is an issue the former defines can be used by defining 

After applying this patch Makefile.in must be regenerated.

Comments are welcome.


2003-09-18  Thomas Pfaff  <tpfaff@gmx.net>

	* libc/include/stdio.h: Redefine stdin, stdout and stderr to use
	function calls instead of direct member access if newlib is
	compiled without _INLINE_STDFP.
	* libc/stdio/Makefile.am (GENERAL_SOURCES): Add stdfp.c.
	* libc/stdio/stdfp.c: New file.
	* libc/stdio/getchar.c: Replace _REENT with _GLOBAL_REENT where
	* libc/stdio/getchar_u.c: Ditto.
	* libc/stdio/gets.c: Ditto.
	* libc/stdio/iprintf.c: Ditto.
	* libc/stdio/perror.c: Ditto.
	* libc/stdio/printf.c: Ditto.
	* libc/stdio/putchar.c: Ditto.
	* libc/stdio/putchar_u.c: Ditto.
	* libc/stdio/puts.c: Ditto.
	* libc/stdio/scanf.c: Ditto.
	* libc/stdio/vprintf.c: Ditto.
	* libc/stdio/vscanf.c: Ditto.
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: newlib-stdio.patch
URL: <http://sourceware.org/pipermail/newlib/attachments/20030923/891622d9/attachment.ksh>

More information about the Newlib mailing list