From 502d551c6d782963d26957a9e5ff1588946f233f Mon Sep 17 00:00:00 2001 From: Michael Felt Date: Fri, 5 Jan 2018 13:01:58 +0100 Subject: [PATCH] bpo-32390: Fix compilation failure on AIX after f_fsid was added to os.statvfs() (#4972) --- .../2017-12-22-13-28-07.bpo-32390.QPj083.rst | 1 + Modules/posixmodule.c | 6 ++++++ 2 files changed, 7 insertions(+) create mode 100644 Misc/NEWS.d/next/Core and Builtins/2017-12-22-13-28-07.bpo-32390.QPj083.rst diff --git a/Misc/NEWS.d/next/Core and Builtins/2017-12-22-13-28-07.bpo-32390.QPj083.rst b/Misc/NEWS.d/next/Core and Builtins/2017-12-22-13-28-07.bpo-32390.QPj083.rst new file mode 100644 index 00000000000..0e9c1bff540 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2017-12-22-13-28-07.bpo-32390.QPj083.rst @@ -0,0 +1 @@ +Fix the compilation failure on AIX after the f_fsid field has been added to the object returned by os.statvfs() (issue #32143). Original patch by Michael Felt. diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c index 47b79fcc798..b0e48dabbd5 100644 --- a/Modules/posixmodule.c +++ b/Modules/posixmodule.c @@ -9336,7 +9336,13 @@ _pystatvfs_fromstructstatvfs(struct statvfs st) { PyStructSequence_SET_ITEM(v, 8, PyLong_FromLong((long) st.f_flag)); PyStructSequence_SET_ITEM(v, 9, PyLong_FromLong((long) st.f_namemax)); #endif +/* The _ALL_SOURCE feature test macro defines f_fsid as a structure + * (issue #32390). */ +#if defined(_AIX) && defined(_ALL_SOURCE) + PyStructSequence_SET_ITEM(v, 10, PyLong_FromUnsignedLong(st.f_fsid.val[0])); +#else PyStructSequence_SET_ITEM(v, 10, PyLong_FromUnsignedLong(st.f_fsid)); +#endif if (PyErr_Occurred()) { Py_DECREF(v); return NULL;