)]}'
{
  "commit": "19a66a4fb21d0fffd833fde054cc59102b9487ac",
  "tree": "194506149f411d2eb7887360cde26010be0c6635",
  "parents": [
    "fec6c6fca563d60975ba6bda12148d6985489c65"
  ],
  "author": {
    "name": "David Benjamin",
    "email": "davidben@google.com",
    "time": "Sun Mar 16 21:47:47 2025 +0700"
  },
  "committer": {
    "name": "Boringssl LUCI CQ",
    "email": "boringssl-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Wed Mar 19 23:58:23 2025 -0700"
  },
  "message": "Fix the link order of various dependencies\n\nCMake expects you to provide your link lines in the right order for\nplatforms without rescanning linkers. When they\u0027re not in the right,\nit\u0027ll preserve your order but duplicate transitive dependencies. That\nis, if:\n\n    A -\u003e C B\n    B -\u003e C\n\nThe final link line will be:\n\n    A C B C\n\nWheras if A wrote B C then there would be no duplication. Newer macOS\ntoolchains (which do not need the duplication) seem to warn on duplicate\nlibraries, which is how I noticed this.\n\nThat said, this is not actually sufficient to avoid duplication and thus\nthe warning. Consider:\n\n   A -\u003e B D\n   B -\u003e C D\n\nCMake always lists direct dependencies before transitive ones, so the\nresult will be:\n\n   A B D C D\n\ndecrepit_test triggers this because decrepit_test does not directly\ndepend on ssl but decrepit does. It\u0027s a bit awkward to have to list it\nagain, but adding it avoids this issue.\n\nNewer CMakes (3.31) now know that:\n1. macOS rescans dependencies so the dependencies don\u0027t have to be in\n   order.\n2. macOS has this warning so it should dedup things.\n\nHowever, even updating to 3.31 isn\u0027t sufficient because CMake keys all\nbehavior changes on cmake_minimum_required. I didn\u0027t set the target\npolicy version because I figure testing it at 3.16\u0027s behavior is\nprobably useful for the sake of keeping 3.16 hopefully working.\n\nChange-Id: Ibb006eefbbb23f1899ef91277465d31fa8202d2e\nReviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/77747\nAuto-Submit: David Benjamin \u003cdavidben@google.com\u003e\nReviewed-by: Bob Beck \u003cbbe@google.com\u003e\nCommit-Queue: David Benjamin \u003cdavidben@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "50f5e37999e40115ad4eacd39a1bef678e3ffcd2",
      "old_mode": 33188,
      "old_path": "CMakeLists.txt",
      "new_id": "7374eec21baf79e6d5e84efaf3b3d1cfdd9410e2",
      "new_mode": 33188,
      "new_path": "CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "1c784a112346c47b4254b44df642f57d41a23546",
      "old_mode": 33188,
      "old_path": "fuzz/CMakeLists.txt",
      "new_id": "bb4ee902a04acef601bfba11dede51cecc8b80bd",
      "new_mode": 33188,
      "new_path": "fuzz/CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "0ed1c9577b3cb070d1e3cae55de3afbc918ca6bf",
      "old_mode": 33188,
      "old_path": "rust/bssl-sys/CMakeLists.txt",
      "new_id": "a5ca2c3a8f2a64685fe1e06c5061bf948fcb22f5",
      "new_mode": 33188,
      "new_path": "rust/bssl-sys/CMakeLists.txt"
    }
  ]
}
