)]}'
{
  "log": [
    {
      "commit": "29ee6397a844e2d88f776f5c0b4e656e58df9840",
      "tree": "078285424dafe2647378eb79e5b039c9572d439f",
      "parents": [
        "c4eef1fb5ba325317e94b598c6fbf8e4c4bf83e1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Dec 07 11:07:15 2015 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Dec 07 11:07:15 2015 -0800"
      },
      "message": "Fix stdio static initializers to make both clang and GCC happy.\n\nPreviously only clang was happy. GCC said:\n\n  error: missing initializer for field \u0027wcio_mbstate_in\u0027 of \u0027struct wchar_io_data\u0027\n\nChange-Id: I25a11b64f4dfa22a5dd5daded152191fe2cfacaf\n"
    },
    {
      "commit": "c4eef1fb5ba325317e94b598c6fbf8e4c4bf83e1",
      "tree": "dd7dda51f453cea0bab7af135afa2b08e1140d84",
      "parents": [
        "e371ae68ac0d6d39cacf5edc893bda2f4a61e883",
        "bb46afd6c44a847efe96e30d72708fd2d0906e8c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Dec 07 18:19:07 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Dec 07 18:19:07 2015 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Remove __sinit and __sdidinit.\"\"\""
    },
    {
      "commit": "bb46afd6c44a847efe96e30d72708fd2d0906e8c",
      "tree": "9223b0b3f481341e36fc054e7209de3ec088a579",
      "parents": [
        "0d89913e74981cd51532e66a2e2f138392be4de1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Dec 04 18:03:12 2015 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Dec 05 07:30:59 2015 -0800"
      },
      "message": "Revert \"Revert \"Remove __sinit and __sdidinit.\"\"\n\nThis reverts commit c8bae05f3ff9f1c736f7be70fa17d02795d748bb.\n\nWe were breaking init (ueventd) because we initialize system properties\nbefore we initialize stdio. The new system property implementation uses\nstdio to read from /property_contexts, so we end up touching stdio data\nstructures before they\u0027ve been initialized.\n\nThis second attempt takes things further by removing the stdio initialization\nfunction altogether. The data structures for stdin/stdout/stderr can be\nstatically initialized as data, and -- since we already had to give the\natexit implementation a backdoor for stdio -- we can just admit that we\nneed to clean up stdio, and that we always do so last.\n\nThis patch also removes the 17 statically pre-allocated file structures,\nso the first fopen will now allocate a block of 10 (the usual overflow\nbehavior). I did this just to make my life simpler, but it\u0027s not actually\nnecessary to remove it if we want it back.\n\nChange-Id: I936b2eb5e88e4ebaf5516121872b71fc88e5609c\n"
    },
    {
      "commit": "e371ae68ac0d6d39cacf5edc893bda2f4a61e883",
      "tree": "ed4a145da1fa0d684b7cc88d49ea8e094f3a5a1a",
      "parents": [
        "0d89913e74981cd51532e66a2e2f138392be4de1",
        "22840aab47763c88598b32d1edcac4d8b3ef21f0"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Sat Dec 05 05:25:57 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Dec 05 05:25:57 2015 +0000"
      },
      "message": "Merge \"Allow dlopening public libs using absolute path\""
    },
    {
      "commit": "22840aab47763c88598b32d1edcac4d8b3ef21f0",
      "tree": "b2b4abd050aa78b1309b0ef6d76a4dc6c8abd8f0",
      "parents": [
        "2452cf3c332fdfdae6b6b27b57acaa6786a91c87"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Dec 04 18:28:49 2015 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Dec 04 21:21:35 2015 -0800"
      },
      "message": "Allow dlopening public libs using absolute path\n\ndlopen on isolated namespaces should be able to open\npublic libraries using absolute path not only soname.\n\nBug: http://b/25853820\nChange-Id: If574a67853dc51226f0f376e9e2d108316002f84\n"
    },
    {
      "commit": "0d89913e74981cd51532e66a2e2f138392be4de1",
      "tree": "66de08608fd3b91963a647f70c7e0cfa65eaea07",
      "parents": [
        "4ade5195f188b84ce3599c71ef058d040b141da4",
        "c8bae05f3ff9f1c736f7be70fa17d02795d748bb"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Dec 05 01:53:21 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Dec 05 01:53:21 2015 +0000"
      },
      "message": "Merge \"Revert \"Remove __sinit and __sdidinit.\"\""
    },
    {
      "commit": "c8bae05f3ff9f1c736f7be70fa17d02795d748bb",
      "tree": "66de08608fd3b91963a647f70c7e0cfa65eaea07",
      "parents": [
        "4ade5195f188b84ce3599c71ef058d040b141da4"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Dec 04 17:47:20 2015 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Dec 04 17:47:20 2015 -0800"
      },
      "message": "Revert \"Remove __sinit and __sdidinit.\"\n\nThis reverts commit 4371961e00ad83fca033992c8a19c7d262fe6f84.\n\nThis broke booting; ueventd crashes with a null pointer dereference\nsomewhere in __sfp (but the kernel doesn\u0027t unwind, so I don\u0027t know\nwhat was calling __sfp).\n\nChange-Id: I65375fdfdf1d339a06558b4057b580cacd6324e2\n"
    },
    {
      "commit": "4ade5195f188b84ce3599c71ef058d040b141da4",
      "tree": "117d9a8ada047bad24b3cf0e0aa55394f873d930",
      "parents": [
        "ef2ba3dbf986257ded12531fe15bf0d1d4a87d50",
        "21eadee6e97c08485c9ec52a8f44cabd4261bf4a"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Sat Dec 05 00:21:46 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Dec 05 00:21:46 2015 +0000"
      },
      "message": "Merge \"Do not create prop files for ctl.* properties\""
    },
    {
      "commit": "21eadee6e97c08485c9ec52a8f44cabd4261bf4a",
      "tree": "d2ea6f70043e7651890534babfd9529875d9f901",
      "parents": [
        "0b40c13a5a2da127cb1203d33a3d170671b39247"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Fri Dec 04 15:53:25 2015 -0800"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Fri Dec 04 15:55:32 2015 -0800"
      },
      "message": "Do not create prop files for ctl.* properties\n\nChange-Id: Ia6660c68c9e0cb89938751dbc0747ee038394778\n"
    },
    {
      "commit": "ef2ba3dbf986257ded12531fe15bf0d1d4a87d50",
      "tree": "b1b3d6c1803633dc0dadaff8b6d9bacfec158d4b",
      "parents": [
        "0b40c13a5a2da127cb1203d33a3d170671b39247",
        "8766edc098304436a8b2b1b01ef01b9401918d54"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Dec 04 23:54:15 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 04 23:54:15 2015 +0000"
      },
      "message": "Merge \"Fix GCC build.\""
    },
    {
      "commit": "8766edc098304436a8b2b1b01ef01b9401918d54",
      "tree": "b1b3d6c1803633dc0dadaff8b6d9bacfec158d4b",
      "parents": [
        "0b40c13a5a2da127cb1203d33a3d170671b39247"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Dec 04 15:53:25 2015 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Dec 04 15:53:25 2015 -0800"
      },
      "message": "Fix GCC build.\n\n  error: \u0027__sdidinit\u0027 initialized and declared \u0027extern\u0027 [-Werror]\n\nChange-Id: I97d9c174da6a99ca61b72572dfb4694813372a60\n"
    },
    {
      "commit": "0b40c13a5a2da127cb1203d33a3d170671b39247",
      "tree": "aca21447754ac507be1d20a7afba02deb65ea4db",
      "parents": [
        "2558b112300e0a27590b9e31f627fe94594fa6a0",
        "939a7e01197858fdb8463bb5a8284ba501a3e882"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Dec 04 23:30:09 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 04 23:30:09 2015 +0000"
      },
      "message": "Merge \"Track rename from base/ to android-base/.\""
    },
    {
      "commit": "939a7e01197858fdb8463bb5a8284ba501a3e882",
      "tree": "aca21447754ac507be1d20a7afba02deb65ea4db",
      "parents": [
        "2558b112300e0a27590b9e31f627fe94594fa6a0"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Dec 04 15:27:46 2015 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Dec 04 15:27:46 2015 -0800"
      },
      "message": "Track rename from base/ to android-base/.\n\nChange-Id: I0a4592945400b1fa6892bf7c1fa8659fd711efa3\n"
    },
    {
      "commit": "2558b112300e0a27590b9e31f627fe94594fa6a0",
      "tree": "0358d61d7b6559672c444dfb3b09a1dd1a751823",
      "parents": [
        "136bf8fa45b243b56a8f2543d43970f253118cd7",
        "4371961e00ad83fca033992c8a19c7d262fe6f84"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Dec 04 23:27:07 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 04 23:27:07 2015 +0000"
      },
      "message": "Merge \"Remove __sinit and __sdidinit.\""
    },
    {
      "commit": "136bf8fa45b243b56a8f2543d43970f253118cd7",
      "tree": "229abd75c12e808b76cdbed10eeeda4b6afb0316",
      "parents": [
        "2452cf3c332fdfdae6b6b27b57acaa6786a91c87",
        "6ed51c0e8542922f8ceb2659a7921e0af096d734"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Fri Dec 04 23:06:31 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 04 23:06:31 2015 +0000"
      },
      "message": "Merge \"add checks for initialization for system properties\""
    },
    {
      "commit": "6ed51c0e8542922f8ceb2659a7921e0af096d734",
      "tree": "229abd75c12e808b76cdbed10eeeda4b6afb0316",
      "parents": [
        "2452cf3c332fdfdae6b6b27b57acaa6786a91c87"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Fri Dec 04 11:34:42 2015 -0800"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Fri Dec 04 13:26:47 2015 -0800"
      },
      "message": "add checks for initialization for system properties\n\nIf a __system_property* function is called before\n__system_properties_init() then the app will will abort.  This commit\nreturns either an error code or a safe return value instead.\n\nBug 26027140\n\nChange-Id: I95ffd143e9563658ab67a397991e84fb4c46ab77\n"
    },
    {
      "commit": "2452cf3c332fdfdae6b6b27b57acaa6786a91c87",
      "tree": "59ae83c9bbd1f70bbad486a3dd817805cf9ffcd6",
      "parents": [
        "514f46b74c5424eb10f21349654e90fcf69b3b10",
        "304348af197f30b3bf0e0764b97eb9699a376c68"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Fri Dec 04 00:58:05 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 04 00:58:05 2015 +0000"
      },
      "message": "Merge \"Clear pthread_internal_t allocated on user provided stack.\""
    },
    {
      "commit": "304348af197f30b3bf0e0764b97eb9699a376c68",
      "tree": "5a20f5c4c690072b852144b7e502bca4270f26cb",
      "parents": [
        "22dca83e1c37d3b465b9fa432bbf7cb4bd0df868"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Thu Dec 03 13:01:42 2015 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Thu Dec 03 16:51:20 2015 -0800"
      },
      "message": "Clear pthread_internal_t allocated on user provided stack.\n\nSeveral parts in pthread_internal_t should be initialized\nto zero, like tls, key_data and thread_local_dtors. So\njust clear the whole pthread_internal_t is more convenient.\n\nBug: 25990348\nChange-Id: Ibb6d1200ea5e6e1afbc77971f179197e8239f6ea\n"
    },
    {
      "commit": "514f46b74c5424eb10f21349654e90fcf69b3b10",
      "tree": "451588f1799f733af0a1373d8cda680d6226a642",
      "parents": [
        "b35a2fb370db711fcea38441a1295cd542fc3daa",
        "a32fc8685dc0b81f9e10d99fdb248f33c0fa05f7"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Fri Dec 04 00:29:47 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 04 00:29:47 2015 +0000"
      },
      "message": "Merge \"Don\u0027t use StringPrintf() in gtest runner.\""
    },
    {
      "commit": "a32fc8685dc0b81f9e10d99fdb248f33c0fa05f7",
      "tree": "e9f97ca39b6ad0629bc5fab44c7dd6ee96566d5b",
      "parents": [
        "d4c9b9d5ac3438d34536613143bbe63374e586f1"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Thu Dec 03 16:28:03 2015 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Thu Dec 03 16:28:03 2015 -0800"
      },
      "message": "Don\u0027t use StringPrintf() in gtest runner.\n\nChange-Id: I0cd0b3cbb952c65b1c449e88ce12964b93029538\n"
    },
    {
      "commit": "b35a2fb370db711fcea38441a1295cd542fc3daa",
      "tree": "a04191919a1245151a83cd6b287a1c5dc8424508",
      "parents": [
        "bf20d0226b28a029f4cade8dc8f3aa38d1e51a1a",
        "845e24a05e56003d0ac35d904bfc02f5dac762f1"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Thu Dec 03 23:48:54 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 03 23:48:54 2015 +0000"
      },
      "message": "Merge \"Remove c++14\u0027isms from system_properties\""
    },
    {
      "commit": "bf20d0226b28a029f4cade8dc8f3aa38d1e51a1a",
      "tree": "7c706f2d6fc89399f943917fe2f717a0f83e6238",
      "parents": [
        "376b94f1e777375eb9ebb04a882b898aafa94625",
        "a2ead1865773c03183a83649a8ba3da1d790ac9b"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Dec 03 23:44:59 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 03 23:44:59 2015 +0000"
      },
      "message": "Merge \"libm: stop exporting __muldc3\""
    },
    {
      "commit": "845e24a05e56003d0ac35d904bfc02f5dac762f1",
      "tree": "ac0688fb1d79676bc131fdacf6ad5a774ca054d1",
      "parents": [
        "376b94f1e777375eb9ebb04a882b898aafa94625"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Thu Dec 03 15:38:52 2015 -0800"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Thu Dec 03 15:40:23 2015 -0800"
      },
      "message": "Remove c++14\u0027isms from system_properties\n\nChange-Id: If78e7d2770e8f8321f0d1824c3c52f93820dd325\n"
    },
    {
      "commit": "a2ead1865773c03183a83649a8ba3da1d790ac9b",
      "tree": "1a125731121cfeef095c0d7d80343082a26f8eed",
      "parents": [
        "22dca83e1c37d3b465b9fa432bbf7cb4bd0df868"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Dec 03 15:25:37 2015 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Dec 03 15:25:37 2015 -0800"
      },
      "message": "libm: stop exporting __muldc3\n\nBug: http://b/26004493\nChange-Id: I991268d5e7b59bca646da25d0ad90a1cb4a9d4b9\n"
    },
    {
      "commit": "376b94f1e777375eb9ebb04a882b898aafa94625",
      "tree": "0d28519ff985e2077f225e71636640028133970e",
      "parents": [
        "f57ae1cd433f2bdc02cec6b0d2666f7708f1fc37",
        "49a309ff6a8349cbd1625711497743463638bebf"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Thu Dec 03 22:55:32 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 03 22:55:32 2015 +0000"
      },
      "message": "Merge \"Separate properties by selabel\""
    },
    {
      "commit": "f57ae1cd433f2bdc02cec6b0d2666f7708f1fc37",
      "tree": "41f37bf5a3db54a5fa6f5e0b9b5ee6ee519f6fa0",
      "parents": [
        "22dca83e1c37d3b465b9fa432bbf7cb4bd0df868",
        "d4c9b9d5ac3438d34536613143bbe63374e586f1"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Thu Dec 03 22:29:29 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 03 22:29:29 2015 +0000"
      },
      "message": "Merge \"Improve unit test runner.\""
    },
    {
      "commit": "4371961e00ad83fca033992c8a19c7d262fe6f84",
      "tree": "414fdfe263a993592ff18cdfb8fe4d9d2d3a16ce",
      "parents": [
        "22dca83e1c37d3b465b9fa432bbf7cb4bd0df868"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 03 13:23:03 2015 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 03 13:23:03 2015 -0800"
      },
      "message": "Remove __sinit and __sdidinit.\n\nWe\u0027re eagerly initializing stdio now, so this can all be simplified.\n\nChange-Id: Icb288f8dd0ee08f02bea0d23670f75e78bed6b99\n"
    },
    {
      "commit": "d4c9b9d5ac3438d34536613143bbe63374e586f1",
      "tree": "41f37bf5a3db54a5fa6f5e0b9b5ee6ee519f6fa0",
      "parents": [
        "22dca83e1c37d3b465b9fa432bbf7cb4bd0df868"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Mon Nov 16 20:39:58 2015 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Thu Dec 03 13:20:39 2015 -0800"
      },
      "message": "Improve unit test runner.\n\n1. Read unit test\u0027s output while the test is running. Previously\nwe only read output when the test finishes, which has trouble\nwhen the test outputs too many stuff.\n2. Report failed unit test\u0027s exit code. It is useful when the\ntest doesn\u0027t fail in ASSERT_xxx, but in somewhere else.\n\nBug: 25392375\nChange-Id: Ie90823337f7c2ee25fa489a5534801d991258f95\n"
    },
    {
      "commit": "22dca83e1c37d3b465b9fa432bbf7cb4bd0df868",
      "tree": "d522e5ae2a38b8b17c69681059a25548ba3b2538",
      "parents": [
        "b24f7a0513f7468ccf7563d7d347c6e7bab391d9",
        "b9055518fc0607344f1de803b80a5293c0f2f0ee"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Thu Dec 03 01:56:00 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 03 01:56:00 2015 +0000"
      },
      "message": "Merge \"Re-add putw for LP32\""
    },
    {
      "commit": "b9055518fc0607344f1de803b80a5293c0f2f0ee",
      "tree": "d522e5ae2a38b8b17c69681059a25548ba3b2538",
      "parents": [
        "b24f7a0513f7468ccf7563d7d347c6e7bab391d9"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Wed Dec 02 17:26:15 2015 -0800"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Wed Dec 02 17:31:32 2015 -0800"
      },
      "message": "Re-add putw for LP32\n\nThis was missed when switching to LOCAL_SRC_FILES_EXCLUDE\n\nChange-Id: I6ea23c9eb31abe11e0ec4abfc2ee2f2a43c76ce2\n"
    },
    {
      "commit": "49a309ff6a8349cbd1625711497743463638bebf",
      "tree": "934a2a6d0b469f2345a733b414e26c6654fd6020",
      "parents": [
        "9cbabd8fe5ef3834682996ff23b4a5325e0586cb"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Sep 23 16:09:47 2015 -0700"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Dec 02 15:17:03 2015 -0800"
      },
      "message": "Separate properties by selabel\n\nThe purpose of this change is to add read access control to the property\nspace.\n\nIn the current design, a process either has access to the single\n/dev/__properties__ file and therefore all properties that it contains\nor it has access to no properties.  This change separates properties\ninto multiple property files based on their selabel, which allows\ncreation of sepolicies that allow read access of only specific sets of\nproperties to specific domains.\n\nBug 21852512\n\nChange-Id: Ice265db79201ca811c6b6cf6d851703f53224f03\n"
    },
    {
      "commit": "b24f7a0513f7468ccf7563d7d347c6e7bab391d9",
      "tree": "d7773113314617b3745f3998d5ecc97f6d324b8b",
      "parents": [
        "9cbabd8fe5ef3834682996ff23b4a5325e0586cb",
        "a5e183c06690f601fd45bddd5599884ad291ac23"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Dec 02 18:44:20 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Dec 02 18:44:20 2015 +0000"
      },
      "message": "Merge \"Explicitly disallow default c-tor\""
    },
    {
      "commit": "a5e183c06690f601fd45bddd5599884ad291ac23",
      "tree": "d7773113314617b3745f3998d5ecc97f6d324b8b",
      "parents": [
        "9cbabd8fe5ef3834682996ff23b4a5325e0586cb"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Dec 01 16:57:19 2015 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Dec 01 16:57:19 2015 -0800"
      },
      "message": "Explicitly disallow default c-tor\n\nChange-Id: Ia52995a459443159e80383d5b396c3edd90a08ae\n"
    },
    {
      "commit": "9cbabd8fe5ef3834682996ff23b4a5325e0586cb",
      "tree": "bf4c085658026f687383320f1d8c73418ceadfe2",
      "parents": [
        "6bef152af2c622ee0c57f9c374b76f3dd352e52b",
        "f688c5d5b407b17b42b38b25449ab12320c33786"
      ],
      "author": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Dec 01 00:23:32 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 01 00:23:32 2015 +0000"
      },
      "message": "Merge \"Add bionic-unit-tests-gcc{32,64}, compiled with gcc.\""
    },
    {
      "commit": "6bef152af2c622ee0c57f9c374b76f3dd352e52b",
      "tree": "c7a6e152b450b5280ec5d2fbb4eaf0e41dd1b325",
      "parents": [
        "af87c9ccfc3afbc7db9f0bc131d122453b5c882d",
        "d68c9e5906917f1528fe16c2c657e3a34c16e536"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Mon Nov 30 23:57:02 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 30 23:57:02 2015 +0000"
      },
      "message": "Merge \"Init stdio in __libc_init_common.\""
    },
    {
      "commit": "af87c9ccfc3afbc7db9f0bc131d122453b5c882d",
      "tree": "2c4f14d3cf039cf4c56c19158f89d0b763b004ea",
      "parents": [
        "28d3f00cf4545812503c835ea906fa83309e48ed",
        "9b687dc243c5cea56002947a5ae563ff6cf31968"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Mon Nov 30 23:56:41 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 30 23:56:41 2015 +0000"
      },
      "message": "Merge \"Enable using clang to build __cxa_thread_atexit_impl.\""
    },
    {
      "commit": "9b687dc243c5cea56002947a5ae563ff6cf31968",
      "tree": "2c4f14d3cf039cf4c56c19158f89d0b763b004ea",
      "parents": [
        "28d3f00cf4545812503c835ea906fa83309e48ed"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Mon Nov 30 14:07:58 2015 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Mon Nov 30 14:43:52 2015 -0800"
      },
      "message": "Enable using clang to build __cxa_thread_atexit_impl.\n\nRemove previous workaround as we no longer use\n__thread in __cxa_thread_atexit_impl.cpp.\n\nChange-Id: Ic1062995db488859b341acdda0b5f6635e10d7e8\n"
    },
    {
      "commit": "28d3f00cf4545812503c835ea906fa83309e48ed",
      "tree": "d173d733c311a483ab8247d43914981b4709dc9d",
      "parents": [
        "aec13988dab7ff32cb005f42b952e3b9b55a4779",
        "952e9eb0866bc2061b671e8d6c90cae275eda6bd"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Mon Nov 30 21:59:47 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 30 21:59:47 2015 +0000"
      },
      "message": "Merge \"Don\u0027t use __thread in __cxa_thread_finalize().\""
    },
    {
      "commit": "d68c9e5906917f1528fe16c2c657e3a34c16e536",
      "tree": "78ab790448aeac647d154ac4aaca95dff67c47b7",
      "parents": [
        "8bd27182c505cdc8031ab23fea5d1dccb6b7405a"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Nov 24 15:37:06 2015 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Mon Nov 30 13:51:07 2015 -0800"
      },
      "message": "Init stdio in __libc_init_common.\n\nPreviously we call __sinit() lazily. But it is likely to cause data\nraces like in https://android-review.googlesource.com/#/c/183237/. So\nwe prefer to call __sinit() explicitly at libc initialization.\n\nBug: 25392375\n\nChange-Id: I181ea7a4b2e4c7350b45f2e6c86886ea023e80b8\n"
    },
    {
      "commit": "aec13988dab7ff32cb005f42b952e3b9b55a4779",
      "tree": "b761ca15f68a8c174119ceff4d6316102ea0b71c",
      "parents": [
        "2bb85c848abb89951ec01342d6c8278311346395",
        "a36158a77d904aa65f50d5950b7608ef8fa3210f"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Mon Nov 30 21:38:59 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 30 21:38:59 2015 +0000"
      },
      "message": "Merge \"Fix pthread_test according to tsan report.\""
    },
    {
      "commit": "2bb85c848abb89951ec01342d6c8278311346395",
      "tree": "40816d5a62dd776ec686c1b27078040a584f6458",
      "parents": [
        "a01108d9bf415854b9d36334483133adff3d7405",
        "83f314f060f10f9eb01e3754b25d28a92cb70720"
      ],
      "author": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Mon Nov 30 18:58:59 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 30 18:58:59 2015 +0000"
      },
      "message": "Merge \"Consider $(use_clang) when building libc_thread_atexit_impl module\""
    },
    {
      "commit": "f688c5d5b407b17b42b38b25449ab12320c33786",
      "tree": "db41bb76cbc272343704933a985cd08f397b5c6d",
      "parents": [
        "a01108d9bf415854b9d36334483133adff3d7405"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Fri Nov 20 14:13:24 2015 -0800"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Mon Nov 30 10:52:16 2015 -0800"
      },
      "message": "Add bionic-unit-tests-gcc{32,64}, compiled with gcc.\n\n* bionic-unit-tests{32,64} are compiled with clang/llvm.\n* Skip one single test in __cxa_thread_atexit_test.cpp\n  when compiled with aarch64 clang/llvm.\n  Aarch64 clang/llvm generates relocation references to\n  \"thread_local\" symbols not supported by Android linker.\n\nBUG: 25642296\nChange-Id: Ia0497b79c4b335228afeb48a26e0592217909953\n"
    },
    {
      "commit": "83f314f060f10f9eb01e3754b25d28a92cb70720",
      "tree": "40816d5a62dd776ec686c1b27078040a584f6458",
      "parents": [
        "a01108d9bf415854b9d36334483133adff3d7405"
      ],
      "author": {
        "name": "Nikola Veljkovic",
        "email": "Nikola.Veljkovic@imgtec.com",
        "time": "Wed Nov 25 19:03:12 2015 +0100"
      },
      "committer": {
        "name": "Nikola Veljkovic",
        "email": "Nikola.Veljkovic@imgtec.com",
        "time": "Wed Nov 25 18:09:34 2015 +0000"
      },
      "message": "Consider $(use_clang) when building libc_thread_atexit_impl module\n\nChange-Id: Ia369d94979f418198a2ee891385942d9bc5604d7\n"
    },
    {
      "commit": "952e9eb0866bc2061b671e8d6c90cae275eda6bd",
      "tree": "1a6fd63119783ddb62d9faaec1e57489b707fc18",
      "parents": [
        "8bd27182c505cdc8031ab23fea5d1dccb6b7405a"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Nov 24 17:24:06 2015 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Nov 24 17:24:06 2015 -0800"
      },
      "message": "Don\u0027t use __thread in __cxa_thread_finalize().\n\nCurrently we use __thread variable to store thread_local_dtors,\nwhich makes tsan test fork_atexit.cc hang. The problem is as below:\nThe main thread creates a worker thread, the worker thread calls\npthread_exit() -\u003e __cxa_thread_finalize() -\u003e __emutls_get_address()\n-\u003e pthread_once(emutls_init) -\u003e emutls_init().\nThen the main thread calls fork(), the child process cals\nexit() -\u003e __cxa_thread_finalize() -\u003e __emutls_get_address()\n-\u003e pthread_once(emutls_init).\nSo the child process is waiting for pthread_once(emutls_init)\nto finish which will never occur.\n\nIt might be the test\u0027s fault because POSIX standard says if a\nmulti-threaded process calls fork(), the new process may only\nexecute async-signal-safe operations until exec functions are\ncalled. And exit() is not async-signal-safe. But we can make\nbionic more reliable by not using __thread in\n__cxa_thread_finalize().\n\nBug: 25392375\nChange-Id: Ife403dd7379dad8ddf1859c348c1c0adea07afb3\n"
    },
    {
      "commit": "a01108d9bf415854b9d36334483133adff3d7405",
      "tree": "6171b2b396bab7ac99eace95b828254d62252557",
      "parents": [
        "8bd27182c505cdc8031ab23fea5d1dccb6b7405a",
        "bff87d19f128c5fb3eb7fe83a5ffeccb1195f5d3"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Nov 24 21:33:54 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 24 21:33:54 2015 +0000"
      },
      "message": "Merge \"Remove cflags and ldflags from crt defaults\""
    },
    {
      "commit": "8bd27182c505cdc8031ab23fea5d1dccb6b7405a",
      "tree": "7112c72e3f79068460608cf1f02535c2496075b9",
      "parents": [
        "db8caa740a409c2ce75f875df84857e6be69eb9f",
        "6ab8f89d1c8cd325af1acb1511021c7860900a2f"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Nov 24 20:21:20 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 24 20:21:20 2015 +0000"
      },
      "message": "Merge \"move arch variant structs down a level\""
    },
    {
      "commit": "bff87d19f128c5fb3eb7fe83a5ffeccb1195f5d3",
      "tree": "84b214155abfd6cacb7752288d68ca4cf8f6e3a9",
      "parents": [
        "6ab8f89d1c8cd325af1acb1511021c7860900a2f"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Nov 23 14:12:19 2015 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Nov 24 11:11:02 2015 -0800"
      },
      "message": "Remove cflags and ldflags from crt defaults\n\nAfter ToolchainCflags were added to soong crt no longer needs to try to\nrecreate the bare minimum cflags for compiling for each architecture.\nAlso always use GCC to match crt.mk\n\nChange-Id: I01a833ab70d989033c84f072e3660d060189688c\n"
    },
    {
      "commit": "db8caa740a409c2ce75f875df84857e6be69eb9f",
      "tree": "893ad14405037f96cd4f8170848c4332e70e5895",
      "parents": [
        "17554356cc865908e5cbd7814c8be7e47c9c4ec5",
        "1ffec1cc4d0e283bb1ff6f49843769a3493b8d73"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Nov 24 02:23:34 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 24 02:23:34 2015 +0000"
      },
      "message": "Merge \"Introduce anonymous namespace\""
    },
    {
      "commit": "1ffec1cc4d0e283bb1ff6f49843769a3493b8d73",
      "tree": "083c8af007b9a2e2ed01fbde2eea50ded648e114",
      "parents": [
        "a7fc7f9909c221a0f64c5c5ecc5fadd5fba467c5"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Nov 23 11:26:35 2015 -0800"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Nov 23 16:13:10 2015 -0800"
      },
      "message": "Introduce anonymous namespace\n\nThe anonymous namespace is introduced to\nhandle cases when linker can not find the\ncaller. This usually happens when caller\ncode was not loaded by dynamic linker;\nfor example mono-generated code.\n\nBug: http://b/25844435\nBug: http://b/22548808\nChange-Id: I9e5b1d23c1c75bc78548d68e79216a6a943a33cf\n"
    },
    {
      "commit": "6ab8f89d1c8cd325af1acb1511021c7860900a2f",
      "tree": "3e732052a634d1d0a4900194aa5bbe7edce02770",
      "parents": [
        "9c6157c81d123d8c6ba1aa8d7ee5c67b0840666c"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Nov 23 14:12:15 2015 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Nov 23 14:14:57 2015 -0800"
      },
      "message": "move arch variant structs down a level\n\nUse blueprint\u0027s new anonymous embedded struct feature to move the arch\nvariant properties down a level, replacing arch.cortex_a9.srcs with\narch.arm.cortex_a9.srcs, while still supporting top-level properties\nlike arch.arm.srcs.\n\nChange-Id: Ib41c80e3549440d5efdfd293a15cffa3f51a0fe4\n"
    },
    {
      "commit": "17554356cc865908e5cbd7814c8be7e47c9c4ec5",
      "tree": "65784b6e5cd302ab21eb9de6b5ab7ed0a9ad74ce",
      "parents": [
        "a7fc7f9909c221a0f64c5c5ecc5fadd5fba467c5",
        "76144aaa6397fe9e16893882cf59c5c9c0684a66"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Mon Nov 23 18:57:26 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 23 18:57:26 2015 +0000"
      },
      "message": "Merge \"Change _stdio_handles_locking into _caller_handles_locking.\""
    },
    {
      "commit": "a7fc7f9909c221a0f64c5c5ecc5fadd5fba467c5",
      "tree": "e496a4a06bcf20e9ca42252634f76263e71f96a3",
      "parents": [
        "74ed96d59731aa3661494330804d866e825209d3",
        "3c5248182e591a5039deda5dc203b0f602b21fa2"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Nov 23 07:28:32 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 23 07:28:32 2015 +0000"
      },
      "message": "Merge \"Handling invalid section headers\""
    },
    {
      "commit": "3c5248182e591a5039deda5dc203b0f602b21fa2",
      "tree": "2ed36af039a8d960f3506ab94d72790b6a3030c8",
      "parents": [
        "fb3219fbd1dbb0a369d52cbd0200330fd8852bc1"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Nov 20 17:28:12 2015 -0800"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Sun Nov 22 23:25:06 2015 -0800"
      },
      "message": "Handling invalid section headers\n\nThe linker crashes if native library has invalid section\nheaders. This change adds boundary checks on target offsets\nand generates dlerror instead of crash.\n\nBug: http://b/25800330\nChange-Id: Ibe282029997302b9b557637c3aad064d7d0febc5\n"
    },
    {
      "commit": "74ed96d59731aa3661494330804d866e825209d3",
      "tree": "fcb3c951345fcbd19e528bce9d7579077b9130b9",
      "parents": [
        "fb3219fbd1dbb0a369d52cbd0200330fd8852bc1",
        "c9a659c57b256001fd63f9825bde69e660c2655b"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Sat Nov 21 01:50:29 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Nov 21 01:50:29 2015 +0000"
      },
      "message": "Merge \"Use FUTEX_WAIT_BITSET to avoid converting timeouts.\""
    },
    {
      "commit": "76144aaa6397fe9e16893882cf59c5c9c0684a66",
      "tree": "366d104ea020fb5d9138d296aac1fcceda383c61",
      "parents": [
        "0ebe2f07c35d4b764bc5d8b5226004e3db46da91"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Thu Nov 19 13:52:16 2015 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Fri Nov 20 17:44:26 2015 -0800"
      },
      "message": "Change _stdio_handles_locking into _caller_handles_locking.\n\nIt is reported by tsan that funlockfile() can unlock an unlocked mutex.\nIt happens when printf() is called before fopen() or other stdio stuff.\nAs FLOCKFILE(fp) is called before __sinit(), _stdio_handles_locking is false,\nand _FLOCK(fp) will not be locked. But then cantwrite(fp) in __vfprintf()\ncalls__sinit(), which makes _stdio_handles_locking become true, and\nFUNLOCKFILE(fp) unlocks _FLOCK(fp).\n\nChange _stdio_handles_locking into _caller_handles_locking,\nso __sinit() won\u0027t change its value. Add test due to my previous fault.\n\nBug: 25392375\nChange-Id: I483e3c3cdb28da65e62f1fd9615bf58c5403b4dd\n"
    },
    {
      "commit": "fb3219fbd1dbb0a369d52cbd0200330fd8852bc1",
      "tree": "0c6fd9d36cd69f86c377a772b3d4b8f8e9ef333b",
      "parents": [
        "a1ab0d8ed1c4025233b0d816164eefb1b84159b9",
        "84bab5a9552cebf57795ade0e1abd5f7aee46479"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Nov 20 21:42:18 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 20 21:42:18 2015 +0000"
      },
      "message": "Merge \"Move some utility functions to linker_utils\""
    },
    {
      "commit": "84bab5a9552cebf57795ade0e1abd5f7aee46479",
      "tree": "0c6fd9d36cd69f86c377a772b3d4b8f8e9ef333b",
      "parents": [
        "a1ab0d8ed1c4025233b0d816164eefb1b84159b9"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Nov 20 13:34:11 2015 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Nov 20 21:37:51 2015 +0000"
      },
      "message": "Move some utility functions to linker_utils\n\nAlso adds unit-tests for page_start, page_offset, and safe_add\n\nChange-Id: Ia1325b4682d367328a01599a19848e4ffcd2c0ea\n"
    },
    {
      "commit": "a1ab0d8ed1c4025233b0d816164eefb1b84159b9",
      "tree": "839814af82e5f5c239310fea5e2941efd9c294bb",
      "parents": [
        "8d5fb0d78716379d07eddbd75c88c9b7082436ef",
        "b76123fed80eb3cf45a8b0b82b40fde516642a88"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Nov 20 19:16:14 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 20 19:16:14 2015 +0000"
      },
      "message": "Merge \"Improve error message for files with no sections\""
    },
    {
      "commit": "b76123fed80eb3cf45a8b0b82b40fde516642a88",
      "tree": "3a6f63d1b75c3486bf0e3469afab0ddc8d4795c6",
      "parents": [
        "43c90450174ab8839c05702ac01c4092f5b6cd19"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Nov 20 10:42:02 2015 -0800"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Nov 20 10:49:12 2015 -0800"
      },
      "message": "Improve error message for files with no sections\n\nBug: http://b/25801618\nChange-Id: I4f4f368e727ff48c84781279e3d17d4ac2d1b6b0\n"
    },
    {
      "commit": "8d5fb0d78716379d07eddbd75c88c9b7082436ef",
      "tree": "942df3e4708c20486c8242aef7abef06535cfd15",
      "parents": [
        "43c90450174ab8839c05702ac01c4092f5b6cd19",
        "b4bc156c6cfe5603cc08480d069d7f1c61560db1"
      ],
      "author": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Fri Nov 20 18:27:14 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 20 18:27:14 2015 +0000"
      },
      "message": "Merge \"Disable clang for mips/mips64 libc.\""
    },
    {
      "commit": "b4bc156c6cfe5603cc08480d069d7f1c61560db1",
      "tree": "5a0dba13cac965c9b1bf4cc3e06f88690a424b7b",
      "parents": [
        "949bfb9e3cceac7913fe1debc39617c9ec01ae5e"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Fri Nov 20 09:55:35 2015 -0800"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Fri Nov 20 09:55:35 2015 -0800"
      },
      "message": "Disable clang for mips/mips64 libc.\n\n* Many processes, including adbd, failed to start in mips/mips64\n  emulator when libc.so was compiled by clang.\n\nBUG: 25291096\nChange-Id: If3434ebdca4a3a6bf6102b120ee838a7ab66cd74\n"
    },
    {
      "commit": "43c90450174ab8839c05702ac01c4092f5b6cd19",
      "tree": "90447b12715a95240614e440be8cbb7c42d191a1",
      "parents": [
        "f30170dfa514266a0bf007091aa54a866920208c",
        "ee67dd75e215f88e5632c05c7e7e7c7d30910359"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Nov 20 17:19:19 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 20 17:19:19 2015 +0000"
      },
      "message": "Merge \"mmap: fix calculation of is_private_anonymous variable\""
    },
    {
      "commit": "ee67dd75e215f88e5632c05c7e7e7c7d30910359",
      "tree": "90447b12715a95240614e440be8cbb7c42d191a1",
      "parents": [
        "f30170dfa514266a0bf007091aa54a866920208c"
      ],
      "author": {
        "name": "Vitaly Vul",
        "email": "vitaly.vul@sonymobile.com",
        "time": "Thu Sep 24 14:28:59 2015 +0200"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Nov 20 09:16:59 2015 -0800"
      },
      "message": "mmap: fix calculation of is_private_anonymous variable\n\nCurrently is_private_anonymous is calculated as true if _either_\nMAP_PRIVATE or MAP_ANONYMOUS is set, which is a mistake.\nAccording to Documentation/vm/ksm.txt, \"KSM only merges anonymous\n(private) pages, never pagecache (file) pages\". MAP_PRIVATE can\nstill be set on file cache pages so in order to not redundantly\nset MADV_MERGEABLE on pages that are not fitted for it, both\nMAP_PRIVATE and MAP_ANONYMOUS should be set.\n\nAlong with this fix, add an extra check that the mapped page is\nnot a stack page before setting MADV_MERGEABLE for it. Stack pages\nchange too quickly and always end up in KSM \u0027page_volatile\u0027 list.\n\nChange-Id: If4954142852f17cc61f02985ea1cb625a7f3dec6\n"
    },
    {
      "commit": "f30170dfa514266a0bf007091aa54a866920208c",
      "tree": "915fc019bccf86d9252354be70bc0a3e387c3f78",
      "parents": [
        "79f8d64632a57ccd62315286b809819de09e0317",
        "2feb9dde6090a4b88d0cadc0a69245beeb173468"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Nov 20 01:55:56 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 20 01:55:56 2015 +0000"
      },
      "message": "Merge changes I73a39c6d,Iab2af242\n\n* changes:\n  Fix test build break.\n  extend the PTRDIFF_MAX size check to mremap\n"
    },
    {
      "commit": "79f8d64632a57ccd62315286b809819de09e0317",
      "tree": "71b2335518eef3200b1c5931bd4933c13e407ced",
      "parents": [
        "9c6157c81d123d8c6ba1aa8d7ee5c67b0840666c",
        "284068f44fd1ad2d22980ea39f49d2c1b74014c7"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Fri Nov 20 00:40:00 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 20 00:40:00 2015 +0000"
      },
      "message": "Merge \"Fix tsan abort for lake of __libc_auxv initialization.\""
    },
    {
      "commit": "9c6157c81d123d8c6ba1aa8d7ee5c67b0840666c",
      "tree": "90de57ac56c9d801910077ac72c1bb7c1364201b",
      "parents": [
        "0ebe2f07c35d4b764bc5d8b5226004e3db46da91",
        "a35d23d25148b3a71ab90f80dbda475ce4aa619c"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Nov 19 22:48:33 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 19 22:48:33 2015 +0000"
      },
      "message": "Merge \"Update libc/Android.bp to match libc/Android.mk\""
    },
    {
      "commit": "284068f44fd1ad2d22980ea39f49d2c1b74014c7",
      "tree": "dc6b3fa412ace9376d03b637620799fb63f05506",
      "parents": [
        "0ebe2f07c35d4b764bc5d8b5226004e3db46da91"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Thu Nov 19 14:24:06 2015 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Thu Nov 19 14:24:06 2015 -0800"
      },
      "message": "Fix tsan abort for lake of __libc_auxv initialization.\n\nIf tsan is used, the following callchain can happen:\n__libc_preinit() -\u003e __libc_init_globals() -\u003e\n__libc_init_vdso() -\u003e strcmp() -\u003e __tsan_init()\n-\u003e sysconf(_SC_PAGE_SIZE) -\u003e getauxval().\nBut __libc_auxv is initialized in __libc_init_common(),\nafter __libc_init_globals(). One simple way to fix\nthis is to initialize __libc_auxv at __libc_init_globals().\n\nBug: 25392375\nChange-Id: I3893b1f567d5f3b7a8c881c0c1b8234b06b7751b\n"
    },
    {
      "commit": "a35d23d25148b3a71ab90f80dbda475ce4aa619c",
      "tree": "90de57ac56c9d801910077ac72c1bb7c1364201b",
      "parents": [
        "0ebe2f07c35d4b764bc5d8b5226004e3db46da91"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Nov 19 13:32:49 2015 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Nov 19 14:18:06 2015 -0800"
      },
      "message": "Update libc/Android.bp to match libc/Android.mk\n\nChange-Id: I4dfadc55688213f095949c56306e5071b2ab6135\n"
    },
    {
      "commit": "2feb9dde6090a4b88d0cadc0a69245beeb173468",
      "tree": "71135ccb2317fb72438b16a1ef7d08389232b8ab",
      "parents": [
        "c22a7de798c4c0da30ad095a0c61a8f905eb9613"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Nov 19 13:44:20 2015 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Nov 19 13:44:20 2015 -0800"
      },
      "message": "Fix test build break.\n\nChange-Id: I73a39c6d4bb9baebbfb5572e9259bcd405116039\n"
    },
    {
      "commit": "c9a659c57b256001fd63f9825bde69e660c2655b",
      "tree": "74de618379f38c2726cc41956144f560dd6be9ea",
      "parents": [
        "b804b9d67b9e3a8c63471ff9892f6abea2a58684"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Thu Nov 05 15:36:08 2015 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Thu Nov 19 13:42:03 2015 -0800"
      },
      "message": "Use FUTEX_WAIT_BITSET to avoid converting timeouts.\n\nAdd unittests for pthread APIs with timeout parameter.\n\nBug: 17569991\n\nChange-Id: I6b3b9b2feae03680654cd64c3112ce7644632c87\n"
    },
    {
      "commit": "0ebe2f07c35d4b764bc5d8b5226004e3db46da91",
      "tree": "91ca8bc80522a8a6b4dc4c6cce90f21eeba15292",
      "parents": [
        "313632db574d101275206ca025d21a5a3cd62150",
        "f74b041cce75091b922151d4fa57e63c8a6caf4b"
      ],
      "author": {
        "name": "Hung-ying Tyan",
        "email": "tyanh@google.com",
        "time": "Thu Nov 19 16:38:51 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 19 16:38:51 2015 +0000"
      },
      "message": "Merge \"Add /odm/lib to shared lib search path\""
    },
    {
      "commit": "c22a7de798c4c0da30ad095a0c61a8f905eb9613",
      "tree": "a6dadbf1ceae2c3cb0811b6c91d1619d48fcd7c5",
      "parents": [
        "313632db574d101275206ca025d21a5a3cd62150"
      ],
      "author": {
        "name": "Daniel Micay",
        "email": "danielmicay@gmail.com",
        "time": "Sat Nov 07 10:40:26 2015 -0500"
      },
      "committer": {
        "name": "Daniel Micay",
        "email": "danielmicay@gmail.com",
        "time": "Thu Nov 19 08:57:47 2015 -0500"
      },
      "message": "extend the PTRDIFF_MAX size check to mremap\n\nThis removes another way to obtain objects larger than PTRDIFF_MAX. The\nonly known remaining hole is now jemalloc\u0027s merging of virtual memory\nspans.\n\nTechnically this could be wrapped in an __LP64__ ifndef since it can\u0027t\noccur on 64-bit due to the 1:1 split. It doesn\u0027t really matter either\nway.\n\nChange-Id: Iab2af242b775bc98a59421994d87aca0433215bd\n"
    },
    {
      "commit": "313632db574d101275206ca025d21a5a3cd62150",
      "tree": "e505b927dd798a9eb353ed5b873dd9cc66a87edd",
      "parents": [
        "2c09e5de299ca87a9e68807e2b4af41ba61710f3",
        "ff35b1e659547644fb14f890eeec880cf4bafc4e"
      ],
      "author": {
        "name": "Junichi Uekawa",
        "email": "uekawa@google.com",
        "time": "Thu Nov 19 12:44:19 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 19 12:44:19 2015 +0000"
      },
      "message": "Merge \"Do not depend on host bits to get the right size to write.\""
    },
    {
      "commit": "ff35b1e659547644fb14f890eeec880cf4bafc4e",
      "tree": "32a8e5aee362b856a95ea5274670be350340d8be",
      "parents": [
        "b804b9d67b9e3a8c63471ff9892f6abea2a58684"
      ],
      "author": {
        "name": "Junichi Uekawa",
        "email": "uekawa@google.com",
        "time": "Wed Nov 18 10:18:59 2015 +0900"
      },
      "committer": {
        "name": "Junichi Uekawa",
        "email": "uekawa@google.com",
        "time": "Thu Nov 19 11:28:20 2015 +0900"
      },
      "message": "Do not depend on host bits to get the right size to write.\n\nx86_64 32-bit or 64-bit relocations do not depend on ELF bit size, they\nare 32-bit or 64-bit respectively.\n\nKnown compiler that emits such code is nacl-clang which emits\nR_X86_64_PC32 which should write 32 bits but ended up writing 64 bits.\n\nChange-Id: Ibb6b484c0fea6a7e291362148e8ac749d6674529\n"
    },
    {
      "commit": "2c09e5de299ca87a9e68807e2b4af41ba61710f3",
      "tree": "980ed3d654b59956c5b7a3e3d5a34519a427e914",
      "parents": [
        "ea5bb151af5e1e364968cb1eac70c8a2c13ca7a7",
        "fe3a83a9343f0e4ff654f09ef8ffc8a773c7c105"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Thu Nov 19 01:55:37 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 19 01:55:37 2015 +0000"
      },
      "message": "Merge \"Implement pthread spin.\""
    },
    {
      "commit": "ea5bb151af5e1e364968cb1eac70c8a2c13ca7a7",
      "tree": "e68b4f1bba9a95d245a434a365d3097b36cb9a20",
      "parents": [
        "63f0e0db768ea9be4db3dd6a2fb62ea942afb9d6",
        "0307eee293e90e8584104a3c55bf2f270b1149b6"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Thu Nov 19 01:55:25 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 19 01:55:25 2015 +0000"
      },
      "message": "Merge \"Avoid tsan warning about pthread_mutex_destroy.\""
    },
    {
      "commit": "fe3a83a9343f0e4ff654f09ef8ffc8a773c7c105",
      "tree": "092ca0be892463bc543eaaabc9feda130ad37fb1",
      "parents": [
        "b804b9d67b9e3a8c63471ff9892f6abea2a58684"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Nov 17 16:03:18 2015 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Wed Nov 18 17:51:21 2015 -0800"
      },
      "message": "Implement pthread spin.\n\nIn order to run tsan unit tests, we need to support pthread spin APIs.\n\nBug: 18623621\nBug: 25392375\nChange-Id: Icbb4a74e72e467824b3715982a01600031868e29\n"
    },
    {
      "commit": "f74b041cce75091b922151d4fa57e63c8a6caf4b",
      "tree": "41df671688b0a28e252f58659b14d6a23bb79913",
      "parents": [
        "63f0e0db768ea9be4db3dd6a2fb62ea942afb9d6"
      ],
      "author": {
        "name": "Hung-ying Tyan",
        "email": "tyanh@google.com",
        "time": "Thu Nov 12 11:48:19 2015 +0800"
      },
      "committer": {
        "name": "Hung-ying Tyan",
        "email": "tyanh@google.com",
        "time": "Wed Nov 18 23:45:25 2015 +0800"
      },
      "message": "Add /odm/lib to shared lib search path\n\nODM\u0027s shared libs should live in /odm/lib on the ODM partition.\n\nBUG: 25654402\nChange-Id: I3f5c26f208af87ff2817e490e51d0b4f5b8ec98e\n"
    },
    {
      "commit": "63f0e0db768ea9be4db3dd6a2fb62ea942afb9d6",
      "tree": "f09ce774b7eb4fabf10f41a998d91864249175d4",
      "parents": [
        "b804b9d67b9e3a8c63471ff9892f6abea2a58684",
        "3cc35e224c6fe6bb82685ff8b2758553563e2a05"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Nov 18 03:43:59 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 18 03:43:59 2015 +0000"
      },
      "message": "Merge \"Ignore target sdk version for the public namespace\""
    },
    {
      "commit": "3cc35e224c6fe6bb82685ff8b2758553563e2a05",
      "tree": "f09ce774b7eb4fabf10f41a998d91864249175d4",
      "parents": [
        "b804b9d67b9e3a8c63471ff9892f6abea2a58684"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Nov 17 18:36:50 2015 -0800"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Nov 17 18:45:12 2015 -0800"
      },
      "message": "Ignore target sdk version for the public namespace\n\nThis fixes the bug with using the libraries loaded\nprior to android_set_target_sdk_version call.\n\nBug: http://b/22548808\nChange-Id: I3ca2d367b0fa930a437bbb65f780834803d2ef0a\n"
    },
    {
      "commit": "0307eee293e90e8584104a3c55bf2f270b1149b6",
      "tree": "22bd69a656e693251b0c5b92957b1317b00cf3bc",
      "parents": [
        "b804b9d67b9e3a8c63471ff9892f6abea2a58684"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Mon Nov 16 20:19:31 2015 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Nov 17 16:17:44 2015 -0800"
      },
      "message": "Avoid tsan warning about pthread_mutex_destroy.\n\nIf calling pthread_mutex_trylock from pthread_mutex_destroy, tsan\nwarns about an attempt to destroy a locked mutex.\n\nBug: 25392375\nChange-Id: I5feee20e7a0d0915adad24da874ec1ccce241381\n"
    },
    {
      "commit": "a36158a77d904aa65f50d5950b7608ef8fa3210f",
      "tree": "2d2966c9d2ee0334e0cba47b65fe9e2717c4d62f",
      "parents": [
        "b804b9d67b9e3a8c63471ff9892f6abea2a58684"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Mon Nov 16 21:06:16 2015 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Mon Nov 16 21:15:58 2015 -0800"
      },
      "message": "Fix pthread_test according to tsan report.\n\n1. Fix leak threads and data races related to spin_flag.\n2. Increase stack size to run under tsan.\n\nThis doesn\u0027t pass all pthread tests, as some tests are used\nto run intentionally in race situations.\n\nBug: 25392375\nChange-Id: Icfba3e141e7170abd890809586e89b99adc8bd02\n"
    },
    {
      "commit": "b804b9d67b9e3a8c63471ff9892f6abea2a58684",
      "tree": "ce42730b1964f3bd1b498823744f7d61f5527695",
      "parents": [
        "3c8c16022a513a32eb6b92cf23f4ef43ccf7ad6d",
        "e7c2fffa16eccecfd43d99516751a43776f5f609"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Nov 17 00:22:54 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 17 00:22:54 2015 +0000"
      },
      "message": "Merge \"Implement pthread barrier.\""
    },
    {
      "commit": "3c8c16022a513a32eb6b92cf23f4ef43ccf7ad6d",
      "tree": "e0d4ffc5f440256cf8c1f9f1b35e6e2cb7388b67",
      "parents": [
        "949bfb9e3cceac7913fe1debc39617c9ec01ae5e",
        "fbfba640682b94e61632a58a0544f14ed6a57908"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Nov 16 22:25:50 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 16 22:25:50 2015 +0000"
      },
      "message": "Merge \"Remove the warning about empty LD_LIBRARY_PATH\""
    },
    {
      "commit": "fbfba640682b94e61632a58a0544f14ed6a57908",
      "tree": "19c2840220568a8cedc4dc6f140674a76414cb50",
      "parents": [
        "d9b08a0bc082643b97fc9b11e0715e95be603c4c"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Nov 16 14:23:37 2015 -0800"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Nov 16 14:23:37 2015 -0800"
      },
      "message": "Remove the warning about empty LD_LIBRARY_PATH\n\nChange-Id: I3eca11512d8055ab94dd0a6badcd83ce6440d675\n"
    },
    {
      "commit": "e7c2fffa16eccecfd43d99516751a43776f5f609",
      "tree": "bceec6b32ce1159456b2b0bb7ea0ea320d0970cc",
      "parents": [
        "004fead6bc55d1e65b4fb9ca1ac36646b99e5fdd"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Thu Nov 05 22:06:09 2015 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Mon Nov 16 14:02:26 2015 -0800"
      },
      "message": "Implement pthread barrier.\n\nBug: 24341262\nChange-Id: I5472549e5d7545c1c3f0bef78235f545557b9630\n"
    },
    {
      "commit": "949bfb9e3cceac7913fe1debc39617c9ec01ae5e",
      "tree": "f2435d4571def7c504b28eabe2ad27a9ec140470",
      "parents": [
        "61f186d067a3efb6a86450092a567fb18c1641c3",
        "1e79540807c692fa8dbd494dfe290c3aab85420e"
      ],
      "author": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Mon Nov 16 21:31:36 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 16 21:31:36 2015 +0000"
      },
      "message": "Merge \"Enable clang to compile more tests.\""
    },
    {
      "commit": "61f186d067a3efb6a86450092a567fb18c1641c3",
      "tree": "3890964f0d966d6deabd722d5fe9ac89b5981aa1",
      "parents": [
        "1f0ccbb59cd32dfad0e6d9fd9619905e067076a6",
        "d9b08a0bc082643b97fc9b11e0715e95be603c4c"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Nov 16 21:23:18 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 16 21:23:18 2015 +0000"
      },
      "message": "Merge \"Fix arm64 and x86 builds\""
    },
    {
      "commit": "d9b08a0bc082643b97fc9b11e0715e95be603c4c",
      "tree": "3890964f0d966d6deabd722d5fe9ac89b5981aa1",
      "parents": [
        "1f0ccbb59cd32dfad0e6d9fd9619905e067076a6"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Nov 16 13:17:27 2015 -0800"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Nov 16 13:17:27 2015 -0800"
      },
      "message": "Fix arm64 and x86 builds\n\nChange-Id: Ic3746b2f200f42218b6ac857c1631e873c767c17\n"
    },
    {
      "commit": "1f0ccbb59cd32dfad0e6d9fd9619905e067076a6",
      "tree": "6f71d61b213e395dfdc73e32ad92fd481fbdbcaf",
      "parents": [
        "1b42c544711316281e09c5da25850fac531b27cb",
        "42d5fcb9f494eb45de3b6bf759f4a18076e84728"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Nov 16 20:14:37 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 16 20:14:37 2015 +0000"
      },
      "message": "Merge \"Introducing linker namespaces\""
    },
    {
      "commit": "1e79540807c692fa8dbd494dfe290c3aab85420e",
      "tree": "3ac7559febe2bb55826377f4d5401cd8bec91f8e",
      "parents": [
        "1b42c544711316281e09c5da25850fac531b27cb"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Mon Nov 16 11:13:04 2015 -0800"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Mon Nov 16 11:36:15 2015 -0800"
      },
      "message": "Enable clang to compile more tests.\n\n* Disable optimization only in gtest.h of atexit_test.c for arm/aarch64\n  to keep VTT for std::__1::basic_stringstream\u003cchar, std::__1::char_traits\u003cchar\u003e,\n  std::__1::allocator\u003cchar\u003e \u003e to link with g++ compiled modules.\n* bionic-unit-tests source files are not affected by clang x86_64 fp128 bug\n  so they can be compiled with clang.\n\nBUG: 25643775\nChange-Id: I3da2a0de61edcdca07b7fcd73a16de9da4a1f7d6\n"
    },
    {
      "commit": "42d5fcb9f494eb45de3b6bf759f4a18076e84728",
      "tree": "8f653810d3ddecf30bb0b744d4564d406808fe3e",
      "parents": [
        "ffe5c24c8693f1f4fc8edb68075fb36df558b801"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Oct 29 17:01:24 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Sun Nov 15 12:09:16 2015 -0800"
      },
      "message": "Introducing linker namespaces\n\nBug: http://b/22548808\nChange-Id: Ia3af3c0a167f1d16447a3d83bb045d143319b1e1\n"
    },
    {
      "commit": "1b42c544711316281e09c5da25850fac531b27cb",
      "tree": "b71291bf89809dba252f4a9f17f797884dda2e5a",
      "parents": [
        "5780f9d80963fbe7b93f501dd3dd7edc7fab46b0",
        "d1c28a361b66f8a131fc277df455cb6835a5327e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Nov 13 18:24:41 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 13 18:24:41 2015 +0000"
      },
      "message": "Merge \"Improve libc time zone fallback behavior.\""
    },
    {
      "commit": "d1c28a361b66f8a131fc277df455cb6835a5327e",
      "tree": "b71291bf89809dba252f4a9f17f797884dda2e5a",
      "parents": [
        "5780f9d80963fbe7b93f501dd3dd7edc7fab46b0"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Nov 13 08:38:48 2015 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Nov 13 08:38:48 2015 -0800"
      },
      "message": "Improve libc time zone fallback behavior.\n\nWe should fall back to GMT if neither the environment variable nor the\nsystem property is set. This is the case if you wipe a WiFi-only device,\nbecause we currently only take the time zone from cell networks.\n\nBug: http://b/24773112\nChange-Id: I90d236d4d492b6562d75021bd312030b91c1e298\n"
    },
    {
      "commit": "5780f9d80963fbe7b93f501dd3dd7edc7fab46b0",
      "tree": "88c420542660d0599f4f4a055351fa4d9f1d6209",
      "parents": [
        "4ea67f695066b73796b24563d83e8b5a9190334d",
        "a9cac4c87a4ea3e6d1c0a1159909bf0e209a61a7"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Nov 13 02:58:30 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 13 02:58:30 2015 +0000"
      },
      "message": "Merge \"Fix strftime if tm_zone is null.\""
    },
    {
      "commit": "4ea67f695066b73796b24563d83e8b5a9190334d",
      "tree": "90a2342bf126a0d8dda0b9d7404a8cc0d119b620",
      "parents": [
        "7c10ee9473b5c46da733b2d3d24cf90fb8ac7672",
        "2ed1b29d00e7ad392bf12bb73666ed78a096dad8"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Nov 13 01:09:44 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 13 01:09:44 2015 +0000"
      },
      "message": "Merge \"FORTIFY_SOURCE: make sure gcc unittests are compiled with gcc\""
    },
    {
      "commit": "a9cac4c87a4ea3e6d1c0a1159909bf0e209a61a7",
      "tree": "1e70197326b7eed795ce0f4be2785ce2361836d4",
      "parents": [
        "7c10ee9473b5c46da733b2d3d24cf90fb8ac7672"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 12 16:51:31 2015 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 12 16:51:31 2015 -0800"
      },
      "message": "Fix strftime if tm_zone is null.\n\nUpstream tzcode said \"On platforms with tm_zone, strftime.c now assumes it\nis not NULL\". Which is fine for any struct tm generated by tzcode, but not\nnecessarily true of a struct tm constructed by arbitrary code. In particular,\nNetflix on Nexus Player was failing to start because they format \"%Z\" with\na struct tm whose tm_zone is null (the other fields are valid, but, yeah,\nthat\u0027s probably not intentional).\n\nglibc takes a null tm_zone to mean \"the current time zone\", so let\u0027s do that\ntoo. (Historically Android would use the empty string, and POSIX doesn\u0027t\nclarify which of this is the appropriate behavior when tm_zone is null.)\n\nBug: http://b/25170306\nChange-Id: Idbf68bfe90d143aca7dada8607742905188b1d33\n"
    },
    {
      "commit": "2ed1b29d00e7ad392bf12bb73666ed78a096dad8",
      "tree": "90a2342bf126a0d8dda0b9d7404a8cc0d119b620",
      "parents": [
        "7c10ee9473b5c46da733b2d3d24cf90fb8ac7672"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Nov 12 15:55:13 2015 -0800"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Nov 12 15:55:13 2015 -0800"
      },
      "message": "FORTIFY_SOURCE: make sure gcc unittests are compiled with gcc\n\nThe default compiler is clang. We need to explicitly indicate\nthat we should use gcc.\n\nChange-Id: I37859c2e303f2a86a2565fe72eda1fda7c557a59\n"
    },
    {
      "commit": "7c10ee9473b5c46da733b2d3d24cf90fb8ac7672",
      "tree": "8299024a0ba4057a52120233fd6be8cee2efdec1",
      "parents": [
        "0c447053de4b87d50ebec260c7e1d949fe934065",
        "c04647f8c2e3e825d4ed27ea649024b89d1b5aed"
      ],
      "author": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Nov 12 20:45:48 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 12 20:45:48 2015 +0000"
      },
      "message": "Merge \"Still cannot compile with clang on arm64.\""
    },
    {
      "commit": "c04647f8c2e3e825d4ed27ea649024b89d1b5aed",
      "tree": "8299024a0ba4057a52120233fd6be8cee2efdec1",
      "parents": [
        "0c447053de4b87d50ebec260c7e1d949fe934065"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Nov 12 12:39:13 2015 -0800"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Nov 12 12:39:13 2015 -0800"
      },
      "message": "Still cannot compile with clang on arm64.\n\nWhen __cxa_thread_atexit_impl.cpp is compiled with clang on arm64,\nAndroid cannot boot up.\n\nBUG: 25662915\nChange-Id: If997b544f43e956172ce605d86fe147d42fd39e0\n"
    }
  ],
  "next": "0c447053de4b87d50ebec260c7e1d949fe934065"
}
