deepak1556

#51313: ci: route rustc linker invocations through abs_link_wrapper

Merged
Created: Apr 24, 2026, 8:56:33 PM
Merged: Apr 25, 2026, 11:34:05 AM
1 comments
Target: main

Description of Change

Followup to #51311

Refs https://github.com/electron/electron/actions/runs/24917746222/job/72973188622

Rust link targets invoke lld-link internally via rustc's -Clinker= flag, bypassing the abs_link_wrapper from BindFlt issue. This causes the same undefined symbol flakes on Rust targets.

The change routes through abs_link_wrapper.py to resolve relative .obj/.rlib paths to absolute before calling lld-link.

Before:

  rustc ... -Clinker=..\..\third_party\llvm-build\...\lld-link.exe

  lld-link.exe -flavor link \
    win_clang_x86_.../obj/.../libhashbrown_lib.rlib \
    win_clang_x86_.../obj/.../libquote_lib.rlib \
    ...

After:

  rustc ... -Clinker=abs_link_wrapper_win_clang_x86.cmd

  python.exe abs_link_wrapper.py lld-link.exe -flavor link \
    "C:\src\out\Default\win_clang_x86_.../obj/.../libhashbrown_lib.rlib" \
    "C:\src\out\Default\win_clang_x86_.../obj/.../libquote_lib.rlib" \
    ...

Hopefully this is the last in the series 😄

Release Notes

Notes: none

Backports

No Backports Requested

This pull request doesn't have any backports requested or created for older release branches.

What are backports?

Backports are copies of changes made to the main branch that are applied to older release branches. They ensure that bug fixes and important changes are available in maintained older versions of Electron.

Semver Impact

Major
Breaking changes
Minor
New features
Patch
Bug fixes
None
Docs, tests, etc.

Semantic Versioning helps users understand the impact of updates:

  • Major (X.y.z): Breaking changes that may require code modifications
  • Minor (x.Y.z): New features that maintain backward compatibility
  • Patch (x.y.Z): Bug fixes that don't change the API
  • None: Changes that don't affect using facing parts of Electron