@@ -409,7 +409,7 @@ extern char *ctermid_r(char *);
409409# define STRUCT_STAT struct stat
410410#endif
411411
412- #ifdef HAVE_LINUX_STATX
412+ #ifdef HAVE_STATX
413413# pragma weak statx
414414/* provide constants introduced later than statx itself */
415415# ifndef STATX_MNT_ID
@@ -431,7 +431,7 @@ extern char *ctermid_r(char *);
431431# define STATX_DIO_READ_ALIGN 0x00020000U
432432# endif
433433# define _Py_STATX_KNOWN (STATX_BASIC_STATS | STATX_BTIME | STATX_MNT_ID | STATX_DIOALIGN | STATX_MNT_ID_UNIQUE | STATX_SUBVOL | STATX_WRITE_ATOMIC | STATX_DIO_READ_ALIGN)
434- #endif /* HAVE_LINUX_STATX */
434+ #endif /* HAVE_STATX */
435435
436436
437437#if !defined(EX_OK) && defined(EXIT_SUCCESS)
@@ -1184,7 +1184,7 @@ typedef struct {
11841184#endif
11851185 newfunc statresult_new_orig;
11861186 PyObject *StatResultType;
1187- #ifdef HAVE_LINUX_STATX
1187+ #ifdef HAVE_STATX
11881188 PyObject *StatxResultType;
11891189#endif
11901190 PyObject *StatVFSResultType;
@@ -2381,10 +2381,10 @@ static PyStructSequence_Field stat_result_fields[] = {
23812381#ifdef HAVE_STRUCT_STAT_ST_GEN
23822382 {"st_gen", "generation number"},
23832383#endif
2384- #if defined(HAVE_STRUCT_STAT_ST_BIRTHTIME) || defined(HAVE_LINUX_STATX ) || defined(MS_WINDOWS)
2384+ #if defined(HAVE_STRUCT_STAT_ST_BIRTHTIME) || defined(HAVE_STATX ) || defined(MS_WINDOWS)
23852385 {"st_birthtime", "time of creation"},
23862386#endif
2387- #if defined(HAVE_LINUX_STATX ) || defined(MS_WINDOWS)
2387+ #if defined(HAVE_STATX ) || defined(MS_WINDOWS)
23882388 {"st_birthtime_ns", "time of creation in nanoseconds"},
23892389#endif
23902390#ifdef HAVE_STRUCT_STAT_ST_FILE_ATTRIBUTES
@@ -2429,13 +2429,13 @@ static PyStructSequence_Field stat_result_fields[] = {
24292429#define ST_GEN_IDX ST_FLAGS_IDX
24302430#endif
24312431
2432- #if defined(HAVE_STRUCT_STAT_ST_BIRTHTIME) || defined(HAVE_LINUX_STATX ) || defined(MS_WINDOWS)
2432+ #if defined(HAVE_STRUCT_STAT_ST_BIRTHTIME) || defined(HAVE_STATX ) || defined(MS_WINDOWS)
24332433#define ST_BIRTHTIME_IDX (ST_GEN_IDX+1)
24342434#else
24352435#define ST_BIRTHTIME_IDX ST_GEN_IDX
24362436#endif
24372437
2438- #if defined(HAVE_LINUX_STATX ) || defined(MS_WINDOWS)
2438+ #if defined(HAVE_STATX ) || defined(MS_WINDOWS)
24392439#define ST_BIRTHTIME_NS_IDX (ST_BIRTHTIME_IDX+1)
24402440#else
24412441#define ST_BIRTHTIME_NS_IDX ST_BIRTHTIME_IDX
@@ -2567,7 +2567,7 @@ _posix_clear(PyObject *module)
25672567 Py_CLEAR(state->SchedParamType);
25682568#endif
25692569 Py_CLEAR(state->StatResultType);
2570- #ifdef HAVE_LINUX_STATX
2570+ #ifdef HAVE_STATX
25712571 Py_CLEAR(state->StatxResultType);
25722572#endif
25732573 Py_CLEAR(state->StatVFSResultType);
@@ -2595,7 +2595,7 @@ _posix_traverse(PyObject *module, visitproc visit, void *arg)
25952595 Py_VISIT(state->SchedParamType);
25962596#endif
25972597 Py_VISIT(state->StatResultType);
2598- #ifdef HAVE_LINUX_STATX
2598+ #ifdef HAVE_STATX
25992599 Py_VISIT(state->StatxResultType);
26002600#endif
26012601 Py_VISIT(state->StatVFSResultType);
@@ -2810,7 +2810,7 @@ _pystat_fromstructstat(PyObject *module, STRUCT_STAT *st)
28102810#endif
28112811 SET_ITEM(ST_BIRTHTIME_IDX, PyFloat_FromDouble(bsec + bnsec * 1e-9));
28122812 }
2813- #elif defined(HAVE_LINUX_STATX )
2813+ #elif defined(HAVE_STATX )
28142814 /* We were built with statx support, so stat_result.st_birthtime[_ns]
28152815 exists, but we fell back to stat because statx isn't available at
28162816 runtime. User programs assume st_birthtime is not None. */
@@ -2844,7 +2844,7 @@ _pystat_fromstructstat(PyObject *module, STRUCT_STAT *st)
28442844 return NULL;
28452845}
28462846
2847- #ifdef HAVE_LINUX_STATX
2847+ #ifdef HAVE_STATX
28482848static PyObject*
28492849_pystat_fromstructstatx(PyObject *module, struct statx *st)
28502850{
@@ -2905,7 +2905,7 @@ _pystat_fromstructstatx(PyObject *module, struct statx *st)
29052905 Py_DECREF(v);
29062906 return NULL;
29072907}
2908- #endif /* HAVE_LINUX_STATX */
2908+ #endif /* HAVE_STATX */
29092909#undef SET_ITEM
29102910
29112911/* POSIX methods */
@@ -2932,7 +2932,7 @@ posix_do_stat(PyObject *module, const char *function_name, path_t *path,
29322932 fd_and_follow_symlinks_invalid("stat", path->fd, follow_symlinks))
29332933 return NULL;
29342934
2935- #ifdef HAVE_LINUX_STATX
2935+ #ifdef HAVE_STATX
29362936 struct statx stx = {};
29372937 static int statx_works = -1;
29382938 if (statx != NULL && statx_works != 0) {
@@ -2962,7 +2962,7 @@ posix_do_stat(PyObject *module, const char *function_name, path_t *path,
29622962 return _pystat_fromstructstatx(module, &stx);
29632963 }
29642964 }
2965- #endif /* HAVE_LINUX_STATX */
2965+ #endif /* HAVE_STATX */
29662966
29672967 Py_BEGIN_ALLOW_THREADS
29682968 if (path->fd != -1)
@@ -3412,7 +3412,7 @@ os_lstat_impl(PyObject *module, path_t *path, int dir_fd)
34123412}
34133413
34143414
3415- #ifdef HAVE_LINUX_STATX
3415+ #ifdef HAVE_STATX
34163416#define STATX_RESULT_CACHE_SLOTS 17
34173417typedef struct {
34183418 PyObject_HEAD
@@ -18294,7 +18294,7 @@ all_ins(PyObject *m)
1829418294#endif
1829518295#endif /* HAVE_EVENTFD && EFD_CLOEXEC */
1829618296
18297- #ifdef HAVE_LINUX_STATX
18297+ #ifdef HAVE_STATX
1829818298 if (PyModule_AddIntMacro(m, STATX_TYPE)) return -1;
1829918299 if (PyModule_AddIntMacro(m, STATX_MODE)) return -1;
1830018300 if (PyModule_AddIntMacro(m, STATX_NLINK)) return -1;
@@ -18316,7 +18316,7 @@ all_ins(PyObject *m)
1831618316 if (PyModule_AddIntMacro(m, STATX_DIO_READ_ALIGN)) return -1;
1831718317 /* STATX_ALL intentionally omitted because it is deprecated */
1831818318 /* STATX_ATTR_* constants are in the stat module */
18319- #endif /* HAVE_LINUX_STATX */
18319+ #endif /* HAVE_STATX */
1832018320
1832118321#if defined(__APPLE__)
1832218322 if (PyModule_AddIntConstant(m, "_COPYFILE_DATA", COPYFILE_DATA)) return -1;
@@ -18589,7 +18589,7 @@ posixmodule_exec(PyObject *m)
1858918589 }
1859018590#endif
1859118591
18592- #ifdef HAVE_LINUX_STATX
18592+ #ifdef HAVE_STATX
1859318593 /* We retract os.statx in three cases:
1859418594 - the weakly-linked statx wrapper function is not available (old libc)
1859518595 - the wrapper function fails with EINVAL on sync flags (glibc's
0 commit comments