)]}'
{
  "commit": "fbc95f1e11facf233e89a9c2b4dde06b9aaf4b86",
  "tree": "810aa9b4b50933cd6e9e7f844d15886db695fd2a",
  "parents": [
    "07b2745f850232e1c2fdafb0f65ea88e6127218b"
  ],
  "author": {
    "name": "Kito Cheng",
    "email": "kito.cheng@sifive.com",
    "time": "Tue Jun 29 14:36:35 2021 +0800"
  },
  "committer": {
    "name": "Nelson Chu",
    "email": "nelson.chu@sifive.com",
    "time": "Tue Jul 06 11:34:36 2021 +0800"
  },
  "message": "RISC-V: Add PT_RISCV_ATTRIBUTES and add it to PHDR.\n\nWe added PT_RISCV_ATTRIBUTES to program header to make\n.riscv.attribute easier to find in dynamic loader or kernel.\n\nRef:\nhttps://github.com/riscv/riscv-elf-psabi-doc/pull/71\n\nChangeLog:\n\nbfd/\n\n\t* elfnn-riscv.c(RISCV_ATTRIBUTES_SECTION_NAME): New.\n\t(riscv_elf_additional_program_headers): Ditto.\n\t(riscv_elf_modify_segment_map): Ditto.\n\t(elf_backend_additional_program_headers): Ditto.\n\t(elf_backend_modify_segment_map): Ditto.\n\t(elf_backend_obj_attrs_section): Use RISCV_ATTRIBUTES_SECTION_NAME\n\trather than string literal.\n\nbinutils/\n\n\t* readelf.c(get_riscv_segment_type): New.\n\t(get_segment_type): Handle EM_RISCV.\n\ninclude/\n\n\t* elf/riscv.h (PT_RISCV_ATTRIBUTES): New.\n\t* testsuite/ld-elf/orphan-region.ld: Discard .riscv.attributes\n\tsection for simplify testcase.\n\t* testsuite/ld-riscv-elf/attr-phdr.d: New.\n\t* testsuite/ld-riscv-elf/attr-phdr.s: Ditto.\n\t* testsuite/ld-riscv-elf/ld-riscv-elf.exp: Add attr-phdr to\n\ttestcase.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "f206708a9f356eb119589228c8c68a048ed2c89c",
      "old_mode": 33188,
      "old_path": "bfd/elfnn-riscv.c",
      "new_id": "4db3ca4e4b9992a80321582e9065edc9087e9ab5",
      "new_mode": 33188,
      "new_path": "bfd/elfnn-riscv.c"
    },
    {
      "type": "modify",
      "old_id": "a6073f7ec8092e9a93542d20a953b9c0e87c301f",
      "old_mode": 33188,
      "old_path": "binutils/readelf.c",
      "new_id": "22153394800570fb009b12fccb716fdc37d7b26e",
      "new_mode": 33188,
      "new_path": "binutils/readelf.c"
    },
    {
      "type": "modify",
      "old_id": "fb376a096abd79763fb4e6196db2e0405b4fe454",
      "old_mode": 33188,
      "old_path": "include/elf/riscv.h",
      "new_id": "80822835cd9ce888c9aa06b18e8643c901d6b1a3",
      "new_mode": 33188,
      "new_path": "include/elf/riscv.h"
    },
    {
      "type": "modify",
      "old_id": "2abf8bcb02a8eed7897852705d4b6463a55cd1ba",
      "old_mode": 33188,
      "old_path": "ld/testsuite/ld-elf/orphan-region.ld",
      "new_id": "71834df647a5cf25c76c3c7814d74f4a2d0262bd",
      "new_mode": 33188,
      "new_path": "ld/testsuite/ld-elf/orphan-region.ld"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "43f2ea5077c08233f5d86dd28285b8c38b71c8ad",
      "new_mode": 33188,
      "new_path": "ld/testsuite/ld-riscv-elf/attr-phdr.d"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f075248ccfdf2b5dca5954c81c0b491c9d908285",
      "new_mode": 33188,
      "new_path": "ld/testsuite/ld-riscv-elf/attr-phdr.s"
    },
    {
      "type": "modify",
      "old_id": "1f1245af7074299c310ba90793735cc6a7d60a0b",
      "old_mode": 33188,
      "old_path": "ld/testsuite/ld-riscv-elf/ld-riscv-elf.exp",
      "new_id": "1f6eceb3ae84f1b73f82e352272b7aae68eb39e6",
      "new_mode": 33188,
      "new_path": "ld/testsuite/ld-riscv-elf/ld-riscv-elf.exp"
    }
  ]
}
