From: Michael Felt Date: Fri, 5 Jan 2018 12:01:58 +0000 (+0100) Subject: bpo-32390: Fix compilation failure on AIX after f_fsid was added to os.statvfs()... X-Git-Tag: v3.7.0a4~18 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=502d551c6d782963d26957a9e5ff1588946f233f;p=python bpo-32390: Fix compilation failure on AIX after f_fsid was added to os.statvfs() (#4972) --- 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 0000000000..0e9c1bff54 --- /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 47b79fcc79..b0e48dabbd 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;