2013-04-10 Bin Cheng <bin.cheng@arm.com>

* acconfig.h (_FSEEK_OPTIMIZATION): Undef
        * newlib.hin (_FSEEK_OPTIMIZATION): Undef
        * configure.in (--disable-newlib-fseek-optimization): New option.
        * configure: Regenerated.
        * libc/stdio/fflush.c (__sflush_r): Use _FSEEK_OPTIMIZATION to
        control fseek optimization.
        * libc/stdio/fseeko.c (_fseeko_r): Ditto.
        * libc/stdio/makebuf.c (__smakebuf_r): Ditto.
        * libc/stdio64/fseeko64.c (_fseeko64_r): Ditto.
This commit is contained in:
Jeff Johnston
2013-04-10 18:47:46 +00:00
parent b49dae4a44
commit 602cec7f1e
9 changed files with 70 additions and 2 deletions

View File

@@ -65,8 +65,10 @@ _DEFUN(__smakebuf_r, (ptr, fp),
size = _DEFAULT_ASPRINTF_BUFSIZE;
else
size = BUFSIZ;
#ifdef _FSEEK_OPTIMIZATION
/* do not try to optimise fseek() */
fp->_flags |= __SNPT;
#endif
}
else
{
@@ -76,6 +78,7 @@ _DEFUN(__smakebuf_r, (ptr, fp),
#else
size = BUFSIZ;
#endif
#ifdef _FSEEK_OPTIMIZATION
/*
* Optimize fseek() only if it is a regular file.
* (The test for __sseek is mainly paranoia.)
@@ -91,6 +94,7 @@ _DEFUN(__smakebuf_r, (ptr, fp),
}
else
fp->_flags |= __SNPT;
#endif
}
if ((p = _malloc_r (ptr, size)) == NULL)
{