Skip to content

Add arm64 for Windows#490

Closed
paulmon wants to merge 9 commits intolibffi:masterfrom
paulmon:arm64_for_python
Closed

Add arm64 for Windows#490
paulmon wants to merge 9 commits intolibffi:masterfrom
paulmon:arm64_for_python

Conversation

@paulmon
Copy link
Contributor

@paulmon paulmon commented May 16, 2019

Based on #486 by @ossdev07

  1. ported sysv.S to win64_armasm.S for armasm64 assembler

  2. added msvc_build folder for visual studio solution

  3. updated README.md for the same

  4. MSVC solution created with the changes, and below test suites are tested
    with test script written in python.

    libffi.bhaible
    libffi.call

  5. Basic functionality of above test suites are getting passed

Added:
6. Python 3.8 uses the cygwin build to create libffi-7.dll for use with Python, so I added changes to support the cygwin build of libffi on Windows.
7. Added a appveyor build for arm64 which should succeed.
8. Ifdef'd call to ffi_data_to_code_pointer() because malloc and dmalloc don't mix.
9. All Python ctypes tests pass with these changes.

@atgreen

ossdev07 and others added 7 commits April 25, 2019 18:17
    1. ported sysv.S to win64_armasm.S for armasm64 assembler
    2. added msvc_build folder for visual studio solution
    3. updated README.md for the same
    4. MSVC solution created with the changes, and below test suites are tested
       with test script written in python.

       libffi.bhaible
       libffi.call
    5. Basic functionality of above test suites are getting passed

Signed-off-by: ossdev07 <[email protected]>
$env:HOST="arm-w32-cygwin"
$env:MSVCC="/cygdrive/c/projects/libffi/msvcc.sh -marm"
$env:SRC_ARCHITECTURE="arm"
} ElseIf ($env:Platform -Match "arm64") {
Copy link
Contributor

Choose a reason for hiding this comment

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

For "arm64", Appveyor matches "arm" first, and makes it to use the ARM32 toolchain instead of the ARM64 toolchain.
You can see this behavior in https://ci.appveyor.com/project/atgreen/libffi/builds/24605359/job/pagcp8q8htpxynna?fullLog=true.
You might want to consider to move arm64 above of arm.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Thanks! Good catch. I have submitted a fix.

@paulmon
Copy link
Contributor Author

paulmon commented Jun 11, 2019

Closing and reopening to trigger appveyor tests to run again.
These changes pass all of the CPython standard library tests on Windows arm64

@paulmon paulmon closed this Jun 11, 2019
@paulmon paulmon reopened this Jun 11, 2019
@paulmon
Copy link
Contributor Author

paulmon commented Jun 11, 2019

Appveyor tests passed this time. A travis test failed but it looks like test infrastructure to me rather than code change.

@paulmon paulmon closed this Jun 12, 2019
@paulmon paulmon reopened this Jun 12, 2019
@paulmon
Copy link
Contributor Author

paulmon commented Jun 12, 2019

If the travis build failure is not blocking please merge this.

@NiQ1
Copy link

NiQ1 commented Jun 19, 2019

If the travis build failure is not blocking please merge this.

Hello,
Any progress regarding this one?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants