)]}'
{
  "commit": "35501366a2345fc02a5bb25a5ad700a4526e5f55",
  "tree": "abfc5bbb084032c332e046819624de2a530b318d",
  "parents": [
    "a4eb36a92010d110070a449ee30865f672cc82c1"
  ],
  "author": {
    "name": "Régis Desgroppes",
    "email": "rdesgroppes@gmail.com",
    "time": "Thu Aug 27 23:15:23 2026 +0000"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Thu Aug 27 23:15:23 2026 +0000"
  },
  "message": "Derive `dlltool` path from the linker for Windows-GNU builds (#4206)\n\n`rustc` on Windows-GNU shells out to `dlltool` to synthesize import\nlibraries: for `#[link(... kind \u003d \"raw-dylib\")]` declarations in any\ncrate (`windows-sys` 0.61+ is the common case), and for the `*.dll.a`\ncompanion that `cdylib` crates emit alongside their `.dll`.\n\n`cc_toolchain` has no action/tool slot for `dlltool`, since `gcc` used\nas a linker runs it internally, but `rustc` drives the linker directly\nand so needs an explicit `--codegen dlltool\u003d` pointer, which previously\nhad to be supplied by hand via `extra_rustc_flags` on every target.\n\nEvery MinGW toolchain, whether a native Windows distribution (winlibs,\nMSYS2 mingw64, llvm-mingw) or a Unix cross toolchain, ships `dlltool`\nright next to the linker with the same naming convention (`.exe`/`.EXE`\nsuffix or none), so derive its path from the `cc_toolchain`\u0027s own linker\ntool path instead.\n\nA user-supplied `-Cdlltool\u003d` via `extra_rustc_flags` still wins, since\n`rustc` honors the last `-C\u003ckey\u003e\u003d` for a given key.\n\nThis adds no new `constraint_value` nor `config_setting` and does not\naffect toolchain auto-registration or resolution: `target_abi` is\nalready parsed from the target triple on the resolved `rust_toolchain`,\nthe same field `portable_link_flags` and `symlink_for_ambiguous_lib` key\noff of a few lines below.\n\nAssisted-by: Claude",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "5eba0a45a39b660dd0f1cd7fc4c70285af6a32bf",
      "old_mode": 33188,
      "old_path": "rust/private/rustc.bzl",
      "new_id": "d447c97303d993ab27a60053f39fbbffdce74039",
      "new_mode": 33188,
      "new_path": "rust/private/rustc.bzl"
    },
    {
      "type": "modify",
      "old_id": "a854247c1fb19e8c6beb9b9fb0d0ff42cb085270",
      "old_mode": 33188,
      "old_path": "test/unit/windows_lib_name/windows_lib_name_test.bzl",
      "new_id": "34ec292ee39e27cea6e34808cda287dc8b675968",
      "new_mode": 33188,
      "new_path": "test/unit/windows_lib_name/windows_lib_name_test.bzl"
    }
  ]
}
