)]}'
{
  "commit": "f5bc649ef89498dd1c3e48fa032a8e4808008a00",
  "tree": "a92b0975fe8df9e8dec5c12aadf6b504cdb87f26",
  "parents": [
    "9de48d3b5ed6b6aee744e4585e9d955ee04ac0fc"
  ],
  "author": {
    "name": "Qihan Cai",
    "email": "qcai8733@uni.sydney.edu.au",
    "time": "Mon Jul 04 03:35:09 2022 +1000"
  },
  "committer": {
    "name": "Than McIntosh",
    "email": "thanm@google.com",
    "time": "Fri Aug 26 12:56:27 2022 +0000"
  },
  "message": "gollvm: add support for crosscompiling\n\nAdd support for compiling gollvm for other arch by specifying GOLLVM_DRIVER_DIR to a prebuilt gollvm with two targets, and specify target, toolchain and sysroot in GOLLVM_EXTRA_GOCFLAGS.\n\nExample usage:\nRISCV\u003d$HOME/toolchain\nSOURCE\u003d$HOME/llvm-project/llvm\nTRIPLE\u003driscv64-unknown-linux-gnu\n\n# host\ncmake -G Ninja -S $SOURCE -B build-x86 \\\n    -DCMAKE_INSTALL_PREFIX\u003dinstall-x86 \\\n    -DCMAKE_BUILD_TYPE\u003dDebug \\\n    -DLLVM_USE_LINKER\u003dbfd \\\n    -DGOLLVM_DEFAULT_LINKER\u003dbfd \\\n    -DLLVM_TARGET_ARCH\u003d\"X86-64,RISCV64\" \\\n    -DLLVM_TARGETS_TO_BUILD\u003d\"X86;RISCV\"\n\n# crosscompile\ncmake -G Ninja -S $SOURCE -B build-riscv \\\n    -DCMAKE_INSTALL_PREFIX\u003d$INSTALL \\\n    -DCMAKE_BUILD_TYPE\u003dDebug \\\n    -DLLVM_USE_LINKER\u003dbfd \\\n    -DGOLLVM_DEFAULT_LINKER\u003dbfd \\\n    -DCMAKE_CROSSCOMPILING\u003dTrue \\\n    -DLLVM_TARGET_ARCH\u003dRISCV64 \\\n    -DLLVM_DEFAULT_TARGET_TRIPLE\u003d$TRIPLE \\\n    -DLLVM_TARGETS_TO_BUILD\u003dRISCV \\\n    -DCMAKE_C_COMPILER\u003d$RISCV/bin/$TRIPLE-gcc \\\n    -DCMAKE_CXX_COMPILER\u003d$RISCV/bin/$TRIPLE-g++ \\\n    -DLLVM_TABLEGEN\u003d$PWD/build-x86/bin/llvm-tblgen \\\n    -DGOLLVM_DRIVER_DIR\u003d$PWD/build-x86/bin \\\n    -DGOLLVM_EXTRA_GOCFLAGS\u003d\"--target\u003d$TRIPLE \\\n                             --gcc-toolchain\u003d$RISCV/ \\\n                             --sysroot\u003d$RISCV/sysroot\" \\\n    -DGOLLVM_USE_SPLIT_STACK\u003dOFF \\\n    -DCMAKE_C_FLAGS\u003d-latomic \\\n    -DCMAKE_CXX_FLAGS\u003d-latomic\n\n # build gollvm crosscompiler\n ninja -C build-x86 llvm-goc llvm-goc-token llvm-godumpspec\n\n # cross compile gollvm, go tools and install\n ninja -C build-riscv install-gollvm\n\nChange-Id: Ie4997771fd21437f65d857b7aaae267b7a394f23\nReviewed-on: https://go-review.googlesource.com/c/gollvm/+/425199\nReviewed-by: David Chase \u003cdrchase@google.com\u003e\nReviewed-by: Than McIntosh \u003cthanm@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "40a96183c8ea8247e718976b42e771d8caeb888c",
      "old_mode": 33188,
      "old_path": "CMakeLists.txt",
      "new_id": "2561f8b6840e91084cd24f68748d60a1a5d89816",
      "new_mode": 33188,
      "new_path": "CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "644075aa9a156c430a09ff8f32a34902677d93ed",
      "old_mode": 33188,
      "old_path": "cmake/modules/AutoGenGo.cmake",
      "new_id": "a0a3af6a0683e9d7e6ef0cbc16e5beae0d2c66a4",
      "new_mode": 33188,
      "new_path": "cmake/modules/AutoGenGo.cmake"
    },
    {
      "type": "modify",
      "old_id": "7e9e0653d92ef057340ad0ee95c761ab08d3bc44",
      "old_mode": 33188,
      "old_path": "cmake/modules/GoPackage.cmake",
      "new_id": "0d26a161dc9fd812711567cd75b7435804069da2",
      "new_mode": 33188,
      "new_path": "cmake/modules/GoPackage.cmake"
    },
    {
      "type": "modify",
      "old_id": "3c602877140a767c7caa410b0ab9c465882e92c1",
      "old_mode": 33188,
      "old_path": "driver/GollvmOptions.td",
      "new_id": "b2b627f7e3337ab9aafbf02be2c345dfe1074e3a",
      "new_mode": 33188,
      "new_path": "driver/GollvmOptions.td"
    },
    {
      "type": "modify",
      "old_id": "2a2fb10e8259138eeb9c29ba325057b8aa07f52c",
      "old_mode": 33188,
      "old_path": "driver/LinuxToolChain.cpp",
      "new_id": "bebad8ce39c36fb7f3e2356469cb71d615f16856",
      "new_mode": 33188,
      "new_path": "driver/LinuxToolChain.cpp"
    },
    {
      "type": "modify",
      "old_id": "cf7056288a507b5242ecf8dbd30895087ce41d8b",
      "old_mode": 33188,
      "old_path": "gotools/CMakeLists.txt",
      "new_id": "e8023f4aba153cca6d4fda2c777c23acf4342c34",
      "new_mode": 33188,
      "new_path": "gotools/CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "b0cf30df598d54f4c71de9fb91b298f3eb1d9c4e",
      "old_mode": 33188,
      "old_path": "libgo/CMakeLists.txt",
      "new_id": "86256999cdcd8cbae6590f996de44aac9d16d4ec",
      "new_mode": 33188,
      "new_path": "libgo/CMakeLists.txt"
    }
  ]
}
