)]}'
{
  "commit": "62d8540fcc411558aed8457e1a92ea1f4e0d039e",
  "tree": "d2cfa5691e6920fa9f20106c50ebfc7fb6f8e90c",
  "parents": [
    "505c2c6277835b1689969e01edd26a1fe03f38b4"
  ],
  "author": {
    "name": "David Benjamin",
    "email": "davidben@google.com",
    "time": "Mon Sep 23 14:50:53 2024 -0400"
  },
  "committer": {
    "name": "Boringssl LUCI CQ",
    "email": "boringssl-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Mon Sep 23 20:20:03 2024 +0000"
  },
  "message": "Rework the Bazel workaround\u0027s relationship with linkstatic\n\nDue to a longstanding Bazel flaw\n(https://github.com/bazelbuild/bazel/issues/22041), we need to split all\nour mixed C/C++ targets in two. Ideally this split would behave as if\nthe Bazel flaw were fixed, with the split-out library statically linked\nwith the other source files. Accordingly, the helper macro sets\nlinkstatic \u003d True.\n\nIt turns out linkstatic \u003d True does not work this way. Bazel interprets\nlinkstatic such that, if A(test, linkshared) -\u003e B(library) -\u003e C(library,\nlinkstatic), C will be statically linked into A, not B. This is probably\nto avoid diamond dependency problems but means it is not possible for a\ncc_library split to be transparent, only cc_binary and cc_test.\n\nSo what is happening is that every cc_test that links libcrypto is\ngetting mlkem.cc statically linked into it, separate from the rest of\nlibcrypto! That means we\u0027re getting the worst of both worlds: worse\ncache hit rate for tests that link libcrypto AND our C/C++ bits are\nstill not contained in the same library.\n\nlinkstatic \u003d True on the helper is still valuable in cc_test and\ncc_binary, but otherwise inherit the outer value.\n\nChange-Id: I1089c58c6ddaa90c89efd8cdcebd88169b0236c8\nReviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/71508\nReviewed-by: Bob Beck \u003cbbe@google.com\u003e\nCommit-Queue: David Benjamin \u003cdavidben@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "756957a7df3fb5b20e0dece2d9324d3031ce80ea",
      "old_mode": 33188,
      "old_path": "util/util.bzl",
      "new_id": "5028af6643757fd85918c8a047219893bf79d762",
      "new_mode": 33188,
      "new_path": "util/util.bzl"
    }
  ]
}
