spawn: Use special invocation for <spawn.h> on OS/2 kLIBC.
[gnulib.git] / m4 / rmdir-errno.m4
blob4f5e45858a79d769ebd23fb13d7a215dae491d82
1 # serial 14
3 # Copyright (C) 2000-2001, 2005-2006, 2009-2021 Free Software Foundation, Inc.
4 # This file is free software; the Free Software Foundation
5 # gives unlimited permission to copy and/or distribute it,
6 # with or without modifications, as long as this notice is preserved.
8 # When rmdir fails because the specified directory is not empty, it sets
9 # errno to some value, usually ENOTEMPTY.  However, on some AIX systems,
10 # ENOTEMPTY is mistakenly defined to be EEXIST.  To work around this, and
11 # in general, to avoid depending on the use of any particular symbol, this
12 # test runs a test to determine the actual numeric value.
13 AC_DEFUN([gl_FUNC_RMDIR_NOTEMPTY],
14 [dnl
15   AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
16   AC_CHECK_HEADERS_ONCE([unistd.h])
17   AC_CACHE_CHECK([for rmdir-not-empty errno value],
18     [gl_cv_func_rmdir_errno_not_empty],
19     [
20       # Arrange for deletion of the temporary directory this test creates.
21       ac_clean_files="$ac_clean_files confdir2"
22       mkdir confdir2; : > confdir2/file
23       AC_RUN_IFELSE([AC_LANG_SOURCE([[
24 #include <stdio.h>
25 #include <errno.h>
26 #ifdef HAVE_UNISTD_H
27 # include <unistd.h>
28 #endif
29 ]GL_MDA_DEFINES[
30         int main ()
31         {
32           FILE *s;
33           int val;
34           rmdir ("confdir2");
35           val = errno;
36           s = fopen ("confdir2/errno", "w");
37           fprintf (s, "%d\n", val);
38           fclose (s);
39           return 0;
40         }
41         ]])],
42         [gl_cv_func_rmdir_errno_not_empty=`cat confdir2/errno`],
43         [gl_cv_func_rmdir_errno_not_empty='configure error in rmdir-errno.m4'],
44         [case "$host_os" in
45                    # Guess ENOTEMPTY = 41 on native Windows.
46            mingw*) gl_cv_func_rmdir_errno_not_empty=ENOTEMPTY ;;
47            *)      gl_cv_func_rmdir_errno_not_empty=ENOTEMPTY ;;
48          esac
49         ])
50     ]
51   )
53   AC_DEFINE_UNQUOTED([RMDIR_ERRNO_NOT_EMPTY],
54     [$gl_cv_func_rmdir_errno_not_empty],
55     [the value to which errno is set when rmdir fails on a nonempty directory])