~ubuntu-branches/ubuntu/precise/wget/precise-proposed

« back to all changes in this revision

Viewing changes to m4/futimens.m4

  • Committer: Bazaar Package Importer
  • Author(s): Steve Langasek
  • Date: 2011-10-19 00:00:09 UTC
  • mfrom: (2.1.13 sid)
  • Revision ID: james.westby@ubuntu.com-20111019000009-8p33w3wz4b1rdri0
Tags: 1.13-1ubuntu1
* Merge from Debian unstable, remaining changes:
  - Add wget-udeb to ship wget.gnu as alternative to busybox wget
    implementation.
  - Depend on libssl-dev 0.9.8k-7ubuntu4 (LP: #503339)
* Dropped changes, superseded in Debian:
  - Keep build dependencies in main:
    + debian/control: remove info2man build-dep
    + debian/patches/series: disable wget-infopod_generated_manpage
  - Mark wget Multi-Arch: foreign, so packages that aren't of the same arch
    can depend on it.
* Pass --with-ssl=openssl; we don't want to use gnutls, there's no udeb for
  it.
* Add a second build pass for the udeb, so we can build without libidn.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# serial 6
 
2
# See if we need to provide futimens replacement.
 
3
 
 
4
dnl Copyright (C) 2009-2011 Free Software Foundation, Inc.
 
5
dnl This file is free software; the Free Software Foundation
 
6
dnl gives unlimited permission to copy and/or distribute it,
 
7
dnl with or without modifications, as long as this notice is preserved.
 
8
 
 
9
# Written by Eric Blake.
 
10
 
 
11
AC_DEFUN([gl_FUNC_FUTIMENS],
 
12
[
 
13
  AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS])
 
14
  AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
 
15
  AC_CHECK_FUNCS_ONCE([futimens])
 
16
  if test $ac_cv_func_futimens = no; then
 
17
    HAVE_FUTIMENS=0
 
18
  else
 
19
    AC_CACHE_CHECK([whether futimens works],
 
20
      [gl_cv_func_futimens_works],
 
21
      [AC_RUN_IFELSE([AC_LANG_PROGRAM([[
 
22
#include <fcntl.h>
 
23
#include <sys/stat.h>
 
24
#include <unistd.h>
 
25
#include <errno.h>
 
26
]], [[struct timespec ts[2] = { { 1, UTIME_OMIT }, { 1, UTIME_NOW } };
 
27
      int fd = creat ("conftest.file", 0600);
 
28
      struct stat st;
 
29
      if (fd < 0) return 1;
 
30
      errno = 0;
 
31
      if (futimens (AT_FDCWD, NULL) == 0) return 2;
 
32
      if (errno != EBADF) return 3;
 
33
      if (futimens (fd, ts)) return 4;
 
34
      sleep (1);
 
35
      ts[0].tv_nsec = UTIME_NOW;
 
36
      ts[1].tv_nsec = UTIME_OMIT;
 
37
      if (futimens (fd, ts)) return 5;
 
38
      if (fstat (fd, &st)) return 6;
 
39
      if (st.st_ctime < st.st_atime) return 7;
 
40
      ]])],
 
41
dnl FIXME: simplify this in 2012, when file system bugs are no longer common
 
42
         [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
 
43
#ifdef __linux__
 
44
/* The Linux kernel added futimens in 2.6.22, but has bugs with UTIME_OMIT
 
45
   in several file systems as recently as 2.6.32.  Always replace futimens
 
46
   to support older kernels.  */
 
47
choke me
 
48
#endif
 
49
      ]])],
 
50
           [gl_cv_func_futimens_works=yes],
 
51
           [gl_cv_func_futimens_works="needs runtime check"])],
 
52
         [gl_cv_func_futimens_works=no],
 
53
         [gl_cv_func_futimens_works="guessing no"])
 
54
      rm -f conftest.file])
 
55
    if test "$gl_cv_func_futimens_works" != yes; then
 
56
      REPLACE_FUTIMENS=1
 
57
    fi
 
58
  fi
 
59
])