)]}'
{
  "commit": "aae8784c58d693fa8bc0161b325fc8bcd76d18fc",
  "tree": "8f9e162e56d200840a1e04f5e5b22a547f98712e",
  "parents": [
    "77d242a06e352eee88908326d7bbf3b77086d5db"
  ],
  "author": {
    "name": "changjiachen",
    "email": "changjiachen@stu.xupt.edu.cn",
    "time": "Thu Dec 28 20:07:54 2023 +0800"
  },
  "committer": {
    "name": "liuzhensong",
    "email": "liuzhensong@loongson.cn",
    "time": "Fri Dec 29 15:11:00 2023 +0800"
  },
  "message": "LoongArch: bfd: Add support for tls le relax.\n\nAdd tls le relax support and related relocs in bfd.\n\nNew relocation related explanation can refer to the following url:\nhttps://github.com/loongson/la-abi-specs/blob/release/laelf.adoc\n\nThis support does two main things:\n\n1. Implement support for three new relocation items in bfd.\n\nThe three new relocation items are shown below:\n\nR_LARCH_TLS_LE_ADD_R\nR_LARCH_TLS_LE_HI20_R\nR_LARCH_TLS_LE_LO12_R\n\n2. ADD a new macro RELOCATE_TLS_TP32_HI20\n\nHandle problems caused by symbol extensions in TLS LE, The processing\nis similar to the macro RELOCATE_CALC_PC32_HI20 method.\n\n3. Implement the tls le relax function.\n\nbfd/ChangeLog:\n\n\t* bfd-in2.h: Add relocs related to tls le relax.\n\t* elfnn-loongarch.c:\n\t(loongarch_relax_tls_le): New function.\n\t(RELOCATE_TLS_TP32_HI20): New macro.\n\t(loongarch_elf_check_relocs): Add new reloc support.\n\t(perform_relocation): Likewise.\n\t(loongarch_elf_relocate_section): Handle new relocs related to relax.\n\t(loongarch_elf_relax_section): Likewise.\n\t* elfxx-loongarch.c:\n\t(LOONGARCH_HOWTO (R_LARCH_TLS_LE_ADD_R)): New reloc how to type.\n\t(LOONGARCH_HOWTO (R_LARCH_TLS_LE_HI20_R)): Likewise.\n\t(LOONGARCH_HOWTO (R_LARCH_TLS_LE_LO12_R)): Likewise.\n\t* libbfd.h: Add relocs related to tls le relax.\n\t* reloc.c: Likewise.\n",
  "tree_diff": [
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "74539aabdd73056a3e5bed1cfa9c166afc362545",
      "new_mode": 33188,
      "new_path": "bfd/.elfnn-loongarch.c.swp"
    },
    {
      "type": "modify",
      "old_id": "550704ae89fb6d23f1114b192c146e05abc6ed04",
      "old_mode": 33188,
      "old_path": "bfd/bfd-in2.h",
      "new_id": "f04e3692d8149fec4aa286dc5f09d226880657a4",
      "new_mode": 33188,
      "new_path": "bfd/bfd-in2.h"
    },
    {
      "type": "modify",
      "old_id": "bd448cda4534f47bf874ba11e6d7ad68bd9a925f",
      "old_mode": 33188,
      "old_path": "bfd/elfnn-loongarch.c",
      "new_id": "add916e02f5fbb9f7c9645412668cc3f8ff61629",
      "new_mode": 33188,
      "new_path": "bfd/elfnn-loongarch.c"
    },
    {
      "type": "modify",
      "old_id": "4fe8cbff14cdc09d871adfb183f032074f1f108c",
      "old_mode": 33188,
      "old_path": "bfd/elfxx-loongarch.c",
      "new_id": "2c40fb028725825b554f2e574b6a5bbe83961225",
      "new_mode": 33188,
      "new_path": "bfd/elfxx-loongarch.c"
    },
    {
      "type": "modify",
      "old_id": "196e7e55ea644b6def33032998e9c494db6dd838",
      "old_mode": 33188,
      "old_path": "bfd/libbfd.h",
      "new_id": "a52fabdf7c9bcf0f31c24b59c57c0d39d13c1f5c",
      "new_mode": 33188,
      "new_path": "bfd/libbfd.h"
    },
    {
      "type": "modify",
      "old_id": "30852b1422fd6afb91614a564ee35401b5b8cad0",
      "old_mode": 33188,
      "old_path": "bfd/reloc.c",
      "new_id": "3edcbab51e9a6fa4a8bee59c0f174734e130073a",
      "new_mode": 33188,
      "new_path": "bfd/reloc.c"
    }
  ]
}
