Skip to content

Refresh shared PAL sources from runtime - #6163

Draft
max-charlamb wants to merge 18 commits into
dotnet:mainfrom
max-charlamb:dev/max-charlamb/pal-full-source-update
Draft

max-charlamb wants to merge 18 commits into
dotnet:mainfrom
max-charlamb:dev/max-charlamb/pal-full-source-update

Conversation

@max-charlamb

Copy link
Copy Markdown
Member

Summary

  • add a manifest-driven mirror of the PAL and minipal sources from dotnet/runtime
  • keep diagnostics-specific PAL compatibility outside the runtime mirror
  • retire obsolete PALRT, CorPublish IDL, and legacy copied source layouts
  • adapt SOS and dbgshim to current runtime PAL and minipal APIs

Testing

  • Build.cmd -clean
  • Build.cmd
  • Test.cmd (running)

Max Charlamb and others added 15 commits October 27, 2026 13:56
Preserve diagnostics-owned runtime startup, process inspection, UTF-16 formatting, and BSTR compatibility outside the runtime-derived PAL tree before refreshing the mirror. Rewire PALRT to build the relocated BSTR implementation immediately; the mirror integration will wire the remaining preserved sources.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: ab215431-2cf9-4421-8822-d411adca0f92
Add a manifest-driven updater for the runtime sources used by the shared PAL and minipal build.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: ab215431-2cf9-4421-8822-d411adca0f92
Replace the flattened PAL, CoreCLR minipal, native minipal, and libunwind copies with a path-preserving runtime source snapshot. Record the exact runtime commit used to generate it.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: ab215431-2cf9-4421-8822-d411adca0f92
Redirect PAL and minipal consumers to the dedicated runtime snapshot, keep diagnostics compatibility outside the mirror, disable runtime-only event generation, and match runtime's Clang warning configuration.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: ab215431-2cf9-4421-8822-d411adca0f92
Stop generating identifiers for the removed ICorPublish interfaces and delete the unused IDL source.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: ab215431-2cf9-4421-8822-d411adca0f92
The refreshed PAL implements __uuidof(Type) through explicit IID_Type constants. Define the two handwritten SOS service interface IIDs that were previously supplied by compiler UUID attributes.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: ab215431-2cf9-4421-8822-d411adca0f92
Build diagnostics-owned BSTR compatibility in diagnosticspal, use minipal for task-memory allocation, and remove unused PALRT stream, variant, GUID, and allocation implementations.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: ab215431-2cf9-4421-8822-d411adca0f92
Replace removed PAL _wfopen usage in diagnostics file readers with CoreCLR minipal's u16_fopen_s helper and declare the dbgutil dependency explicitly.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: ab215431-2cf9-4421-8822-d411adca0f92
Remove the duplicate UNREACHABLE definitions from the shared check header now that minipal provides them.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: ab215431-2cf9-4421-8822-d411adca0f92
Make the shared check header's dependency on minipal explicit so standalone consumers can expand the unreachable wrappers.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: ab215431-2cf9-4421-8822-d411adca0f92
Drop the unused holder for the PAL FindClose API, which is no longer provided by the runtime PAL.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: ab215431-2cf9-4421-8822-d411adca0f92
Seed the new runtime PAL clock probe for cross builds and force the standard limits definitions into the mirrored minipal Windows x86 compilation.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: ab215431-2cf9-4421-8822-d411adca0f92
Apply the Debug directory ignore cleanup from main so the runtime PAL debug source is tracked, and add the file omitted from the original mirror commit.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: ab215431-2cf9-4421-8822-d411adca0f92
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: ab215431-2cf9-4421-8822-d411adca0f92
Replace removed PAL APIs in SOS and dbgshim, preserve diagnostics compatibility outside the runtime mirror, and add compatibility for older Linux membarrier headers used by CI.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: ab215431-2cf9-4421-8822-d411adca0f92
Max Charlamb added 3 commits October 28, 2026 14:43
Link Windows SOS with utilcode for DbgAssertDialog and link the LLDB plugin with diagnostics PAL dependencies required by the refreshed runtime headers.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: ab215431-2cf9-4421-8822-d411adca0f92
Define PAL interface IIDs used by SOS and link the Unix SOS library with the utilcode assertion implementation.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: ab215431-2cf9-4421-8822-d411adca0f92
Route Unix SOS output through the diagnostics SafeCRT formatter so Microsoft percent-S format strings continue to consume UTF-16 strings.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: ab215431-2cf9-4421-8822-d411adca0f92
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