)]}'
{
  "commit": "2dfd38f93ce3b05d25c7bd14cbcff0fa3614c056",
  "tree": "600dae40893c722312af4e5b19a0adb8cee076e9",
  "parents": [
    "4e76b375191934ecf41d27b7d887ce0aa880440c"
  ],
  "author": {
    "name": "Alan Modra",
    "email": "amodra@gmail.com",
    "time": "Thu Feb 05 08:34:31 2026 +1030"
  },
  "committer": {
    "name": "Alan Modra",
    "email": "amodra@gmail.com",
    "time": "Thu Feb 05 08:34:31 2026 +1030"
  },
  "message": "PR 33593 Misplaced synthetic plt symbols in aarch64 PIE binaries\n\nelfNN_aarch64_plt_sym_val wrongly treats PIEs.  PIEs are an executable\nbut not ET_EXEC, instead being ET_DYN with DF_1_PIE set in DT_FLAGS_1\nto distinguish them from shared libraries.\n\nget_plt_type scans .dynamic for DT_AARCH64_BTI_PLT and\nDT_AARCH64_PAC_PLT, setting PLT_BTI and PLT_PAC in the function return\nvalue respectively.  It\u0027s easy enough to extend the .dynamic scan to\nalso return DF_1_PIE in tdata is_pie.\n\nThe patch also makes a few tidies, things I noticed when scanning all\nthe code dealing with sw_protections.plt_type.\n\n\tPR 33593\n\t* elfnn-aarch64.c (get_plt_type): Return DF_1_PIE via tdata is_pie.\n\t(elfNN_aarch64_plt_sym_val): Handle PIEs as well as ET_EXEC.\n\t(setup_plt_values): Delete wrong ET_EXEC comments.\n\t(elfNN_aarch64_late_size_sections): Remove excess parentheses.\n\t(elfNN_aarch64_finish_dynamic_sections): Rename type to plt_type,\n\tand simplify test for PLT_BTI or PLT_BTI_PAC.\n\nCo-Authored-By: Michael Matz \u003cmatz@suse.de\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "08077fb74f84412e1b2c6e7b75e2e4d546ad8473",
      "old_mode": 33188,
      "old_path": "bfd/elfnn-aarch64.c",
      "new_id": "1ba7dd393e68e454819360726cd6b30e07031e2f",
      "new_mode": 33188,
      "new_path": "bfd/elfnn-aarch64.c"
    }
  ]
}
