◐ Shell
clean mode source ↗

bpo-29619: Do not rely on HAVE_LARGEFILE_SUPPORT for the size of type… by xdegaye · Pull Request #1666 · python/cpython

vstinner


PyStructSequence_SET_ITEM(v, 0, PyLong_FromLong((long)st->st_mode));
#if defined(HAVE_LARGEFILE_SUPPORT) || defined(MS_WINDOWS)
Py_BUILD_ASSERT(sizeof(unsigned long long) >= sizeof(st->st_ino));

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would prefer to see the build assert in the else block.

PEP 7 now requires {...} around if blocks.

vstinner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that compilers are smart enough to computes the check at compile time, and so remove the dead code. I mean, I like your change. I just ask minor changes.

@xdegaye

I mean, I like your change.

It is nice to know, thanks 😄

vstinner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thanks for the fix Xavier.

vstinner

@vstinner

Thank you Xavier for taking care of Android :-)

@cschramm

Shouldn't this get backported to 3.6 after the backport #584 broke 3.6 so that 3.6.2 unfortunately does not compile on Android?

@xdegaye

My understanding is that, Android not being a supported platform, changes that are specific to Android are only made to the master branch. I may be wrong.

@cschramm

My fault then. Thought 3.6 was targeting Android but that's not actually stated anywhere (There are some Android specific things in the 3.6 changelog though).

@vstinner

IMHO this change is simple enough to justify a backport: I created the PR #3102. While 3.6 doesn't fully support Android, we are doing our best support Android and any kind of help is welcome!

vstinner added a commit that referenced this pull request

Aug 17, 2017
…-1666) (#3102)

Use only the LongLong form for the conversions

(cherry picked from commit 50e8603)

@thijstriemstra

Encountered this issue while compiling PyQt5 for RaspberryPi/ARM with Python 3.6.2. Copying posixmodule.c from 3.6 branch fixed the posixmodule.c:1935:5: error: array size is negative error.

e.g.:

wget https://raw.githubusercontent.com/python/cpython/ffbb6f7334ccf54f09dcc9e760766d861928f13e/Modules/posixmodule.c
mv posixmodule.c Modules/

@vstinner

@thijstriemstra: Cool! Good to know. I hope that slowly, we will get a release with a correct Android support.

Thanks @xdegaye for the long term effort on supporting Android!