]> git.ipfire.org Git - thirdparty/chrony.git/commitdiff
configure: check for O_NOFOLLOW flag
authorMiroslav Lichvar <mlichvar@redhat.com>
Tue, 16 Feb 2021 12:54:42 +0000 (13:54 +0100)
committerMiroslav Lichvar <mlichvar@redhat.com>
Tue, 16 Feb 2021 12:59:41 +0000 (13:59 +0100)
If the O_NOFOLLOW flag used by open() is not defined, try it with
_GNU_SOURCE. This is needed with glibc-2.11 and earlier.

Reported-by: Marius Rohde <marius.rohde@meinberg.de>
configure

index 845b096283c8612c2874b599920880aee0fcedce..95f0e97cb861fb6172469771ea98d6883b58c4fe 100755 (executable)
--- a/configure
+++ b/configure
@@ -655,6 +655,20 @@ then
   fi
 fi
 
+if ! test_code 'O_NOFOLLOW flag' 'sys/types.h sys/stat.h fcntl.h' '' "$LIBS" \
+  'return open("/dev/null", O_NOFOLLOW);'
+then
+  if test_code 'O_NOFOLLOW flag with _GNU_SOURCE' 'sys/types.h sys/stat.h fcntl.h' \
+    '-D_GNU_SOURCE' "$LIBS" \
+    'return open("/dev/null", O_NOFOLLOW);'
+  then
+    add_def _GNU_SOURCE
+  else
+    echo "error: open() does not support O_NOFOLLOW flag"
+    exit 1
+  fi
+fi
+
 if [ $try_clock_gettime = "1" ]; then
   if test_code 'clock_gettime()' 'time.h' '' '' \
     'clock_gettime(CLOCK_REALTIME, NULL);'