Implement unifies Windows ARM64X dll(s) for Windows ARM64 platform. - #140
Merged
Merged
Conversation
arm64X binaries constists of native arm64 and arm64ec code
"cleanup-artifacts" job must delete "slice-*" artifacts together with other temporary artifacts
Use linker .rsp file instead of command-line parameters
…roviders are linking.
This ensures that the internal directory structure of providers/ (separating common/, implementations/, and standalone provider drivers) is preserved during the slice staging phase
1. Core DLLs: Links libcrypto-3-arm64.dll and libssl-3-arm64.dll using both /DEF: and /DEFARM64NATIVE: to generate dual-mode import thunks in libcrypto.lib 2. Selective Provider Linking: Isolates module-specific drivers (*legacy*.obj), implementations (liblegacy-lib-*.obj), and common provider context objects (providers\common\*.obj) while strictly excluding unneeded default/base provider objects. 3. Selective Engine Linking: Fuses engine-specific object files (*<engine>*.obj) with libcrypto.lib
For legacy.dll: Select only *legacy*.obj files, and exclude any files starting with libdefault- or libcrypto- For engines: Select only *<engine_name>*.obj
1. Stage liblegacy.lib and libcommon.lib during compile-windows-arm64x-slices 2.1 Merge liblegacy.lib and libcommon.lib into ARM64X static libraries using lib.exe /MACHINE:ARM64X 2.2 Link legacy.dll using legacy-dso-*.obj, the merged liblegacy.lib, the merged libcommon.lib, and libcrypto.lib 2.3 Link each engine using its specific *-dso-*.obj and libcrypto.lib
Stage all engine DSO objects across the build tree
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR implements building and packaging Windows ARM64X binaries that can be used by ARM64 and ARM64EC applications
libcrypto-3-arm64.dll,libssl-3-arm64.dllengines\*.dllandproviders\legacy.dllare now ARM64X libraries that export OpenSSL routines for nativearm64andarm64ecapplicationsopenssl.exeis nativearm64application.