diff options
author | Benjamin Peterson <benjamin@python.org> | 2018-09-12 22:52:40 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-09-12 22:52:40 (GMT) |
commit | 40caa05fa4d1810a1a6bfc34e0ec930c351089b7 (patch) | |
tree | 7d64642db943b1c395ffac9097d52727498a8ce4 | |
parent | 2087023fdec2c89070bd14f384a3c308c548a94a (diff) | |
download | cpython-40caa05fa4d1810a1a6bfc34e0ec930c351089b7.zip cpython-40caa05fa4d1810a1a6bfc34e0ec930c351089b7.tar.gz cpython-40caa05fa4d1810a1a6bfc34e0ec930c351089b7.tar.bz2 |
closes bpo-34652: Always disable lchmod on Linux. (GH-9234)
-rw-r--r-- | Misc/NEWS.d/next/Library/2018-09-12-14-46-51.bpo-34652.Rt1m1b.rst | 1 | ||||
-rwxr-xr-x | configure | 11 | ||||
-rw-r--r-- | configure.ac | 7 |
3 files changed, 19 insertions, 0 deletions
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 index 0000000..cbdd7e0 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2018-09-12-14-46-51.bpo-34652.Rt1m1b.rst @@ -0,0 +1 @@ +Ensure :func:`os.lchmod` is never defined on Linux. @@ -11285,6 +11285,17 @@ fi 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> " diff --git a/configure.ac b/configure.ac index a985ec2..cf7328c 100644 --- a/configure.ac +++ b/configure.ac @@ -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.), , |