)]}'
{
  "commit": "45aa842fb41d79e149b46fac8ad71728856e15b9",
  "tree": "fcf3b1568036c9695a25273cd2e92dec784efcc3",
  "parents": [
    "eea3906f0e2a8d3622080127d2005ff214d51383"
  ],
  "author": {
    "name": "Gaby Baghdadi",
    "email": "baghdadi@ca.ibm.com",
    "time": "Wed May 12 12:37:08 2021 -0400"
  },
  "committer": {
    "name": "Commit Bot",
    "email": "commit-bot@chromium.org",
    "time": "Wed Aug 11 17:26:14 2021 +0000"
  },
  "message": "Enable GN to build \u0026 run on z/OS\n\nAll changes are guarded in source files by OS_ZOS macro (defined\nifdef __MVS__), and in build/gen.py by platform.is_zos().\n\nSummary of changes:\n- build: add ninja template file\n- gen: updates to generate the ninja build files, and add dependency\n  on zoslib (https://github.com/ibmruntimes/zoslib) to use its APIs\n- config: define OS_ZOS and OS_POSIX\n- src: include OS host \"zos\" in SetSystemVarsLocked()\n- src: use APIs from zoslib for thread_local impl\u0027n, GetExePath(),\n  sem_init/post/wait/destroy(), and a basic version of clock_gettime()\n- src: workaround a Woz compiler bug (arg to std::pair)\n- src: use utime, stat, fd_set, exclude headers\n- src: use stat, mode, mktemp\n- src: change to not assume O_RDONLY is 0 on all platforms (2 on z/OS)\n\nNote: files generated by GN must be manually tagged, so they can be read:\n$ find . -type f -name \"*.ninja*\" -exec chtag -tc819 {} \\;\n\nChange-Id: Id06e12c9ca88424a9495a5a2d1ed4e2575185196\nReviewed-on: https://gn-review.googlesource.com/c/gn/+/11520\nReviewed-by: Brett Wilson \u003cbrettw@chromium.org\u003e\nCommit-Queue: Brett Wilson \u003cbrettw@chromium.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "f62e28f6f1e11293d79be63f7914560c4d13cb6a",
      "old_mode": 33188,
      "old_path": "README.md",
      "new_id": "2f5d2321581e5cc54269c5ceee4d0a5eae84dc12",
      "new_mode": 33188,
      "new_path": "README.md"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f9f0c968de8dfa305905b781a5c5c079aca0443f",
      "new_mode": 33188,
      "new_path": "build/build_zos.ninja.template"
    },
    {
      "type": "modify",
      "old_id": "922bf46fa5788ac751f9d5ceaf57b94b1f24eeaf",
      "old_mode": 33261,
      "old_path": "build/gen.py",
      "new_id": "1f23cc4894f167147b1c1461b142d66106d0fb32",
      "new_mode": 33261,
      "new_path": "build/gen.py"
    },
    {
      "type": "modify",
      "old_id": "b286f69752fd792c5bb0444f0fbec5e0dd75a869",
      "old_mode": 33188,
      "old_path": "src/base/files/file.h",
      "new_id": "737e30a680f63867ea1e714ba09260c291bcf0a4",
      "new_mode": 33188,
      "new_path": "src/base/files/file.h"
    },
    {
      "type": "modify",
      "old_id": "349cbfe5f49a36de2f1295371f670f442bf1ef5d",
      "old_mode": 33188,
      "old_path": "src/base/files/file_posix.cc",
      "new_id": "b1f9f5e86f3cdf95c8929d91040487c006305ddb",
      "new_mode": 33188,
      "new_path": "src/base/files/file_posix.cc"
    },
    {
      "type": "modify",
      "old_id": "7ee1645f5a68cc53cb164369a05af49e389763a5",
      "old_mode": 33188,
      "old_path": "src/base/files/file_util_posix.cc",
      "new_id": "d7ea938e9602e5ad8d4acfa97786389fa11f269c",
      "new_mode": 33188,
      "new_path": "src/base/files/file_util_posix.cc"
    },
    {
      "type": "modify",
      "old_id": "ee60c4703a1f4643754429c218a3edcef6e2e8f1",
      "old_mode": 33188,
      "old_path": "src/base/logging.cc",
      "new_id": "ee9e109eb95bdcca19ca9aad91777da82a58cf94",
      "new_mode": 33188,
      "new_path": "src/base/logging.cc"
    },
    {
      "type": "modify",
      "old_id": "c21beea5f42caa82afcdbe888a21da12eb13f2e8",
      "old_mode": 33188,
      "old_path": "src/gn/args.cc",
      "new_id": "2b6731373efe49578b6e7d5fc4f8faa5f62fa76a",
      "new_mode": 33188,
      "new_path": "src/gn/args.cc"
    },
    {
      "type": "modify",
      "old_id": "cc778d832ddc123e58257cdc5f4e0dde7e821d0a",
      "old_mode": 33188,
      "old_path": "src/gn/exec_process.cc",
      "new_id": "69d631e9ebdc2318a765c5430d9472c708502b01",
      "new_mode": 33188,
      "new_path": "src/gn/exec_process.cc"
    },
    {
      "type": "modify",
      "old_id": "5ee61239aa47083189474355faa1e89dc609f4c9",
      "old_mode": 33188,
      "old_path": "src/gn/function_write_file_unittest.cc",
      "new_id": "8a8ef9a824f7a5e247a545b67b5e5b7e23959361",
      "new_mode": 33188,
      "new_path": "src/gn/function_write_file_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "6bcb204c2d72ca3203c589e61dbec959688fd61f",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_rust_binary_target_writer_unittest.cc",
      "new_id": "b4b71d64ee25e2a47baee48c1214f4642b7cd327",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_rust_binary_target_writer_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "7842fdd9fdcd7ec70ec5e820c6292b5c49033bcc",
      "old_mode": 33188,
      "old_path": "src/gn/string_atom.cc",
      "new_id": "5701a96bd034edfeda993e9bfbfe3f1f7c8b9b10",
      "new_mode": 33188,
      "new_path": "src/gn/string_atom.cc"
    },
    {
      "type": "modify",
      "old_id": "667f009ddb3b6bcc0adbf60793adddc895b65ff8",
      "old_mode": 33188,
      "old_path": "src/util/build_config.h",
      "new_id": "5c4793e4e712d888f6df67b41b4d908afdfcb099",
      "new_mode": 33188,
      "new_path": "src/util/build_config.h"
    },
    {
      "type": "modify",
      "old_id": "b67318c4b2b12442538ce7c255f14886e34771db",
      "old_mode": 33188,
      "old_path": "src/util/exe_path.cc",
      "new_id": "7ae9024a2765ddb013c4c2edb3fd22bd3835560d",
      "new_mode": 33188,
      "new_path": "src/util/exe_path.cc"
    },
    {
      "type": "modify",
      "old_id": "15665321fbbae1b04db3621c52744b2e79061d26",
      "old_mode": 33188,
      "old_path": "src/util/msg_loop.cc",
      "new_id": "1797c903ce6f26794cc925ce12a6f4364fac3e1e",
      "new_mode": 33188,
      "new_path": "src/util/msg_loop.cc"
    },
    {
      "type": "modify",
      "old_id": "2952caec0f3075bd076753b70f8edb96223de74b",
      "old_mode": 33188,
      "old_path": "src/util/semaphore.h",
      "new_id": "f74b8f8f814953b6d3669f6b45dc102c68e2bf76",
      "new_mode": 33188,
      "new_path": "src/util/semaphore.h"
    },
    {
      "type": "modify",
      "old_id": "8124e0730d0e6f35632a47b83803e1b00a0ef68d",
      "old_mode": 33188,
      "old_path": "src/util/sys_info.cc",
      "new_id": "c8dc590ac9b336f37a78c3bc48e83c9d8c9d8ac9",
      "new_mode": 33188,
      "new_path": "src/util/sys_info.cc"
    }
  ]
}
