Skip to content

Windows: bind BlocksRuntime as an SxS runtime#89987

Open
compnerd wants to merge 5 commits into
swiftlang:mainfrom
compnerd:full-sxs
Open

Windows: bind BlocksRuntime as an SxS runtime#89987
compnerd wants to merge 5 commits into
swiftlang:mainfrom
compnerd:full-sxs

Conversation

@compnerd

Copy link
Copy Markdown
Member

Repair BlocksRuntime.dll with the same generated assembly manifest used for the other Windows SDK runtime DLLs.

Include BlocksRuntime in the toolchain SxS runtime graph so executables can bind to it by assembly identity instead of relying on a flat runtime DLL next to the tool.

@compnerd

Copy link
Copy Markdown
Member Author

@swift-ci please smoke test

@compnerd

Copy link
Copy Markdown
Member Author

Please test with following PRs:
swiftlang/swift-installer-scripts#533

@swift-ci please build toolchain Windows platform

@compnerd

Copy link
Copy Markdown
Member Author

Please test with following PRs:
swiftlang/swift-installer-scripts#533

@swift-ci please build toolchain Windows ARM64 platform

1 similar comment
@compnerd

Copy link
Copy Markdown
Member Author

Please test with following PRs:
swiftlang/swift-installer-scripts#533

@swift-ci please build toolchain Windows ARM64 platform

@compnerd

Copy link
Copy Markdown
Member Author

Please test with following PRs:
swiftlang/swift-installer-scripts#533

@swift-ci please build toolchain Windows platform

compnerd added 5 commits June 17, 2026 14:07
Repair BlocksRuntime.dll with the same generated assembly manifest used
for the other Windows SDK runtime DLLs.

Include BlocksRuntime in the toolchain SxS runtime graph so executables
can bind to it by assembly identity instead of relying on a flat
runtime DLL next to the tool.
Add WindowsSxSAssemblyPublicKeyToken as build-time identity metadata for
Windows side-by-side assembly manifests. Default it to the placeholder
token so local builds do not need access to the signing certificate or
catalog signing pipeline.

Thread the token through embedded runtime assembly manifests and the
dependent assembly references emitted into tool manifests. This keeps
assembly definitions and dependency references consistent while leaving
code signing as a separate release step.
The resource identifier was being embedded as a string literal rather
than the numeric identifier. Include `winuser.h` in the resource file
for preprocessing to allow us to get properly generated resources.
Allow embedding the public key identifier into the generated runtime
DLLs. This is required for deeper code signing which enables the global
native SxS cache.
When building the runtime, we default to the product version for the
assembly version. We now wire the product version throughout the build
and use that to embed that into the manifest version as well. This is
required to get the right version available for the code signing.
@compnerd

Copy link
Copy Markdown
Member Author

Please test with following PRs:
swiftlang/swift-installer-scripts#533

@swift-ci please build toolchain Windows ARM64 platform

@compnerd

Copy link
Copy Markdown
Member Author

Please test with following PRs:
swiftlang/swift-installer-scripts#533

@swift-ci please build toolchain Windows platform

@compnerd

Copy link
Copy Markdown
Member Author

Please test with following PRs:
swiftlang/swift-installer-scripts#533

@swift-ci please build toolchain Windows ARM64 platform

@compnerd

Copy link
Copy Markdown
Member Author

@swift-ci please smoke test

@compnerd

Copy link
Copy Markdown
Member Author

@swift-ci please smoke test Linux platform

@compnerd

Copy link
Copy Markdown
Member Author

@swift-ci please smoke test macOS platform

@compnerd

Copy link
Copy Markdown
Member Author

@swift-ci please smoke test Linux platform

@compnerd

Copy link
Copy Markdown
Member Author

@swift-ci please smoke test macOS platform

1 similar comment
@compnerd

Copy link
Copy Markdown
Member Author

@swift-ci please smoke test macOS platform

@compnerd

Copy link
Copy Markdown
Member Author

@swift-ci please smoke test Linux platform

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