From: Jeffrey Bosboom Date: Tue, 21 Oct 2025 15:54:00 +0000 (-0700) Subject: gh-140239: Check for statx on Android (#140395) X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=c788bfb80e0e8b312d31db810de4c090a1059a71;p=thirdparty%2FPython%2Fcpython.git gh-140239: Check for statx on Android (#140395) Android has Linux's statx, but MACHDEP is "android" on Android, so configure doesn't check for statx on Android. Base the check for statx on ac_sys_system instead, which is "Linux-android" on Android, "Linux" on other Linux distributions, and "AIX" on AIX (which has an incompatible function named statx). --- diff --git a/Misc/NEWS.d/next/Build/2025-10-17-11-33-45.gh-issue-140239._k-GgW.rst b/Misc/NEWS.d/next/Build/2025-10-17-11-33-45.gh-issue-140239._k-GgW.rst index f196ab0964d2..713f022c9949 100644 --- a/Misc/NEWS.d/next/Build/2025-10-17-11-33-45.gh-issue-140239._k-GgW.rst +++ b/Misc/NEWS.d/next/Build/2025-10-17-11-33-45.gh-issue-140239._k-GgW.rst @@ -1 +1 @@ -Check ``statx`` availability only in Linux platforms +Check ``statx`` availability only on Linux (including Android). diff --git a/configure b/configure index 95e231f406a9..f95355e2f57d 100755 --- a/configure +++ b/configure @@ -20392,16 +20392,21 @@ then : fi -# Check statx availability in Linux -if test "$MACHDEP" = "linux"; then - ac_fn_c_check_func "$LINENO" "statx" "ac_cv_func_statx" +# os.statx uses Linux's statx function. AIX also has a function named statx, +# but it's unrelated. Check only on Linux (including Android). +case $ac_sys_system in #( + Linux*) : + ac_fn_c_check_func "$LINENO" "statx" "ac_cv_func_statx" if test "x$ac_cv_func_statx" = xyes then : printf "%s\n" "#define HAVE_STATX 1" >>confdefs.h fi -fi + ;; #( + *) : + ;; +esac # Force lchmod off for Linux. Linux disallows changing the mode of symbolic # links. Some libc implementations have a stub lchmod implementation that always diff --git a/configure.ac b/configure.ac index 65c375796337..4d0e5a1ca1d0 100644 --- a/configure.ac +++ b/configure.ac @@ -5258,10 +5258,11 @@ AC_CHECK_FUNCS([ \ wait wait3 wait4 waitid waitpid wcscoll wcsftime wcsxfrm wmemcmp writev \ ]) -# Check statx availability in Linux -if test "$MACHDEP" = "linux"; then - AC_CHECK_FUNCS([statx]) -fi +# os.statx uses Linux's statx function. AIX also has a function named statx, +# but it's unrelated. Check only on Linux (including Android). +AS_CASE([$ac_sys_system], + [Linux*], [AC_CHECK_FUNCS([statx])] +) # Force lchmod off for Linux. Linux disallows changing the mode of symbolic # links. Some libc implementations have a stub lchmod implementation that always