annotate m4/symlinkat.m4 @ 40186:8964917f9574

autoupdate
author Karl Berry <karl@freefriends.org>
date Mon, 18 Feb 2019 08:02:49 -0800
parents b06060465f09
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
19660
d7562698c771 Add cross-compilation guesses for Linux systems without glibc.
Bruno Haible <bruno@clisp.org>
parents: 19484
diff changeset
1 # serial 9
13539
56e31af9a41e readlinkat: split into its own module
Eric Blake <eblake@redhat.com>
parents: 12559
diff changeset
2 # See if we need to provide symlinkat replacement.
11956
55cb5282dd84 symlinkat: new module
Eric Blake <ebb9@byu.net>
parents:
diff changeset
3
40057
b06060465f09 maint: Run 'make update-copyright'
Paul Eggert <eggert@cs.ucla.edu>
parents: 19660
diff changeset
4 dnl Copyright (C) 2009-2019 Free Software Foundation, Inc.
11956
55cb5282dd84 symlinkat: new module
Eric Blake <ebb9@byu.net>
parents:
diff changeset
5 dnl This file is free software; the Free Software Foundation
55cb5282dd84 symlinkat: new module
Eric Blake <ebb9@byu.net>
parents:
diff changeset
6 dnl gives unlimited permission to copy and/or distribute it,
55cb5282dd84 symlinkat: new module
Eric Blake <ebb9@byu.net>
parents:
diff changeset
7 dnl with or without modifications, as long as this notice is preserved.
55cb5282dd84 symlinkat: new module
Eric Blake <ebb9@byu.net>
parents:
diff changeset
8
55cb5282dd84 symlinkat: new module
Eric Blake <ebb9@byu.net>
parents:
diff changeset
9 # Written by Eric Blake.
55cb5282dd84 symlinkat: new module
Eric Blake <ebb9@byu.net>
parents:
diff changeset
10
55cb5282dd84 symlinkat: new module
Eric Blake <ebb9@byu.net>
parents:
diff changeset
11 AC_DEFUN([gl_FUNC_SYMLINKAT],
55cb5282dd84 symlinkat: new module
Eric Blake <ebb9@byu.net>
parents:
diff changeset
12 [
18985
89722d6723c5 Make sure $host and $host_os are defined when used.
Bruno Haible <bruno@clisp.org>
parents: 18626
diff changeset
13 AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
11956
55cb5282dd84 symlinkat: new module
Eric Blake <ebb9@byu.net>
parents:
diff changeset
14 AC_REQUIRE([gl_FUNC_OPENAT])
55cb5282dd84 symlinkat: new module
Eric Blake <ebb9@byu.net>
parents:
diff changeset
15 AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
18985
89722d6723c5 Make sure $host and $host_os are defined when used.
Bruno Haible <bruno@clisp.org>
parents: 18626
diff changeset
16 AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
13539
56e31af9a41e readlinkat: split into its own module
Eric Blake <eblake@redhat.com>
parents: 12559
diff changeset
17 AC_CHECK_FUNCS_ONCE([symlinkat])
11956
55cb5282dd84 symlinkat: new module
Eric Blake <ebb9@byu.net>
parents:
diff changeset
18 if test $ac_cv_func_symlinkat = no; then
55cb5282dd84 symlinkat: new module
Eric Blake <ebb9@byu.net>
parents:
diff changeset
19 HAVE_SYMLINKAT=0
17770
a0a111d28e75 symlinkat: port to AIX 7.1
Paul Eggert <eggert@cs.ucla.edu>
parents: 17576
diff changeset
20 else
a0a111d28e75 symlinkat: port to AIX 7.1
Paul Eggert <eggert@cs.ucla.edu>
parents: 17576
diff changeset
21 AC_CACHE_CHECK([whether symlinkat handles trailing slash correctly],
a0a111d28e75 symlinkat: port to AIX 7.1
Paul Eggert <eggert@cs.ucla.edu>
parents: 17576
diff changeset
22 [gl_cv_func_symlinkat_works],
a0a111d28e75 symlinkat: port to AIX 7.1
Paul Eggert <eggert@cs.ucla.edu>
parents: 17576
diff changeset
23 [AC_RUN_IFELSE(
a0a111d28e75 symlinkat: port to AIX 7.1
Paul Eggert <eggert@cs.ucla.edu>
parents: 17576
diff changeset
24 [AC_LANG_PROGRAM(
a0a111d28e75 symlinkat: port to AIX 7.1
Paul Eggert <eggert@cs.ucla.edu>
parents: 17576
diff changeset
25 [[#include <fcntl.h>
a0a111d28e75 symlinkat: port to AIX 7.1
Paul Eggert <eggert@cs.ucla.edu>
parents: 17576
diff changeset
26 #include <unistd.h>
a0a111d28e75 symlinkat: port to AIX 7.1
Paul Eggert <eggert@cs.ucla.edu>
parents: 17576
diff changeset
27 ]],
a0a111d28e75 symlinkat: port to AIX 7.1
Paul Eggert <eggert@cs.ucla.edu>
parents: 17576
diff changeset
28 [[int result = 0;
a0a111d28e75 symlinkat: port to AIX 7.1
Paul Eggert <eggert@cs.ucla.edu>
parents: 17576
diff changeset
29 if (!symlinkat ("a", AT_FDCWD, "conftest.link/"))
a0a111d28e75 symlinkat: port to AIX 7.1
Paul Eggert <eggert@cs.ucla.edu>
parents: 17576
diff changeset
30 result |= 1;
a0a111d28e75 symlinkat: port to AIX 7.1
Paul Eggert <eggert@cs.ucla.edu>
parents: 17576
diff changeset
31 if (symlinkat ("conftest.f", AT_FDCWD, "conftest.lnk2"))
a0a111d28e75 symlinkat: port to AIX 7.1
Paul Eggert <eggert@cs.ucla.edu>
parents: 17576
diff changeset
32 result |= 2;
a0a111d28e75 symlinkat: port to AIX 7.1
Paul Eggert <eggert@cs.ucla.edu>
parents: 17576
diff changeset
33 else if (!symlinkat ("a", AT_FDCWD, "conftest.lnk2/"))
a0a111d28e75 symlinkat: port to AIX 7.1
Paul Eggert <eggert@cs.ucla.edu>
parents: 17576
diff changeset
34 result |= 4;
a0a111d28e75 symlinkat: port to AIX 7.1
Paul Eggert <eggert@cs.ucla.edu>
parents: 17576
diff changeset
35 return result;
a0a111d28e75 symlinkat: port to AIX 7.1
Paul Eggert <eggert@cs.ucla.edu>
parents: 17576
diff changeset
36 ]])],
a0a111d28e75 symlinkat: port to AIX 7.1
Paul Eggert <eggert@cs.ucla.edu>
parents: 17576
diff changeset
37 [gl_cv_func_symlinkat_works=yes],
a0a111d28e75 symlinkat: port to AIX 7.1
Paul Eggert <eggert@cs.ucla.edu>
parents: 17576
diff changeset
38 [gl_cv_func_symlinkat_works=no],
a0a111d28e75 symlinkat: port to AIX 7.1
Paul Eggert <eggert@cs.ucla.edu>
parents: 17576
diff changeset
39 [case "$host_os" in
19660
d7562698c771 Add cross-compilation guesses for Linux systems without glibc.
Bruno Haible <bruno@clisp.org>
parents: 19484
diff changeset
40 # Guess yes on Linux systems.
d7562698c771 Add cross-compilation guesses for Linux systems without glibc.
Bruno Haible <bruno@clisp.org>
parents: 19484
diff changeset
41 linux-* | linux) gl_cv_func_symlinkat_works="guessing yes" ;;
d7562698c771 Add cross-compilation guesses for Linux systems without glibc.
Bruno Haible <bruno@clisp.org>
parents: 19484
diff changeset
42 # Guess yes on glibc systems.
d7562698c771 Add cross-compilation guesses for Linux systems without glibc.
Bruno Haible <bruno@clisp.org>
parents: 19484
diff changeset
43 *-gnu* | gnu*) gl_cv_func_symlinkat_works="guessing yes" ;;
d7562698c771 Add cross-compilation guesses for Linux systems without glibc.
Bruno Haible <bruno@clisp.org>
parents: 19484
diff changeset
44 # If we don't know, assume the worst.
d7562698c771 Add cross-compilation guesses for Linux systems without glibc.
Bruno Haible <bruno@clisp.org>
parents: 19484
diff changeset
45 *) gl_cv_func_symlinkat_works="guessing no" ;;
17770
a0a111d28e75 symlinkat: port to AIX 7.1
Paul Eggert <eggert@cs.ucla.edu>
parents: 17576
diff changeset
46 esac
a0a111d28e75 symlinkat: port to AIX 7.1
Paul Eggert <eggert@cs.ucla.edu>
parents: 17576
diff changeset
47 ])
a0a111d28e75 symlinkat: port to AIX 7.1
Paul Eggert <eggert@cs.ucla.edu>
parents: 17576
diff changeset
48 rm -f conftest.f conftest.link conftest.lnk2])
a0a111d28e75 symlinkat: port to AIX 7.1
Paul Eggert <eggert@cs.ucla.edu>
parents: 17576
diff changeset
49 case "$gl_cv_func_symlinkat_works" in
a0a111d28e75 symlinkat: port to AIX 7.1
Paul Eggert <eggert@cs.ucla.edu>
parents: 17576
diff changeset
50 *yes) ;;
a0a111d28e75 symlinkat: port to AIX 7.1
Paul Eggert <eggert@cs.ucla.edu>
parents: 17576
diff changeset
51 *)
a0a111d28e75 symlinkat: port to AIX 7.1
Paul Eggert <eggert@cs.ucla.edu>
parents: 17576
diff changeset
52 REPLACE_SYMLINKAT=1
a0a111d28e75 symlinkat: port to AIX 7.1
Paul Eggert <eggert@cs.ucla.edu>
parents: 17576
diff changeset
53 ;;
a0a111d28e75 symlinkat: port to AIX 7.1
Paul Eggert <eggert@cs.ucla.edu>
parents: 17576
diff changeset
54 esac
11956
55cb5282dd84 symlinkat: new module
Eric Blake <ebb9@byu.net>
parents:
diff changeset
55 fi
55cb5282dd84 symlinkat: new module
Eric Blake <ebb9@byu.net>
parents:
diff changeset
56 ])