)]}'
{
  "commit": "8bea91f677be4a05b1256a8052ab84dcd7ccb050",
  "tree": "60d1e21ac45fdef76afb07a2037bacb7657b7311",
  "parents": [
    "589e1c73d0fa2692cf997a7a9c2286996ad2fec7"
  ],
  "author": {
    "name": "Leonard Grey",
    "email": "lgrey@chromium.org",
    "time": "Thu Apr 10 14:33:56 2025 -0400"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Thu Apr 10 14:33:56 2025 -0400"
  },
  "message": "[lld-macho] Support archives without index (#132942)\n\nThis is a ~port of https://reviews.llvm.org/D117284. Like in that\nchange, archives without indices are treated as a collection of lazy\nobject files (as in `--start-lib/--end-lib`)\n\nPorting the ELF follow-up to convert *all* archives to the lazy object\ncode path (https://reviews.llvm.org/D119074) is a natural next step, but\nwe would need to ensure the assertions about memory use hold for Mach-O.\n\nNB: without an index, we can\u0027t do the part of the `-ObjC` scan where we\ncheck for Objective-C symbols directly. We *can* still check for\n`__obcj` sections so I wonder how much of a problem this actually is,\nsince I\u0027m not sure how the \"symbols but no sections\" case can appear in\nthe wild.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "bec94f830e97640c2c73a9a73bbe756052c35787",
      "old_mode": 33188,
      "old_path": "lld/MachO/Driver.cpp",
      "new_id": "5c32055166da6fe8cdb46c82a722db55e16d7f00",
      "new_mode": 33188,
      "new_path": "lld/MachO/Driver.cpp"
    },
    {
      "type": "modify",
      "old_id": "60667e3b415d72fc6fe66af693731348bb7ecac9",
      "old_mode": 33188,
      "old_path": "lld/MachO/InputFiles.cpp",
      "new_id": "d461647cec51f7e9f8e0c5e245e9986e52e564ff",
      "new_mode": 33188,
      "new_path": "lld/MachO/InputFiles.cpp"
    },
    {
      "type": "modify",
      "old_id": "bc8c8038a39d182cb0eafd763c9ba0c928c16e14",
      "old_mode": 33188,
      "old_path": "lld/MachO/InputFiles.h",
      "new_id": "2d5bceb160445186470df9562438a8b1c8bb77e5",
      "new_mode": 33188,
      "new_path": "lld/MachO/InputFiles.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "85bcf2a23cf86186edb612d2886bdeb4459c0521",
      "new_mode": 33188,
      "new_path": "lld/test/MachO/archive-no-index.ll"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "37d28fda5c920c464550b33350468f286fd060e3",
      "new_mode": 33188,
      "new_path": "lld/test/MachO/archive-no-index.s"
    },
    {
      "type": "delete",
      "old_id": "9cda945652500eb851ace1fceadc7cb9f1af56b0",
      "old_mode": 33188,
      "old_path": "lld/test/MachO/invalid/archive-no-index.s",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    }
  ]
}
