)]}'
{
  "commit": "00a17c6ad068c95019e1f37cfc2d1b8aaebd6ecb",
  "tree": "b45ac33f86f86ad32fbf3205cd48948397f6af52",
  "parents": [
    "a533c8df598b5ef99c54a13e2b137c98b34b043c"
  ],
  "author": {
    "name": "H.J. Lu",
    "email": "hjl.tools@gmail.com",
    "time": "Sun Jul 02 07:46:21 2023 -0700"
  },
  "committer": {
    "name": "H.J. Lu",
    "email": "hjl.tools@gmail.com",
    "time": "Thu Dec 28 08:47:17 2023 -0800"
  },
  "message": "Gold: Handle R_X86_64_CODE_4_GOTPC32_TLSDESC/R_X86_64_CODE_4_GOTTPOFF\n\nHandle R_X86_64_CODE_4_GOTTPOFF and R_X86_64_CODE_4_GOTPC32_TLSDESC.\nConvert\n\n\tadd\tname@gottpoff(%rip), %reg\n\tmov\tname@gottpoff(%rip), %reg\n\nto\n\n\tadd\t$name@tpoff, %reg\n\tmov\t$name@tpoff, %reg\n\nand\n\n\tlea\tname@tlsdesc(%rip), %reg\n\nto\n\n\tmov     $name@tpoff, %reg\n\tmov\tname@gottpoff(%rip), %reg\n\nif the instruction is encoded with the REX2 prefix when possible.\n\nelfcpp/\n\n\t* x86_64.h (R_X86_64_CODE_4_GOTTPOFF): New.\n\t(R_X86_64_CODE_4_GOTPC32_TLSDESC): Likewise.\n\ngold/\n\n\t* x86_64.cc (Target_x86_64::optimize_tls_reloc): Handle\n\tR_X86_64_CODE_4_GOTPC32_TLSDESC and R_X86_64_CODE_4_GOTTPOFF.\n\t(Target_x86_64::Scan::get_reference_flags): Likewise.\n\t(Target_x86_64::Scan::local): Likewise.\n\t(Target_x86_64::Scan::global): Likewise.\n\t(Target_x86_64::Relocate::relocate): Likewise.\n\t(Target_x86_64::Relocate::relocate_tls): Likewise.\n\t(Target_x86_64::Relocate::tls_desc_gd_to_ie): Handle\n\tR_X86_64_CODE_4_GOTPC32_TLSDESC.\n\t(Target_x86_64::Relocate::tls_desc_gd_to_le): Likewise.\n\t(Target_x86_64::Relocate::tls_ie_to_le): Handle.\n\tR_X86_64_CODE_4_GOTTPOFF.\n\t* testsuite/Makefile.am: Add x86_64_ie_to_le test.\n\t* testsuite/Makefile.in: Regenerated.\n\t* testsuite/x86_64_gd_to_le.s: Add R_X86_64_CODE_4_GOTPC32_TLSDESC\n\ttest.\n\t* testsuite/x86_64_gd_to_le.sh: Check GDesc to LE conversion.\n\t* testsuite/x86_64_ie_to_le.s: New file.\n\t* testsuite/x86_64_ie_to_le.sh: Likewise.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "97a87ae424d8eca9bcf7c80d1c312039b4bfcf7a",
      "old_mode": 33188,
      "old_path": "elfcpp/x86_64.h",
      "new_id": "da6ac1917344c3eae7fff1391fed473e29205c21",
      "new_mode": 33188,
      "new_path": "elfcpp/x86_64.h"
    },
    {
      "type": "modify",
      "old_id": "df9405c1aacf7aa04b6d7fdaa18f1f4e388d9fa1",
      "old_mode": 33188,
      "old_path": "gold/testsuite/Makefile.am",
      "new_id": "0685e917d0e0202be58d98adb4facd39d39be6d5",
      "new_mode": 33188,
      "new_path": "gold/testsuite/Makefile.am"
    },
    {
      "type": "modify",
      "old_id": "ab48f07bca41e692d3a55cab15cc612d16680c19",
      "old_mode": 33188,
      "old_path": "gold/testsuite/Makefile.in",
      "new_id": "ffd4821b8754080078181bb51eedd485912d3433",
      "new_mode": 33188,
      "new_path": "gold/testsuite/Makefile.in"
    },
    {
      "type": "modify",
      "old_id": "dcdd303184d325022831ab8e7ac551c3a7e9bbd9",
      "old_mode": 33188,
      "old_path": "gold/testsuite/x86_64_gd_to_le.s",
      "new_id": "79f9c48f52600f403337cc80466a3b44647dde54",
      "new_mode": 33188,
      "new_path": "gold/testsuite/x86_64_gd_to_le.s"
    },
    {
      "type": "modify",
      "old_id": "82a6f985b88d3ef21d02b1b96f6353b4d97ac73a",
      "old_mode": 33261,
      "old_path": "gold/testsuite/x86_64_gd_to_le.sh",
      "new_id": "5b0a043e0a8dddc2a6d0f33583f49927c15ec5ac",
      "new_mode": 33261,
      "new_path": "gold/testsuite/x86_64_gd_to_le.sh"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c575206886651ef99c112d27142d9aabee76cad4",
      "new_mode": 33188,
      "new_path": "gold/testsuite/x86_64_ie_to_le.s"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "417f0bfc6368d5c0e3b1a79a936acd41afca0129",
      "new_mode": 33261,
      "new_path": "gold/testsuite/x86_64_ie_to_le.sh"
    },
    {
      "type": "modify",
      "old_id": "b7be9bf0d4868fb9e196691b180bdeb386a54697",
      "old_mode": 33188,
      "old_path": "gold/x86_64.cc",
      "new_id": "bc4260db5f31f922ab04200d93273355e2e038dd",
      "new_mode": 33188,
      "new_path": "gold/x86_64.cc"
    }
  ]
}
