1#serial 13
2
3# See if we need to emulate a missing ftruncate function using fcntl or chsize.
4
5# Copyright (C) 2000, 2001, 2003-2007 Free Software Foundation, Inc.
6# This file is free software; the Free Software Foundation
7# gives unlimited permission to copy and/or distribute it,
8# with or without modifications, as long as this notice is preserved.
9
10# FIXME: remove this macro, along with all uses of HAVE_FTRUNCATE in 2010,
11# if the check below provokes no more reports.  So far, the only report
12# arose from a test build of this gnulib module, cross-compiling to mingw:
13# <http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/9203>
14
15AC_DEFUN([gl_FUNC_FTRUNCATE],
16[
17  AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
18  AC_REQUIRE([AC_CANONICAL_HOST])
19  AC_CHECK_FUNCS_ONCE([ftruncate])
20  if test $ac_cv_func_ftruncate = no; then
21    HAVE_FTRUNCATE=0
22    AC_LIBOBJ([ftruncate])
23    gl_PREREQ_FTRUNCATE
24    case "$host_os" in
25      mingw*)
26        # Yes, we know mingw lacks ftruncate.
27        ;;
28      *)
29        # If someone lacks ftruncate, make configure fail, and request
30        # a bug report to inform us about it.
31        if test x"$SKIP_FTRUNCATE_CHECK" != xyes; then
32          AC_MSG_FAILURE([Your system lacks the ftruncate function.
33	      Please report this, along with the output of "uname -a", to the
34	      bug-coreutils@gnu.org mailing list.  To continue past this point,
35	      rerun configure with SKIP_FTRUNCATE_CHECK=yes.
36	      E.g., ./configure SKIP_FTRUNCATE_CHECK=yes])
37        fi
38    esac
39  fi
40])
41
42# Prerequisites of lib/ftruncate.c.
43AC_DEFUN([gl_PREREQ_FTRUNCATE],
44[
45  AC_CHECK_FUNCS(chsize)
46])
47