]> granicus.if.org Git - python/commitdiff
closes bpo-34652: Always disable lchmod on Linux. (GH-9234)
authorBenjamin Peterson <benjamin@python.org>
Wed, 12 Sep 2018 22:52:40 +0000 (15:52 -0700)
committerGitHub <noreply@github.com>
Wed, 12 Sep 2018 22:52:40 +0000 (15:52 -0700)
Misc/NEWS.d/next/Library/2018-09-12-14-46-51.bpo-34652.Rt1m1b.rst [new file with mode: 0644]
configure
configure.ac

diff --git a/Misc/NEWS.d/next/Library/2018-09-12-14-46-51.bpo-34652.Rt1m1b.rst b/Misc/NEWS.d/next/Library/2018-09-12-14-46-51.bpo-34652.Rt1m1b.rst
new file mode 100644 (file)
index 0000000..cbdd7e0
--- /dev/null
@@ -0,0 +1 @@
+Ensure :func:`os.lchmod` is never defined on Linux.
index fe642c439a4c3b2df94959d516c382d85ce92d52..d341453443fc4ccdbfba23e9ab572c9a22fa3750 100755 (executable)
--- a/configure
+++ b/configure
 done
 
 
+# Force lchmod off for Linux. Linux disallows changing the mode of symbolic
+# links. Some libc implementations have a stub lchmod implementation that always
+# returns an error.
+if test "$MACHDEP" != linux; then
+  ac_fn_c_check_func "$LINENO" "lchmod" "ac_cv_func_lchmod"
+if test "x$ac_cv_func_lchmod" = xyes; then :
+
+fi
+
+fi
+
 ac_fn_c_check_decl "$LINENO" "dirfd" "ac_cv_have_decl_dirfd" "#include <sys/types.h>
        #include <dirent.h>
 "
index a985ec2b000b657492123d4bd8a78a5ba5c51c08..cf7328c4032a95f33bda2dbc90dde32ba0ce577f 100644 (file)
@@ -3454,6 +3454,13 @@ AC_CHECK_FUNCS(alarm accept4 setitimer getitimer bind_textdomain_codeset chown \
  truncate uname unlinkat unsetenv utimensat utimes waitid waitpid wait3 wait4 \
  wcscoll wcsftime wcsxfrm wmemcmp writev _getpty)
 
+# Force lchmod off for Linux. Linux disallows changing the mode of symbolic
+# links. Some libc implementations have a stub lchmod implementation that always
+# returns an error.
+if test "$MACHDEP" != linux; then
+  AC_CHECK_FUNC(lchmod)
+fi
+
 AC_CHECK_DECL(dirfd,
     AC_DEFINE(HAVE_DIRFD, 1,
               Define if you have the 'dirfd' function or macro.), ,