X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=m4%2Flink-follow.m4;h=a3b07eb75922ee85d9d177e79e26b4dc68c08bcf;hb=98bf518eea602ba026803feae9a57977680a8e6d;hp=a57ab88a6e198e6bfee059c7d562caaed655f8b2;hpb=ca621fe9eb453d767216c8023eebe7ffe953d16d;p=gnulib.git diff --git a/m4/link-follow.m4 b/m4/link-follow.m4 index a57ab88a6..a3b07eb75 100644 --- a/m4/link-follow.m4 +++ b/m4/link-follow.m4 @@ -1,13 +1,19 @@ -#serial 1 +#serial 2 dnl Run a program to determine whether whether link(2) follows symlinks. dnl Set LINK_FOLLOWS_SYMLINKS accordingly. AC_DEFUN(jm_AC_FUNC_LINK_FOLLOWS_SYMLINK, [dnl - AC_CACHE_CHECK([whether link(2) follows symlinks], + AC_CACHE_CHECK( + [whether link(2) dereferences a symlink specified with a trailing slash], jm_ac_cv_func_link_follows_symlink, [ - # Create a regular file, `conftest.file'. + dnl poor-man's AC_REQUIRE: FIXME: repair this once autoconf-3 provides + dnl the appropriate framework. + test -z "$ac_cv_header_unistd_h" \ + && AC_CHECK_HEADERS(unistd.h) + + # Create a regular file. echo > conftest.file AC_TRY_RUN( [ @@ -29,11 +35,11 @@ AC_DEFUN(jm_AC_FUNC_LINK_FOLLOWS_SYMLINK, const char *hard = "conftest.hard"; struct stat sb_file, sb_hard; - /* Create a symlink `conftest.sym' to it. */ + /* Create a symlink to the regular file. */ if (symlink (file, sym)) abort (); - /* Create a hard link `conftest.hard' to that symlink. */ + /* Create a hard link to that symlink. */ if (link (sym, hard)) abort (); @@ -49,7 +55,11 @@ AC_DEFUN(jm_AC_FUNC_LINK_FOLLOWS_SYMLINK, ], jm_ac_cv_func_link_follows_symlink=yes, jm_ac_cv_func_link_follows_symlink=no, - jm_ac_cv_func_link_follows_symlink=yes, We're cross compiling. + jm_ac_cv_func_link_follows_symlink=yes dnl We're cross compiling. ) ]) + if test $jm_ac_cv_func_link_follows_symlink = yes; then + AC_DEFINE(LINK_FOLLOWS_SYMLINKS, 1, + [Define if `link(2)' dereferences symbolic links.]) + fi ])