)]}'
{
  "log": [
    {
      "commit": "f9f320ba73cbcd29c413ad52b8d681c65e2268a6",
      "tree": "c6071953584df47e957d150c14526cfb5a979541",
      "parents": [
        "4dde93a73aaabf2021b02f6ca96c6ac162262fa3",
        "3e0821d7c227060b83917c9071dc846851b3c7c8"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Mar 07 20:52:38 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 07 20:52:39 2017 +0000"
      },
      "message": "Merge \"loader: anonymous ns initialization is not required\""
    },
    {
      "commit": "3e0821d7c227060b83917c9071dc846851b3c7c8",
      "tree": "c6071953584df47e957d150c14526cfb5a979541",
      "parents": [
        "77ad64267c65fe876f27265ee91063810f5fe71a"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Mar 07 11:02:10 2017 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Mar 07 11:02:10 2017 -0800"
      },
      "message": "loader: anonymous ns initialization is not required\n\nAnonymous namesapce is zygote-specific workaround and\nis not really required for other binaries.\n\nThis change allows creating namespaces without initializing\nanonymous namespace.\n\nTest: bionic-unit-tests\nChange-Id: I62adc39ad69ce56b3760d36f45e3c0487c438598\n"
    },
    {
      "commit": "4dde93a73aaabf2021b02f6ca96c6ac162262fa3",
      "tree": "110f5fb24301524b9b4a49c6425429106602186c",
      "parents": [
        "cdf19c84e8c10f5afa079790e5a2b0a55a3599e9",
        "77ad64267c65fe876f27265ee91063810f5fe71a"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Mar 07 03:36:01 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 07 03:36:03 2017 +0000"
      },
      "message": "Merge \"Remove g_default_ld_paths global variable\""
    },
    {
      "commit": "77ad64267c65fe876f27265ee91063810f5fe71a",
      "tree": "110f5fb24301524b9b4a49c6425429106602186c",
      "parents": [
        "cdf19c84e8c10f5afa079790e5a2b0a55a3599e9"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Mar 06 13:02:29 2017 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Mar 06 13:02:29 2017 -0800"
      },
      "message": "Remove g_default_ld_paths global variable\n\nTest: boot, run bionic-unit-tests\nChange-Id: Id05d53475cbea6d62bd5fa1ab5e457ac82bab523\n"
    },
    {
      "commit": "cdf19c84e8c10f5afa079790e5a2b0a55a3599e9",
      "tree": "8467faf3b916c6c97859df5631505c18016bcf58",
      "parents": [
        "b7e8fe5412009ca5294bb468fb6c299dc7a6dd0c",
        "926add15934f0b1d71874c85c3f1b3930e68a2fd"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Mar 04 00:20:12 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Mar 04 00:20:13 2017 +0000"
      },
      "message": "Merge \"Generate both static and shared libseccomp_policy.\""
    },
    {
      "commit": "b7e8fe5412009ca5294bb468fb6c299dc7a6dd0c",
      "tree": "217c9cfa435a646e971f7f94364ce9933a93da44",
      "parents": [
        "c7dde49ab00b8c7ff9b31992a30b397047f631ab",
        "15d3fef0da03a8548fd25ec75381e86eea5c6882"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Mar 03 23:40:11 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 03 23:40:12 2017 +0000"
      },
      "message": "Merge \"Refactor the kernel update scripts.\""
    },
    {
      "commit": "c7dde49ab00b8c7ff9b31992a30b397047f631ab",
      "tree": "eafbd88105a92b2943e551ff4f840ca270a85441",
      "parents": [
        "5faa3166ce69d7ea710cee90e916f9d6611cbe07",
        "e6daf3f34a662f0faad748fe2556e12f01c9c019"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 03 21:02:42 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 03 21:02:42 2017 +0000"
      },
      "message": "Merge \"Expand whitelist\""
    },
    {
      "commit": "e6daf3f34a662f0faad748fe2556e12f01c9c019",
      "tree": "eafbd88105a92b2943e551ff4f840ca270a85441",
      "parents": [
        "5faa3166ce69d7ea710cee90e916f9d6611cbe07"
      ],
      "author": {
        "name": "Paul Lawrence",
        "email": "paullawrence@google.com",
        "time": "Fri Mar 03 11:14:45 2017 -0800"
      },
      "committer": {
        "name": "Paul Lawrence",
        "email": "paullawrence@google.com",
        "time": "Fri Mar 03 11:19:08 2017 -0800"
      },
      "message": "Expand whitelist\n\nBug: 35917228\nTest: App now runs fine with setenforce 0\nChange-Id: I039385e5d0e5105ec337c62dd098dd1662442a2e\n"
    },
    {
      "commit": "926add15934f0b1d71874c85c3f1b3930e68a2fd",
      "tree": "c1b9ac4cb26192d937c95ce6206d5383e6465e67",
      "parents": [
        "5faa3166ce69d7ea710cee90e916f9d6611cbe07"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 02 18:56:12 2017 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 02 18:57:44 2017 -0800"
      },
      "message": "Generate both static and shared libseccomp_policy.\n\nAlso switch to Android.bp\n\nBug: N/A\nTest: builds\nChange-Id: I33697a40b30d071f8d07aa33e1fb2b0c6e8a9f6d\n"
    },
    {
      "commit": "15d3fef0da03a8548fd25ec75381e86eea5c6882",
      "tree": "49c2f1e85deed4d19f4d4b42c62cb616d0fff18a",
      "parents": [
        "3f76dadf15aa8ca4f2eaf471a9a1f1c661b353c2"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Feb 24 12:26:48 2017 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Mar 02 15:21:42 2017 -0800"
      },
      "message": "Refactor the kernel update scripts.\n\nThe previous versions of the scripts did a lot of redundant changes\nand were hard to follow.\n\nI rewrote most of update_all.py so that it\u0027s clear about what\u0027s going on.\n\nI updated clean_header.py to change the cleanupFile function so that\nthere is no magic about where the destination file is going to wind up.\nNow the caller specifies the final location.\n\nI updated utils.py so that if you are trying to do an update in one\nlocation, but your lunch target is from another location, it causes\nan error.\n\nBug: 35726570\n\nChange-Id: Ic5a44d90c2774a627eecde34c0c403bc925a497c\nTest: Ran the updater and verified it works properly.\nTest: Verified that doing an update in one tree to another tree\nTest: fails.\n"
    },
    {
      "commit": "5faa3166ce69d7ea710cee90e916f9d6611cbe07",
      "tree": "7c9f1fafd94db972bb0ad06c8856e25f5a167086",
      "parents": [
        "9e10b7fa44f56ef44d7d3d1fb18b4e6ec6599d7c",
        "7b4e7c4d55a50b5b3fb23c0b79122b1147b6248b"
      ],
      "author": {
        "name": "Paul Lawrence",
        "email": "paullawrence@google.com",
        "time": "Thu Mar 02 18:48:46 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 02 18:48:47 2017 +0000"
      },
      "message": "Merge \"Expand whitelist\""
    },
    {
      "commit": "7b4e7c4d55a50b5b3fb23c0b79122b1147b6248b",
      "tree": "0e8ee55fc9d196ee9fb428c1d2491f9c5e9858c7",
      "parents": [
        "ebceea8e85ad2897a5ce8575b81f18fdd7aa0320"
      ],
      "author": {
        "name": "Paul Lawrence",
        "email": "paullawrence@google.com",
        "time": "Thu Mar 02 08:50:59 2017 -0800"
      },
      "committer": {
        "name": "Paul Lawrence",
        "email": "paullawrence@google.com",
        "time": "Thu Mar 02 18:48:13 2017 +0000"
      },
      "message": "Expand whitelist\n\nBug: 35906875\nTest: Device boots, app runs further and fails with different error\nChange-Id: I8df40ff85f8248504bca9a048510153970b31716\n"
    },
    {
      "commit": "9e10b7fa44f56ef44d7d3d1fb18b4e6ec6599d7c",
      "tree": "433d790ddfffcfb36b0b362e8c968ee2e6197a55",
      "parents": [
        "ebceea8e85ad2897a5ce8575b81f18fdd7aa0320",
        "4a92ffd3029e9e38c3a55222676a126db5a3b962"
      ],
      "author": {
        "name": "Victor Khimenko",
        "email": "khim@google.com",
        "time": "Wed Mar 01 21:31:03 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 01 21:31:04 2017 +0000"
      },
      "message": "Merge \"Stop using __system_property_area__\""
    },
    {
      "commit": "4a92ffd3029e9e38c3a55222676a126db5a3b962",
      "tree": "433d790ddfffcfb36b0b362e8c968ee2e6197a55",
      "parents": [
        "ebceea8e85ad2897a5ce8575b81f18fdd7aa0320"
      ],
      "author": {
        "name": "Victor Khimenko",
        "email": "khim@google.com",
        "time": "Wed Mar 01 20:36:13 2017 +0100"
      },
      "committer": {
        "name": "Victor Khimenko",
        "email": "khim@google.com",
        "time": "Wed Mar 01 20:43:42 2017 +0100"
      },
      "message": "Stop using __system_property_area__\n\nApparently that \"backdoor\" is no longer needed - the proper way is\nto reinitialize properties:\n    https://android-review.googlesource.com/#/c/181794/24/tests/system_properties_test.cpp\n\nAlso removes mentions of libnativehelper test (it no longer uses\n__system_property_area__) and removes useless \"extern\" declaration\n(actual use was removed long ago).\n\nTest: refactoring CL, existsing tests still pass\n\nBUG\u003d21852512\nBUG\u003d34114501\n\nChange-Id: I2223cab2fcb671ea180ad4470a7aba5c9cd20bd8\n"
    },
    {
      "commit": "ebceea8e85ad2897a5ce8575b81f18fdd7aa0320",
      "tree": "5d8e9b2b2a4b4a1d82f46a4175d2dc9ef0b098cb",
      "parents": [
        "d9e52fed2a4ea1f3fa0cd170347b2d835bd3b2cc",
        "4021909162c8371557baeff4520c1eddeba7318f"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Mar 01 00:39:05 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 01 00:39:06 2017 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Revert \"Make libc.so global\"\"\"\""
    },
    {
      "commit": "4021909162c8371557baeff4520c1eddeba7318f",
      "tree": "dd13df817ff9920da84aeea0477b6b98fe884bdc",
      "parents": [
        "2a4d892c7f14d849b5f349528ed2b921b19f5645"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Feb 28 21:04:30 2017 +0000"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Feb 28 21:05:34 2017 +0000"
      },
      "message": "Revert \"Revert \"Revert \"Make libc.so global\"\"\"\n\nThis reverts commit 2a4d892c7f14d849b5f349528ed2b921b19f5645.\n\nBug: http://b/35417197\nBug: http://b/35338922\nBug: http://b/35700074\nTest: manual\nChange-Id: Ib99d23d46664f3efa5be70213aa093b505e38775\n"
    },
    {
      "commit": "d9e52fed2a4ea1f3fa0cd170347b2d835bd3b2cc",
      "tree": "3c097689a37afded6165c86862e5571008b78c85",
      "parents": [
        "6e528631d1eb4779dc93098c696c3a18e6bcecfb",
        "dfe8434a6213b8a4c2ac10f91747e218c7c7b69e"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Feb 28 15:36:07 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 28 15:36:08 2017 +0000"
      },
      "message": "Merge \"Move seccomp policy to bionic\""
    },
    {
      "commit": "6e528631d1eb4779dc93098c696c3a18e6bcecfb",
      "tree": "4d6e702a032dfeb2bbe071f12ca614426323e432",
      "parents": [
        "ca1fda834f22adc061e4568d5a99bb50f238c94f",
        "35c8e3b1251af62897a9babd693e2b1be5676160"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Feb 28 00:42:54 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 28 00:42:55 2017 +0000"
      },
      "message": "Merge \"Fix greylist exception to account for linked namespaces\""
    },
    {
      "commit": "ca1fda834f22adc061e4568d5a99bb50f238c94f",
      "tree": "74e85e44f3cdbbf7844310c81d8027c6f50fd2d2",
      "parents": [
        "5f41ce25c60df2012b58846940dfac58dce50e59",
        "5c15b8cf43b21528dec09a98ce34b2753e696ba3"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Feb 27 22:22:26 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Feb 27 22:22:27 2017 +0000"
      },
      "message": "Merge \"Fix pre-L MB_CUR_MAX.\""
    },
    {
      "commit": "35c8e3b1251af62897a9babd693e2b1be5676160",
      "tree": "3cc1d7cfe239740c04f29d35058048bea7b47c9f",
      "parents": [
        "5f41ce25c60df2012b58846940dfac58dce50e59"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Feb 27 12:17:47 2017 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Feb 27 14:16:04 2017 -0800"
      },
      "message": "Fix greylist exception to account for linked namespaces\n\nDo not load second copy of libraries that are supposed to\nbe provided by linked namespaces. Also do not print\nerror in the log if caller tries to open shared library\nusing absolute path for apps targeting N+.\n\nBug: http://b/35454141\nBug: http://b/26833548\nBug: http://b/35338922\nTest: run bionic-unit-tests --gtest_filter\u003ddl*\nChange-Id: Icf3aeedff18d287d2ba0b3df3808b100f3ef5f7a\n"
    },
    {
      "commit": "dfe8434a6213b8a4c2ac10f91747e218c7c7b69e",
      "tree": "801625dd08fa7f7fd91e8697fb01ae5e7700e745",
      "parents": [
        "c712aedb0c44cce46a8a2097f5ab2b1fbde3cd4d"
      ],
      "author": {
        "name": "Paul Lawrence",
        "email": "paullawrence@google.com",
        "time": "Thu Feb 16 09:24:39 2017 -0800"
      },
      "committer": {
        "name": "Paul Lawrence",
        "email": "paullawrence@google.com",
        "time": "Mon Feb 27 12:42:39 2017 -0800"
      },
      "message": "Move seccomp policy to bionic\n\nTest: Built and checked booted\nChange-Id: Iaec1265fe5a55c4df90ab9e45b010ef36faf6bba\n"
    },
    {
      "commit": "5f41ce25c60df2012b58846940dfac58dce50e59",
      "tree": "7da7bb25ce3dceb8c5c0e2608a5135cd3bba6b49",
      "parents": [
        "c712aedb0c44cce46a8a2097f5ab2b1fbde3cd4d",
        "48af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Feb 27 20:09:54 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Feb 27 20:09:54 2017 +0000"
      },
      "message": "Merge \"Update to kernel headers v4.10.\""
    },
    {
      "commit": "c712aedb0c44cce46a8a2097f5ab2b1fbde3cd4d",
      "tree": "db80052b369d2cbc0edc2e5ed663e7a0f0bb02e6",
      "parents": [
        "d0ceac6441724314c527ed9715ac10917a48ce96",
        "98a53b7c74047fa67810ea4afbd44b46a0c67089"
      ],
      "author": {
        "name": "Paul Lawrence",
        "email": "paullawrence@google.com",
        "time": "Mon Feb 27 16:39:11 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Feb 27 16:39:12 2017 +0000"
      },
      "message": "Merge \"Revert \"Move seccomp policy to bionic\"\""
    },
    {
      "commit": "98a53b7c74047fa67810ea4afbd44b46a0c67089",
      "tree": "a4c31a877a4d3ff279ebfcdd32d9026714e114fd",
      "parents": [
        "06a32206c5430321dd3fc02b70acbf99383786c1"
      ],
      "author": {
        "name": "Paul Lawrence",
        "email": "paullawrence@google.com",
        "time": "Mon Feb 27 16:32:37 2017 +0000"
      },
      "committer": {
        "name": "Paul Lawrence",
        "email": "paullawrence@google.com",
        "time": "Mon Feb 27 16:36:18 2017 +0000"
      },
      "message": "Revert \"Move seccomp policy to bionic\"\n\nThis reverts commit 06a32206c5430321dd3fc02b70acbf99383786c1.\n\nReverting build-breaking change\n\nChange-Id: Ib3698bca8f905033a9c7f22bc2fa9f7e7bf75873\n"
    },
    {
      "commit": "d0ceac6441724314c527ed9715ac10917a48ce96",
      "tree": "897c79f4cb72c389578a9aace58853c9a312ce8b",
      "parents": [
        "78e6c4ec7c3c41831629c0e70fd97861d8c098c4",
        "06a32206c5430321dd3fc02b70acbf99383786c1"
      ],
      "author": {
        "name": "Paul Lawrence",
        "email": "paullawrence@google.com",
        "time": "Mon Feb 27 16:09:39 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Feb 27 16:09:39 2017 +0000"
      },
      "message": "Merge \"Move seccomp policy to bionic\""
    },
    {
      "commit": "78e6c4ec7c3c41831629c0e70fd97861d8c098c4",
      "tree": "db80052b369d2cbc0edc2e5ed663e7a0f0bb02e6",
      "parents": [
        "0b87362f5387f72a40357c1c94b7bb7eed48f249",
        "ba267f45d62f5b33a6bbb96147d88fbab017b4ef"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Feb 25 03:10:18 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Feb 25 03:10:19 2017 +0000"
      },
      "message": "Merge \"Add tests for \u003cendian.h\u003e.\""
    },
    {
      "commit": "0b87362f5387f72a40357c1c94b7bb7eed48f249",
      "tree": "a01de299412b73873f92ee40e8efd8a17c896985",
      "parents": [
        "3246b9d8aece17ff0fd75320e60d1bdbfe56af2c",
        "2a6955e040f24b31a2dfe829f47e35ac91733489"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Feb 25 02:24:28 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Feb 25 02:24:28 2017 +0000"
      },
      "message": "Merge \"loader: set PT_INTERP to itself\""
    },
    {
      "commit": "3246b9d8aece17ff0fd75320e60d1bdbfe56af2c",
      "tree": "68534d0c45514cac079df12a547085b60be500de",
      "parents": [
        "bf04e3c00d1d953072679d959efdf234a6378dca",
        "6391e1a44d4a183cb1fc092fc62c4e30f59429c5"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Feb 25 02:06:19 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Feb 25 02:06:19 2017 +0000"
      },
      "message": "Merge \"libc: __system_property_set uses writev to write atomically\""
    },
    {
      "commit": "bf04e3c00d1d953072679d959efdf234a6378dca",
      "tree": "ae8e26689ff992d3e5094644ca1a97a6dc19623e",
      "parents": [
        "5927b04ce7d9d4727a4a644f8af4040b8dab5d0a",
        "b876babd04fb8f59a83cac1ab8183f11e9fa9070"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Feb 25 02:02:02 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Feb 25 02:02:02 2017 +0000"
      },
      "message": "Merge \"Move __system_property_*_serial back to LIBC\""
    },
    {
      "commit": "2a6955e040f24b31a2dfe829f47e35ac91733489",
      "tree": "e91c30cf688ab2fd0d55546042d3496f489db7de",
      "parents": [
        "5927b04ce7d9d4727a4a644f8af4040b8dab5d0a"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Feb 23 11:53:43 2017 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Feb 24 16:56:38 2017 -0800"
      },
      "message": "loader: set PT_INTERP to itself\n\nSome versions of kernel set AT_BASE to 0\nif dynamic loader does not have PT_INTERP\nset.\n\nBug: http://b/30739481\nTest: run /system/bin/linker64 and /system/bin/linker\nChange-Id: I1b67777166fe917d3ee1a97277045ca6f5db0084\n"
    },
    {
      "commit": "ba267f45d62f5b33a6bbb96147d88fbab017b4ef",
      "tree": "60de02ea20e7b3aec2047c9891a711dde41c4fb6",
      "parents": [
        "5927b04ce7d9d4727a4a644f8af4040b8dab5d0a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 24 16:19:53 2017 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 24 16:19:53 2017 -0800"
      },
      "message": "Add tests for \u003cendian.h\u003e.\n\nAlso, for the stuff that\u0027s also in \u003cnetinet/in.h\u003e as real functions,\ncheck that they\u0027re there too (and as functions rather than macros,\nsince that was historically not true).\n\nBug: http://b/28432448\nTest: ran tests\nChange-Id: I7e4ae926f7e02de3b6dd38d1953e5b3b43d44f74\n"
    },
    {
      "commit": "b876babd04fb8f59a83cac1ab8183f11e9fa9070",
      "tree": "ae8e26689ff992d3e5094644ca1a97a6dc19623e",
      "parents": [
        "5927b04ce7d9d4727a4a644f8af4040b8dab5d0a"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Feb 24 15:36:17 2017 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Feb 24 16:11:14 2017 -0800"
      },
      "message": "Move __system_property_*_serial back to LIBC\n\nBug: http://b/35764972\nBug: http://b/34114501\nTest: make\nChange-Id: Ibbda0107d07c432110a0633de03259e39480fde4\n"
    },
    {
      "commit": "6391e1a44d4a183cb1fc092fc62c4e30f59429c5",
      "tree": "95d7fc5c55a2310babc87890d15f6f32c5edbcfd",
      "parents": [
        "5927b04ce7d9d4727a4a644f8af4040b8dab5d0a"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Feb 23 17:57:14 2017 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Feb 24 14:00:04 2017 -0800"
      },
      "message": "libc: __system_property_set uses writev to write atomically\n\n__system_property_set sometimes produces broken_pipe error\nwhen trying to write a property.\n\nThis change improves error messages and uses writev() instead\nof sequence of send() calls.\n\nBug: http://b/35381074\nTest: bionic-unit-tests --gtest_filter\u003dprop*\nChange-Id: I7a5b169c015db4e6b720370e58662de8206d1086\n"
    },
    {
      "commit": "06a32206c5430321dd3fc02b70acbf99383786c1",
      "tree": "4ab97e1808631a9a44e7d21ef81c81cdfbb59f83",
      "parents": [
        "36780784402d42c29eb116b54275d52a9e654efc"
      ],
      "author": {
        "name": "Paul Lawrence",
        "email": "paullawrence@google.com",
        "time": "Thu Feb 16 09:24:39 2017 -0800"
      },
      "committer": {
        "name": "Paul Lawrence",
        "email": "paullawrence@google.com",
        "time": "Fri Feb 24 12:52:19 2017 -0800"
      },
      "message": "Move seccomp policy to bionic\n\nTest: Built and checked booted\n\nChange-Id: If777eed75d5280c7a390399261e97125c04767b2\n"
    },
    {
      "commit": "5927b04ce7d9d4727a4a644f8af4040b8dab5d0a",
      "tree": "5ec387d3cee1308a0813ac4a1ef4f07a81f63dcb",
      "parents": [
        "5d0c1fcc8b50c040f8828db4b3bb9ba11f8f9447",
        "41a3a6f3cf36d626bb8ae474291bda58fc10aba2"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Feb 24 19:11:12 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 24 19:11:13 2017 +0000"
      },
      "message": "Merge \"Hide internal __system_property_* functions\""
    },
    {
      "commit": "5d0c1fcc8b50c040f8828db4b3bb9ba11f8f9447",
      "tree": "356089008fdef73010c8268c529588bd28d49cda",
      "parents": [
        "77463d81e6d75c9c8882f825563c6560864730ac",
        "963daed78044724547ff1c7c35b34a4d50a0b867"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Fri Feb 24 18:50:34 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 24 18:50:35 2017 +0000"
      },
      "message": "Merge \"Replace cxa_guard fences with acquire loads\""
    },
    {
      "commit": "77463d81e6d75c9c8882f825563c6560864730ac",
      "tree": "a660c1b4131e35fe6b5dc559263d4bc3fbcdd155",
      "parents": [
        "36780784402d42c29eb116b54275d52a9e654efc",
        "893fd97cdcfbb040c938acac42658c885da879ee"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 24 16:55:25 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 24 16:55:25 2017 +0000"
      },
      "message": "Merge \"Use \u003clinux/eventpoll.h\u003e to implement \u003csys/epoll.h\u003e.\""
    },
    {
      "commit": "36780784402d42c29eb116b54275d52a9e654efc",
      "tree": "a4c31a877a4d3ff279ebfcdd32d9026714e114fd",
      "parents": [
        "a936199ce037b51860b2697a99fd1bb6df37fd78",
        "fb5a6396dc44585ddafc2b978deda8e9d075433f"
      ],
      "author": {
        "name": "Pavel Labath",
        "email": "labath@google.com",
        "time": "Fri Feb 24 10:22:40 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 24 10:22:41 2017 +0000"
      },
      "message": "Merge \"Silence a compiler warning due to unused variable on mips\""
    },
    {
      "commit": "fb5a6396dc44585ddafc2b978deda8e9d075433f",
      "tree": "a4c31a877a4d3ff279ebfcdd32d9026714e114fd",
      "parents": [
        "a936199ce037b51860b2697a99fd1bb6df37fd78"
      ],
      "author": {
        "name": "Pavel Labath",
        "email": "labath@google.com",
        "time": "Fri Feb 24 10:14:13 2017 +0000"
      },
      "committer": {
        "name": "Pavel Labath",
        "email": "labath@google.com",
        "time": "Fri Feb 24 10:20:54 2017 +0000"
      },
      "message": "Silence a compiler warning due to unused variable on mips\n\noops, I did it again.\n\nTest: lunch mips \u0026\u0026 cd bionic \u0026\u0026 mma\nChange-Id: I1fe2cb847d0698b34766869f9626398dbcf81960\n"
    },
    {
      "commit": "a936199ce037b51860b2697a99fd1bb6df37fd78",
      "tree": "459ca857b3c11e2da47459561ead6d03692cb113",
      "parents": [
        "9eba112c3c6d45d42c953adf5d5125ac44d821d4",
        "3dad8d5d07e5d3eae75c6836d6f519c8b2c22e68"
      ],
      "author": {
        "name": "Pavel Labath",
        "email": "labath@google.com",
        "time": "Fri Feb 24 09:16:19 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 24 09:16:20 2017 +0000"
      },
      "message": "Merge \"Add \"imprecise\" watchpoint ptrace test\""
    },
    {
      "commit": "3dad8d5d07e5d3eae75c6836d6f519c8b2c22e68",
      "tree": "459ca857b3c11e2da47459561ead6d03692cb113",
      "parents": [
        "9eba112c3c6d45d42c953adf5d5125ac44d821d4"
      ],
      "author": {
        "name": "Pavel Labath",
        "email": "labath@google.com",
        "time": "Wed Feb 22 18:22:46 2017 +0000"
      },
      "committer": {
        "name": "Pavel Labath",
        "email": "labath@google.com",
        "time": "Fri Feb 24 09:16:06 2017 +0000"
      },
      "message": "Add \"imprecise\" watchpoint ptrace test\n\nThis tests for the presence of a kernel bug that meant that the kernel\nwould sometimes fail to report the watchpoint hit if the hardware\nreported a address which did not exactly match the address range being\nwatched (which it is allowed to do per ARM spec if the instruction\naccesses a larger block of memory than the region being watched). This\nbug was fixed in linux kernel 4.9, and has been backported to older\nandroid kernels.\n\nBug: 30802222\nBug: 30919905\nTest: bionic-unit-tests --gtest_filter\u003d\"sys_ptrace.*\"\nChange-Id: I80c35b29eaf28e2dbacb9e8ee5317fdea653fc87\n"
    },
    {
      "commit": "893fd97cdcfbb040c938acac42658c885da879ee",
      "tree": "0895bc2463681e35c48805993bbcc95c01b581e9",
      "parents": [
        "c84e8a507cd0384f9124d06ec6cc70807b4c293b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 22 23:22:51 2017 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 23 17:26:24 2017 -0800"
      },
      "message": "Use \u003clinux/eventpoll.h\u003e to implement \u003csys/epoll.h\u003e.\n\nBug: https://github.com/android-ndk/ndk/issues/302\nTest: builds\nChange-Id: Ia3074326a128c38f2488e342c028cc030801cfd9\n"
    },
    {
      "commit": "9eba112c3c6d45d42c953adf5d5125ac44d821d4",
      "tree": "833d939ade9d751e32e9e22c1454735a44915ab0",
      "parents": [
        "46c8a34a95da1bd6cd3db5e47ac42a223b6f91b6",
        "0b2486a3243c5723fedcd5f7be86e98e00dacacf"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Feb 23 23:54:34 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 23 23:54:34 2017 +0000"
      },
      "message": "Merge \"Expand whitelist\""
    },
    {
      "commit": "46c8a34a95da1bd6cd3db5e47ac42a223b6f91b6",
      "tree": "0dc3d090a6efd09ff0285f25b4ff8c056fb8788a",
      "parents": [
        "9dbfd8ad7f6528e7377d79671714e9e691bcb046",
        "b8a3ae4bcb0713a3e316a92939468212eefaa86d"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Feb 23 23:51:14 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 23 23:51:15 2017 +0000"
      },
      "message": "Merge \"versioner: fix darwin build.\""
    },
    {
      "commit": "41a3a6f3cf36d626bb8ae474291bda58fc10aba2",
      "tree": "d13f02dfa3b359e36980ae015cb190a695c7306c",
      "parents": [
        "7f24a4f5565f5392ade4edbd5583ee0a0b43570e"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Feb 16 15:34:21 2017 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Feb 23 14:20:13 2017 -0800"
      },
      "message": "Hide internal __system_property_* functions\n\nBug: http://b/34114501\nTest: bionic-unit-tests --gtest_filter\u003dprop*\nChange-Id: I1fc57b4ced6aaf841aad64e12e7696d25c2e027b\n"
    },
    {
      "commit": "9dbfd8ad7f6528e7377d79671714e9e691bcb046",
      "tree": "03be67a44bf2ce30f89625f95d0486f45e16cc88",
      "parents": [
        "7f24a4f5565f5392ade4edbd5583ee0a0b43570e",
        "4473e34acbd9b8f97f04dd52ac7ccd856370e6d1"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Feb 23 22:01:10 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 23 22:01:10 2017 +0000"
      },
      "message": "Merge \"Add legacy inlines for more termios stuff.\""
    },
    {
      "commit": "b8a3ae4bcb0713a3e316a92939468212eefaa86d",
      "tree": "08bb14f3f6511fb9beb03d7f0a45537dd71d6f1a",
      "parents": [
        "3f76dadf15aa8ca4f2eaf471a9a1f1c661b353c2"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Feb 23 13:52:49 2017 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Feb 23 13:52:49 2017 -0800"
      },
      "message": "versioner: fix darwin build.\n\nUse struct stat::st_mtime instead of the underlying st_mtim, which is\ncalled something different on Darwin.\n\nTest: mma on linux, darwin\nChange-Id: I2695a6c83ebb7d08ec56b1355e0f4bc0993a0acb\n"
    },
    {
      "commit": "7f24a4f5565f5392ade4edbd5583ee0a0b43570e",
      "tree": "8e8f6ed003191eec712f456b000b956d9aa023eb",
      "parents": [
        "bd15a909b56d4b885e43d0131d6afd3ec10f6992",
        "69c7562f5983ed5bc1d330b1f44b5cf506efb60e"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Feb 23 21:36:48 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 23 21:36:49 2017 +0000"
      },
      "message": "Merge \"Revert \"Run the versioner as part of the build.\"\""
    },
    {
      "commit": "69c7562f5983ed5bc1d330b1f44b5cf506efb60e",
      "tree": "c1d3b998d7001fd209a2efa004d31387b783b18b",
      "parents": [
        "45715b2a88c8daf5a721ce9b28391120f5507764"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Feb 23 21:30:35 2017 +0000"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Feb 23 21:30:35 2017 +0000"
      },
      "message": "Revert \"Run the versioner as part of the build.\"\n\nThis reverts commit 45715b2a88c8daf5a721ce9b28391120f5507764.\n\nReason for revert: Darwin sucks\n\nChange-Id: I004dd7fa5e14a43ffe04ace2f5a06341df61b8cd\n"
    },
    {
      "commit": "bd15a909b56d4b885e43d0131d6afd3ec10f6992",
      "tree": "a5b0d3f073d3dec621dd5d30730cc1486c002ecf",
      "parents": [
        "b2a74cda9074ad25e331e65464dbdc79e7971ffe",
        "45715b2a88c8daf5a721ce9b28391120f5507764"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Feb 23 21:06:47 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 23 21:06:47 2017 +0000"
      },
      "message": "Merge \"Run the versioner as part of the build.\""
    },
    {
      "commit": "0b2486a3243c5723fedcd5f7be86e98e00dacacf",
      "tree": "2d972b60268814c6c13b7a79751c3e319d238864",
      "parents": [
        "b2a74cda9074ad25e331e65464dbdc79e7971ffe"
      ],
      "author": {
        "name": "Paul Lawrence",
        "email": "paullawrence@google.com",
        "time": "Wed Feb 15 13:40:22 2017 -0800"
      },
      "committer": {
        "name": "Paul Lawrence",
        "email": "paullawrence@google.com",
        "time": "Thu Feb 23 13:04:39 2017 -0800"
      },
      "message": "Expand whitelist\n\nBug: 35217603\nTest: App no longer triggers seccomp exceptions when launched\nChange-Id: I8ea904640a2f14c67a075e593067327407766220\n"
    },
    {
      "commit": "b2a74cda9074ad25e331e65464dbdc79e7971ffe",
      "tree": "8e8f6ed003191eec712f456b000b956d9aa023eb",
      "parents": [
        "3f76dadf15aa8ca4f2eaf471a9a1f1c661b353c2",
        "7ea4090c65a02626b8aacaf44456af021937dd5e"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Feb 23 20:27:45 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 23 20:27:45 2017 +0000"
      },
      "message": "Merge \"Autogenerate single policy from syscalls and whitelist\""
    },
    {
      "commit": "963daed78044724547ff1c7c35b34a4d50a0b867",
      "tree": "e8293055d696d79e994e7094dfb58cce2957963f",
      "parents": [
        "c9a840ac76c7cdbe6028ac91cdb8eb6698f0a854"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Wed Feb 22 15:34:29 2017 -0800"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Thu Feb 23 11:50:58 2017 -0800"
      },
      "message": "Replace cxa_guard fences with acquire loads\n\nThis seemed to be the only place in bionic where a fence on a\nperformance-critical path could be easily replaced by a stronger\nload/store order constraint. Do so.\n\nOn x86 this should generate the same code either way. Based on\nmicrobenchmarks of the relevant ARM instructions, this is currently\nperformance-neutral in this kind of context. But in the future, the\nnewly generated acquire loads should give us a performance benefit.\n\nTest: Booted AOSP\nChange-Id: I7823e11d6ae4fd58e0425244c293262e2320fd81\n"
    },
    {
      "commit": "4473e34acbd9b8f97f04dd52ac7ccd856370e6d1",
      "tree": "2e05afe679d27eaad883e9c2a3bfd11fd2c74f33",
      "parents": [
        "45715b2a88c8daf5a721ce9b28391120f5507764"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Feb 23 11:09:32 2017 -0800"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Feb 23 11:09:32 2017 -0800"
      },
      "message": "Add legacy inlines for more termios stuff.\n\nTest: make checkbuild # with my versioner-in-build patches\nBug: https://github.com/android-ndk/ndk/issues/302\nChange-Id: Ib00b5dadf23592d101486b4f2188285ec03c9e2a\n"
    },
    {
      "commit": "45715b2a88c8daf5a721ce9b28391120f5507764",
      "tree": "aa84d609dfa6f143450372b85823549718c779d4",
      "parents": [
        "3f76dadf15aa8ca4f2eaf471a9a1f1c661b353c2"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed Feb 15 17:18:01 2017 -0800"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Feb 23 11:07:04 2017 -0800"
      },
      "message": "Run the versioner as part of the build.\n\nRunning this periodically and checking in the results is not working\nout, since the result is just that I\u0027m having to spend a lot of time\ncleaning up the headers every time I need to update them in the NDK.\n\nRun the versioner as part of the build instead. This way bionic\nheader changes behave like the rest of the NDK headers and will\naffect NDK builds in the platform *immediately*.\n\nRemove the preupload hook for the versioner since it\u0027s part of the\nnormal build now.\n\nThe versioner\u0027s dependencies directory needs to be moved because\nsoong won\u0027t let us try to do things outside our module\u0027s directory\n(in this case libc).\n\nUnfortunately this means we need to build the versioner for Darwin,\nbecause we now need it to perform a platform build.\n\nTest: make checkbuild\nBug: None\nChange-Id: Icdab8a962354d9e945072dc3f806baea376c8db4\n"
    },
    {
      "commit": "7ea4090c65a02626b8aacaf44456af021937dd5e",
      "tree": "4cc194a8adf63ef7569cf88fe69143d25ca1aa86",
      "parents": [
        "7b5245408499ef48afc8def662fcfab09683e1c4"
      ],
      "author": {
        "name": "Paul Lawrence",
        "email": "paullawrence@google.com",
        "time": "Tue Feb 14 13:32:23 2017 -0800"
      },
      "committer": {
        "name": "Paul Lawrence",
        "email": "paullawrence@google.com",
        "time": "Thu Feb 23 10:46:56 2017 -0800"
      },
      "message": "Autogenerate single policy from syscalls and whitelist\n\nBug: 35392119\nBug: 34465958\nTest: Check boots and same syscalls are blocked as before\n\nChange-Id: I9efa97032c59aebbbfd32e6f0d2d491f6254f0a2\n"
    },
    {
      "commit": "3f76dadf15aa8ca4f2eaf471a9a1f1c661b353c2",
      "tree": "c1d3b998d7001fd209a2efa004d31387b783b18b",
      "parents": [
        "c84e8a507cd0384f9124d06ec6cc70807b4c293b",
        "1862314dd43ccbedbb405b8b0a5d40086cf7d9ca"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Feb 23 17:11:18 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 23 17:11:19 2017 +0000"
      },
      "message": "Merge \"Add test for a greylisted library\""
    },
    {
      "commit": "1862314dd43ccbedbb405b8b0a5d40086cf7d9ca",
      "tree": "c1d3b998d7001fd209a2efa004d31387b783b18b",
      "parents": [
        "c84e8a507cd0384f9124d06ec6cc70807b4c293b"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Feb 21 13:41:08 2017 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Feb 23 00:03:42 2017 -0800"
      },
      "message": "Add test for a greylisted library\n\nTest: bionic-unit-tests --gtest_filter\u003ddlext.ns*\nBug: http://b/35338922\nChange-Id: I2f4895cb1ec458c2f565a7e4d06f7a1f6200e7aa\n"
    },
    {
      "commit": "c84e8a507cd0384f9124d06ec6cc70807b4c293b",
      "tree": "06886443d9cd3f22d94a2b5593dcc6044568a4d2",
      "parents": [
        "7009f40e52dfb79db2a93ba2cc369b189238cd32",
        "30a36273ab761fb07892f7816b4873b6c48a0cea"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Feb 23 03:29:42 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 23 03:29:43 2017 +0000"
      },
      "message": "Merge \"Cope with argv[0] being null in the dynamic linker.\""
    },
    {
      "commit": "7009f40e52dfb79db2a93ba2cc369b189238cd32",
      "tree": "cd56c251f1710652fad3b84121248a12071b42e0",
      "parents": [
        "c9a840ac76c7cdbe6028ac91cdb8eb6698f0a854",
        "5e2285d3ccdbb64a49ad2e5e521f50c897a3954d"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Feb 23 03:24:44 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 23 03:24:45 2017 +0000"
      },
      "message": "Merge \"Allocate thread local buffers in __init_tls.\""
    },
    {
      "commit": "30a36273ab761fb07892f7816b4873b6c48a0cea",
      "tree": "98b9470ffdf08c56244bb66f2e595d8fda498ede",
      "parents": [
        "c9a840ac76c7cdbe6028ac91cdb8eb6698f0a854"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 22 17:31:41 2017 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 22 17:37:52 2017 -0800"
      },
      "message": "Cope with argv[0] being null in the dynamic linker.\n\nSomewhat unsurprisingly, very few commands are happy to be run like this,\nin particular multiplexed commands like toybox. But that\u0027s no reason for\nthe linker to get in the way too.\n\nBug: http://b/33276926\nTest: new test\nChange-Id: I6dd71ea0183f4da83571039c2198ebb6ed38520e\n"
    },
    {
      "commit": "5e2285d3ccdbb64a49ad2e5e521f50c897a3954d",
      "tree": "cd56c251f1710652fad3b84121248a12071b42e0",
      "parents": [
        "c9a840ac76c7cdbe6028ac91cdb8eb6698f0a854"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Feb 22 12:19:05 2017 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Feb 22 16:05:03 2017 -0800"
      },
      "message": "Allocate thread local buffers in __init_tls.\n\nThread local buffers were using pthread_setspecific for storage with\nlazy initialization. pthread_setspecific shares TLS slots between the\nlinker and libc.so, so thread local buffers being initialized in a\ndifferent order between libc.so and the linker meant that bad things\nwould happen (manifesting as snprintf not working because the\nlocale was mangled)\n\nBug: http://b/20464031\nTest: /data/nativetest64/bionic-unit-tests/bionic-unit-tests\n      everything passes\nTest: /data/nativetest/bionic-unit-tests/bionic-unit-tests\n      thread_local tests are failing both before and after (KUSER_HELPERS?)\nTest: /data/nativetest64/bionic-unit-tests-static/bionic-unit-tests-static\n      no additional failures\nChange-Id: I9f445a77c6e86979f3fa49c4a5feecf6ec2b0c3f\n"
    },
    {
      "commit": "c9a840ac76c7cdbe6028ac91cdb8eb6698f0a854",
      "tree": "33427655e2794f197fa3cf55a72d9e3f3683034b",
      "parents": [
        "2cb4fb033f18353717373154aebd1eecd90f3dea",
        "40c885a4d18dd1e4480615ddd00c9f035dc08567"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Feb 22 01:43:30 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 22 01:43:31 2017 +0000"
      },
      "message": "Merge \"Add timeout support to __system_property_wait.\""
    },
    {
      "commit": "2cb4fb033f18353717373154aebd1eecd90f3dea",
      "tree": "cd2b90df1e7b51cc6d993590f0d488e3cdbd2bb2",
      "parents": [
        "40854235256c3f51f9ea866f5f8ef03240c00123",
        "6ce686c48bf6ec07a1e25b94bba7e9a3a6df4b49"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Feb 22 00:37:08 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 22 00:37:08 2017 +0000"
      },
      "message": "Merge \"Downgrade the special case of pthread_t(0) to a warning.\""
    },
    {
      "commit": "5c15b8cf43b21528dec09a98ce34b2753e696ba3",
      "tree": "de39eb2dad33ef21de00534f38e311415ac73112",
      "parents": [
        "40854235256c3f51f9ea866f5f8ef03240c00123"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Feb 21 15:54:58 2017 -0800"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Feb 21 15:56:37 2017 -0800"
      },
      "message": "Fix pre-L MB_CUR_MAX.\n\nThe default locale is POSIX, not C.UTF-8. POSIX explicitly states\nthat MB_CUR_MAX is 1 for the POSIX locale:\n\nhttp://pubs.opengroup.org/onlinepubs/9699919799/basedefs/stdlib.h.html\n\nTest: Made change in the NDK, built libc++ against it, ran NDK libc++\n      tests.\nBug: None\n\nChange-Id: Ic2f6f96aa4a7f20d619030f41323831d01002715\n"
    },
    {
      "commit": "48af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0",
      "tree": "e8d9f372688f7ae3660b49721e7808b8181a49b3",
      "parents": [
        "40854235256c3f51f9ea866f5f8ef03240c00123"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Feb 21 12:35:09 2017 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Feb 21 14:42:34 2017 -0800"
      },
      "message": "Update to kernel headers v4.10.\n\nTest: Built angler, booted on angler, ran bionic unit tests.\nChange-Id: Ia24511e74106116ea84b44ab724865ec492de8f9\n"
    },
    {
      "commit": "40c885a4d18dd1e4480615ddd00c9f035dc08567",
      "tree": "58adbfd0852a7bb1d51122339b6a00e27bb6bcaf",
      "parents": [
        "40854235256c3f51f9ea866f5f8ef03240c00123"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 16 17:13:04 2017 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 21 14:36:24 2017 -0800"
      },
      "message": "Add timeout support to __system_property_wait.\n\nBug: http://b/35201172\nTest: ran tests\nChange-Id: I3a78813bf3cd50d1b308ecb3c742f923606c0cc4\n"
    },
    {
      "commit": "6ce686c48bf6ec07a1e25b94bba7e9a3a6df4b49",
      "tree": "cd2b90df1e7b51cc6d993590f0d488e3cdbd2bb2",
      "parents": [
        "40854235256c3f51f9ea866f5f8ef03240c00123"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 21 13:15:20 2017 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 21 14:21:43 2017 -0800"
      },
      "message": "Downgrade the special case of pthread_t(0) to a warning.\n\nSo far this is the only issue we\u0027ve hit in vendor code, and we\u0027ve hit\nit several times already. Rather than try to fix bullhead (the current\nproblem), let\u0027s just admit that the special case of 0 is a lot less\nworrying.\n\nAlso fix the test expectations to correspond to the new abort message.\n\nBug: http://b/35455349 (crashes on 0)\nBug: http://b/35622944 (tests)\nTest: ran tests\nChange-Id: Iec57011fa699a954ebeaec151db2193e36d1ef35\n"
    },
    {
      "commit": "40854235256c3f51f9ea866f5f8ef03240c00123",
      "tree": "e2ef3037886de687bf939efe1b4d82aedd8995fc",
      "parents": [
        "bc645ef068018626ac9132cd355da08c1bb18b49",
        "b66a0038ca5c50185270f8a6f2ae67b2580c0833"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sun Feb 19 05:19:54 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sun Feb 19 05:19:56 2017 +0000"
      },
      "message": "Merge \"Fix a comment in the pthread_cond_t implementation.\""
    },
    {
      "commit": "b66a0038ca5c50185270f8a6f2ae67b2580c0833",
      "tree": "4f4138f985bd07a524539713ddc460a2c4d1a297",
      "parents": [
        "ff3197bcc24b0e3429e9a8cb032d5a9773afe3e1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Feb 18 16:35:36 2017 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Feb 18 16:35:36 2017 -0800"
      },
      "message": "Fix a comment in the pthread_cond_t implementation.\n\nBug: http://b/34592766\nTest: N/A\nChange-Id: I341f837dca52865ae5f8fe9ff50ba8999e297179\n"
    },
    {
      "commit": "bc645ef068018626ac9132cd355da08c1bb18b49",
      "tree": "7473af771ed5908a5eb51708c73015b56fcf859c",
      "parents": [
        "ff3197bcc24b0e3429e9a8cb032d5a9773afe3e1",
        "fbe54c4fe8c35294d60efbe0d1d6466211d4dc40"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Feb 18 00:50:47 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Feb 18 00:50:47 2017 +0000"
      },
      "message": "Merge \"Fix debug.ld for apps with long names and services\""
    },
    {
      "commit": "ff3197bcc24b0e3429e9a8cb032d5a9773afe3e1",
      "tree": "146ef06a2ae10f88b78a0126a9df62a8cd1a8db1",
      "parents": [
        "4731fbd6e0c222fe64f4c2518996d5df9baeb9b5",
        "2a4d892c7f14d849b5f349528ed2b921b19f5645"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Feb 18 00:18:26 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Feb 18 00:18:26 2017 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Make libc.so global\"\"\""
    },
    {
      "commit": "fbe54c4fe8c35294d60efbe0d1d6466211d4dc40",
      "tree": "8907096bc43e2620b552ffefac25185607181d09",
      "parents": [
        "fec0e015ce0369b3ad710547f3d6af343b2cd5e1"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Feb 17 14:41:30 2017 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Feb 17 14:57:34 2017 -0800"
      },
      "message": "Fix debug.ld for apps with long names and services\n\n1. There is no longer limit on property names - remove\n   the trimming the name of the property.\n2. Make debug.ld work for processes with names ending with \":something\"\n   This is naming convention for services:\n   https://developer.android.com/guide/components/services.html\n\nBug: http://b/35338922\nBug: http://b/33926793\nTest: manual - set ld.debug.app property for the app\nTest: from http://b/35338922 and see that it works\nTest: for the service as well.\nChange-Id: Ic7c6d4edce4a5a22f144496d5c0a3e458217c6e4\n"
    },
    {
      "commit": "2a4d892c7f14d849b5f349528ed2b921b19f5645",
      "tree": "4e010c7f493683d67d7d79d47923247ca0014a21",
      "parents": [
        "fec0e015ce0369b3ad710547f3d6af343b2cd5e1"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Feb 16 12:03:21 2017 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Feb 17 22:38:22 2017 +0000"
      },
      "message": "Revert \"Revert \"Make libc.so global\"\"\n\nThis reverts commit 65236d43e8e8ea2155c0d64e35f00b3c30b21147.\n\nBug: http://b/35417197\nBug: http://b/35338922\nTest: vogar --classpath out/target/common/obj/JAVA_LIBRARIES/core-tests_intermediates/classes.jack  --mode\u003ddevice --variant\u003dX32 dalvik.system.JniTest#testGetSuperclass\nChange-Id: Ibf3bb7396e7d11ebe95e2f9267d0fc4af3fbe8c5\n"
    },
    {
      "commit": "4731fbd6e0c222fe64f4c2518996d5df9baeb9b5",
      "tree": "f46dd61373b6cc94678d62678cba4d2aeb8850ed",
      "parents": [
        "ce958d7e5c5bc480b0948cfd002438abbd7fc3d1",
        "4c78ca7e3cf3f7fd4bc17001ae7576b6c6722036"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Feb 17 21:11:26 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 17 21:11:27 2017 +0000"
      },
      "message": "Merge \"Cleanup now that we don\u0027t need __NDK_FPABI__.\""
    },
    {
      "commit": "ce958d7e5c5bc480b0948cfd002438abbd7fc3d1",
      "tree": "3cc11394946d4ef23af3cbdced7389f05da4cff7",
      "parents": [
        "d11584665ce1a482133cd4e65460acde133d62a0",
        "3fed6ff847d0fb7409a2af4b00b6e47e1ad357ff"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Feb 17 20:44:43 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 17 20:44:44 2017 +0000"
      },
      "message": "Merge \"Include the pthread_t in the \"bad pthread_t\" fatal abort.\""
    },
    {
      "commit": "d11584665ce1a482133cd4e65460acde133d62a0",
      "tree": "641c4d3022952af5a017b0740cb3706702deb8ce",
      "parents": [
        "4509e0ec94b6310d13b9f06a122ec66acb224a10",
        "5e3fe9506c6021876442c70af347b3d87a5e36d9"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Feb 17 19:35:58 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 17 19:35:59 2017 +0000"
      },
      "message": "Merge \"Add tests for ptrace resumption behavior.\""
    },
    {
      "commit": "4c78ca7e3cf3f7fd4bc17001ae7576b6c6722036",
      "tree": "2ebf500f1c18dfcf5d36037fa5394df441a18159",
      "parents": [
        "fec0e015ce0369b3ad710547f3d6af343b2cd5e1"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Feb 17 11:08:53 2017 -0800"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Feb 17 11:08:53 2017 -0800"
      },
      "message": "Cleanup now that we don\u0027t need __NDK_FPABI__.\n\nTest: tools/update_headers.sh \u0026\u0026 make checkbuild\nBug: None\nChange-Id: I1b9986c4d7d5da349a8ad394e8fcf64b87c89fdf\n"
    },
    {
      "commit": "3fed6ff847d0fb7409a2af4b00b6e47e1ad357ff",
      "tree": "75df78857fe749447ac180111aa3f56534711cda",
      "parents": [
        "4509e0ec94b6310d13b9f06a122ec66acb224a10"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 17 10:27:45 2017 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 17 10:27:45 2017 -0800"
      },
      "message": "Include the pthread_t in the \"bad pthread_t\" fatal abort.\n\nAlso reword the message to be stronger.\n\nBug: http://b/35455349\nTest: manual\nChange-Id: I8f34fd42f3b635c95a7b921645a016fb303ce3ad\n"
    },
    {
      "commit": "4509e0ec94b6310d13b9f06a122ec66acb224a10",
      "tree": "230961212a119ac9a07e30e9d668d4deaf883208",
      "parents": [
        "fec0e015ce0369b3ad710547f3d6af343b2cd5e1",
        "ec0dbc3782c009329a6cbe9013d34c4423fc0f3b"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Feb 16 23:11:51 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 16 23:11:52 2017 +0000"
      },
      "message": "Merge changes from topic \u0027debuggerd_inproc\u0027\n\n* changes:\n  linker: use fallback crash handler dumping.\n  linker: add android_use_fallback_allocator.\n"
    },
    {
      "commit": "5e3fe9506c6021876442c70af347b3d87a5e36d9",
      "tree": "4851ae048919d8908c62c066e1039dd37687c67c",
      "parents": [
        "7b5245408499ef48afc8def662fcfab09683e1c4"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Feb 16 14:12:41 2017 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Feb 16 14:15:42 2017 -0800"
      },
      "message": "Add tests for ptrace resumption behavior.\n\nAdd tests that ensure that the kernel behaves properly w.r.t.\nresumption of ptraced processes when the tracer dies.\n\nBug: http://b/34516140\nTest: /data/nativetest/bionic-unit-tests/bionic-unit-tests --gtest_filter\u003d\"PtraceResumption*\"\nChange-Id: Id35e069a7e5edd6964637dd3f6358ad59db19792\n"
    },
    {
      "commit": "fec0e015ce0369b3ad710547f3d6af343b2cd5e1",
      "tree": "dd13df817ff9920da84aeea0477b6b98fe884bdc",
      "parents": [
        "10a441bfcdc316dd3a73d6d571fc5c3be109a144",
        "273991ceadac558ba3bca5238d81833a7b34cb2d"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Feb 16 03:42:50 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 16 03:42:53 2017 +0000"
      },
      "message": "Merge \"Add __libc_format_buffer_va_list.\""
    },
    {
      "commit": "10a441bfcdc316dd3a73d6d571fc5c3be109a144",
      "tree": "b4e59da798a4f613507a79072eabbaaa995fa447",
      "parents": [
        "606ba2762e6d1062a2cbf4599b7bdb60ce5cc404",
        "bcc4da9b752f0def46d63ed7b31f3f49cc2435ad"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Feb 16 02:15:54 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 16 02:15:55 2017 +0000"
      },
      "message": "Merge \"Unify linker files under one license (BSD)\""
    },
    {
      "commit": "ec0dbc3782c009329a6cbe9013d34c4423fc0f3b",
      "tree": "9fd613eb2c44ff8f9dfab0cbeba0d87f653e60de",
      "parents": [
        "9ccccc1a952c7abc99f5d912878b751d114c99bd"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Feb 08 17:27:20 2017 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Feb 15 17:00:31 2017 -0800"
      },
      "message": "linker: use fallback crash handler dumping.\n\nBug: http://b/34684590\nTest: mma\nChange-Id: I0801a83768f172308339ab2118e492b5df96acd0\n"
    },
    {
      "commit": "9ccccc1a952c7abc99f5d912878b751d114c99bd",
      "tree": "9d5016c3cd885a036cf34b868a035d920f8e549a",
      "parents": [
        "273991ceadac558ba3bca5238d81833a7b34cb2d"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Feb 09 10:54:44 2017 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Feb 15 17:00:16 2017 -0800"
      },
      "message": "linker: add android_use_fallback_allocator.\n\nAdd a function to enable a fallback allocator to use for crash handling\nin a signal handler.\n\nBug: http://b/34684590\nTest: crasher PR_SET_NO_NEW_PRIVS\nChange-Id: Ifa5de636164f34b8cb2fdec4471c20f8516b6dbe\n"
    },
    {
      "commit": "273991ceadac558ba3bca5238d81833a7b34cb2d",
      "tree": "fd37f96c94c5e26bceb0b5538cd29ffb1a77da38",
      "parents": [
        "7b5245408499ef48afc8def662fcfab09683e1c4"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Feb 15 11:46:55 2017 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Feb 15 16:10:37 2017 -0800"
      },
      "message": "Add __libc_format_buffer_va_list.\n\nBug: http://b/35367169\nTest: m\nChange-Id: I133f231d3b93bdef56d06497679320a89c7188a9\n"
    },
    {
      "commit": "bcc4da9b752f0def46d63ed7b31f3f49cc2435ad",
      "tree": "b4e59da798a4f613507a79072eabbaaa995fa447",
      "parents": [
        "606ba2762e6d1062a2cbf4599b7bdb60ce5cc404"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Feb 15 15:31:13 2017 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Feb 15 15:35:33 2017 -0800"
      },
      "message": "Unify linker files under one license (BSD)\n\nHistorically we had part of the linker licensed under BSD and\nanother part under Apache 2 license. This commit makes all the\nlinker code licensed under BSD license.\n\nTest: m\nChange-Id: I11b8163ae75966b5768d3fe992679de376106515\n"
    },
    {
      "commit": "606ba2762e6d1062a2cbf4599b7bdb60ce5cc404",
      "tree": "27dd5ef42c128c4c8dca99f48b0f96ac58f0ac44",
      "parents": [
        "c54937b9726b7d7ca797f47bef249a31e306f267",
        "9c2094f3c527301068f2049eefd9e684a7995352"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Feb 15 19:14:49 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 15 19:14:50 2017 +0000"
      },
      "message": "Merge changes I9d06ea8a,I2d157024\n\n* changes:\n  Fixup API level guards for new fortify functions.\n  Guard the GNU strerror_r with an API check.\n"
    },
    {
      "commit": "c54937b9726b7d7ca797f47bef249a31e306f267",
      "tree": "55bae87a1a408a8a63217cf8a01ede792b54475d",
      "parents": [
        "7b5245408499ef48afc8def662fcfab09683e1c4",
        "95b59c520b24aabcdc63b93a3f1eaf73e57a3afe"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Feb 15 18:26:49 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 15 18:26:50 2017 +0000"
      },
      "message": "Merge \"add fortified implementations of send/sendto\""
    },
    {
      "commit": "9c2094f3c527301068f2049eefd9e684a7995352",
      "tree": "e5c03a364d9abadd8c2d0cc63e865e81d4cfc4c2",
      "parents": [
        "8b154b1e8233e1d34a6a66b72369f05f8655b653"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Feb 14 19:28:18 2017 -0800"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Feb 14 22:22:13 2017 -0800"
      },
      "message": "Fixup API level guards for new fortify functions.\n\nTest: tools/update_headers.sh \u0026\u0026 make checkbuild\nBug: None\nChange-Id: I9d06ea8a5ee9dc27d957f59e6e84150651ed1c76\n"
    },
    {
      "commit": "8b154b1e8233e1d34a6a66b72369f05f8655b653",
      "tree": "dd79c943d9db486842c8e4402cbd529ea2066f1d",
      "parents": [
        "9fc52deab1c6bec6a37860242eafe1ae4c205e44"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Feb 14 16:33:06 2017 -0800"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Feb 14 19:29:31 2017 -0800"
      },
      "message": "Guard the GNU strerror_r with an API check.\n\nThe deprecated headers have always had only the POSIX definition\navailable (and it\u0027s always been available). With the unified headers\nas they are now, we actually make it unavailable for C++ users (C++\nimplies _GNU_SOURCE) targeting below M. Adding this guard means that\npre-M users will still at least get the POSIX one.\n\nIt\u0027s not great that moving to M as your target API will actually\nchange the signature of your strerror_r, but I don\u0027t see a better\noption here (not until we have the compatibility library, anyway).\n\nTest: make checkbuild\nBug: None\nChange-Id: I2d15702467533a826c4ec10fd973ee929d2b562a\n"
    },
    {
      "commit": "95b59c520b24aabcdc63b93a3f1eaf73e57a3afe",
      "tree": "76e43d9ec4f387c5774508c9e6c9d728a21c8052",
      "parents": [
        "9fc52deab1c6bec6a37860242eafe1ae4c205e44"
      ],
      "author": {
        "name": "Daniel Micay",
        "email": "danielmicay@gmail.com",
        "time": "Mon Feb 13 17:27:59 2017 -0800"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Tue Feb 14 15:50:28 2017 -0800"
      },
      "message": "add fortified implementations of send/sendto\n\nBug: None\nTest: Bullhead builds+boots; CtsBionicTestCases passes.\nChange-Id: I2f137a100f679f7f2145d84b2f29ddd3e96a36ae\n"
    },
    {
      "commit": "7b5245408499ef48afc8def662fcfab09683e1c4",
      "tree": "e5c3d9a40427a7eed3373c0e97f3ec89973ff3e1",
      "parents": [
        "e7ea7612f91081c3524057ef608520fd2f740e38",
        "125f1c0f224e2e50ea285ed184789765ce12feee"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Feb 14 23:08:12 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 14 23:08:13 2017 +0000"
      },
      "message": "Merge \"Add details on why AT_SYMLINK_NOFOLLOW is dangerous\""
    },
    {
      "commit": "e7ea7612f91081c3524057ef608520fd2f740e38",
      "tree": "0aaf2ee57dc265bf53097955e813442269d3ab8e",
      "parents": [
        "03709055024a84d319404dd23181fd1576ee5b59",
        "65236d43e8e8ea2155c0d64e35f00b3c30b21147"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Feb 14 22:40:58 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 14 22:40:58 2017 +0000"
      },
      "message": "Merge \"Revert \"Make libc.so global\"\""
    },
    {
      "commit": "125f1c0f224e2e50ea285ed184789765ce12feee",
      "tree": "d573ff4a994ab4fa046bf36de2e7132b72d6fbc6",
      "parents": [
        "03709055024a84d319404dd23181fd1576ee5b59"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Feb 14 09:49:30 2017 -0800"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Feb 14 12:55:15 2017 -0800"
      },
      "message": "Add details on why AT_SYMLINK_NOFOLLOW is dangerous\n\nThe comment isn\u0027t helpful as-is. Provide some clarifying information.\n\nTest: code compiles. No functional changes.\nChange-Id: I5267e0bc68857fdc8a4b3384a2a1b0d37693ee6e\n"
    },
    {
      "commit": "65236d43e8e8ea2155c0d64e35f00b3c30b21147",
      "tree": "720378e423a3c702358bb4341f93e8e9517d625f",
      "parents": [
        "879177c9e12df4efe9f17ff3536005c258f625e8"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Feb 14 19:03:26 2017 +0000"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Feb 14 19:03:26 2017 +0000"
      },
      "message": "Revert \"Make libc.so global\"\n\nThis reverts commit 879177c9e12df4efe9f17ff3536005c258f625e8.\n\nBug: http://b/26833548\nChange-Id: I23e0b34777d18e369063185da14c57994807da29\n"
    },
    {
      "commit": "03709055024a84d319404dd23181fd1576ee5b59",
      "tree": "e94707636d516c30c421707f315a946345ddb3f4",
      "parents": [
        "ade3be476fa918ea4e412f584e1e941260a7205c",
        "11859d467c035081f8acafeaf0184b670cd41c48"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 14 18:32:18 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 14 18:32:18 2017 +0000"
      },
      "message": "Merge \"Be more strict about using invalid `pthread_t`s.\""
    },
    {
      "commit": "ade3be476fa918ea4e412f584e1e941260a7205c",
      "tree": "7042787c47c8ed0c40361e33b3b5f8ddf9a2542b",
      "parents": [
        "9fc52deab1c6bec6a37860242eafe1ae4c205e44",
        "a0d374d587ec18d437d0dd15ba1332aceaa188af"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Feb 14 03:48:23 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 14 03:48:26 2017 +0000"
      },
      "message": "Merge \"Add __system_property_wait and return the serial in __system_property_read_callback.\""
    },
    {
      "commit": "11859d467c035081f8acafeaf0184b670cd41c48",
      "tree": "36afb3b9c9bbff69d83945e7ab08b7687908f74c",
      "parents": [
        "132768084e24119c337e56fd110b97a23e5593c2"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 13 17:59:29 2017 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 13 17:59:29 2017 -0800"
      },
      "message": "Be more strict about using invalid `pthread_t`s.\n\nAnother release, another attempt to remove the global thread list.\n\nBut this time, let\u0027s admit that it\u0027s not going away. We can switch to using\na read/write lock for the global thread list, and to aborting rather than\nquietly returning ESRCH if we\u0027re given an invalid pthread_t.\n\nThis change affects pthread_detach, pthread_getcpuclockid,\npthread_getschedparam/pthread_setschedparam, pthread_join, and pthread_kill:\ninstead of returning ESRCH when passed an invalid pthread_t, if you\u0027re\ntargeting O or above, they\u0027ll abort with the message \"attempt to use\ninvalid pthread_t\".\n\nNote that this doesn\u0027t change behavior as much as you might think: the old\nlookup only held the global thread list lock for the duration of the lookup,\nso there was still a race between that and the dereference in the caller,\ngiven that callers actually need the tid to pass to some syscall or other,\nand sometimes update fields in the pthread_internal_t struct too.\n\n(This patch replaces such users with calls to pthread_gettid_np, which\nat least makes the TOCTOU window smaller.)\n\nWe can\u0027t check thread-\u003etid against 0 to see whether a pthread_t is still\nvalid because a dead thread gets its thread struct unmapped along with its\nstack, so the dereference isn\u0027t safe.\n\nTaking the affected functions one by one:\n\n    * pthread_getcpuclockid and pthread_getschedparam/pthread_setschedparam\n      should be fine. Unsafe calls to those seem highly unlikely.\n\n    * Unsafe pthread_detach callers probably want to switch to\n      pthread_attr_setdetachstate instead, or using\n      pthread_detach(pthread_self()) from the new thread\u0027s start routine\n      rather than doing the detach in the parent.\n\n    * pthread_join calls should be safe anyway, because a joinable thread\n      won\u0027t actually exit and unmap until it\u0027s joined. If you\u0027re joining an\n      unjoinable thread, the fix is to stop marking it detached. If you\u0027re\n      joining an already-joined thread, you need to rethink your design.\n\n    * Unsafe pthread_kill calls aren\u0027t portably fixable. (And are obviously\n      inherently non-portable as-is.) The best alternative on Android is to\n      use pthread_gettid_np at some point that you know the thread to be\n      alive, and then call kill/tgkill directly.\n\n      That\u0027s still not completely safe because if you\u0027re too late, the tid\n      may have been reused, but then your code is inherently unsafe anyway.\n\nBug: http://b/19636317\nTest: ran tests\nChange-Id: I0372c4428e8a7f1c3af5c9334f5d9c25f2c73f21\n"
    },
    {
      "commit": "9fc52deab1c6bec6a37860242eafe1ae4c205e44",
      "tree": "e751953e0b02f5c94afa5556815345e295cdf2e9",
      "parents": [
        "5b74e9b2f5792621b51d9b5f16296807eac7d88e",
        "3b236ae2947e9782403cf35046f1eb04be456ac9"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Feb 13 21:43:48 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Feb 13 21:43:49 2017 +0000"
      },
      "message": "Merge \"Do not use std::vector in android_namespace_t::is_accessible\""
    }
  ],
  "next": "a0d374d587ec18d437d0dd15ba1332aceaa188af"
}
