microsoft / SymCrypt

Cryptographic library
MIT License
660 stars 68 forks source link

Initial macOS on Apple Silicon support #31

Closed bdaehlie closed 4 months ago

bdaehlie commented 1 year ago

The PR contains initial support for macOS on Apple Silicon. It uses some older (previously disabled) macOS support and mostly follows the Linux build path.

bdaehlie commented 1 year ago

@microsoft-github-policy-service agree

mlindgren commented 1 year ago

Thanks for your contribution! We've already discussed this via email, but I just wanted to publicly acknowledge that we're aware of this PR and will work on incorporating it into our upstream repo as soon as scheduling allows.

bdaehlie commented 1 year ago

Just a quick FYI, I have more patches that get the build further along but I need to clean them up before I can push them here. Will try to do that within the next 1-2 weeks.

mlindgren commented 1 year ago

Sounds good - no rush from our side. We're currently working on acquiring Mac hardware so we can validate these changes locally and prepare to integrate them into the repo and then the CI build. Let us know when you're done with your changes and ready for us to validate.

mlindgren commented 1 year ago

Just following up to let you know that we're actively working on integrating this now. We've copied your branch to our internal Azure DevOps repo and rebased it onto the latest version of the code there. We reviewed the changes and found some minor adjustments that we'll make on our side. Once that's complete, we'll check these changes into our main branch (ensuring to preserve authorship), and then publish the latest version back to GitHub. Thanks for your patience.

mlindgren commented 4 months ago

While we were working on this last year, we enabled the unit tests and found that there were some remaining issues with macros that caused the tests to not pass. The work then got put on the backburner due to higher-priority items, but I've recently been able to pick it up again, so we should be publishing the changes for preliminary macOS support soon. For now, I will close this PR, since the changes will be published from our Azure DevOps repo.

Edit: the code is now complete, but we don't currently have support for building or testing on ARM64 Macs in our CI pipeline. I'm trying to find a solution for this.