bpo-36071 Add support for Windows ARM32 in ctypes/libffi by paulmon · Pull Request #12059 · python/cpython

Conversation

@paulmon

This will need to rebased on the pending libffi PR before it is merged
All test_ctypes tests pass on both retail and debug builds except for test_SEH (retail only)
I am trying to see if I can get help with the unwind semantics in arm assembly using MSVC tools
Also python/cpython-source-deps#9 will need to be merged before this will build.

https://bugs.python.org/issue36071

@paulmon

@zooba

Since I assume this PR is going to require new libffi builds, keep using the branch name in get_externals until it's ready. Then remind me to tag it and remind you to change to use the tag before merging :)

@zooba

It's probably also a good idea to rebase this onto master and squash all the commits (do a merge, then git reset --soft upstream/master, re-commit, and force push).

@paulmon

@zooba I cleaned up this PR.

I also cleaned up the PR for the arm32 libffi-7.dll changes:
python/cpython-source-deps#9

I have build this locally and tested test_ctypes on a Raspberry Pi 3 with success.
I kicked off all of the standard library tests and will check on that later.

zooba

Choose a reason for hiding this comment

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

A few unrelated changes, it seems, but otherwise it looks okay. (Is there another PR I should be looking at first)

@paulmon

A few unrelated changes, it seems, but otherwise it looks okay. (Is there another PR I should be looking at first)

This PR adds libffi support for arm32 on windows. python/cpython-source-deps#9

paulmon

paulmon

only use optimizer workaround on old compilers
enable ctypes for ARM in configuration manager

paulmon

zooba

@zooba

I'm running a libffi build with the ARM32 binaries now. Hopefully I'll get that done this evening.

@zooba

@paulmon

Paul Monson added 2 commits

April 15, 2019 10:37

@zooba

@paulmon How did this pass without the libffi build? Which PR requires the build?

@paulmon

Do you mean how did the CI build pass? The CI build passes because there is no arm32 in the strategy matrix in pr.yml (also ci.yml).

I think the CI/PR pipelines will need to skip running tests for ARM builds if they are added here. In addition to needing to execute the tests on an ARM machine the tests currently take close to 90 minutes on a raspberry pi.

Also, if you add ARM to the CI build right now the build will break on this: #12665

@paulmon

One more thing. To build ARM from master --no-tkinter and --no-ssl are both needed as well. I can propose changes to the CI.yml files in a PR if you think that would be helpful.

@zooba

Do you mean how did the CI build pass? The CI build passes because there is no arm32 in the strategy matrix in pr.yml (also ci.yml).

Ah yeah, that makes sense :)

Let's just get the buildbot plugged in. We're clearly not going to run tests from any of our CI providers just yet.

Labels