Skip to content

Unify Windows and Apple Silicon macOS ports - #109

Open
edhemphill wants to merge 11 commits into
masterfrom
port/macos-windows-merge-port
Open

edhemphill wants to merge 11 commits into
masterfrom
port/macos-windows-merge-port

Conversation

@edhemphill

Copy link
Copy Markdown
Contributor

Combines current upstream master (81c38f3), the Windows experiment (eebe120), and Apple Silicon macOS support (b511cbd) into one desktop port branch. Both port tips remain in the merge ancestry. Linux keeps its existing platform selection; Windows and macOS use their native PAL adapters with shared OpenSSL and persistent file-backed storage support.

The Linux/OpenSSL firmware-enabled build exposed an existing unconditional mbedTLS AES include in the legacy update hub. Guard that header with the existing PSK feature flag so the default public-key update profile builds with OpenSSL while retaining firmware-update compilation. Reproduced the original header failure against unmodified cloud-client master before validating the correction.

Adds CI that checks the exact library commit with fixed mbed-edge consumers: Linux master production builds with both TLS backends, the six-suite Linux regression set, macOS 14/26 arm64 Debug/Release, and native Windows x64 Debug/Release production/Core/PAL checks. Build logs, selected commit IDs, and test results are uploaded as artifacts. No cloud or signing credentials are used.

All 9 CI jobs passed for 2a8d4e0:

  • Linux x64: unmodified mbed-edge master production builds with mbedTLS and OpenSSL, firmware updates enabled; 583/583 unit tests across six suites using the repaired port consumer.
  • Apple Silicon macOS 14 and 26: 10/10 native tests in both Debug and Release, including TLS/crypto, private storage, provisioning, and AF_UNIX status.
  • Windows x64: production build plus 15/15 Core and 5/5 PAL tests in each Debug/Release configuration.
  • Additional local checks: macOS Debug/Release 10/10 each; Ubuntu 22.04 arm64 production builds with both TLS backends and 583/583 unit tests.

The pinned macOS Core consumer has an existing C++ vendor-header inclusion inside a C linkage block. Its macOS 14 check preincludes cstddef and cstdarg; the source-level Core correction is documented for the subsequent mbed-edge integration. The Linux unit gate uses the existing repaired mock-suite consumer, while unmodified Linux master remains the production-build gate. Consumer references and limits.

After this library PR is accepted, the separate mbed-edge integration can merge its Linux master, Windows, and macOS branches and pin the accepted upstream library commit. No mbed-edge pin change or unified Core branch is included here.

edhemphill and others added 11 commits September 24, 2026 01:59
Retain native Windows PAL adapters while integrating the upstream release, OpenSSL and file-based Root of Trust changes. Route shared OpenSSL TLS through PAL sockets with a Windows BIO and use Windows PAL file APIs for optional file-based RoT.
Widen the MSVC base type and data type bitfields to preserve ObjectDirectory and OPAQUE/TIME/OBJLINK values. Three-bit signed enum storage changed endpoint type 4 to -4, so Windows PT device registration could not find newly created endpoints. Preserve the existing layout for other compilers.
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.

1 participant