X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=m4%2Flinkat.m4;h=0cf8d800d4d2071c0e715164fbc5a5a67bd8573c;hb=32dbf2ceb339e1416390b551f65e4f84c033fd27;hp=c0b2729bed3570c7105fbecc2045d1f351513e65;hpb=772a6b7e3fa813310c645f81e83842f598bbc2e7;p=gnulib.git diff --git a/m4/linkat.m4 b/m4/linkat.m4 index c0b2729be..0cf8d800d 100644 --- a/m4/linkat.m4 +++ b/m4/linkat.m4 @@ -1,7 +1,7 @@ -# serial 3 +# serial 6 # See if we need to provide linkat replacement. -dnl Copyright (C) 2009-2010 Free Software Foundation, Inc. +dnl Copyright (C) 2009-2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -11,7 +11,6 @@ dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_LINKAT], [ AC_REQUIRE([gl_FUNC_OPENAT]) - AC_REQUIRE([gl_FUNC_LINK]) AC_REQUIRE([gl_FUNC_LINK_FOLLOWS_SYMLINK]) AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) @@ -20,8 +19,6 @@ AC_DEFUN([gl_FUNC_LINKAT], AC_CHECK_HEADERS_ONCE([sys/param.h]) if test $ac_cv_func_linkat = no; then HAVE_LINKAT=0 - AC_LIBOBJ([linkat]) - AC_LIBOBJ([at-func2]) else AC_CACHE_CHECK([whether linkat(,AT_SYMLINK_FOLLOW) works], [gl_cv_func_linkat_follow], @@ -50,9 +47,8 @@ choke me #include #include ]], - [[int fd; - int err; - int ret; + [[int result; + int fd; /* Create a regular file. */ fd = open ("conftest.a", O_CREAT | O_EXCL | O_WRONLY, 0600); if (fd < 0) @@ -66,14 +62,15 @@ choke me if (linkat (AT_FDCWD, "conftest.a", AT_FDCWD, "conftest.b", AT_SYMLINK_FOLLOW) < 0) return 0; + result = 0; /* Test whether a trailing "/" is treated like "/.". */ if (linkat (AT_FDCWD, "conftest.a/", AT_FDCWD, "conftest.c", AT_SYMLINK_FOLLOW) == 0) - return 4; + result |= 4; if (linkat (AT_FDCWD, "conftest.a", AT_FDCWD, "conftest.d/", AT_SYMLINK_FOLLOW) == 0) - return 5; - return 0; + result |= 8; + return result; ]])], [gl_cv_func_linkat_slash=yes], [gl_cv_func_linkat_slash=no], @@ -91,7 +88,6 @@ choke me if test "$gl_cv_func_linkat_follow" != yes \ || test $gl_linkat_slash_bug = 1; then REPLACE_LINKAT=1 - AC_LIBOBJ([linkat]) AC_DEFINE_UNQUOTED([LINKAT_TRAILING_SLASH_BUG], [$gl_linkat_slash_bug], [Define to 1 if linkat fails to recognize a trailing slash.]) fi