)]}'
{
  "commit": "69f60cd49a18bbb2cef2674fac4fc12de419a7ae",
  "tree": "34866a49804fa56d1e9420e27754f56b40275a75",
  "parents": [
    "54bae9bf84e4e045f46a523ecee0cae0747c6edb"
  ],
  "author": {
    "name": "harjoth",
    "email": "harjoth.khara@gmail.com",
    "time": "Thu Jul 09 03:01:41 2026 +0000"
  },
  "committer": {
    "name": "Sean Liao",
    "email": "sean@liao.dev",
    "time": "Mon Aug 03 13:23:24 2026 -0700"
  },
  "message": "cmd/go: use the resolved buildmode in build IDs and build info\n\nWhen -buildmode\u003ddefault is used, the link action ID hashed the\nliteral string \"default\", so building with -buildmode\u003ddefault and\nbuilding with the buildmode it resolves to produced binaries that\nwere identical except for their build IDs. Hash the resolved\nbuildmode (ldBuildmode) instead, so that equivalent builds share a\nbuild ID and cached link outputs.\n\nAdditionally, the build info stamped into binaries normalized\n-buildmode\u003ddefault to \"exe\" without accounting for platforms where\nthe default is PIE (android, ios, darwin, and windows without\n-race), misreporting the buildmode actually given to the linker.\nRecord \"pie\" on those platforms instead.\n\nTogether these make it possible to reproduce a binary built with\n-buildmode\u003ddefault from its stamped build info alone.\n\nFixes #63559\n\nChange-Id: If3ac6a6a84fbf20097ff3009e228ce07705d6835\nGitHub-Last-Rev: 1ddf5bfef00c64cc589d90e4e8bf4257f8d05b88\nGitHub-Pull-Request: golang/go#80312\nReviewed-on: https://go-review.googlesource.com/c/go/+/798680\nReviewed-by: Mark Freeman \u003cmarkfreeman@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Sean Liao \u003csean@liao.dev\u003e\nReviewed-by: Michael Pratt \u003cmpratt@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "6c1e51e1a3e0a8e156429d19d8cf2680f36feebd",
      "old_mode": 33188,
      "old_path": "src/cmd/go/internal/load/pkg.go",
      "new_id": "70616305f0defa1149e607e8b7e89b99eded0c67",
      "new_mode": 33188,
      "new_path": "src/cmd/go/internal/load/pkg.go"
    },
    {
      "type": "modify",
      "old_id": "db3b7bfc87efb36bb7c6b520623092249f844d6e",
      "old_mode": 33188,
      "old_path": "src/cmd/go/internal/work/exec.go",
      "new_id": "41d1673dec9372d1444e70e97d3c750fe9484e15",
      "new_mode": 33188,
      "new_path": "src/cmd/go/internal/work/exec.go"
    },
    {
      "type": "modify",
      "old_id": "25053dd1da562bb6f398226fa1c3d894aeb34a35",
      "old_mode": 33188,
      "old_path": "src/cmd/go/scriptconds_test.go",
      "new_id": "277352ddaf921f93572e09ba02839a6665693c10",
      "new_mode": 33188,
      "new_path": "src/cmd/go/scriptconds_test.go"
    },
    {
      "type": "modify",
      "old_id": "71052159b6e4f53d2f1dfbc4fca1a4bfa3f9e0f1",
      "old_mode": 33188,
      "old_path": "src/cmd/go/testdata/script/README",
      "new_id": "cd0484243fdeed1f0f20bd34dbf05d442becc360",
      "new_mode": 33188,
      "new_path": "src/cmd/go/testdata/script/README"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a841e5c45b47e4064bea1467565b22f722f347d5",
      "new_mode": 33188,
      "new_path": "src/cmd/go/testdata/script/build_buildmode_default_reproducible.txt"
    },
    {
      "type": "modify",
      "old_id": "722859f25867e7b98e5d3e56c75fe32d7c00f307",
      "old_mode": 33188,
      "old_path": "src/cmd/go/testdata/script/version.txt",
      "new_id": "5958dca930de83cac4fe14090ca57689d58afe86",
      "new_mode": 33188,
      "new_path": "src/cmd/go/testdata/script/version.txt"
    }
  ]
}
