aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Felt <aixtools@users.noreply.github.com>2018-01-05 13:01:58 +0100
committerxdegaye <xdegaye@gmail.com>2018-01-05 13:01:58 +0100
commit502d551c6d782963d26957a9e5ff1588946f233f (patch)
treedeb7bc4f293a294b2fcc0ee97f61c7041a2b1ac6
parentbpo-31699 Deadlocks in `concurrent.futures.ProcessPoolExecutor` with pickling... (diff)
downloadcpython-502d551c6d782963d26957a9e5ff1588946f233f.tar.gz
cpython-502d551c6d782963d26957a9e5ff1588946f233f.tar.bz2
cpython-502d551c6d782963d26957a9e5ff1588946f233f.zip
bpo-32390: Fix compilation failure on AIX after f_fsid was added to os.statvfs() (#4972)
-rw-r--r--Misc/NEWS.d/next/Core and Builtins/2017-12-22-13-28-07.bpo-32390.QPj083.rst1
-rw-r--r--Modules/posixmodule.c6
2 files changed, 7 insertions, 0 deletions
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;