)]}'
{
  "commit": "78f28b69ff1cdd8fcdf1944cfd82ea45f23e94d2",
  "tree": "e1d1e93662803251bf61161fe27276cd109bcc21",
  "parents": [
    "68f5cb38c27699e9b4840f22596ede96762c4796"
  ],
  "author": {
    "name": "Alan Modra",
    "email": "amodra@gmail.com",
    "time": "Sat Jul 12 01:25:53 2025 +0100"
  },
  "committer": {
    "name": "Maciej W. Rozycki",
    "email": "macro@orcam.me.uk",
    "time": "Sat Jul 12 01:25:53 2025 +0100"
  },
  "message": "MIPS: Correct HI/LO rel reloc howto special_function entries\n\nThis corrects the DTPREL_HI16/LO16 and TPREL_HI16/LO16 howtos to use\n_bfd_mips_elf_{hi,lo}16_reloc special functions, in order to support\naddends outside the range [0,32767] on these relocations.\n\nR_MIPS_GOT_HI16, R_MIPS_GOT_LO16, R_MIPS_CALL_HI16 and R_MIPS_CALL_LO16\nare left alone as it seems that we (quite reasonably) only support\nzero addends for those relocs.\n\n\tPR 19977\nbfd/\n\t* elf32-mips.c (elf_mips_howto_table_rel): Set special_function\n\tto _bfd_mips_elf_hi16_reloc for R_MIPS_TLS_DTPREL_HI16 and\n\tR_MIPS_TLS_TPREL_HI16.  Set special_function to\n\t_bfd_mips_elf_lo16_reloc for R_MIPS_TLS_DTPREL_LO16 and\n\tR_MIPS_TLS_TPREL_LO16\n\t(elf_mips16_howto_table_rel): Likewise for\n\tR_MIPS16_TLS_DTPREL_HI16, R_MIPS16_TLS_DTPREL_LO16,\n\tR_MIPS16_TLS_TPREL_HI16 and R_MIPS16_TLS_TPREL_LO16.\n\t(elf_micromips_howto_table_rel): Likewise for\n\tR_MICROMIPS_TLS_DTPREL_HI16, R_MICROMIPS_TLS_DTPREL_LO16,\n\tR_MICROMIPS_TLS_TPREL_HI16 and R_MICROMIPS_TLS_TPREL_LO16.\n\t* elf64-mips.c (mips_elf64_howto_table_rel): Similarly.\n\t(mips16_elf64_howto_table_rel): Similarly.\n\t(micromips_elf64_howto_table_rel): Similarly.\n\t* elfn32-mips.c: As for elf64-mips.c.\ngas/\n\t* testsuite/gas/mips/pr19977.d,\n\t* testsuite/gas/mips/pr19977.s: New test.\n\t* testsuite/gas/mips/mips.exp: Run it.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "45856b14af0fd3c3e067c389064b41fe4d2e3e01",
      "old_mode": 33188,
      "old_path": "bfd/elf32-mips.c",
      "new_id": "5871fb75e8a204e102fb0c77ad39519790bc4cec",
      "new_mode": 33188,
      "new_path": "bfd/elf32-mips.c"
    },
    {
      "type": "modify",
      "old_id": "29dcadd3230bc42a25d0b6ab6b16067273afef0a",
      "old_mode": 33188,
      "old_path": "bfd/elf64-mips.c",
      "new_id": "f031dfd1133cfbb1973f430558fde613f884361f",
      "new_mode": 33188,
      "new_path": "bfd/elf64-mips.c"
    },
    {
      "type": "modify",
      "old_id": "d72e2f5236a025462e632c4da63f5f85603519a1",
      "old_mode": 33188,
      "old_path": "bfd/elfn32-mips.c",
      "new_id": "07e222cd4bf8cbda9c7b2498c83ca89ce1bbdaab",
      "new_mode": 33188,
      "new_path": "bfd/elfn32-mips.c"
    },
    {
      "type": "modify",
      "old_id": "73ea41d59c60ec1ebab6fe7bb4210e569c653e15",
      "old_mode": 33188,
      "old_path": "gas/testsuite/gas/mips/mips.exp",
      "new_id": "85820c27b5accbc1890d59adce47cf07f0de6e41",
      "new_mode": 33188,
      "new_path": "gas/testsuite/gas/mips/mips.exp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5b8d60c47a388eff899ff3df0f75347af011db8e",
      "new_mode": 33188,
      "new_path": "gas/testsuite/gas/mips/pr19977.d"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1d1ab36e823bf8198a169e74fc185a02dd98d4f0",
      "new_mode": 33188,
      "new_path": "gas/testsuite/gas/mips/pr19977.s"
    }
  ]
}
