? libc ? newlib/autom4te.cache ? newlib/libc/autom4te.cache Index: newlib/README =================================================================== RCS file: /cvs/src/src/newlib/README,v retrieving revision 1.24 diff -u -a -r1.24 README --- newlib/README 13 Jun 2013 11:43:44 -0000 1.24 +++ newlib/README 14 Jun 2013 03:49:56 -0000 @@ -321,6 +321,13 @@ support `--enable-malloc-debugging' any more. Disabled by default. +`--disable-newlib-unbuf-stream-opt' + NEWLIB does optimization when `fprintf to write only unbuffered unix + file'. It creates a temorary buffer to do the optimization that + increases stack consumption by about `BUFSIZ' bytes. This option + disables the optimization and saves size of text and stack. + Enabled by default. + `--enable-multilib' Build many library versions. Enabled by default. Index: newlib/acconfig.h =================================================================== RCS file: /cvs/src/src/newlib/acconfig.h,v retrieving revision 1.8 diff -u -a -r1.8 acconfig.h --- newlib/acconfig.h 12 Apr 2013 12:05:31 -0000 1.8 +++ newlib/acconfig.h 14 Jun 2013 03:49:56 -0000 @@ -64,6 +64,9 @@ /* Define if wide char orientation is supported. */ #undef _WIDE_ORIENT +/* Define if unbuffered stream file optimization is supported. */ +#undef _UNBUF_STREAM_OPT + @BOTTOM@ /* * Iconv encodings enabled ("to" direction) Index: newlib/configure =================================================================== RCS file: /cvs/src/src/newlib/configure,v retrieving revision 1.77 diff -u -a -r1.77 configure --- newlib/configure 29 May 2013 12:37:59 -0000 1.77 +++ newlib/configure 14 Jun 2013 03:49:57 -0000 @@ -793,6 +793,7 @@ enable_newlib_fseek_optimization enable_newlib_wide_orient enable_newlib_nano_malloc +enable_newlib_unbuf_stream_opt enable_multilib enable_target_optspace enable_malloc_debugging @@ -1460,6 +1461,7 @@ --disable-newlib-fseek-optimization disable fseek optimization --disable-newlib-wide-orient Turn off wide orientation in streamio --enable-newlib-nano-malloc use small-footprint nano-malloc implementation + --disable-newlib-unbuf-stream-opt disable unbuffered stream optimization in streamio --enable-multilib build many library versions (default) --enable-target-optspace optimize for space --enable-malloc-debugging indicate malloc debugging requested @@ -2410,6 +2412,19 @@ newlib_nano_malloc=no fi +# Check whether --enable-newlib-unbuf-stream-opt was given. +if test "${enable_newlib_unbuf_stream_opt+set}" = set; then : + enableval=$enable_newlib_unbuf_stream_opt; if test "${newlib_unbuf_stream_opt+set}" != set; then + case "${enableval}" in + yes) newlib_unbuf_stream_opt=yes ;; + no) newlib_unbuf_stream_opt=no ;; + *) as_fn_error $? "bad value ${enableval} for newlib-unbuf-stream-opt option" "$LINENO" 5 ;; + esac + fi +else + newlib_unbuf_stream_opt=yes +fi + # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || @@ -12314,7 +12329,14 @@ if test "${newlib_nano_malloc}" = "yes"; then cat >>confdefs.h <<_ACEOF -#define NEWLIB_NANO_MALLOC 1 +#define _NANO_MALLOC 1 +_ACEOF + +fi + +if test "${newlib_unbuf_stream_opt}" = "yes"; then +cat >>confdefs.h <<_ACEOF +#define _UNBUF_STREAM_OPT 1 _ACEOF fi Index: newlib/configure.in =================================================================== RCS file: /cvs/src/src/newlib/configure.in,v retrieving revision 1.51 diff -u -a -r1.51 configure.in --- newlib/configure.in 29 May 2013 12:37:59 -0000 1.51 +++ newlib/configure.in 14 Jun 2013 03:49:57 -0000 @@ -170,6 +170,17 @@ esac fi], [newlib_nano_malloc=no])dnl +dnl Support --disable-newlib-unbuf-stream-opt +AC_ARG_ENABLE(newlib-unbuf-stream-opt, +[ --disable-newlib-unbuf-stream-opt disable unbuffered stream optimization in streamio], +[if test "${newlib_unbuf_stream_opt+set}" != set; then + case "${enableval}" in + yes) newlib_unbuf_stream_opt=yes ;; + no) newlib_unbuf_stream_opt=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for newlib-unbuf-stream-opt option) ;; + esac + fi], [newlib_unbuf_stream_opt=yes])dnl + NEWLIB_CONFIGURE(.) dnl We have to enable libtool after NEWLIB_CONFIGURE because if we try and @@ -375,6 +386,10 @@ AC_DEFINE_UNQUOTED(_NANO_MALLOC) fi +if test "${newlib_unbuf_stream_opt}" = "yes"; then +AC_DEFINE_UNQUOTED(_UNBUF_STREAM_OPT) +fi + dnl dnl Parse --enable-newlib-iconv-encodings option argument dnl Index: newlib/newlib.hin =================================================================== RCS file: /cvs/src/src/newlib/newlib.hin,v retrieving revision 1.24 diff -u -a -r1.24 newlib.hin --- newlib/newlib.hin 12 Apr 2013 12:05:31 -0000 1.24 +++ newlib/newlib.hin 14 Jun 2013 03:49:57 -0000 @@ -67,6 +67,9 @@ /* Define if wide char orientation is supported. */ #undef _WIDE_ORIENT +/* Define if unbuffered stream file optimization is supported. */ +#undef _UNBUF_STREAM_OPT + /* * Iconv encodings enabled ("to" direction) */ Index: newlib/libc/stdio/vfprintf.c =================================================================== RCS file: /cvs/src/src/newlib/libc/stdio/vfprintf.c,v retrieving revision 1.86 diff -u -a -r1.86 vfprintf.c --- newlib/libc/stdio/vfprintf.c 12 Apr 2013 12:05:31 -0000 1.86 +++ newlib/libc/stdio/vfprintf.c 14 Jun 2013 03:49:57 -0000 @@ -865,12 +865,14 @@ return (EOF); } +#ifdef _UNBUF_STREAM_OPT /* optimise fprintf(stderr) (and other unbuffered Unix files) */ if ((fp->_flags & (__SNBF|__SWR|__SRW)) == (__SNBF|__SWR) && fp->_file >= 0) { _newlib_flockfile_exit (fp); return (__sbprintf (data, fp, fmt0, ap)); } +#endif #else /* STRING_ONLY */ /* Create initial buffer if we are called by asprintf family. */ if (fp->_flags & __SMBF && !fp->_bf._base) Index: newlib/libc/stdio/vfwprintf.c =================================================================== RCS file: /cvs/src/src/newlib/libc/stdio/vfwprintf.c,v retrieving revision 1.12 diff -u -a -r1.12 vfwprintf.c --- newlib/libc/stdio/vfwprintf.c 27 Mar 2013 09:38:39 -0000 1.12 +++ newlib/libc/stdio/vfwprintf.c 14 Jun 2013 03:49:57 -0000 @@ -599,12 +599,14 @@ return (EOF); } +#ifdef _UNBUF_STREAM_OPT /* optimise fwprintf(stderr) (and other unbuffered Unix files) */ if ((fp->_flags & (__SNBF|__SWR|__SRW)) == (__SNBF|__SWR) && fp->_file >= 0) { _newlib_flockfile_exit (fp); return (__sbwprintf (data, fp, fmt0, ap)); } +#endif #else /* STRING_ONLY */ /* Create initial buffer if we are called by asprintf family. */ if (fp->_flags & __SMBF && !fp->_bf._base)