)]}'
{
  "commit": "ed71fa9a44511cb8d933073f892ea041c3ff9107",
  "tree": "c10565c060f38f168ddb4aab32e563333dfe8a7c",
  "parents": [
    "d7e49fd331d5a9a66d467c7d5cb4b5fc156a1ee0"
  ],
  "author": {
    "name": "Shivam Gupta",
    "email": "shivam98.tkg@gmail.com",
    "time": "Wed Apr 08 15:45:38 2026 +0530"
  },
  "committer": {
    "name": "Alice Carlotti",
    "email": "alice.carlotti@arm.com",
    "time": "Thu Apr 09 15:34:45 2026 +0100"
  },
  "message": "aarch64: Add support for %dtprel(var) and R_AARCH64_TLS_DTPREL64\n\nThis patch allows R_AARCH64_TLS_DTPREL64 relocations in non-allocated\nsections, which is required for DWARF debug information when using\nThread Local Storage. This matches the behavior in LLD.\n\nAlso a new syntax to parse dtprel operator use to describe tls\nlocation in debug information. Please see the reference 3 below.\n\nReferences:\n  - https://github.com/llvm/llvm-project/pull/146572\n    [AArch64] Support TLS variables in debug info\n  - https://github.com/llvm/llvm-project/pull/183962\n    [LLD][AArch64] Handle R_AARCH64_TLS_DTPREL64 in non-alloc sections\n  - https://github.com/ARM-software/abi-aa/pull/330\n    [AAELF64] Allow R_AARCH64_TLS_DTPREL to be used statically.\n\nbfd/\n        * elfnn-aarch64.c (elfNN_aarch64_final_link_relocate): Handle\n        BFD_RELOC_AARCH64_TLS_DTPREL.\n\ngas/\n\t* config/tc-aarch64.c (s_aarch64_cons): Parse %dtprel(var) syntax.\n\t* testsuite/gas/aarch64/tls-debug.s: New test.\n\t* testsuite/gas/aarch64/tls-debug.d: Run the test.\n\nld/\n\t* testsuite/ld-aarch64/tls-debug.s: New test.\n\t* testsuite/ld-aarch64/tls-debug.d: Run the test.\n\nBug: https://sourceware.org/PR28351\n\nSigned-off-by: Shivam Gupta \u003cshivam98.tkg@gmail.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "66049c81edf7dcb880a6a8b6d19eabaa492b1ee2",
      "old_mode": 33188,
      "old_path": "bfd/elfnn-aarch64.c",
      "new_id": "117e149866cf8737b3e742678a57d70d40a9f935",
      "new_mode": 33188,
      "new_path": "bfd/elfnn-aarch64.c"
    },
    {
      "type": "modify",
      "old_id": "cd76163488c48e45d43c35b2704d637999d51015",
      "old_mode": 33188,
      "old_path": "gas/config/tc-aarch64.c",
      "new_id": "73b549a16c9aec2b1a2b74c8cea8d3ef6684151f",
      "new_mode": 33188,
      "new_path": "gas/config/tc-aarch64.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1dd4df17542e8b559f7ec8fc9caf83454f5ef1d0",
      "new_mode": 33188,
      "new_path": "gas/testsuite/gas/aarch64/tls-debug.d"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c45507ed1107958cb5aa2433c713684b3e278bba",
      "new_mode": 33188,
      "new_path": "gas/testsuite/gas/aarch64/tls-debug.s"
    },
    {
      "type": "modify",
      "old_id": "24c73d530dce16fbb03e920955f259ccab956514",
      "old_mode": 33188,
      "old_path": "ld/testsuite/ld-aarch64/aarch64-elf.exp",
      "new_id": "fa80210500eb2f489b50a9fef9f79c8224fe1810",
      "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": "4344b02e794f7c2a3174b5166175426e9ce0f614",
      "new_mode": 33188,
      "new_path": "ld/testsuite/ld-aarch64/tls-debug.d"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9590ad409f9337177a76a2f71740c304d6c9d07e",
      "new_mode": 33188,
      "new_path": "ld/testsuite/ld-aarch64/tls-debug.s"
    }
  ]
}
