Commit c564172a authored by Pádraig Brady's avatar Pádraig Brady

linkat: don't unconditionally replace on GNU/Linux

* m4/linkat.m4 (gl_FUNC_LINKAT): The compile check for AT_SYMLINK_FOLLOW
was redundant for a few reasons.  It was present to support compiling
on new systems but running on the old narrow window of Linux 2.6.1[67].
It setup and cleaned up test files which weren't actually used.
On non __linux__ it compile tested AT_SYMLINK_FOLLOW, but that is
implicit in the following check.
parent c8e57ce5
2014-11-03 Pádraig Brady <P@draigBrady.com>
linkat: don't unconditionally replace on GNU/Linux
* m4/linkat.m4 (gl_FUNC_LINKAT): The compile check for AT_SYMLINK_FOLLOW
was redundant for a few reasons. It was present to support compiling
on new systems but running on the old narrow window of Linux 2.6.1[67].
It setup and cleaned up test files which weren't actually used.
On non __linux__ it compile tested AT_SYMLINK_FOLLOW, but that is
implicit in the following check.
2014-11-03 Pádraig Brady <P@draigBrady.com>
linkat: wrap to handle symlinks on OS X 10.10
......@@ -41,24 +41,6 @@ AC_DEFUN([gl_FUNC_LINKAT],
LINKAT_SYMLINK_NOTSUP=1])
rm -rf conftest.l1 conftest.l2])
AC_CACHE_CHECK([whether linkat(,AT_SYMLINK_FOLLOW) works],
[gl_cv_func_linkat_follow],
[rm -rf conftest.f1 conftest.f2
touch conftest.f1
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#include <fcntl.h>
#include <unistd.h>
#ifdef __linux__
/* Linux added linkat in 2.6.16, but did not add AT_SYMLINK_FOLLOW
until 2.6.18. Always replace linkat to support older kernels. */
choke me
#endif
]], [return linkat (AT_FDCWD, "conftest.f1", AT_FDCWD, "conftest.f2",
AT_SYMLINK_FOLLOW);])],
[gl_cv_func_linkat_follow=yes],
[gl_cv_func_linkat_follow="need runtime check"])
rm -rf conftest.f1 conftest.f2])
AC_CACHE_CHECK([whether linkat handles trailing slash correctly],
[gl_cv_func_linkat_slash],
[rm -rf conftest.a conftest.b conftest.c conftest.d
......@@ -108,8 +90,7 @@ choke me
*) gl_linkat_slash_bug=1 ;;
esac
if test "$gl_cv_func_linkat_follow" != yes \
|| test "$gl_cv_func_linkat_nofollow" != yes \
if test "$gl_cv_func_linkat_nofollow" != yes \
|| test $gl_linkat_slash_bug = 1; then
REPLACE_LINKAT=1
AC_DEFINE_UNQUOTED([LINKAT_TRAILING_SLASH_BUG], [$gl_linkat_slash_bug],
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment