)]}'
{
  "commit": "68b5c3aa48980bcbe2ec2c1336b615baf1935613",
  "tree": "9373bbcbfeba8ebf4e1b113a420f5f67a0ca5c1f",
  "parents": [
    "be7935ed8bff19f481b033d0d242c5d5f239ed50"
  ],
  "author": {
    "name": "Andrzej Hunt",
    "email": "ajrhunt@google.com",
    "time": "Mon Mar 08 17:14:42 2021 +0000"
  },
  "committer": {
    "name": "Junio C Hamano",
    "email": "gitster@pobox.com",
    "time": "Mon Mar 08 10:26:25 2021 -0800"
  },
  "message": "Makefile: update \u0027make fuzz-all\u0027 docs to reflect modern clang\n\nClang no longer produces a libFuzzer.a. Instead, you can include\nlibFuzzer by using -fsanitize\u003dfuzzer. Therefore we should use that in\nthe example command for building fuzzers.\n\nWe also add -fsanitize\u003dfuzzer-no-link to the CFLAGS to ensure that all\nthe required instrumentation is added when compiling git [1], and remove\n -fsanitize-coverage\u003dtrace-pc-guard as it is deprecated.\n\nI happen to have tested with LLVM 11 - however -fsanitize\u003dfuzzer appears\nto work in a wide range of reasonably modern clangs.\n\n(On my system: what used to be libFuzzer.a now lives under the following\n path, which is tricky albeit not impossible for a novice such as myself\n to find:\n/usr/lib64/clang/11.0.0/lib/linux/libclang_rt.fuzzer-x86_64.a )\n\n[1] https://releases.llvm.org/11.0.0/docs/LibFuzzer.html#fuzzer-usage\n\nSigned-off-by: Andrzej Hunt \u003cajrhunt@google.com\u003e\nSigned-off-by: Junio C Hamano \u003cgitster@pobox.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "dfb0f1000fa311baf10292f6b7e7a1cf7c4902c8",
      "old_mode": 33188,
      "old_path": "Makefile",
      "new_id": "f3dc2178324e4f7270c053a7fad070ead9f0c21e",
      "new_mode": 33188,
      "new_path": "Makefile"
    }
  ]
}
