)]}'
{
  "commit": "7f7f8d3636b0809c0e812a5774cab06e5eb4e87d",
  "tree": "5e257d20c69fc903dc005381f256a14ff1d26d18",
  "parents": [
    "3ead2e8367044b9fc69c96cd42b8050d3709362e"
  ],
  "author": {
    "name": "Matthieu Longo",
    "email": "matthieu.longo@arm.com",
    "time": "Thu Apr 17 10:23:08 2025 +0100"
  },
  "committer": {
    "name": "Matthieu Longo",
    "email": "matthieu.longo@arm.com",
    "time": "Thu Jan 22 10:11:17 2026 +0000"
  },
  "message": "aarch64: merge of Object Attributes v2 during linkage\n\nThis patch adds support to AArch64 backend to process AEABI Build\nAttributes and raise any compatibility issue.\n\nAArch64 backend declares 2 vendor subsections, and their associated tags:\n- aeabi_feature_and_bits: contains tags that describe the same optional\n  bits as the GNU_PROPERTY_AARCH64_FEATURE_1_AND. For now, the following\n  attributes are recognized:\n    - Tag_Feature_BTI: means that all the executable sections are\n      compatible with Branch Target Identification (BTI) mechanism.\n    - Tag_Feature_PAC: means that all the executable sections have been\n      protected with Return Address Signing.\n    - Tag_Feature_GCS: means that all the executable sections are\n      compatible with the Guarded Control Stack (GCS) extension.\n- aeabi_pauthabi: contains information about the Pointer Authentication\n  Signing schema when the object uses an extension to ELF, PAUTHABI64,\n  which is currently not supported by GCC toolchain. The pointers that\n  are signed as well as the modifiers and key used for each type of\n  pointer are known as the signing schema. The support of this\n  subsection is there for completeness with the AEABI Build Attributes\n  document, and allows readelf to dump the data nicely, and the linker\n  to detect a use of a signing schema, and error.\n    - Tag_PAuth_Paltform: the platform vendor id.\n    - Tag_PAuth_Schema: the version numner of the schema.\n\nFor backward-compatibilty purpose, AArch64 backend translates\nGNU_PROPERTY_AARCH64_FEATURE_1_AND in input files to its OAv2 equivalents.\nThe frozen set of OAv2 is populated with values derived from command-line\noptions for BTI (-z force-bti) and GCS (-z gcs\u003d*).\nIt also reports incompatibilities for BTI and GCS, and set BTI PLT type\ndepending on the OAv2 merge result.\nRegarding incompatibilities, only the ones detected in objects constituting\nthe output link unit will be reported. Supports for detecting incompatibilities\nin shared objects might be a future work to bring it in pair with the GNU\nproperties merge. However, since OAv2 are translated to GNU properties,\ndetection will still happen so this feature seems redundant and of little\nvalue given the backward compatibility support for GNU properties is\nrequired (see next paragraph).\nFinally, it translates OAv2s in subsection \"aeabi_feature_and_bits\" to\nGNU_PROPERTY_AARCH64_FEATURE_1_AND as GNU properties are required for\nthe dynamic linker (it does not understand OAv2s yet).\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "03914169483b44312fcaae16b5513bc8931f5605",
      "old_mode": 33188,
      "old_path": "bfd/elf-attrs.c",
      "new_id": "c012ba4956cc39309e278080dbf84a787728e975",
      "new_mode": 33188,
      "new_path": "bfd/elf-attrs.c"
    },
    {
      "type": "modify",
      "old_id": "c604195dd984e05f9bb5d7904fbced4b751d4cdc",
      "old_mode": 33188,
      "old_path": "bfd/elf-attrs.h",
      "new_id": "d6d3b59ab357eb638f59a6c45ae0caa0c026e719",
      "new_mode": 33188,
      "new_path": "bfd/elf-attrs.h"
    },
    {
      "type": "modify",
      "old_id": "75e16d0bc15d739b6edd40e9b6c2112de3ab3ad8",
      "old_mode": 33188,
      "old_path": "bfd/elfnn-aarch64.c",
      "new_id": "78bab74c197d6c85f6488fae1f7266f872d1b09b",
      "new_mode": 33188,
      "new_path": "bfd/elfnn-aarch64.c"
    },
    {
      "type": "modify",
      "old_id": "85d2e4228109918e45eb0bb09c42e012d5a8338f",
      "old_mode": 33188,
      "old_path": "bfd/elfxx-aarch64.c",
      "new_id": "8352545b7b96caa7e7f60ce70a4ebc0981c7d065",
      "new_mode": 33188,
      "new_path": "bfd/elfxx-aarch64.c"
    },
    {
      "type": "modify",
      "old_id": "43d58d2a849ab952d07059b9ff06a5f476a83bcc",
      "old_mode": 33188,
      "old_path": "bfd/elfxx-aarch64.h",
      "new_id": "a312427bc75210337b10e26b28e1f8d49b03a22b",
      "new_mode": 33188,
      "new_path": "bfd/elfxx-aarch64.h"
    }
  ]
}
