bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

proper use of AC_LIBOBJ, fflush and fseeko


From: Bruno Haible
Subject: proper use of AC_LIBOBJ, fflush and fseeko
Date: Fri, 6 May 2011 00:25:03 +0200
User-agent: KMail/1.9.9

We learned in [1] that it doesn't generally work to use AC_LIBOBJ of a
file in module X from within the m4 macros of module Y.

Eric agreed [2] that this is "sane".

The first fix in this direction: fflush vs. fseeko. In the mentioned
situation, where 'fclose' and 'fseeko' are imported in lib/ but 'fflush'
is only imported in tests/, it will fix the error message
"missing file gnulib/tests/fseeko.c".

[1] http://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00174.html
[2] http://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00176.html


2011-05-05  Bruno Haible  <address@hidden>

        fflush, fseeko: Respect rules for use of AC_LIBOBJ.
        * m4/fflush.m4 (gl_FUNC_FFLUSH_STDIN): New macro, extracted from
        gl_FUNC_FFLUSH.
        (gl_FUNC_FFLUSH): Use it.
        (gl_REPLACE_FFLUSH): Don't invoke gl_REPLACE_FSEEKO.
        * m4/fseeko.m4 (gl_FUNC_FSEEKO): Invoke gl_FUNC_FFLUSH_STDIN and
        gl_REPLACE_FSEEKO here.

--- m4/fflush.m4.orig   Fri May  6 00:20:18 2011
+++ m4/fflush.m4        Fri May  6 00:12:31 2011
@@ -1,4 +1,4 @@
-# fflush.m4 serial 9
+# fflush.m4 serial 10
 
 # Copyright (C) 2007-2011 Free Software Foundation, Inc.
 # This file is free software; the Free Software Foundation
@@ -12,6 +12,18 @@
 
 AC_DEFUN([gl_FUNC_FFLUSH],
 [
+  gl_FUNC_FFLUSH_STDIN
+  if test $gl_cv_func_fflush_stdin = no; then
+    gl_REPLACE_FFLUSH
+    gl_REPLACE_FCLOSE
+  fi
+])
+
+dnl Determine whether fflush works on input streams.
+dnl Sets gl_cv_func_fflush_stdin.
+
+AC_DEFUN([gl_FUNC_FFLUSH_STDIN],
+[
   AC_CACHE_CHECK([whether fflush works on input streams],
     [gl_cv_func_fflush_stdin],
     [echo hello world > conftest.txt
@@ -59,10 +71,6 @@
       gl_cv_func_fflush_stdin=no])
      rm conftest.txt
     ])
-  if test $gl_cv_func_fflush_stdin = no; then
-    gl_REPLACE_FFLUSH
-    gl_REPLACE_FCLOSE
-  fi
 ])
 
 AC_DEFUN([gl_REPLACE_FFLUSH],
@@ -71,7 +79,6 @@
   AC_REQUIRE([gl_STDIO_H_DEFAULTS])
   REPLACE_FFLUSH=1
   gl_PREREQ_FFLUSH
-  gl_REPLACE_FSEEKO
 ])
 
 # Prerequisites of lib/fflush.c.
--- m4/fseeko.m4.orig   Fri May  6 00:20:18 2011
+++ m4/fseeko.m4        Fri May  6 00:12:49 2011
@@ -1,4 +1,4 @@
-# fseeko.m4 serial 11
+# fseeko.m4 serial 12
 dnl Copyright (C) 2007-2011 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -23,6 +23,12 @@
       gl_REPLACE_FSEEKO
     fi
   fi
+  m4_ifdef([gl_FUNC_FFLUSH_STDIN], [
+    gl_FUNC_FFLUSH_STDIN
+    if test $gl_cv_func_fflush_stdin = no; then
+      gl_REPLACE_FSEEKO
+    fi
+  ])
 ])
 
 dnl Tests whether fseeko is available.


-- 
In memoriam Peter van Pels <http://en.wikipedia.org/wiki/Peter_van_Pels>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]