From: Paul Eggert Date: Mon, 10 Sep 2012 20:37:18 +0000 (-0700) Subject: fcntl-h: check for AIX 7.1 bug with O_NOFOLLOW and O_CREAT X-Git-Tag: v0.1~449 X-Git-Url: http://erislabs.org.uk/gitweb/?a=commitdiff_plain;h=58db8531e5a2544ce6ef1ccb370f67ff97901381;p=gnulib.git fcntl-h: check for AIX 7.1 bug with O_NOFOLLOW and O_CREAT * m4/fcntl-o.m4 (gl_FCNTL_O_FLAGS): Check for AIX 7.1 bug that caused a GNU tar test failure. Problem reported by Jez Wain; see . --- diff --git a/ChangeLog b/ChangeLog index 282e060f1..18225e4ff 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2012-09-10 Paul Eggert + + fcntl-h: check for AIX 7.1 bug with O_NOFOLLOW and O_CREAT + * m4/fcntl-o.m4 (gl_FCNTL_O_FLAGS): Check for AIX 7.1 bug + that caused a GNU tar test failure. Problem reported by Jez Wain; see + . + 2012-09-06 Eric Blake net_if: give more details about the bug being fixed diff --git a/m4/fcntl-o.m4 b/m4/fcntl-o.m4 index 9862741f3..a413810e0 100644 --- a/m4/fcntl-o.m4 +++ b/m4/fcntl-o.m4 @@ -50,7 +50,18 @@ AC_DEFUN([gl_FCNTL_O_FLAGS], #if HAVE_SYMLINK { 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 |= 1; + } + } + if (unlink (sym) != 0 || symlink (".", sym) != 0) result |= 2; else {