Blame m4/ftruncate.m4

Packit 33f14e
# serial 20
Packit 33f14e
Packit 33f14e
# See if we need to emulate a missing ftruncate function using chsize.
Packit 33f14e
Packit 33f14e
# Copyright (C) 2000-2001, 2003-2007, 2009-2017 Free Software Foundation, Inc.
Packit 33f14e
# This file is free software; the Free Software Foundation
Packit 33f14e
# gives unlimited permission to copy and/or distribute it,
Packit 33f14e
# with or without modifications, as long as this notice is preserved.
Packit 33f14e
Packit 33f14e
AC_DEFUN([gl_FUNC_FTRUNCATE],
Packit 33f14e
[
Packit 33f14e
  AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
Packit 33f14e
  AC_CHECK_FUNCS_ONCE([ftruncate])
Packit 33f14e
  if test $ac_cv_func_ftruncate = yes; then
Packit 33f14e
    m4_ifdef([gl_LARGEFILE], [
Packit 33f14e
      AC_REQUIRE([AC_CANONICAL_HOST])
Packit 33f14e
      case "$host_os" in
Packit 33f14e
        mingw*)
Packit 33f14e
          dnl Native Windows, and Large File Support is requested.
Packit 33f14e
          dnl The MSVCRT _chsize() function only accepts a 32-bit file size,
Packit 33f14e
          dnl and the mingw64 ftruncate64() function is unreliable (it may
Packit 33f14e
          dnl delete the file, see
Packit 33f14e
          dnl <http://mingw-w64.sourcearchive.com/documentation/2.0-1/ftruncate64_8c_source.html>).
Packit 33f14e
          dnl Use gnulib's ftruncate() implementation instead.
Packit 33f14e
          REPLACE_FTRUNCATE=1
Packit 33f14e
          ;;
Packit 33f14e
      esac
Packit 33f14e
    ], [
Packit 33f14e
      :
Packit 33f14e
    ])
Packit 33f14e
  else
Packit 33f14e
    HAVE_FTRUNCATE=0
Packit 33f14e
  fi
Packit 33f14e
])
Packit 33f14e
Packit 33f14e
# Prerequisites of lib/ftruncate.c.
Packit 33f14e
AC_DEFUN([gl_PREREQ_FTRUNCATE],
Packit 33f14e
[
Packit 33f14e
  AC_CHECK_FUNCS([chsize])
Packit 33f14e
])