)]}'
{
  "commit": "b9b7bbb466efc2955c80204250eedeecfacbecd7",
  "tree": "2d743a811b3058b28d916b7622b00540310be464",
  "parents": [
    "97d71f2366fdbe506bcfad0c0abd3914ba334ada"
  ],
  "author": {
    "name": "Indu Bhagat",
    "email": "indu.bhagat@oracle.com",
    "time": "Wed Jul 09 23:13:58 2025 +0200"
  },
  "committer": {
    "name": "Jose E. Marchesi",
    "email": "jose.marchesi@oracle.com",
    "time": "Sat Jul 12 11:33:25 2025 +0200"
  },
  "message": "ld/aarch64elf: add support for DT_AARCH64_MEMTAG_STACK dynamic tag\n\nAdd new command line option -z memtag-stack for aarch64 elf.  This\noption instructs the linker to generate the necessary dynamic tag\nDT_AARCH64_MEMTAG_STACK, which the dynamic loader can then use to\nprotect the stack memory with PROT_MTE.  Linker issues an\n\u0027unrecognized option\u0027 error when -z memtag-stack is specified for\nnon-aarch64 based emulations.\n\nreadelf displays the dynamic tag when present:\n\n$ readelf -d \u003cexectutable\u003e\nDynamic section at offset 0xfdd8 contains XX entries:\nTag        Type                         Name/Value\n0x0000000000000001 (NEEDED)             Shared library: [libc.so.6]\n0x000000000000000c (INIT)               0x400520\n0x000000000000000d (FINI)               0x400b64\n0x0000000000000019 (INIT_ARRAY)         0x41fdc8\n...                 ...                 ...\n0x000000007000000c (AARCH64_MEMTAG_STACK) 0x1\n...                 ...                 ...\n\nChangeLog:\n\n        * bfd/elfnn-aarch64.c (elfNN_aarch64_late_size_sections): Emit\n\tDT_AARCH64_MEMTAG_STACK dynamic tag.\n        * bfd/elfxx-aarch64.h (struct aarch64_memtag_opts): Add new\n\tmember for tracking whether stack access uses MTE insns.\n        * binutils/readelf.c (get_aarch64_dynamic_type): Handle\n\tDT_AARCH64_MEMTAG_STACK.\n        * ld/emultempl/aarch64elf.em: Add new command line option.\n        * ld/ld.texi: Add documentation for -z memtag-stack.\n        * ld/testsuite/ld-aarch64/aarch64-elf.exp: Add new test.\n        * ld/testsuite/ld-aarch64/dt-memtag-stack.d: New test.\n\ninclude/ChangeLog:\n\n        * elf/aarch64.h (DT_AARCH64_MEMTAG_STACK): New definition.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "0e9e22e210be14a6b031bc0b9865f519b140e83b",
      "old_mode": 33188,
      "old_path": "bfd/elfnn-aarch64.c",
      "new_id": "9e98215d638be837be9f1f6c8bfe9a3816b6faeb",
      "new_mode": 33188,
      "new_path": "bfd/elfnn-aarch64.c"
    },
    {
      "type": "modify",
      "old_id": "66c1f48d4500674f6da233cb46eb9e7c0af03ccb",
      "old_mode": 33188,
      "old_path": "bfd/elfxx-aarch64.h",
      "new_id": "bd3642cbefe539bc15c3e8794ac03250aa26cddb",
      "new_mode": 33188,
      "new_path": "bfd/elfxx-aarch64.h"
    },
    {
      "type": "modify",
      "old_id": "0d8daf3626f6691d6a8c0a1d934b3a80874abcaf",
      "old_mode": 33188,
      "old_path": "binutils/readelf.c",
      "new_id": "cfccdd2ba657d4961ef1e2e6143f50afc3b86279",
      "new_mode": 33188,
      "new_path": "binutils/readelf.c"
    },
    {
      "type": "modify",
      "old_id": "747d8dc022fa5aedb009b35e2b28e5c41a7597e3",
      "old_mode": 33188,
      "old_path": "include/elf/aarch64.h",
      "new_id": "74bd7b402e0cb2cba0dd3ba6112dab7cf7299ca7",
      "new_mode": 33188,
      "new_path": "include/elf/aarch64.h"
    },
    {
      "type": "modify",
      "old_id": "d7e4eb78059c0567433f0cf93caba10cceb3444e",
      "old_mode": 33188,
      "old_path": "ld/emultempl/aarch64elf.em",
      "new_id": "66eaf1cd861842cb7ce56f3220aab41033c9f366",
      "new_mode": 33188,
      "new_path": "ld/emultempl/aarch64elf.em"
    },
    {
      "type": "modify",
      "old_id": "f5350e799bb1e221e670bffae6fbf06ec814fe2a",
      "old_mode": 33188,
      "old_path": "ld/ld.texi",
      "new_id": "413335ad765c169719dfc1fa0187e54d08322350",
      "new_mode": 33188,
      "new_path": "ld/ld.texi"
    },
    {
      "type": "modify",
      "old_id": "56e68c584fb28fbcfc8c8461870be1f263d031df",
      "old_mode": 33188,
      "old_path": "ld/testsuite/ld-aarch64/aarch64-elf.exp",
      "new_id": "8d56beb64c7b26095b43fe39f69754eb9b6a2f11",
      "new_mode": 33188,
      "new_path": "ld/testsuite/ld-aarch64/aarch64-elf.exp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "242f61fa17242ff4c15067d47b39f3503603f6e4",
      "new_mode": 33188,
      "new_path": "ld/testsuite/ld-aarch64/dt-memtag-stack.d"
    }
  ]
}
