)]}'
{
  "log": [
    {
      "commit": "b4f2112fa99dab401cd65db4c524d95b1e97614e",
      "tree": "949f8f07942e2dd938135c03e8ebac8c6d028bf8",
      "parents": [
        "f2985ed840af2d5572fafb03074f17afa516d967",
        "61d9ae5ab15862484a3d9654b426e637781436e9"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 12 02:28:25 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 12 02:28:25 2015 +0000"
      },
      "message": "Merge \"[MIPS] Invalidate cached pid in vfork.\""
    },
    {
      "commit": "61d9ae5ab15862484a3d9654b426e637781436e9",
      "tree": "ca5f227180a1d0199e66d619949bbfadf51210a0",
      "parents": [
        "a3c01467ecf31cab1410ce7b8554e2e77dae3309"
      ],
      "author": {
        "name": "Duane Sand",
        "email": "duane.sand@imgtec.com",
        "time": "Tue Aug 11 17:00:56 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 12 02:28:05 2015 +0000"
      },
      "message": "[MIPS] Invalidate cached pid in vfork.\n\nBug: http://b/23008979\nChange-Id: I43e0c7db42602441313af4607a992caa8c7d6221\n"
    },
    {
      "commit": "f2985ed840af2d5572fafb03074f17afa516d967",
      "tree": "89828b1daf06dcbf0bc70b7e7c68e3d494a67608",
      "parents": [
        "2b93492478b497181edf51f5829b984c4e904e52",
        "a40a21110d570994aaf6ce9ce28e2236fc75077b"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed Aug 12 01:58:18 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 12 01:58:18 2015 +0000"
      },
      "message": "Merge \"Fix test steps for 64-bit bionic\""
    },
    {
      "commit": "2b93492478b497181edf51f5829b984c4e904e52",
      "tree": "6675c20e3c7b0cdb09e843f6b23cbca3c0e35fb1",
      "parents": [
        "a3c01467ecf31cab1410ce7b8554e2e77dae3309",
        "3fe1515e38d169c4d6570b5423f45ae5bfb46f2a"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed Aug 12 00:28:07 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 12 00:28:07 2015 +0000"
      },
      "message": "Merge \"Add missing include.\""
    },
    {
      "commit": "a40a21110d570994aaf6ce9ce28e2236fc75077b",
      "tree": "8aa8dd820d5cf6407cbb062cd056888fbd591cc9",
      "parents": [
        "a3c01467ecf31cab1410ce7b8554e2e77dae3309"
      ],
      "author": {
        "name": "Duane Sand",
        "email": "duane.sand@imgtec.com",
        "time": "Tue Aug 11 17:21:27 2015 -0700"
      },
      "committer": {
        "name": "Duane Sand",
        "email": "duane.sand@imgtec.com",
        "time": "Tue Aug 11 17:21:27 2015 -0700"
      },
      "message": "Fix test steps for 64-bit bionic\n\nChange-Id: Ibe76f22cdb5c0dbc69a24ffd0acffff89686ca35\n"
    },
    {
      "commit": "3fe1515e38d169c4d6570b5423f45ae5bfb46f2a",
      "tree": "6675c20e3c7b0cdb09e843f6b23cbca3c0e35fb1",
      "parents": [
        "a3c01467ecf31cab1410ce7b8554e2e77dae3309"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Aug 11 16:46:26 2015 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Aug 11 16:46:26 2015 -0700"
      },
      "message": "Add missing include.\n\nlibc++ cleaned up a leaky header.\n\nChange-Id: I5ac0f43a075257a9138a82be379c9cffe96e0ab9\n"
    },
    {
      "commit": "a3c01467ecf31cab1410ce7b8554e2e77dae3309",
      "tree": "8b6a350a4898241663c6ccc58685a3362738e8ec",
      "parents": [
        "ff4afc136ef5d00d33a611e7bc1950249db9fbcf",
        "5341691955e2fc2b271b722c37496d72a0e8c683"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon Aug 10 23:45:48 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Aug 10 23:45:48 2015 +0000"
      },
      "message": "Merge \"Move up to C++14.\""
    },
    {
      "commit": "5341691955e2fc2b271b722c37496d72a0e8c683",
      "tree": "8b6a350a4898241663c6ccc58685a3362738e8ec",
      "parents": [
        "ff4afc136ef5d00d33a611e7bc1950249db9fbcf"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon Aug 10 16:40:06 2015 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon Aug 10 16:40:06 2015 -0700"
      },
      "message": "Move up to C++14.\n\nThe default standard version is now ahead of us. Stop specifying C++11\nso we get that too.\n\nChange-Id: Ic96942cd7fd134118e29b744601b0119e49b6ac4\n"
    },
    {
      "commit": "ff4afc136ef5d00d33a611e7bc1950249db9fbcf",
      "tree": "f4308ed457988a5e530a2d4cfb1250afa063afd7",
      "parents": [
        "182b91f62809b03870f561a88135f5453966fe41",
        "bf830ade7f4d45ab884b8c56631db7d7b4b5c077"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Mon Aug 10 22:01:07 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Aug 10 22:01:07 2015 +0000"
      },
      "message": "Merge \"Omit comment when reading --gtest_list_tests option\u0027s output.\""
    },
    {
      "commit": "182b91f62809b03870f561a88135f5453966fe41",
      "tree": "7ce00a1c6da021bf09535dd0d287e76c9efd31fa",
      "parents": [
        "e80369ab0c484a99925a49a81ab0675538fab38a",
        "5891abdc66aa9578395bc8b8e5740f629a2694b7"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 10 19:47:11 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Aug 10 19:47:11 2015 +0000"
      },
      "message": "Merge \"Invalidate cached pid in vfork.\""
    },
    {
      "commit": "bf830ade7f4d45ab884b8c56631db7d7b4b5c077",
      "tree": "d0b0e56e51f00eec6a6bdc23cdcdf3db59ef3453",
      "parents": [
        "e80369ab0c484a99925a49a81ab0675538fab38a"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Mon Aug 10 12:12:39 2015 -0700"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Mon Aug 10 12:12:39 2015 -0700"
      },
      "message": "Omit comment when reading --gtest_list_tests option\u0027s output.\n\nGtest add comments when listing typed tests. And we should omit them.\n\nBug: 23040880\nChange-Id: If6034af301337fc06eeab294d2dbe5317a6b7f91\n"
    },
    {
      "commit": "5891abdc66aa9578395bc8b8e5740f629a2694b7",
      "tree": "7ce00a1c6da021bf09535dd0d287e76c9efd31fa",
      "parents": [
        "e80369ab0c484a99925a49a81ab0675538fab38a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 07 18:27:47 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 07 19:44:12 2015 -0700"
      },
      "message": "Invalidate cached pid in vfork.\n\nBug: http://b/23008979\nChange-Id: I1dd900ac988cdbe10aad3abc53240c5d352891d5\n"
    },
    {
      "commit": "e80369ab0c484a99925a49a81ab0675538fab38a",
      "tree": "4eee25df6dfe13bf5bb242516bcd4ec8e3a92578",
      "parents": [
        "b3db7764d0757392c73c716423f49dc0809c5a23",
        "9bbb5a7a09c4c8754e3b151822424f92093abc2a"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Aug 04 22:35:34 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 04 22:35:34 2015 +0000"
      },
      "message": "Merge \"Bionic: Add a TLS slot for ART for Thread self\""
    },
    {
      "commit": "b3db7764d0757392c73c716423f49dc0809c5a23",
      "tree": "a70ee9b38fd5bca216da0e2063e3bc202e6efadf",
      "parents": [
        "f57f7945159a0abbca248817d1d4af1e9d89e323",
        "516fcb28f2fb591e9ae14f909acf00ca5a8b0dc6"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 04 00:58:57 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 04 00:58:57 2015 +0000"
      },
      "message": "Merge \"name the arc4random structure mappings\""
    },
    {
      "commit": "f57f7945159a0abbca248817d1d4af1e9d89e323",
      "tree": "20f6f24bfe9aaf878fd3d9f601de4e525f675c5e",
      "parents": [
        "2278d29ada4cda53d81b87446254cea16e1b24fa",
        "17379d2b085db9fcee114caea08c448c4293e66f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 03 18:22:42 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Aug 03 18:22:42 2015 +0000"
      },
      "message": "Merge \"Cherrypick upstream fnmatch.c fix.\""
    },
    {
      "commit": "17379d2b085db9fcee114caea08c448c4293e66f",
      "tree": "20f6f24bfe9aaf878fd3d9f601de4e525f675c5e",
      "parents": [
        "2278d29ada4cda53d81b87446254cea16e1b24fa"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 03 11:11:22 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 03 11:11:22 2015 -0700"
      },
      "message": "Cherrypick upstream fnmatch.c fix.\n\nBug: http://b/22855370\nChange-Id: I3865cff1e2ffeb6709cea092be3770c1bebf1623\n"
    },
    {
      "commit": "2278d29ada4cda53d81b87446254cea16e1b24fa",
      "tree": "5912da1fbbaf94897b6eed2282e86af17881284f",
      "parents": [
        "7e919daeaad62515ebbbf7b06badc77625a14d90",
        "0acb15ead6a554a6879b29fd90726b9ea8fd98c4"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 03 15:17:18 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Aug 03 15:17:18 2015 +0000"
      },
      "message": "Merge \"[MIPS] Link .dex or .oat code lacking .MIPS.abiflags segment\""
    },
    {
      "commit": "516fcb28f2fb591e9ae14f909acf00ca5a8b0dc6",
      "tree": "a5e398e03f51347e5aa2fa4dfd0bc2d418171951",
      "parents": [
        "7e919daeaad62515ebbbf7b06badc77625a14d90"
      ],
      "author": {
        "name": "Daniel Micay",
        "email": "danielmicay@gmail.com",
        "time": "Sat Aug 01 22:25:42 2015 -0400"
      },
      "committer": {
        "name": "Daniel Micay",
        "email": "danielmicay@gmail.com",
        "time": "Sun Aug 02 19:22:26 2015 -0400"
      },
      "message": "name the arc4random structure mappings\n\nChange-Id: I6e150e526f6ceee31aa9bd219fa45317d5a729cb\n"
    },
    {
      "commit": "7e919daeaad62515ebbbf7b06badc77625a14d90",
      "tree": "dabf11422ab7e3d0b646a1d5a1aa5d067203c00e",
      "parents": [
        "259070585820b4900622363dd7f968d6b644d75d",
        "9101b00400cfb20b96112682169c5da67e065ff2"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Sat Aug 01 05:14:20 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Aug 01 05:14:20 2015 +0000"
      },
      "message": "Merge \"add a fortified implementation of getcwd\""
    },
    {
      "commit": "9101b00400cfb20b96112682169c5da67e065ff2",
      "tree": "de51712678e0abbab722c1c0601c2f1508b387bf",
      "parents": [
        "807f27f9548077f114dc009f60764fb0241a2620"
      ],
      "author": {
        "name": "Daniel Micay",
        "email": "danielmicay@gmail.com",
        "time": "Wed May 20 15:31:26 2015 -0400"
      },
      "committer": {
        "name": "Daniel Micay",
        "email": "danielmicay@gmail.com",
        "time": "Sat Aug 01 00:42:30 2015 -0400"
      },
      "message": "add a fortified implementation of getcwd\n\nChange-Id: Ice3e6d3e1ff07788305dc85f8ee4059baad5fac4\n"
    },
    {
      "commit": "0acb15ead6a554a6879b29fd90726b9ea8fd98c4",
      "tree": "46f69f98361fe7d345e562cc727f13e4068c2284",
      "parents": [
        "807f27f9548077f114dc009f60764fb0241a2620"
      ],
      "author": {
        "name": "Duane Sand",
        "email": "duane.sand@imgtec.com",
        "time": "Tue Jul 28 14:04:29 2015 -0700"
      },
      "committer": {
        "name": "Duane Sand",
        "email": "duane.sand@imgtec.com",
        "time": "Fri Jul 31 13:55:42 2015 -0700"
      },
      "message": "[MIPS] Link .dex or .oat code lacking .MIPS.abiflags segment\n\nThis corrects an issue with mips32 Art on mips64r6 Android, where\nJava ran slowly due to unintended use of kernel-trap emulation of\nsingle-precision floating point registers. This also regressed all\nArt tests due to an extra logcat line\n    WARNING: linker: Using FRE\u003d1 mode to run \"...\"\n\nWhen targeting mips32r6, Art generates modeless or FR\u003d1 floating point\ncode, same as Android\u0027s own native mips32r6 modules. So the trapping was\nunneeded. Linker was confusing Art-generated modules with those from\nold NDK compilers, which do need that trapping mode.\n\nThis linker filename check may become unnecessary, if Art learns how to\ngenerate .MIPS.abiflags segments in its generated elf-like codefiles.\n\nChange-Id: I18069d1234960c680c5df739514da09015a7fdb6\n"
    },
    {
      "commit": "259070585820b4900622363dd7f968d6b644d75d",
      "tree": "47f77e2ba96da7e497b9b3ba1b3ea86894927781",
      "parents": [
        "61c21b63bc1602bce8685757fb1c2a788cc9eb8d",
        "c46c0e960d1d054ec1d398f5f3618e4d1154aa26"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jul 31 18:04:38 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jul 31 18:04:38 2015 +0000"
      },
      "message": "Merge \"Sync current upstream fnmatch.c.\""
    },
    {
      "commit": "c46c0e960d1d054ec1d398f5f3618e4d1154aa26",
      "tree": "47f77e2ba96da7e497b9b3ba1b3ea86894927781",
      "parents": [
        "807f27f9548077f114dc009f60764fb0241a2620"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jul 31 10:57:27 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jul 31 10:57:27 2015 -0700"
      },
      "message": "Sync current upstream fnmatch.c.\n\nBug: http://b/22855370\nChange-Id: I589f849aaede3b69b6b3682989bab7d8649dcd97\n"
    },
    {
      "commit": "61c21b63bc1602bce8685757fb1c2a788cc9eb8d",
      "tree": "e39c3f2993d0af9157a081c031198def618b682b",
      "parents": [
        "442a3fcae68152a95ef481ef99932d1bc001dc08",
        "4c43aac9a5db6de1e34fdab652dab01b32141718"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jul 31 17:33:05 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jul 31 17:33:05 2015 +0000"
      },
      "message": "Merge \"Revert \"add a fortified implementation of getcwd\"\""
    },
    {
      "commit": "4c43aac9a5db6de1e34fdab652dab01b32141718",
      "tree": "e39c3f2993d0af9157a081c031198def618b682b",
      "parents": [
        "89a121d43a274131cf9f84b0e685bebf1e70cc1b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jul 31 17:32:50 2015 +0000"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jul 31 17:32:50 2015 +0000"
      },
      "message": "Revert \"add a fortified implementation of getcwd\"\n\nThis reverts commit 89a121d43a274131cf9f84b0e685bebf1e70cc1b.\n\nChange-Id: Ib6f6fd424acea68a063777e9f324405450e23316\n"
    },
    {
      "commit": "442a3fcae68152a95ef481ef99932d1bc001dc08",
      "tree": "967a05e531866e044c32a306b6100c9328ae797e",
      "parents": [
        "807f27f9548077f114dc009f60764fb0241a2620",
        "89a121d43a274131cf9f84b0e685bebf1e70cc1b"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Fri Jul 31 16:55:12 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jul 31 16:55:12 2015 +0000"
      },
      "message": "Merge \"add a fortified implementation of getcwd\""
    },
    {
      "commit": "89a121d43a274131cf9f84b0e685bebf1e70cc1b",
      "tree": "967a05e531866e044c32a306b6100c9328ae797e",
      "parents": [
        "807f27f9548077f114dc009f60764fb0241a2620"
      ],
      "author": {
        "name": "Daniel Micay",
        "email": "danielmicay@gmail.com",
        "time": "Wed May 20 15:31:26 2015 -0400"
      },
      "committer": {
        "name": "Daniel Micay",
        "email": "danielmicay@gmail.com",
        "time": "Thu Jul 30 17:16:40 2015 -0400"
      },
      "message": "add a fortified implementation of getcwd\n\nChange-Id: I95001ae4fe8f206db83e5c44d129ba11310695ce\n"
    },
    {
      "commit": "807f27f9548077f114dc009f60764fb0241a2620",
      "tree": "e39c3f2993d0af9157a081c031198def618b682b",
      "parents": [
        "4498917406ee543116ea7ed987d26a15b2c1496c",
        "9f03ed12a608344f275244e59051fb876a4aa06c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jul 30 15:10:59 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 30 15:10:59 2015 +0000"
      },
      "message": "Merge \"Stop sending SIGPIPE to debuggerd.\""
    },
    {
      "commit": "9f03ed12a608344f275244e59051fb876a4aa06c",
      "tree": "e39c3f2993d0af9157a081c031198def618b682b",
      "parents": [
        "4498917406ee543116ea7ed987d26a15b2c1496c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 29 22:24:13 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 29 22:24:13 2015 -0700"
      },
      "message": "Stop sending SIGPIPE to debuggerd.\n\nSIGPIPE is a pretty normal way for command-line apps to die, but because\nwe catch it and report it via debuggerd, we get a lot of bogus bugs. We\ncould catch SIGPIPE in our tools, but that\u0027s not really legit and slightly\nmisleading.\n\n\"But\", you say, \"catching SIGPIPE is useful for app bugs!\". Except a trawl\nthrough buganizer suggests it\u0027s misleading there too. Not least because\nit\u0027s usually an innocent victim that dies --- the problem is usually on the\nother end of the pipe (which you learn nothing about because that process\nalready died, which is what closed the pipe).\n\nWe also don\u0027t catch SIGALRM, which is another signal that will terminate\nyour process if you don\u0027t catch it, but that one actually represents a\nlogic error in the crashing process, so there\u0027s a stronger argument for\ncatching that. (Except it too is not a real source of bugs.)\n\nBug: http://b/20659371\nChange-Id: I79820b36573ddaa9a7bad0561a52f23e7a8d15ac\n"
    },
    {
      "commit": "4498917406ee543116ea7ed987d26a15b2c1496c",
      "tree": "e346f6bf3cfff843d06cee42a0061d6af8a7c1d3",
      "parents": [
        "34c5f5eacdedcea6b987854a4bca07c703495d62",
        "b447440a4b5e1e300c6cb1a931b3fa1e22900c4f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jul 30 00:22:48 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 30 00:22:48 2015 +0000"
      },
      "message": "Merge \"Prevent buffer over-read in linker.cpp\u0027s parse_path.\""
    },
    {
      "commit": "b447440a4b5e1e300c6cb1a931b3fa1e22900c4f",
      "tree": "e346f6bf3cfff843d06cee42a0061d6af8a7c1d3",
      "parents": [
        "34c5f5eacdedcea6b987854a4bca07c703495d62"
      ],
      "author": {
        "name": "tony.ys_liu",
        "email": "tony.ys_liu@htc.com",
        "time": "Wed Jul 29 18:00:22 2015 +0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 29 17:21:30 2015 -0700"
      },
      "message": "Prevent buffer over-read in linker.cpp\u0027s parse_path.\n\nAlso, the old behavior of skipping empty entries doesn\u0027t match glibc.\n\nChange-Id: I497774377113ab6c5d962e0f20066e2192748f06\n"
    },
    {
      "commit": "34c5f5eacdedcea6b987854a4bca07c703495d62",
      "tree": "2b068bf653a04a8a37e9bc35114a2ebab547b1c1",
      "parents": [
        "374adfee473725994ee2568ce5aba93a7500064e",
        "36443fd542a96d2ed71fc294f70fed08c115af55"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 29 15:18:06 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jul 29 15:18:06 2015 +0000"
      },
      "message": "Merge \"Remove PAGE_SIZE from \u003climits.h\u003e.\""
    },
    {
      "commit": "36443fd542a96d2ed71fc294f70fed08c115af55",
      "tree": "2b068bf653a04a8a37e9bc35114a2ebab547b1c1",
      "parents": [
        "374adfee473725994ee2568ce5aba93a7500064e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 28 19:52:31 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 28 19:54:53 2015 -0700"
      },
      "message": "Remove PAGE_SIZE from \u003climits.h\u003e.\n\nIt turns out that everyone\u0027s still getting PAGE_SIZE from \u003csys/user.h\u003e via\n\u003csys/ucontext.h\u003e via \u003csignal.h\u003e anyway.\n\nglibc has PAGE_SIZE in \u003csys/user.h\u003e rather than \u003climits.h\u003e so this part is\ngood. The bad part is that we have such wide transitive inclusion of\n\u003csys/user.h\u003e!\n\nBug: http://b/22735893\nChange-Id: I363adffe4a27b4ca1eedf695ea621f5dd2d5ca10\n"
    },
    {
      "commit": "9bbb5a7a09c4c8754e3b151822424f92093abc2a",
      "tree": "51d693a9954354f955161eb590455797e312dfbb",
      "parents": [
        "4955cde2c55d4860f12039a96d14fc756b1308a3"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jul 28 19:53:54 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jul 28 19:53:54 2015 -0700"
      },
      "message": "Bionic: Add a TLS slot for ART for Thread self\n\nTo improve the performance of Thread::Current(), add a tls slot so\nART can avoid a pthreads call.\n\nChange-Id: Icc86a2b7590734637366f9d5e41a5c6d18cc5772\n"
    },
    {
      "commit": "374adfee473725994ee2568ce5aba93a7500064e",
      "tree": "ec4e0d785f9cbef52b3c4efa531bf2ba6619926b",
      "parents": [
        "1ff4094a7f106b3de390acb1e36c45bbb878a153",
        "5390173ad43aeae9b503c448cb496403d817e13b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 29 01:02:37 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jul 29 01:02:37 2015 +0000"
      },
      "message": "Merge \"Don\u0027t transitively include \u003climits.h\u003e from \u003csys/user.h\u003e.\""
    },
    {
      "commit": "5390173ad43aeae9b503c448cb496403d817e13b",
      "tree": "ec4e0d785f9cbef52b3c4efa531bf2ba6619926b",
      "parents": [
        "1ff4094a7f106b3de390acb1e36c45bbb878a153"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 28 17:44:32 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 28 17:44:32 2015 -0700"
      },
      "message": "Don\u0027t transitively include \u003climits.h\u003e from \u003csys/user.h\u003e.\n\nBug: http://b/22735893\nChange-Id: I27d0a1f7e2d477b8038e76bfc7fe05dd7e187344\n"
    },
    {
      "commit": "1ff4094a7f106b3de390acb1e36c45bbb878a153",
      "tree": "b007e46b9042cfd71d5c47c9b7715ad8d2fe3198",
      "parents": [
        "c8ba22c847bd5bfc97d29a4c565fd32993200a01",
        "820a86f2df90419d4b0e7ae6004eb73bb804fc7e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 29 00:09:20 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jul 29 00:09:20 2015 +0000"
      },
      "message": "Merge \"Remove PAGESIZE.\""
    },
    {
      "commit": "820a86f2df90419d4b0e7ae6004eb73bb804fc7e",
      "tree": "b007e46b9042cfd71d5c47c9b7715ad8d2fe3198",
      "parents": [
        "c8ba22c847bd5bfc97d29a4c565fd32993200a01"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 28 16:46:06 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 28 16:46:06 2015 -0700"
      },
      "message": "Remove PAGESIZE.\n\nThis was pretty much unused, and isn\u0027t in glibc.\n\nBug: http://b/22735893\nChange-Id: If17f0dcd931c90ef1ccb134a3950c3b0011a03f4\n"
    },
    {
      "commit": "c8ba22c847bd5bfc97d29a4c565fd32993200a01",
      "tree": "390c1e92f59867262d1181c346948071f09d536c",
      "parents": [
        "1923d4c03a68c89f304b601545f5e8db026b9be0",
        "afab3ffcce1054ec887fb347700819d69a9c8151"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 28 23:11:18 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jul 28 23:11:18 2015 +0000"
      },
      "message": "Merge \"Move PAGE_MASK into \u003csys/user.h\u003e.\""
    },
    {
      "commit": "afab3ffcce1054ec887fb347700819d69a9c8151",
      "tree": "390c1e92f59867262d1181c346948071f09d536c",
      "parents": [
        "1923d4c03a68c89f304b601545f5e8db026b9be0"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 28 14:58:37 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 28 14:58:37 2015 -0700"
      },
      "message": "Move PAGE_MASK into \u003csys/user.h\u003e.\n\nI\u0027m removing the TODO on the assumption that being compatible with glibc\nis more useful than BSD. The new internal \"bionic_page.h\" header factors\nout some duplication between libc and the linker.\n\nBug: http://b/22735893\nChange-Id: I4aec4dcba5886fb6f6b9290a8f85660643261321\n"
    },
    {
      "commit": "1923d4c03a68c89f304b601545f5e8db026b9be0",
      "tree": "e8a34188f223e0afb4845d7c2c6375514e32faa8",
      "parents": [
        "4955cde2c55d4860f12039a96d14fc756b1308a3",
        "667dc75ee1c7c922f8610ccc6b70002642141f08"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Jul 28 17:48:08 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jul 28 17:48:08 2015 +0000"
      },
      "message": "Merge \"deprecate TARGET_USES_LOGD\""
    },
    {
      "commit": "667dc75ee1c7c922f8610ccc6b70002642141f08",
      "tree": "e8a34188f223e0afb4845d7c2c6375514e32faa8",
      "parents": [
        "4955cde2c55d4860f12039a96d14fc756b1308a3"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Jul 28 08:51:17 2015 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Jul 28 08:51:17 2015 -0700"
      },
      "message": "deprecate TARGET_USES_LOGD\n\nThis is not the kernel logger you are looking for\n\nBug: 22787659\nChange-Id: I340d8bb5cdaa73be9565521681ee238b7033934b\n"
    },
    {
      "commit": "4955cde2c55d4860f12039a96d14fc756b1308a3",
      "tree": "359eebb258e59dbd1b72fbc409f60db718c94c24",
      "parents": [
        "cebef1a7812fe3552f12dd7e885a1f879a9946ed",
        "d2a9fb326769900b786ef36aa0ccf60a65fe497e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 28 14:55:50 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jul 28 14:55:50 2015 +0000"
      },
      "message": "Merge \"Add a regression test for a fixed strnlen bug.\""
    },
    {
      "commit": "d2a9fb326769900b786ef36aa0ccf60a65fe497e",
      "tree": "359eebb258e59dbd1b72fbc409f60db718c94c24",
      "parents": [
        "cebef1a7812fe3552f12dd7e885a1f879a9946ed"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jul 27 20:55:03 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jul 27 20:55:03 2015 -0700"
      },
      "message": "Add a regression test for a fixed strnlen bug.\n\nBug: https://code.google.com/p/android/issues/detail?id\u003d74741\nChange-Id: I78b0114bdbe8e680b0e938af608a634e73c86eda\n"
    },
    {
      "commit": "cebef1a7812fe3552f12dd7e885a1f879a9946ed",
      "tree": "6659f2f4c0c2c1bf310b383b7266eb641aa41e76",
      "parents": [
        "e8ceb95c680eacc3b5d16644a48a28b45f421e2f",
        "7656d0cec0509f73705da222a2389b00031097d8"
      ],
      "author": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Jul 28 01:33:01 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jul 28 01:33:01 2015 +0000"
      },
      "message": "Merge \"Add one simple thread local storage test.\""
    },
    {
      "commit": "7656d0cec0509f73705da222a2389b00031097d8",
      "tree": "bfadbbb8cd9e7ca2a7aa9b46c4ea042b4e855601",
      "parents": [
        "adc5795fb7b674e6d40d1f190c675607c1379343"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Mon Jul 27 10:46:21 2015 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Mon Jul 27 17:20:19 2015 -0700"
      },
      "message": "Add one simple thread local storage test.\n\nThis test should pass with gcc and fail with clang,\nuntil clang/llvm supports emutls or Android linker supports\nELF TLS models.\n\nBUG: 21082792\nChange-Id: Id8c97da52c68ec230c7d26af703f6ed32d53a4fe\n"
    },
    {
      "commit": "e8ceb95c680eacc3b5d16644a48a28b45f421e2f",
      "tree": "de6f10eff76bbb95a2b6244e505b239e3570b364",
      "parents": [
        "8af32633498184e58e6f8d5d75b9f9cdbef5b6be",
        "8264cbba7ecdf11bbc7501dd5a716593543b683c"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Jul 27 23:09:32 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jul 27 23:09:32 2015 +0000"
      },
      "message": "Merge \"Remove pushes from memsets (krait/cortex-a9).\""
    },
    {
      "commit": "8af32633498184e58e6f8d5d75b9f9cdbef5b6be",
      "tree": "55c1a732fedb885af2c66dc46870f41153b6c903",
      "parents": [
        "f16c6e17b22c278320d0e662d1f1e1213f8fbc71",
        "fed2659869ec41a93f655be8058568ddab419e01"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Mon Jul 27 22:46:29 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jul 27 22:46:29 2015 +0000"
      },
      "message": "Merge \"add fortified implementations of fread/fwrite\""
    },
    {
      "commit": "f16c6e17b22c278320d0e662d1f1e1213f8fbc71",
      "tree": "e2506a3d54c6bc421b9c50256632210cbdf92e7b",
      "parents": [
        "bff196822230b5a8b1f5bafeed88ded821d390a9",
        "ec83a61c8b5e00c67c35c9b8f72031c55e7868b9"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jul 27 21:34:53 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jul 27 21:34:53 2015 +0000"
      },
      "message": "Merge \"Restore protection flags for ifunc during relocs.\""
    },
    {
      "commit": "8264cbba7ecdf11bbc7501dd5a716593543b683c",
      "tree": "044af29d798884a2335e5bd49f59cf39a4151633",
      "parents": [
        "adc5795fb7b674e6d40d1f190c675607c1379343"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Jul 27 13:51:31 2015 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Jul 27 14:07:37 2015 -0700"
      },
      "message": "Remove pushes from memsets (krait/cortex-a9).\n\nOn the path that only uses r0 in both the krait and cortex-a9\nmemset, remove the push and use r3 instead.\n\nIn addition, for cortex-a9, remove the artificial function since\nit\u0027s not needed since dwarf unwinding is now supported on arm.\n\nChange-Id: Ia4ed1cc435b03627a7193215e76c8ea3335f949a\n"
    },
    {
      "commit": "bff196822230b5a8b1f5bafeed88ded821d390a9",
      "tree": "cf3fa010c152f6d124a94ad6655b33207b5e67df",
      "parents": [
        "adc5795fb7b674e6d40d1f190c675607c1379343",
        "f0a73476a1e08e9deab7c4df557582cda60b36d2"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jul 27 18:06:35 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jul 27 18:06:35 2015 +0000"
      },
      "message": "Merge \"name the atexit handler pages\""
    },
    {
      "commit": "f0a73476a1e08e9deab7c4df557582cda60b36d2",
      "tree": "cf3fa010c152f6d124a94ad6655b33207b5e67df",
      "parents": [
        "adc5795fb7b674e6d40d1f190c675607c1379343"
      ],
      "author": {
        "name": "Daniel Micay",
        "email": "danielmicay@gmail.com",
        "time": "Sat Jul 25 15:40:14 2015 -0400"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jul 27 11:04:58 2015 -0700"
      },
      "message": "name the atexit handler pages\n\nChange-Id: I1718ddee7415a673b5818bc1455b8d90f1e8f9c6\n"
    },
    {
      "commit": "ec83a61c8b5e00c67c35c9b8f72031c55e7868b9",
      "tree": "0e871a06eed25813a137c73f812e6713c9babc4f",
      "parents": [
        "adc5795fb7b674e6d40d1f190c675607c1379343"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Sun Jul 26 07:37:09 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Sun Jul 26 08:23:01 2015 -0700"
      },
      "message": "Restore protection flags for ifunc during relocs.\n\nIFUNC relocations require executable flag for the load\nsegment containing .text. When dso has text relocs linker\nremoves exec which causes crash during ifunc relocations.\n\nThis patch fixes this problem by restoring segments protection\nfor ifunc relocs.\n\nBug: http://b/22611399\nChange-Id: Icbf3be0fec0e42bf805bcad7533e2032a2e11b9c\n(cherry picked from commit de0fb393ae8136a5958fe17eee0c6285e2f7f91a)\n"
    },
    {
      "commit": "adc5795fb7b674e6d40d1f190c675607c1379343",
      "tree": "8dcecf9dbadba4b04cebc05a0a790a39e7e2bb99",
      "parents": [
        "a3a619835d302f5414883e2307ca48406b15a4a5",
        "189394b885e4b11e9f009fd2e434e6dc6696277b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Jul 25 18:32:46 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Jul 25 18:32:46 2015 +0000"
      },
      "message": "Merge \"Use AT_PAGESZ for sysconf(_SC_PAGE_SIZE).\""
    },
    {
      "commit": "189394b885e4b11e9f009fd2e434e6dc6696277b",
      "tree": "8dcecf9dbadba4b04cebc05a0a790a39e7e2bb99",
      "parents": [
        "a3a619835d302f5414883e2307ca48406b15a4a5"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jul 24 23:22:07 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jul 24 23:22:07 2015 -0700"
      },
      "message": "Use AT_PAGESZ for sysconf(_SC_PAGE_SIZE).\n\nBug: http://b/18342333\nChange-Id: Id12ed4e85a0f35d7d27202f7792df42a65a74b4e\n"
    },
    {
      "commit": "a3a619835d302f5414883e2307ca48406b15a4a5",
      "tree": "1df4e5a00da12bfbbd5a5be34cf777d8f5de3ab1",
      "parents": [
        "9e1c862cb649f054aaa1c2141409387bf3d5f3eb",
        "795a8e3d690c09304ea52d7cb2ca4143b6751c60"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Jul 24 00:47:06 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jul 24 00:47:06 2015 +0000"
      },
      "message": "Merge \"Make all labels local.\""
    },
    {
      "commit": "fed2659869ec41a93f655be8058568ddab419e01",
      "tree": "5dca1c6f1f120a561d5279eb76816e94e210cb94",
      "parents": [
        "2565492db0d67b95348cd1c3026ed338ca59aa37"
      ],
      "author": {
        "name": "Daniel Micay",
        "email": "danielmicay@gmail.com",
        "time": "Sat Jul 18 13:55:51 2015 -0400"
      },
      "committer": {
        "name": "Daniel Micay",
        "email": "danielmicay@gmail.com",
        "time": "Thu Jul 23 18:55:46 2015 -0400"
      },
      "message": "add fortified implementations of fread/fwrite\n\nA __size_mul_overflow utility is used to take advantage of the checked\noverflow intrinsics in Clang and GCC (\u003e\u003d 5). The fallback for older\ncompilers is the optimized but less than ideal overflow checking pattern\nused in OpenBSD.\n\nChange-Id: Ibb0d4fd9b5acb67983e6a9f46844c2fd444f7e69\n"
    },
    {
      "commit": "795a8e3d690c09304ea52d7cb2ca4143b6751c60",
      "tree": "1df4e5a00da12bfbbd5a5be34cf777d8f5de3ab1",
      "parents": [
        "9e1c862cb649f054aaa1c2141409387bf3d5f3eb"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Jul 23 12:12:55 2015 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Jul 23 12:12:55 2015 -0700"
      },
      "message": "Make all labels local.\n\nChange the non-local labels to .L labels.\n\nChange-Id: I720e894f2e311af8f4a0970303d8b86575fb69a5\n"
    },
    {
      "commit": "9e1c862cb649f054aaa1c2141409387bf3d5f3eb",
      "tree": "c4b83a4e4e3e69da497381d73b94b9d6b7d361b0",
      "parents": [
        "2565492db0d67b95348cd1c3026ed338ca59aa37",
        "166112531558a1d4ea179c29147f27db7045db22"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Thu Jul 23 17:20:30 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 23 17:20:30 2015 +0000"
      },
      "message": "Merge \"Don\u0027t abort when failed to write tracing message.\""
    },
    {
      "commit": "166112531558a1d4ea179c29147f27db7045db22",
      "tree": "c4b83a4e4e3e69da497381d73b94b9d6b7d361b0",
      "parents": [
        "2565492db0d67b95348cd1c3026ed338ca59aa37"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Jul 21 17:27:54 2015 -0700"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Wed Jul 22 18:24:53 2015 -0700"
      },
      "message": "Don\u0027t abort when failed to write tracing message.\n\nAlso make the code thread-safe with lock.\n\nBug: 20666100\nChange-Id: I0f331a617b75280f36179c187418450230d713ef\n"
    },
    {
      "commit": "2565492db0d67b95348cd1c3026ed338ca59aa37",
      "tree": "dbdd7f4dd982d8e093575c5dbe7734a5b26ec7b4",
      "parents": [
        "3b49d61ac2f7a02d5e7f25a24836b060f922f079",
        "c4786d366b11ed81165d43ee7f23e0d4965fc00f"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Wed Jul 22 03:22:26 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jul 22 03:22:26 2015 +0000"
      },
      "message": "Merge \"Add getgrgid_r/getgrnam_r.\""
    },
    {
      "commit": "c4786d366b11ed81165d43ee7f23e0d4965fc00f",
      "tree": "a45d2e9e2dfe936f9c4f74005255a7cea192325a",
      "parents": [
        "e70d7a78f0bfba8b09d37c145769cb8d1d7c5fb6"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Mon Jul 20 19:46:26 2015 -0700"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Jul 21 19:33:34 2015 -0700"
      },
      "message": "Add getgrgid_r/getgrnam_r.\n\nBug: 22568551\nChange-Id: I3c0772d119d6041063c6be53f5bcc5ea1768f0d5\n"
    },
    {
      "commit": "3b49d61ac2f7a02d5e7f25a24836b060f922f079",
      "tree": "854e6df7992f417e066a614cd882db4ac9ac6e77",
      "parents": [
        "86ac443cd1df83bbef4a18046714e067a9d13247",
        "10726d52ac3a7b34a6e2d9c40532037ca1108485"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 22 01:51:00 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jul 22 01:51:00 2015 +0000"
      },
      "message": "Merge \"libc: arch-x86: implement kernel vdso time functions\""
    },
    {
      "commit": "10726d52ac3a7b34a6e2d9c40532037ca1108485",
      "tree": "49c3613ab638c4f7f322d4ad5d95dfbbd7b82fd2",
      "parents": [
        "3bcfd47c6836a952b2093c64feb9f1e382891256"
      ],
      "author": {
        "name": "Robert Jarzmik",
        "email": "robert.jarzmik@intel.com",
        "time": "Wed Jul 15 15:26:43 2015 +0200"
      },
      "committer": {
        "name": "Mingwei Shi",
        "email": "mingwei.shi@intel.com",
        "time": "Wed Jul 22 01:31:38 2015 +0000"
      },
      "message": "libc: arch-x86: implement kernel vdso time functions\n\nThis patch give the possibility of time vdso support on 32bit kernel.\nIf the 32bit x86 kernel provides gettimeofday() and clock_gettime()\nprimitives in vdso. In this case make bionic use them. If the kernel\ndoesn\u0027t provide them, fallback to the legacy system call versions.\n\nChange-Id: I87b772a9486fa356903e1f98f486ab9eb0b6f6f7\nSigned-off-by: Robert Jarzmik \u003crobert.jarzmik@intel.com\u003e\nSigned-off-by: Mingwei Shi \u003cmingwei.shi@intel.com\u003e\n"
    },
    {
      "commit": "86ac443cd1df83bbef4a18046714e067a9d13247",
      "tree": "560f002fe091e44ee885c38998800e213cf6fc23",
      "parents": [
        "bc0b8ff2fbfb38f73114aef7df8e302025245441",
        "361d4b4c87da4b40cb613ed39d42cf303f0e8d3b"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Tue Jul 21 21:10:22 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jul 21 21:10:23 2015 +0000"
      },
      "message": "Merge \"We don\u0027t have CXX_BARE any more\""
    },
    {
      "commit": "361d4b4c87da4b40cb613ed39d42cf303f0e8d3b",
      "tree": "560f002fe091e44ee885c38998800e213cf6fc23",
      "parents": [
        "bc0b8ff2fbfb38f73114aef7df8e302025245441"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Mon Jul 20 18:51:30 2015 -0700"
      },
      "committer": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Tue Jul 21 14:08:42 2015 -0700"
      },
      "message": "We don\u0027t have CXX_BARE any more\n\nNow we have split CXX_WRAPPER from TARGET_CXX and CXX_BARE isn\u0027t needed\nany more.\n\nBug: 22612634\nChange-Id: I52c78b0d1b325910e875a786d17f780731778b4b\n(cherry-pick from commit 9d11a7087c860195bf23f2825a7fe70d43ff7b78)\n"
    },
    {
      "commit": "bc0b8ff2fbfb38f73114aef7df8e302025245441",
      "tree": "9b18ae43784916a8228362e06ebb6f308358374a",
      "parents": [
        "c99fabb7a097e9aeed49ce03584cce113d086905",
        "d29486343a66cae37fc4fc74ed206fd29f25476b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 21 20:28:15 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jul 21 20:28:17 2015 +0000"
      },
      "message": "Merge \"Use a less misleading name for the code that sets up the main thread.\""
    },
    {
      "commit": "d29486343a66cae37fc4fc74ed206fd29f25476b",
      "tree": "9b18ae43784916a8228362e06ebb6f308358374a",
      "parents": [
        "c99fabb7a097e9aeed49ce03584cce113d086905"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 21 11:57:09 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 21 11:57:09 2015 -0700"
      },
      "message": "Use a less misleading name for the code that sets up the main thread.\n\nChange-Id: I50c1b0a3b633cf8bc40a6bd86f12adb6b91e2888\n"
    },
    {
      "commit": "c99fabb7a097e9aeed49ce03584cce113d086905",
      "tree": "c2f96ef84e7630c438950a1efd14b7fa33db8433",
      "parents": [
        "3bcfd47c6836a952b2093c64feb9f1e382891256",
        "70b6e1daffd58ebce006d4b504cd0fb9672b6d07"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Jul 21 17:29:09 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jul 21 17:29:10 2015 +0000"
      },
      "message": "Merge \"Add support for non-zero vaddr in maps.\""
    },
    {
      "commit": "3bcfd47c6836a952b2093c64feb9f1e382891256",
      "tree": "8b51e78e108af74e2f8f32210023bd2fe59d1cc0",
      "parents": [
        "f37c237b8b15c00ac748fe2657a50df54fa55d5a",
        "613f8145087a763e128d58e638bc85799fb06989"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 21 02:15:19 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jul 21 02:15:21 2015 +0000"
      },
      "message": "Merge \"Revert \"Revert \"make vdso function pointers read-only at runtime\"\"\""
    },
    {
      "commit": "f37c237b8b15c00ac748fe2657a50df54fa55d5a",
      "tree": "3ad378dca11e65d1767ae7ce57ee28914a943481",
      "parents": [
        "e70d7a78f0bfba8b09d37c145769cb8d1d7c5fb6",
        "95fd031c4d22b90c542621170bb6d4d05bb94457"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Jul 21 00:22:20 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jul 21 00:22:21 2015 +0000"
      },
      "message": "Merge \"Revert \"Stop libc from cross-referencing unwind symbols\"\""
    },
    {
      "commit": "95fd031c4d22b90c542621170bb6d4d05bb94457",
      "tree": "3ad378dca11e65d1767ae7ce57ee28914a943481",
      "parents": [
        "e70d7a78f0bfba8b09d37c145769cb8d1d7c5fb6"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon Jul 20 16:56:51 2015 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon Jul 20 16:57:11 2015 -0700"
      },
      "message": "Revert \"Stop libc from cross-referencing unwind symbols\"\n\nThis reverts commit cd13b14e98d4921af126667fae0cf6613a5615c5.\n\nBug: http://b/19958712\nChange-Id: I7cc7f69728c42c37e129aee30d761c4cd7e30e94\n"
    },
    {
      "commit": "613f8145087a763e128d58e638bc85799fb06989",
      "tree": "8c358ed5f4f945c623d6d460e014df59843c669d",
      "parents": [
        "e70d7a78f0bfba8b09d37c145769cb8d1d7c5fb6"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jul 20 22:34:27 2015 +0000"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jul 20 15:59:33 2015 -0700"
      },
      "message": "Revert \"Revert \"make vdso function pointers read-only at runtime\"\"\n\nThis reverts commit 1946856b1f18a27c51ba30bb9e304f25b722ee05.\n\nThis goes back to the original scheme of PROT_NONEing a page within\nlibc. Allocating a new page didn\u0027t fail safe for cases where these\nfunctions are called from the dynamic linker.\n\nBug: http://b/22568628\nChange-Id: I3e7241c8b54c27ea4a898bc952375c1e9ae38c80\n"
    },
    {
      "commit": "e70d7a78f0bfba8b09d37c145769cb8d1d7c5fb6",
      "tree": "81a06523bcc58e5e8eb4e0d9c359c173f070a499",
      "parents": [
        "e5544ae1f8a23ae77908e822e83a73ebd4b656ec",
        "3fef96f827bb4aebed08e48a1a760e0280029efd"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Jul 20 18:31:07 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jul 20 18:31:09 2015 +0000"
      },
      "message": "Merge \"Fix dt_runpath test.\""
    },
    {
      "commit": "3fef96f827bb4aebed08e48a1a760e0280029efd",
      "tree": "81a06523bcc58e5e8eb4e0d9c359c173f070a499",
      "parents": [
        "e5544ae1f8a23ae77908e822e83a73ebd4b656ec"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Jul 20 10:47:49 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Jul 20 10:47:49 2015 -0700"
      },
      "message": "Fix dt_runpath test.\n\nBfd linker produces DT_RPATH instead of DT_RUNPATH\nunless --enable-new-dtags option is specified.\n\nBug: http://b/22560945\nChange-Id: I71bdc5137b899ab736e55c5a9574cfbba8e1983b\n"
    },
    {
      "commit": "e5544ae1f8a23ae77908e822e83a73ebd4b656ec",
      "tree": "fec56e180cf239b3af68c73113112d07f03e762a",
      "parents": [
        "6c9ad82b1c0f26f5edb5d5ca246b88451c5ea238",
        "a7a87dda4ae2796c315519f506c8156c33c47e79"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jul 20 17:36:52 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jul 20 17:36:53 2015 +0000"
      },
      "message": "Merge \"\u003csys/time.h\u003e should include [most of] \u003csys/select.h\u003e.\""
    },
    {
      "commit": "6c9ad82b1c0f26f5edb5d5ca246b88451c5ea238",
      "tree": "a0473ecfbb6ee86ae49495266f2fd334918923cd",
      "parents": [
        "4f2e1d3b1e3b3729b551c22c5a0be8d07795adfd",
        "1946856b1f18a27c51ba30bb9e304f25b722ee05"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jul 20 17:30:49 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jul 20 17:30:50 2015 +0000"
      },
      "message": "Merge \"Revert \"make vdso function pointers read-only at runtime\"\""
    },
    {
      "commit": "1946856b1f18a27c51ba30bb9e304f25b722ee05",
      "tree": "f3567ce93aab28ed00311845728277b054c2c570",
      "parents": [
        "df1a3c6d21702e3e96cfcddadee4a50bfac82110"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jul 20 17:30:33 2015 +0000"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jul 20 17:30:33 2015 +0000"
      },
      "message": "Revert \"make vdso function pointers read-only at runtime\"\n\nThis reverts commit df1a3c6d21702e3e96cfcddadee4a50bfac82110.\n\nThis change prevented N9 from booting (http://b/22568628).\n\nChange-Id: I071d6d6a0ae7881d65641839e665acdcf58462b4\n"
    },
    {
      "commit": "a7a87dda4ae2796c315519f506c8156c33c47e79",
      "tree": "177667fa5ff592aa98cc7069e8d3a2595a3dab91",
      "parents": [
        "4f2e1d3b1e3b3729b551c22c5a0be8d07795adfd"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jul 17 19:10:24 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jul 17 19:10:24 2015 -0700"
      },
      "message": "\u003csys/time.h\u003e should include [most of] \u003csys/select.h\u003e.\n\nFound by trying to build c-ares with bionic.\n\nChange-Id: I38684abcb806ef1e8806c68b4a6dd9200f48849e\n"
    },
    {
      "commit": "4f2e1d3b1e3b3729b551c22c5a0be8d07795adfd",
      "tree": "9ee670c759addcc71aca66fda5107b485278bf3f",
      "parents": [
        "ca7bc509cf3b321b4721137df1e5407415fc7dd7",
        "2cc41d3e0054e414caa2022f4b625de2983006a2"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jul 17 21:42:03 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jul 17 21:42:03 2015 +0000"
      },
      "message": "Merge \"Add all the glibc one-line \"synonym\" header files.\""
    },
    {
      "commit": "2cc41d3e0054e414caa2022f4b625de2983006a2",
      "tree": "9ee670c759addcc71aca66fda5107b485278bf3f",
      "parents": [
        "ca7bc509cf3b321b4721137df1e5407415fc7dd7"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jul 17 13:59:36 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jul 17 13:59:36 2015 -0700"
      },
      "message": "Add all the glibc one-line \"synonym\" header files.\n\nPorted code keeps needing these one by one, so let\u0027s just add the whole\nset...\n\nChange-Id: I9662b256aeaa1b0ffb22354130e503f0c4aa472b\n"
    },
    {
      "commit": "ca7bc509cf3b321b4721137df1e5407415fc7dd7",
      "tree": "17108b25dd5740cdfb2520331df02ba37086ba20",
      "parents": [
        "a58d24984045b474883ad14500a465ab331db47d",
        "df1a3c6d21702e3e96cfcddadee4a50bfac82110"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jul 17 18:13:31 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jul 17 18:13:31 2015 +0000"
      },
      "message": "Merge \"make vdso function pointers read-only at runtime\""
    },
    {
      "commit": "df1a3c6d21702e3e96cfcddadee4a50bfac82110",
      "tree": "4655b0e1a8b097c9761b070727e78a992cd8824f",
      "parents": [
        "60bc90909a49121789bf86f5d14f63967e8000e0"
      ],
      "author": {
        "name": "Daniel Micay",
        "email": "danielmicay@gmail.com",
        "time": "Fri Jul 17 12:13:27 2015 -0400"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jul 17 11:11:42 2015 -0700"
      },
      "message": "make vdso function pointers read-only at runtime\n\nGlobal, writable function pointers are low-hanging fruit for hijacking\ncontrol flow with an overflow from a global buffer or an arbitrary write\nvulnerability. This moves the function pointer table into a dedicated\npage and makes it read-only at runtime, similar to RELRO.\n\nThis increases the memory usage of the library by just under one page.\nThis could be avoided by having the linker load the vdso by replacing\nweak symbols. It\u0027s not significant within the Zygote spawning model\nthough because it\u0027s read-only after early init.\n\nChange-Id: Id7a49c96c1b15c2e1926528304b3c54a81e78caf\n"
    },
    {
      "commit": "a58d24984045b474883ad14500a465ab331db47d",
      "tree": "4af42cb8d8a817a60e046db9e52be73b4f419764",
      "parents": [
        "60bc90909a49121789bf86f5d14f63967e8000e0",
        "e5cfafe3446a33b0c77416061d598bf76d580ee0"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Jul 17 17:49:20 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jul 17 17:49:21 2015 +0000"
      },
      "message": "Merge \"Fix potential race condition on dlopen\""
    },
    {
      "commit": "e5cfafe3446a33b0c77416061d598bf76d580ee0",
      "tree": "4af42cb8d8a817a60e046db9e52be73b4f419764",
      "parents": [
        "60bc90909a49121789bf86f5d14f63967e8000e0"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Jul 17 10:36:10 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Jul 17 10:36:10 2015 -0700"
      },
      "message": "Fix potential race condition on dlopen\n\n  Call to find_containing_library should be guarded.\n\nChange-Id: I985a903da48b83bcd35e957a979158eb9b80e70b\n"
    },
    {
      "commit": "70b6e1daffd58ebce006d4b504cd0fb9672b6d07",
      "tree": "8996cc437814eb0b7c9074809b8bab14d53007cf",
      "parents": [
        "cd588f847f3f23a9c60e32ab1e37c170e9f5be57"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Jul 16 14:49:17 2015 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Jul 16 15:25:39 2015 -0700"
      },
      "message": "Add support for non-zero vaddr in maps.\n\nIf a map has a non-zero vaddr then it needs to be added to the\ncomputed relative offset.\n\nBug: 22532054\nChange-Id: If55015165d25ecc4b530f674b481c8c7ef760a23\n"
    },
    {
      "commit": "60bc90909a49121789bf86f5d14f63967e8000e0",
      "tree": "f3567ce93aab28ed00311845728277b054c2c570",
      "parents": [
        "cd588f847f3f23a9c60e32ab1e37c170e9f5be57",
        "0875ba3095782387370cba2e36ebc5df7acbcb7e"
      ],
      "author": {
        "name": "Bertrand SIMONNET",
        "email": "bsimonnet@google.com",
        "time": "Thu Jul 16 21:53:25 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 16 21:53:26 2015 +0000"
      },
      "message": "Merge \"Add timespec/timeval conversion helpers.\""
    },
    {
      "commit": "0875ba3095782387370cba2e36ebc5df7acbcb7e",
      "tree": "8fa1e9cecd619da9948729e698a99f86b500fc6b",
      "parents": [
        "b31409040f1766d92e76e72bbdc1b346f4bb9d8e"
      ],
      "author": {
        "name": "Bertrand SIMONNET",
        "email": "bsimonnet@google.com",
        "time": "Thu Jul 16 11:50:39 2015 -0700"
      },
      "committer": {
        "name": "Bertrand SIMONNET",
        "email": "bsimonnet@google.com",
        "time": "Thu Jul 16 13:10:50 2015 -0700"
      },
      "message": "Add timespec/timeval conversion helpers.\n\nTIMESPEC_TO_TIMEVAL and TIMEVAL_TO_TIMESPEC are usually provided by\nsys/time.h.\n\nBUG: 22532790\n\nChange-Id: I8b9d7298e3250323faa20b1adf9a7514954c6096\n"
    },
    {
      "commit": "cd588f847f3f23a9c60e32ab1e37c170e9f5be57",
      "tree": "d658def4a42a6dcf4d3003f45437cfb59781dc30",
      "parents": [
        "b31409040f1766d92e76e72bbdc1b346f4bb9d8e",
        "730ed9dfec37441ae0cbb96f681381da6e113daa"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Jul 16 15:59:15 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 16 15:59:16 2015 +0000"
      },
      "message": "Merge \"Add constant for zip separator\""
    },
    {
      "commit": "730ed9dfec37441ae0cbb96f681381da6e113daa",
      "tree": "d658def4a42a6dcf4d3003f45437cfb59781dc30",
      "parents": [
        "b31409040f1766d92e76e72bbdc1b346f4bb9d8e"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Jul 16 04:52:06 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Jul 16 04:52:06 2015 -0700"
      },
      "message": "Add constant for zip separator\n\nChange-Id: I1dcbb15ac612fc28e922eb3de8148fcaebbc0820\n"
    },
    {
      "commit": "b31409040f1766d92e76e72bbdc1b346f4bb9d8e",
      "tree": "4379498266c484db404114fe4dad4f556bf87059",
      "parents": [
        "e9774a5227749035dc55357ae3a34edaf545c3b3",
        "d11c3e5c3a7c28a7606e5ca9e52876be9772cc70"
      ],
      "author": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Wed Jul 15 23:22:38 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jul 15 23:22:39 2015 +0000"
      },
      "message": "Merge \"Replace spaces with tabs in a Makefile.\""
    },
    {
      "commit": "d11c3e5c3a7c28a7606e5ca9e52876be9772cc70",
      "tree": "4379498266c484db404114fe4dad4f556bf87059",
      "parents": [
        "e9774a5227749035dc55357ae3a34edaf545c3b3"
      ],
      "author": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Wed Jul 15 16:19:59 2015 -0700"
      },
      "committer": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Wed Jul 15 16:19:59 2015 -0700"
      },
      "message": "Replace spaces with tabs in a Makefile.\n\nSorry, I undertested my previous change and these guys somehow sneaked in.\nThis only affects SANITIZE_TARGET builds.\n\nChange-Id: Id6986d89fa3d4965339f7b6fe973e9db73b380da\n"
    },
    {
      "commit": "e9774a5227749035dc55357ae3a34edaf545c3b3",
      "tree": "3c84d89a588a465e7ba3b6f0fcb7ac5be8700861",
      "parents": [
        "60a11dcb44992f610e696fc246c70731012080dd",
        "d640b225ecdd6d2fb74076e9b80ce8afb42e31a0"
      ],
      "author": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Wed Jul 15 17:24:19 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jul 15 17:24:20 2015 +0000"
      },
      "message": "Merge \"A special linker for ASan executables.\""
    },
    {
      "commit": "d640b225ecdd6d2fb74076e9b80ce8afb42e31a0",
      "tree": "3c84d89a588a465e7ba3b6f0fcb7ac5be8700861",
      "parents": [
        "60a11dcb44992f610e696fc246c70731012080dd"
      ],
      "author": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Fri Jul 10 17:54:01 2015 -0700"
      },
      "committer": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Tue Jul 14 16:12:27 2015 -0700"
      },
      "message": "A special linker for ASan executables.\n\nSetup a /system/bin/linker_asan as a symlink to \"linker\".\nRead the linker name from PT_INTERP, and if it is linker_asan,\nswitch default library lookup paths to the ASan set, which\nstarts with the path to the instrumented libraries\n(/data/lib), followed by /system/lib as a fallback.\n\nThis ensures that ASan binaries prefer ASan libraries, when\navailable. This approach is way better then RPATH/RUNPATH and even\nbetter than LD_LIBRARY_PATH:\n- RUNPATH is per-DSO, while default paths are global.\n- LD_LIBRARY_PATH is overwritten by android_update_LD_LIBRARY_PATH.\n- neither RUNPATH nor LD_LIBRARY_PATH appear in\n  android_get_LD_LIBRARY_PATH which is used to build java.lang.path.\n  Having ASan libraries in java.lang.path is a good thing.\n\nBug: 22355945\nChange-Id: I1d2791fbf5740618f18f71a3ae3d873714669d3f\n"
    },
    {
      "commit": "60a11dcb44992f610e696fc246c70731012080dd",
      "tree": "b3a06732d25645c80f39f7931f80760afdc2b5a7",
      "parents": [
        "a8d82f126d1830ebee99e2622d08489a844e3e62",
        "91ce715af1a1a22f6b29f1218843f29a4d0b0e0b"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Jul 14 02:48:44 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jul 14 02:48:45 2015 +0000"
      },
      "message": "Merge \"Add test for an Android kernel bug about prctl.\""
    },
    {
      "commit": "91ce715af1a1a22f6b29f1218843f29a4d0b0e0b",
      "tree": "82270169532e97986264ad2a20890ebc233cc325",
      "parents": [
        "5e3dc45a16c63b716bc4b7bed2f5752b41a5d5d5"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Mon Jul 13 16:54:29 2015 -0700"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Mon Jul 13 19:15:38 2015 -0700"
      },
      "message": "Add test for an Android kernel bug about prctl.\n\nBug: 20017123\n\nChange-Id: I8c109a06999a8bffcc8e8298b04ee637bb67d878\n"
    },
    {
      "commit": "a8d82f126d1830ebee99e2622d08489a844e3e62",
      "tree": "ff1b619c2ba5a16670a65568debc0d97fb1eef74",
      "parents": [
        "5e3dc45a16c63b716bc4b7bed2f5752b41a5d5d5",
        "dda4fd4644b0ce06b78f1a612de98a73b6ca3d6b"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Jul 14 01:29:46 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jul 14 01:29:46 2015 +0000"
      },
      "message": "Merge \"Update to v3.18.18 kernel headers.\""
    },
    {
      "commit": "dda4fd4644b0ce06b78f1a612de98a73b6ca3d6b",
      "tree": "ff1b619c2ba5a16670a65568debc0d97fb1eef74",
      "parents": [
        "5e3dc45a16c63b716bc4b7bed2f5752b41a5d5d5"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Jul 13 17:21:18 2015 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Jul 13 17:21:18 2015 -0700"
      },
      "message": "Update to v3.18.18 kernel headers.\n\nChange-Id: I0a0f423bda89500ad8e13a80582f05ec8bc756ea\n"
    },
    {
      "commit": "5e3dc45a16c63b716bc4b7bed2f5752b41a5d5d5",
      "tree": "6f03d507355bd6a4f9496fe1e4e9d6e6637552da",
      "parents": [
        "147a50d06e1183e3f39f4f6d0fa28748b33d4aa9",
        "3a40a0000a2051bab284a220ed5dfa6d2978a744"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Jul 13 20:27:37 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jul 13 20:27:38 2015 +0000"
      },
      "message": "Merge \"Do not hold hash table lock while backtracing.\""
    },
    {
      "commit": "3a40a0000a2051bab284a220ed5dfa6d2978a744",
      "tree": "6f03d507355bd6a4f9496fe1e4e9d6e6637552da",
      "parents": [
        "147a50d06e1183e3f39f4f6d0fa28748b33d4aa9"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Sat Jul 11 22:47:06 2015 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Jul 13 13:18:31 2015 -0700"
      },
      "message": "Do not hold hash table lock while backtracing.\n\nThere is a deadlock if holding the hash table lock while trying to do\na backtrace. Change the code so that the hash table lock is only held\nwhile actually modifying either g_hash_table, or while modifying an\nentry from g_hash_table.\n\nBug: 22423683\n(cherry picked from commit 9fee99b06013787054a312449b94115038e2ad7c)\n\nChange-Id: I72173bfe6f824ceaceea625c24e7851b87467135\n"
    }
  ],
  "next": "147a50d06e1183e3f39f4f6d0fa28748b33d4aa9"
}
