Skip to content

[openssl] Support arm64ec - #54329

Merged
Billy O'Neal (BillyONeal) merged 2 commits into
microsoft:masterfrom
rohanjain101:users/rohanjain/openssl-arm64ec
Oct 6, 2026
Merged

Billy O'Neal (BillyONeal) merged 2 commits into
microsoft:masterfrom
rohanjain101:users/rohanjain/openssl-arm64ec

Conversation

@rohanjain101

Copy link
Copy Markdown
Contributor

openssl fails on the native arm64ec architecture (for example triplets/community/arm64ec-windows.cmake) because windows/portfile.cmake does not map it to an OpenSSL target:

CMake Error at ports/openssl/windows/portfile.cmake:28 (message):
  Unsupported target architecture: arm64ec

OpenSSL has no ARM64EC configure target (openssl/openssl#16482 was closed as not planned). The usual approach is to build the VC-WIN64-ARM target with /arm64EC and no-asm (see openssl/openssl#30361). This PR does the same:

x86, x64, arm and arm64 are unchanged.

Tested with MSVC 19.42.34439 (x64-hosted ARM64 cross tools), using overlay triplets that include triplets/community/arm64ec-windows.cmake and chainload a toolchain for that toolset. My local Visual Studio does not have the ARM64EC component.

  • Before: vcpkg install openssl:arm64ec-windows fails with the error above.

  • After: openssl[core,tools] builds for dynamic arm64ec-windows and for a static-library variant (VCPKG_LIBRARY_LINKAGE static, dynamic CRT). Configure reports VC-WIN64-ARM. There are no post-build warnings, so vcpkg's arm64ec architecture checks pass.

  • dumpbin: libcrypto-3-arm64.dll, libssl-3-arm64.dll, legacy.dll and openssl.exe are AMD64 images with ARM64EC hybrid metadata. All import library members and all static library objects are A641 (ARM64EC).

  • curl[core,openssl,tool] builds and links against it for both triplets.

  • The build machine is x64, so the binaries were not run on ARM64 hardware. We ship a no-asm ARM64EC OpenSSL from an overlay port today; this would let us use the upstream port once our triplets move to native arm64ec.

  • Changes comply with the maintainer guide.

  • SHA512s are updated for each updated download. (No downloads changed.)

  • The "supports" clause reflects platforms that may be fixed by this new version. (No "supports" clause; unchanged.)

  • Any fixed CI baseline entries are removed from that file. (None; CI does not test arm64ec.)

  • Any patches that are no longer applied are deleted from the port's directory. (None.)

  • The version database is fixed by rerunning ./vcpkg x-add-version --all and committing the result.

  • Only one version is added to each modified port's versions file.

This change was prepared with help from GitHub Copilot.

Rohan Jain and others added 2 commits October 5, 2026 20:26
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI balanced review requested due to automatic review settings October 6, 2026 03:27

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot review overview

🟢 Approval recommended

The architecture mapping, required no-asm option, and version metadata are consistent and narrowly scoped.

Review effort: Balanced
Findings: None

What changed in this PR

Adds native ARM64EC support to the OpenSSL port while preserving existing architecture behavior.

Changes:

  • Maps ARM64EC to VC-WIN64-ARM with assembly disabled.
  • Increments the OpenSSL port revision and version metadata.
File Description
ports/​openssl/​windows/​portfile.cmake Configures ARM64EC builds.
ports/​openssl/​vcpkg.json Increments the port version.
versions/​baseline.json Updates the baseline revision.
versions/​o-/​openssl.json Registers the new port revision.

💡 Configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@BillyONeal Billy O'Neal (BillyONeal) left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Thanks!

@BillyONeal
Billy O'Neal (BillyONeal) merged commit a49354a into microsoft:master Oct 6, 2026
16 checks passed
@rohanjain101
rohanjain101 deleted the users/rohanjain/openssl-arm64ec branch October 6, 2026 23:38
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.

3 participants