)]}'
{
  "commit": "978602e83f038106c8254424ca83991d784b37cf",
  "tree": "2713f291ce01c4b0df77e4cd296ca48c090676f4",
  "parents": [
    "f4f95df31b0172bf182e6a516ba23e299323bb2a"
  ],
  "author": {
    "name": "Simon Marchi",
    "email": "simon.marchi@efficios.com",
    "time": "Wed Mar 16 09:00:27 2022 -0400"
  },
  "committer": {
    "name": "Simon Marchi",
    "email": "simon.marchi@polymtl.ca",
    "time": "Wed Mar 16 09:00:27 2022 -0400"
  },
  "message": "bfd: add AMDGCN architecture\n\nAdd support for the AMDGCN architecture to BFD.\n\nThis is the bare minimum to get\n\n  $ ./configure --target\u003damdgcn-hsa-amdhsa --disable-gas\n  $ make all-binutils\n\nworking later in this series.\n\nThe specific AMDGCN models added here are a bit arbitrary, based on\nwhat we intend to initially support in GDB.  This list will need to be\nupdated in the future anyway.  The complete up-to-date list of existing\nAMDGPU models can be found here:\n\n  https://llvm.org/docs/AMDGPUUsage.html#processors\n\nThe ELF format for this architecture is documented here:\n\n  https://llvm.org/docs/AMDGPUUsage.html#elf-code-object\n\nThe flags for the \"HSA\" OS ABI are properly versioned and documented on\nthat page.  But the NONE, PAL and MESA3D OS ABIs are not well documented\nnor versioned.  Taking a peek at the LLVM source code, we see that they\nencode their flags the same way as HSA v3.  For example, for PAL:\n\n  https://github.com/llvm/llvm-project/blob/c8b614cd74a92d85936aed5ac7c642af75ffdc29/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.cpp#L601\n\nSo at least, we know that all AMDGPU objects (of which AMDGCN objects\nare a subset of) at the time of writing encode the specific GPU model in\nthe EF_AMDGPU_MACH field of e_flags.\n\nbfd/ChangeLog:\n\n\t* Makefile.am (ALL_MACHINES, ALL_MACHINES_CFILES):\n\tAdd cpu-amdgcn.c.\n\t(BFD64_BACKENDS): Add elf64-amdgcn.lo.\n\t(BFD64_BACKENDS_CFILES): Add elf64-amdgcn.c.\n\t* Makefile.in: Re-generate.\n\t* cpu-amdgcn.c: New.\n\t* elf64-amdgcn.c: New.\n\t* archures.c (bfd_architecture): Add bfd_arch_amdgcn and related\n\tmach defines.\n\t(bfd_amdgcn_arch): New.\n\t(bfd_archures_list): Add bfd_amdgcn_arch.\n\t* bfd-in2.h: Re-generate.\n\t* config.bfd: Handle amdgcn* target.\n\t* configure.ac: Handle amdgcn_elf64_le_vec.\n\t* configure: Re-generate.\n\t* elf-bfd.h (elf_target_id): Add AMDGCN_ELF_DATA.\n\t* targets.c (amdgcn_elf64_le_vec): New.\n\t(_bfd_target_vector): Add amdgcn_elf64_le_vec.\n\ninclude/ChangeLog:\n\n\t* elf/amdgpu.h: New.\n\t* elf/common.h (ELFOSABI_AMDGPU_HSA): Add.\n\nChange-Id: I969f7b14960797e88891c308749a6e341eece5b2\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "4925fffaa15cd538db840a70f377a5b00c569af3",
      "old_mode": 33188,
      "old_path": "bfd/ChangeLog",
      "new_id": "414646c84f0feeb06ec74b5d1d045bd60926dbe4",
      "new_mode": 33188,
      "new_path": "bfd/ChangeLog"
    },
    {
      "type": "modify",
      "old_id": "0f0138408ce7ceecf5a2523ad0a4b66e963bc6b5",
      "old_mode": 33188,
      "old_path": "bfd/Makefile.am",
      "new_id": "b9a3f8207aca59784e3c71568548bf681281c59c",
      "new_mode": 33188,
      "new_path": "bfd/Makefile.am"
    },
    {
      "type": "modify",
      "old_id": "b8e5ea0153fcecc152ec1f09ff04feaf42c368d3",
      "old_mode": 33188,
      "old_path": "bfd/Makefile.in",
      "new_id": "934dd4bc066438f6798cda2b987b5a023f77d207",
      "new_mode": 33188,
      "new_path": "bfd/Makefile.in"
    },
    {
      "type": "modify",
      "old_id": "d19b5d7ee6ba53cb2b469af1c6d14d14ab1e88cc",
      "old_mode": 33188,
      "old_path": "bfd/archures.c",
      "new_id": "fac9fe82a0868fad6ca6a78d2ec313e3f6e49799",
      "new_mode": 33188,
      "new_path": "bfd/archures.c"
    },
    {
      "type": "modify",
      "old_id": "db41e7eb7fe3b7ea1f65f1c8ad7729c250d7eb19",
      "old_mode": 33188,
      "old_path": "bfd/bfd-in2.h",
      "new_id": "c0b563aec02a6784481cc662b1ab1c0856acc2ee",
      "new_mode": 33188,
      "new_path": "bfd/bfd-in2.h"
    },
    {
      "type": "modify",
      "old_id": "02f40d4fba227c4b945f2e8873d9a439d526c300",
      "old_mode": 33188,
      "old_path": "bfd/config.bfd",
      "new_id": "872685cfb722d1f94400cf1c34b7035cd97301a9",
      "new_mode": 33188,
      "new_path": "bfd/config.bfd"
    },
    {
      "type": "modify",
      "old_id": "4502e52decb15b7a62b95d72b7ed3d22acee619c",
      "old_mode": 33261,
      "old_path": "bfd/configure",
      "new_id": "0ef4c206fb0af0f1e546f43a001bc924a1f817d9",
      "new_mode": 33261,
      "new_path": "bfd/configure"
    },
    {
      "type": "modify",
      "old_id": "07f2074770f8cc81692b3ebfde3fa385a762c6f4",
      "old_mode": 33188,
      "old_path": "bfd/configure.ac",
      "new_id": "9e873736792b487aff480235324e5411ee445d17",
      "new_mode": 33188,
      "new_path": "bfd/configure.ac"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ef51e660ed8796e96adbb8c6f5da4c907ce0849d",
      "new_mode": 33188,
      "new_path": "bfd/cpu-amdgcn.c"
    },
    {
      "type": "modify",
      "old_id": "4904e1e0aa9fb148d043bea66bbbe45af82cfa71",
      "old_mode": 33188,
      "old_path": "bfd/elf-bfd.h",
      "new_id": "5c3985f6e571070299db754ed2a8b0d5b71fad9d",
      "new_mode": 33188,
      "new_path": "bfd/elf-bfd.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "691fa0a34c16b6f4dec724f01d82366b8ea6622d",
      "new_mode": 33188,
      "new_path": "bfd/elf64-amdgcn.c"
    },
    {
      "type": "modify",
      "old_id": "18fec45f02a969360faf42c94e70f4b3a4205c4a",
      "old_mode": 33188,
      "old_path": "bfd/targets.c",
      "new_id": "417743efc0edba43f2753631bd4b8e040e0c453c",
      "new_mode": 33188,
      "new_path": "bfd/targets.c"
    },
    {
      "type": "modify",
      "old_id": "6cda7e6cbc531da7fe66c4eab76167ada416887f",
      "old_mode": 33188,
      "old_path": "include/ChangeLog",
      "new_id": "26a64f42b79cdaeb56569c44a63e849be57167b8",
      "new_mode": 33188,
      "new_path": "include/ChangeLog"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "daa472e5b346513b977ed0d0549e3ac13c4a1a18",
      "new_mode": 33188,
      "new_path": "include/elf/amdgpu.h"
    },
    {
      "type": "modify",
      "old_id": "def04c323d39a70f2008b78150b3101b552b43f8",
      "old_mode": 33188,
      "old_path": "include/elf/common.h",
      "new_id": "a1cace406a473582ab106e6f441f06726fa97038",
      "new_mode": 33188,
      "new_path": "include/elf/common.h"
    }
  ]
}
