)]}'
{
  "commit": "c2729c37f10af09126b2916215cae425ae724f55",
  "tree": "96223ddb0cdb402f063147be060f247005138994",
  "parents": [
    "d6e93eedfb9e75846c3083f49f9015eda1a2be33"
  ],
  "author": {
    "name": "H.J. Lu",
    "email": "hjl.tools@gmail.com",
    "time": "Sun Aug 03 10:28:40 2025 -0700"
  },
  "committer": {
    "name": "H.J. Lu",
    "email": "hjl.tools@gmail.com",
    "time": "Wed Aug 06 04:51:20 2025 -0700"
  },
  "message": "strip: Don\u0027t treat fat IR objects as plugin object\n\nFat IR objects contains both regular sections and IR sections.  After\n\ncommit 717a38e9a02109fcbcb18bb2ec3aa251e2ad0a0d\nAuthor: H.J. Lu \u003chjl.tools@gmail.com\u003e\nDate:   Sun May 4 05:12:46 2025 +0800\n\n    strip: Add GCC LTO IR support\n\n\"strip --strip-debug\" no longer strips debug sections in fat IR objects\nsince fat IR objects are recognized as plugin object and copied as unknown\nobjects.  Add a is_strip_input field to bfd to indicate called from strip.\nUpdate bfd_check_format_matches not to treat archive member nor standalone\nfat IR object as IR object so that strip can remove debug and IR sections\nin fat IR object.  For archive member, it is copied as an unknown object\nif the plugin target is in use or it is a slim IR object.  For standalone\nfat IR object, it is copied as non-IR object.\n\nbfd/\n\n\tPR binutils/33246\n\t* archive.c: Include \"plugin-api.h\" and \"plugin.h\" if plugin is\n\tenabled.\n\t(_bfd_compute_and_write_armap): Don\u0027t complain plugin is needed\n\twhen the plugin target is in use.\n\t* bfd-in2.h: Regenerated.\n\t* bfd.c (bfd): Add is_strip_input.\n\t* format.c (bfd_set_lto_type): If there is .llvm.lto section,\n\tset LTO type to lto_fat_ir_object.\n\t(bfd_check_format_matches): Don\u0027t set LTO type when setting\n\tformat.  When called from strip, don\u0027t treat archive member nor\n\tstandalone fat IR object as an IR object.\n\t* plugin.c (bfd_plugin_get_symbols_in_object_only): Copy LTO\n\ttype derived from input sections.\n\nnm/\n\n\tPR binutils/33246\n\t* nm.c (filter_symbols): Don\u0027t complain plugin is needed when\n\tthe plugin target is in use.\n\t(display_rel_file): Likewise.\n\t* objcopy.c (copy_archive): Set the BFD is_strip_input field of\n\tarchive member to 1 to indicate called from strip.  Also copy\n\tslim IR archive member as unknown object.\n\t(copy_file): Set the BFD is_strip_input field of input bfd to\n\t1 to indicate called from strip.\n\t(strip_main): Keep .gnu.debuglto_* sections unless all GCC LTO\n\tsections will be removed.\n\nld/\n\n\tPR binutils/33246\n\t* testsuite/ld-plugin/lto-binutils.exp (run_pr33246_test): New.\n\tRun binutils/33246 tests with GCC and Clang.\n\t* testsuite/ld-plugin/pr33246.c: New file.\n\nSigned-off-by: H.J. Lu \u003chjl.tools@gmail.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "c61d4b126586981b3ebd1d720ef330c109410a1e",
      "old_mode": 33188,
      "old_path": "bfd/archive.c",
      "new_id": "697b2ed23f2183fa8a2d01c3a8f63bb7b94f696d",
      "new_mode": 33188,
      "new_path": "bfd/archive.c"
    },
    {
      "type": "modify",
      "old_id": "b013ef954da34a0b3c5a826e057691b0873efe25",
      "old_mode": 33188,
      "old_path": "bfd/bfd-in2.h",
      "new_id": "12512a3962c33c647404d28b6747ed27092f5f65",
      "new_mode": 33188,
      "new_path": "bfd/bfd-in2.h"
    },
    {
      "type": "modify",
      "old_id": "858ab5ce017911d585e2718d1dfa7ccd1df2be89",
      "old_mode": 33188,
      "old_path": "bfd/bfd.c",
      "new_id": "4aded6809bb60f08fe73a224cb9eea89b7daf98b",
      "new_mode": 33188,
      "new_path": "bfd/bfd.c"
    },
    {
      "type": "modify",
      "old_id": "d2bc318977c5ff645d2b16494976ecf15329fb44",
      "old_mode": 33188,
      "old_path": "bfd/format.c",
      "new_id": "bd9fa8d6c336f03331b69e9ed5ee3e9832f3c592",
      "new_mode": 33188,
      "new_path": "bfd/format.c"
    },
    {
      "type": "modify",
      "old_id": "ebdf2505cbc6c62908ba0605c58f09a59e6cf64a",
      "old_mode": 33188,
      "old_path": "bfd/plugin.c",
      "new_id": "43ca444e7a12fcf6bc23355c22bdb98d1eed2662",
      "new_mode": 33188,
      "new_path": "bfd/plugin.c"
    },
    {
      "type": "modify",
      "old_id": "a5d56311ddedd1c35d07c1feb77b219a3a811afc",
      "old_mode": 33188,
      "old_path": "binutils/nm.c",
      "new_id": "d44083dcc948c855fca2401c464d93659aa1375b",
      "new_mode": 33188,
      "new_path": "binutils/nm.c"
    },
    {
      "type": "modify",
      "old_id": "8bd523aba138c31274f5a11ed8a15751e057fe9c",
      "old_mode": 33188,
      "old_path": "binutils/objcopy.c",
      "new_id": "3404bec1d08cfd7f50dcd3de11973b4ae9e91f4a",
      "new_mode": 33188,
      "new_path": "binutils/objcopy.c"
    },
    {
      "type": "modify",
      "old_id": "88d351710455110c96c4df7ea6f929e32c029122",
      "old_mode": 33188,
      "old_path": "ld/testsuite/ld-plugin/lto-binutils.exp",
      "new_id": "de017f0b94673daad790fdbea08a1f9caad8f097",
      "new_mode": 33188,
      "new_path": "ld/testsuite/ld-plugin/lto-binutils.exp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "cd0130cacdfe9c2873c7bdf7c123be00dec9dd0d",
      "new_mode": 33188,
      "new_path": "ld/testsuite/ld-plugin/pr33246.c"
    }
  ]
}
