+2006-10-05 Paul Eggert <eggert@cs.ucla.edu>
+
+ * src/dd.c (flags): noatime and nofollow now depend on
+ HAVE_WORKING_O_NOATIME and HAVE_WORKING_O_NOFOLLOW, too.
+ (usage): Output info about noatime and nofollow only if
+ they are known to work.
+ * src/remove.c (AD_push): Inspect HAVE_WORKING_O_NOFOLLOW rather
+ than O_NOFOLLOW, when testing whether it's possible to avoid a
+ race condition reliably.
+
2006-10-05 Jim Meyering <jim@meyering.net>
* tests/install/basic-1: Skip the latter part of this test if the
{"direct", O_DIRECT},
{"directory", O_DIRECTORY},
{"dsync", O_DSYNC},
- {"noatime", O_NOATIME},
+ {"noatime", HAVE_WORKING_O_NOATIME ? O_NOATIME : 0},
{"noctty", O_NOCTTY},
- {"nofollow", O_NOFOLLOW},
+ {"nofollow", HAVE_WORKING_O_NOFOLLOW ? O_NOFOLLOW : 0},
{"nolinks", O_NOLINKS},
{"nonblock", O_NONBLOCK},
{"sync", O_SYNC},
fputs (_(" sync likewise, but also for metadata\n"), stdout);
if (O_NONBLOCK)
fputs (_(" nonblock use non-blocking I/O\n"), stdout);
- if (O_NOATIME)
+ if (HAVE_WORKING_O_NOATIME)
fputs (_(" noatime do not update access time\n"), stdout);
if (O_NOCTTY)
fputs (_(" noctty do not assign controlling terminal from file\n"),
stdout);
- if (O_NOFOLLOW)
+ if (HAVE_WORKING_O_NOFOLLOW)
fputs (_(" nofollow do not follow symlinks\n"), stdout);
if (O_NOLINKS)
fputs (_(" nolinks fail if multiply-linked\n"), stdout);
/* If our uses of openat are guaranteed not to
follow a symlink, then we can skip this check. */
- if ( ! O_NOFOLLOW)
+ if (! HAVE_WORKING_O_NOFOLLOW)
{
struct stat sb;
if (fstat (fd_cwd, &sb) != 0)