+2013-06-18 Paul Eggert <eggert@cs.ucla.edu>
+
+ fflush, fseeko: port to musl cross-compiles
+ * lib/fseeko.c (fseeko): Assume that fflushing stdin works if
+ on some implementation that (1) is not known to be buggy,
+ (2) claims conformance to POSIX.1-2008 or later, and (3) is being
+ cross-compiled to so we can't easily check for lack of
+ conformance. This is for cross-compiling to musl.
+ Reported by Rich Felker in
+ <http://lists.gnu.org/archive/html/bug-gnulib/2013-06/msg00043.html>.
+ * m4/fclose.m4 (gl_FUNC_FCLOSE):
+ * m4/fflush.m4 (gl_FUNC_FFLUSH):
+ * m4/fseeko.m4 (gl_FUNC_FSEEKO):
+ Adjust to above change.
+ * m4/fflush.m4 (gl_FUNC_FFLUSH_STDIN): Set gl_cv_func_fflush_stdin
+ to 'cross', not to 'no', when cross-compiling. AC_DEFINE
+ FUNC_FFLUSH_STDIN to 1, 0, -1 if fflushing stdin is known to work,
+ known not to work, or unknown.
+
2013-06-15 Paul Eggert <eggert@cs.ucla.edu>
msvc-inval: port to mingw-w64
/* Specification. */
#include <stdio.h>
-/* Get off_t and lseek. */
+/* Get off_t, lseek, _POSIX_VERSION. */
#include <unistd.h>
#include "stdio-impl.h"
#elif defined EPLAN9 /* Plan9 */
if (fp->rp == fp->buf
&& fp->wp == fp->buf)
+#elif FUNC_FFLUSH_STDIN < 0 && 200809 <= _POSIX_VERSION
+ /* Cross-compiling to some other system advertising conformance to
+ POSIX.1-2008 or later. Assume fseeko and fflush work as advertised.
+ If this assumption is incorrect, please report the bug to
+ bug-gnulib. */
+ if (0)
#else
- #error "Please port gnulib fseeko.c to your platform! Look at the code in fpurge.c, then report this to bug-gnulib."
+ #error "Please port gnulib fseeko.c to your platform! Look at the code in fseeko.c, then report this to bug-gnulib."
#endif
{
/* We get here when an fflush() call immediately preceded this one (or
-# fclose.m4 serial 5
+# fclose.m4 serial 6
dnl Copyright (C) 2008-2013 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_REQUIRE([gl_STDIO_H_DEFAULTS])
gl_FUNC_FFLUSH_STDIN
- if test $gl_cv_func_fflush_stdin = no; then
+ if test $gl_cv_func_fflush_stdin != yes; then
REPLACE_FCLOSE=1
fi
-# fflush.m4 serial 14
+# fflush.m4 serial 15
# Copyright (C) 2007-2013 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
[
AC_REQUIRE([gl_STDIO_H_DEFAULTS])
gl_FUNC_FFLUSH_STDIN
- if test $gl_cv_func_fflush_stdin = no; then
+ if test $gl_cv_func_fflush_stdin != yes; then
REPLACE_FFLUSH=1
fi
])
return 7;
return 0;
]])], [gl_cv_func_fflush_stdin=yes], [gl_cv_func_fflush_stdin=no],
- [dnl Pessimistically assume fflush is broken.
- gl_cv_func_fflush_stdin=no])
+ [gl_cv_func_fflush_stdin=cross])
rm conftest.txt
])
+ case $gl_cv_func_fflush_stdin in
+ yes) gl_func_fflush_stdin=1 ;;
+ no) gl_func_fflush_stdin=0 ;;
+ *) gl_func_fflush_stdin='(-1)' ;;
+ esac
+ AC_DEFINE_UNQUOTED([FUNC_FFLUSH_STDIN], [$gl_func_fflush_stdin],
+ [Define to 1 if fflush is known to work on stdin as per POSIX.1-2008,
+ 0 if fflush is known to not work, -1 if unknown.])
])
# Prerequisites of lib/fflush.c.
-# fseeko.m4 serial 16
+# fseeko.m4 serial 17
dnl Copyright (C) 2007-2013 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
fi
m4_ifdef([gl_FUNC_FFLUSH_STDIN], [
gl_FUNC_FFLUSH_STDIN
- if test $gl_cv_func_fflush_stdin = no; then
+ if test $gl_cv_func_fflush_stdin != yes; then
REPLACE_FSEEKO=1
fi
])