projects
/
debian
/
tar
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Import upstream version 1.27
[debian/tar]
/
m4
/
fcntl-o.m4
diff --git
a/m4/fcntl-o.m4
b/m4/fcntl-o.m4
index 88db07ec73e1b2f702e292b003fbdc9b618a65ae..87cc4bd2ddbd4c37aad828c31b38b95149c8fe11 100644
(file)
--- a/
m4/fcntl-o.m4
+++ b/
m4/fcntl-o.m4
@@
-1,5
+1,5
@@
-# fcntl-o.m4 serial
3
-dnl Copyright (C) 2006, 2009-201
1
Free Software Foundation, Inc.
+# fcntl-o.m4 serial
4
+dnl Copyright (C) 2006, 2009-201
3
Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
@@
-17,12
+17,21
@@
AC_DEFUN([gl_FCNTL_O_FLAGS],
m4_ifdef([AC_USE_SYSTEM_EXTENSIONS],
[AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])],
[AC_REQUIRE([AC_GNU_SOURCE])])
m4_ifdef([AC_USE_SYSTEM_EXTENSIONS],
[AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])],
[AC_REQUIRE([AC_GNU_SOURCE])])
+
+ AC_CHECK_HEADERS_ONCE([unistd.h])
+ AC_CHECK_FUNCS_ONCE([symlink])
AC_CACHE_CHECK([for working fcntl.h], [gl_cv_header_working_fcntl_h],
[AC_RUN_IFELSE(
[AC_LANG_PROGRAM(
[[#include <sys/types.h>
#include <sys/stat.h>
AC_CACHE_CHECK([for working fcntl.h], [gl_cv_header_working_fcntl_h],
[AC_RUN_IFELSE(
[AC_LANG_PROGRAM(
[[#include <sys/types.h>
#include <sys/stat.h>
- #include <unistd.h>
+ #if HAVE_UNISTD_H
+ # include <unistd.h>
+ #else /* on Windows with MSVC */
+ # include <io.h>
+ # include <stdlib.h>
+ # defined sleep(n) _sleep ((n) * 1000)
+ #endif
#include <fcntl.h>
#ifndef O_NOATIME
#define O_NOATIME 0
#include <fcntl.h>
#ifndef O_NOATIME
#define O_NOATIME 0
@@
-38,9
+47,21
@@
AC_DEFUN([gl_FCNTL_O_FLAGS],
]],
[[
int result = !constants;
]],
[[
int result = !constants;
+ #if HAVE_SYMLINK
{
static char const sym[] = "conftest.sym";
{
static char const sym[] = "conftest.sym";
- if (symlink (".", sym) != 0)
+ if (symlink ("/dev/null", sym) != 0)
+ result |= 2;
+ else
+ {
+ int fd = open (sym, O_WRONLY | O_NOFOLLOW | O_CREAT, 0);
+ if (fd >= 0)
+ {
+ close (fd);
+ result |= 4;
+ }
+ }
+ if (unlink (sym) != 0 || symlink (".", sym) != 0)
result |= 2;
else
{
result |= 2;
else
{
@@
-53,6
+74,7
@@
AC_DEFUN([gl_FCNTL_O_FLAGS],
}
unlink (sym);
}
}
unlink (sym);
}
+ #endif
{
static char const file[] = "confdefs.h";
int fd = open (file, O_RDONLY | O_NOATIME);
{
static char const file[] = "confdefs.h";
int fd = open (file, O_RDONLY | O_NOATIME);