]> granicus.if.org Git - python/commitdiff
bpo-32390: Fix compilation failure on AIX after f_fsid was added to os.statvfs()...
authorMichael Felt <aixtools@users.noreply.github.com>
Fri, 5 Jan 2018 12:01:58 +0000 (13:01 +0100)
committerxdegaye <xdegaye@gmail.com>
Fri, 5 Jan 2018 12:01:58 +0000 (13:01 +0100)
Misc/NEWS.d/next/Core and Builtins/2017-12-22-13-28-07.bpo-32390.QPj083.rst [new file with mode: 0644]
Modules/posixmodule.c

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 (file)
index 0000000..0e9c1bf
--- /dev/null
@@ -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.
index 47b79fcc7985099b06e5604b1ec7981772076be0..b0e48dabbd55cf0292386458e43eae0787583b31 100644 (file)
@@ -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;