)]}'
{
  "commit": "a6f8fe0a9e9cbe871652e46ba7c22d5e9fb86208",
  "tree": "dd0c85486ead167ae840ff7089e30d2d66160218",
  "parents": [
    "72e96189d8b0a7183a425047ee91e2dc86bde39c"
  ],
  "author": {
    "name": "H.J. Lu",
    "email": "hjl.tools@gmail.com",
    "time": "Wed Aug 14 20:50:02 2024 -0700"
  },
  "committer": {
    "name": "H.J. Lu",
    "email": "hjl.tools@gmail.com",
    "time": "Thu Aug 15 03:54:11 2024 -0700"
  },
  "message": "lto: Don\u0027t include unused LTO archive members in output\n\nWhen plugin_object_p is called by elf_link_is_defined_archive_symbol to\ncheck if a symbol in archive is a real definition, set archive member\nplugin_format to bfd_plugin_yes_unused to avoid including the unused LTO\narchive members in linker output.  When plugin_object_p is called as\nknown used, call plugin claim_file if plugin_format is bfd_plugin_unknown\nor bfd_plugin_yes_unused.\n\nTo get the proper support for archives with LTO common symbols with GCC,\nthe GCC fix for\n\nhttps://gcc.gnu.org/bugzilla/show_bug.cgi?id\u003d116361\n\nis needed.\n\nbfd/\n\n\tPR ld/32083\n\t* archures.c (bfd_arch_get_compatible): Treat bfd_plugin_yes_unused\n\tthe same as bfd_plugin_yes.\n\t* elflink.c (elf_link_is_defined_archive_symbol): Likewise.\n\t* bfd.c (bfd_plugin_format): Add bfd_plugin_yes_unused.\n\t* plugin.c (try_claim): Try claim_file_v2 first.\n\t* bfd-in2.h: Regenerated.\n\nld/\n\n\tPR ld/32083\n\t* plugin.c (plugin_call_claim_file): Add an argument to return\n\tif LDPT_REGISTER_CLAIM_FILE_HOOK_V2 is used.\n\t(plugin_object_p): When KNOWN_USED is false, we call plugin\n\tclaim_file if plugin_format is bfd_plugin_unknown and set\n\tplugin_format to bfd_plugin_yes_unused on LTO object.  When\n\tKNOWN_USED is true, we call plugin claim_file if plugin_format\n\tis bfd_plugin_unknown or bfd_plugin_yes_unused.\n\nSigned-off-by: H.J. Lu \u003chjl.tools@gmail.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "94118b8d2cfc667333ba19c2b95b019c7e91379d",
      "old_mode": 33188,
      "old_path": "bfd/archures.c",
      "new_id": "c4decc59e4aebe293f6fd86e63cef13e2f151c02",
      "new_mode": 33188,
      "new_path": "bfd/archures.c"
    },
    {
      "type": "modify",
      "old_id": "e3b5a8b8522f3103343ff77a08a73218b0aab6f4",
      "old_mode": 33188,
      "old_path": "bfd/bfd-in2.h",
      "new_id": "40ec416ddeda7e22e56c30daac18d64086210583",
      "new_mode": 33188,
      "new_path": "bfd/bfd-in2.h"
    },
    {
      "type": "modify",
      "old_id": "ae79c6490b5f1909c6b9e62f0f131f91b3ef0d65",
      "old_mode": 33188,
      "old_path": "bfd/bfd.c",
      "new_id": "a93be109f11135d44637e81fb92a7e57a2930cd3",
      "new_mode": 33188,
      "new_path": "bfd/bfd.c"
    },
    {
      "type": "modify",
      "old_id": "ed0bd71859b1d967cd444fa9b9194783692fc354",
      "old_mode": 33188,
      "old_path": "bfd/elflink.c",
      "new_id": "9eb1122d5133259254c0d8899e1452558bd4e128",
      "new_mode": 33188,
      "new_path": "bfd/elflink.c"
    },
    {
      "type": "modify",
      "old_id": "026654fd9d375cc336bdcbb388cc29bbde04bd87",
      "old_mode": 33188,
      "old_path": "bfd/plugin.c",
      "new_id": "f6c6fdbee69a9b33ee85f0b3077a8b4cc2386d5b",
      "new_mode": 33188,
      "new_path": "bfd/plugin.c"
    },
    {
      "type": "modify",
      "old_id": "51c4765cc5b5ca5ea8679bf2af3e2d19678b37b5",
      "old_mode": 33188,
      "old_path": "ld/plugin.c",
      "new_id": "34ae3a0e0d8d03a7329bef0cd496c3404a74d72b",
      "new_mode": 33188,
      "new_path": "ld/plugin.c"
    }
  ]
}
