)]}'
{
  "commit": "341b5e2c0261cc059b157f1c7a2a2c4d1f417f0d",
  "tree": "f10166b18211864ae4f94cd17b72daeb77c91639",
  "parents": [
    "abd44cbe615ecea5e4bd8e6d1bb7be63d1f4b2d6"
  ],
  "author": {
    "name": "Jason A. Donenfeld",
    "email": "Jason@zx2c4.com",
    "time": "Thu Mar 19 00:28:04 2026 +0100"
  },
  "committer": {
    "name": "Jason Donenfeld",
    "email": "Jason@zx2c4.com",
    "time": "Tue Mar 24 09:00:02 2026 -0700"
  },
  "message": "cmd/link: raise minimum windows version to 10\n\nThe minimum Windows version has been 10 for a few releases, but the PE\nheaders weren\u0027t updated. Windows sometimes can use these in determining\nwhat kind of subsystem compatibility hacks to apply, which of course we\ndon\u0027t want now, since Go targets Windows 10. This also causes older OSes\nto refuse to run the executables, rather than having them crash in some\nundefined way.\n\nThis isn\u0027t trivial to do, because subsystem ≥ 10.0 means that the\nWindows loader expects to see either _load_config_used.SecurityCookie\nset to the initial magic value, or for IMAGE_GUARD_SECURITY_COOKIE_UNUSED\nto be set. Go obviously isn\u0027t making use of these features, and neither\ndoes clang/gcc for that matter; libssp doesn\u0027t even use SecurityCookie.\nRather, it\u0027s exclusively for MSVC\u0027s /GS protection. So it seems like the\nproper thing to do is signal to the OS that it doesn\u0027t need to\ninitialize SecurityCookie. This check lives in ntdll!LdrInitSecurityCookie.\n\nSo, add the _load_config_used structure to the right PE section and give\nit the right flag. This lets the Windows 10-marked binaries actually\nrun.\n\nChange-Id: I91887073c7ad01aeb0237906aafa4ea5574ac8fa\nReviewed-on: https://go-review.googlesource.com/c/go/+/756680\nReviewed-by: Dmitri Shuralyov \u003cdmitshur@google.com\u003e\nAuto-Submit: Jason Donenfeld \u003cJason@zx2c4.com\u003e\nReviewed-by: Jason Donenfeld \u003cJason@zx2c4.com\u003e\nReviewed-by: Cherry Mui \u003ccherryyz@google.com\u003e\nReviewed-by: Quim Muntal \u003cquimmuntal@gmail.com\u003e\nLUCI-TryBot-Result: Go LUCI \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "8184a32f8304dbeacff5dfefc231b74f60264cdc",
      "old_mode": 33188,
      "old_path": "src/cmd/link/internal/ld/pe.go",
      "new_id": "3b97061aa07d0b6705a47291cc2667fe73c2384e",
      "new_mode": 33188,
      "new_path": "src/cmd/link/internal/ld/pe.go"
    },
    {
      "type": "modify",
      "old_id": "78b32254cf37e5ce5ae423475981fb2f285db405",
      "old_mode": 33188,
      "old_path": "src/runtime/cgo/gcc_libinit_windows.c",
      "new_id": "ed30878c3c7f664eabeea0747b5c3adae9a0a5a1",
      "new_mode": 33188,
      "new_path": "src/runtime/cgo/gcc_libinit_windows.c"
    },
    {
      "type": "modify",
      "old_id": "77092d8fbfa148459cb54d816728c901092c2043",
      "old_mode": 33188,
      "old_path": "src/runtime/syscall_windows_test.go",
      "new_id": "437c723d51d6d155a4f8a77b006c894b4ce9f567",
      "new_mode": 33188,
      "new_path": "src/runtime/syscall_windows_test.go"
    }
  ]
}
