)]}'
{
  "log": [
    {
      "commit": "60907c7f4ec788def8741e4efb933eafb6560eaa",
      "tree": "31fb09aeffe23cdb02ed80e20989df7e1c992338",
      "parents": [
        "1cfbd94a2f40743757cdecd51cfa3e3ab545a5c5"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Jun 09 18:46:15 2015 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Jun 10 10:50:43 2015 -0700"
      },
      "message": "Allow NULL in pthread_mutex_lock/unlock.\n\nThe pthread_mutex_lock and pthread_mutex_unlock were allowed to\nfail silently on L 32 bit devices when passed a NULL. We changed\nthis to a crash on 32 bit devices, but there are still games that make\nthese calls and are not likely to be updated. Therefore, once again\nallow NULL to be passed in on 32 bit devices.\n\nBug: 19995172\n(cherry picked from commit 511cfd9dc8cb41bca4920687c7d816ee916ee8e5)\n\nChange-Id: I159a99a941cff94297ef3fffda7075f8ef1ae252\n"
    },
    {
      "commit": "e1d0810cd7e2aa045d5cc1e7d2b8697acd8467be",
      "tree": "335466a8a2f403dfa11394fa6c0d723873a4acf8",
      "parents": [
        "966f84b11dca7caf53c67664d811b99567cab7ee"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Sat Jun 06 11:23:26 2015 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Sat Jun 06 11:25:41 2015 -0700"
      },
      "message": "Add O_PATH support for flistxattr()\n\nA continuation of commit 2825f10b7f61558c264231a536cf3affc0d84204.\n\nAdd O_PATH compatibility support for flistxattr(). This allows\na process to list out all the extended attributes associated with\nO_PATH file descriptors.\n\nChange-Id: Ie2285ac7ad2e4eac427ddba6c2d182d41b130f75\n"
    },
    {
      "commit": "ef55f967234f160a4e00a51ca53377fadd17715d",
      "tree": "901c2f3ece8d18f91b7cc4d345617afad46bd1ee",
      "parents": [
        "e7deb145c66cc3434bf0f499de20b2c9d66cb2db",
        "f439b5a3186ca0fef1092f45770abc716da9d87a"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Jun 01 23:48:08 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jun 01 23:51:24 2015 +0000"
      },
      "message": "Merge \"Fix dlsym(handle_of_main_executable, ...)\""
    },
    {
      "commit": "2825f10b7f61558c264231a536cf3affc0d84204",
      "tree": "a5b968e9591cd0aa3289c0d2195e0326ef2e353f",
      "parents": [
        "ef607cdae24363c5e6b6fc72607a4cff78623851"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Sun May 31 13:43:13 2015 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Mon Jun 01 15:51:56 2015 -0700"
      },
      "message": "libc: Add O_PATH support for fgetxattr / fsetxattr\n\nSupport O_PATH file descriptors when handling fgetxattr and fsetxattr.\nThis avoids requiring file read access to pull extended attributes.\n\nThis is needed to support O_PATH file descriptors when calling\nSELinux\u0027s fgetfilecon() call. In particular, this allows the querying\nand setting of SELinux file context by using something like the following\ncode:\n\n  int dirfd \u003d open(\"/path/to/dir\", O_DIRECTORY);\n  int fd \u003d openat(dirfd, \"file\", O_PATH | O_NOFOLLOW);\n  char *context;\n  fgetfilecon(fd, \u0026context);\n\nThis change was motivated by a comment in\nhttps://android-review.googlesource.com/#/c/152680/1/toys/posix/ls.c\n\nChange-Id: Ic0cdf9f9dd0e35a63b44a4c4a08400020041eddf\n"
    },
    {
      "commit": "f439b5a3186ca0fef1092f45770abc716da9d87a",
      "tree": "d85508ffcefb14495e90d6e0669440558f753367",
      "parents": [
        "d70891687d742414d457e41a998726e5eb0a09bd"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Sat May 30 13:04:39 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Jun 01 14:33:43 2015 -0700"
      },
      "message": "Fix dlsym(handle_of_main_executable, ...)\n\n  According to man dlopen(3) and posix docs in the case when si is handle\n  of the main executable we need to search not only in the executable and its\n  dependencies but also in all libraries loaded with RTLD_GLOBAL.\n\n  see also: http://pubs.opengroup.org/onlinepubs/9699919799/functions/dlopen.html\n\nBug: http://b/21528224\nBug: http://b/17512583\nBug: https://code.google.com/p/android/issues/detail?id\u003d173822\nChange-Id: Ib2801367ba48b6f3704da89a6d9f5e6911430013\n"
    },
    {
      "commit": "9d476a02e9a14e847669a6683c585028175aa322",
      "tree": "1a6041545d303f558a39ee90632d1ced2b77514f",
      "parents": [
        "d70891687d742414d457e41a998726e5eb0a09bd"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon Jun 01 11:28:31 2015 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon Jun 01 13:22:57 2015 -0700"
      },
      "message": "Cleanup ftruncate negative test.\n\nAddresses post-submit comments from\nI54692ab8105dd09db6af7a2c0894a17bdd118aa0.\n\nBug: http://b/21309901\nChange-Id: Ie19ee8cdcc4055a65fe7dfc103156e54eafe8977\n"
    },
    {
      "commit": "79fd668bb4ddb22432eeda2ebd8d10359013d9a8",
      "tree": "c0f8b611a678275b2f6cab8e4d3b711a6a1aa3f2",
      "parents": [
        "aaafbe128f51dff92da3cf4f5fc9b47f04f05261"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu May 21 17:43:49 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed May 27 14:31:36 2015 -0700"
      },
      "message": "Add functions to provide target sdk version\n\nBug: http://b/21364029\nChange-Id: I8648d1bff6c8fd6e7cd12da7f128e048b9f2829a\n"
    },
    {
      "commit": "ffe01a3de62d17cbe1cdf3b40a91d1ac9a9d36b5",
      "tree": "49e58888272d2a0997eee8f165779bb76be0753c",
      "parents": [
        "4fc106d34b70da868d194e8a0f0a3cddd1f4c22d",
        "c05554ec5c9aff5e0f1e83de9bb62c3569eecca2"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu May 21 20:41:25 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu May 21 20:41:25 2015 +0000"
      },
      "message": "Merge \"Fix error handling for negative size in ftruncate.\""
    },
    {
      "commit": "b0c6f2dba2dc7b1604e00d0d553ac7f38f719049",
      "tree": "2a062c9b09d580055786bade2eaf182a0cb43601",
      "parents": [
        "c02bdc76a21f6149c7867982e66ab16982e01c1b"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue May 19 15:09:23 2015 -0700"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Wed May 20 14:41:15 2015 -0700"
      },
      "message": "Fix pthread_attr_getstack__main_thread failure on glibc.\n\nMove test of bionic specific implementation into bionic ifdef.\n\nBug: 19805726\nChange-Id: Idf369b16e7f41f060c75b0aaf34e05cf3c161aa9\n"
    },
    {
      "commit": "c05554ec5c9aff5e0f1e83de9bb62c3569eecca2",
      "tree": "13991325cce91a9fd76f42303946c21e67106aea",
      "parents": [
        "c02bdc76a21f6149c7867982e66ab16982e01c1b"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue May 19 18:17:31 2015 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed May 20 14:20:33 2015 -0700"
      },
      "message": "Fix error handling for negative size in ftruncate.\n\nBug: 21309901\nChange-Id: I54692ab8105dd09db6af7a2c0894a17bdd118aa0\n"
    },
    {
      "commit": "933332462d37dfa121fa691095cdce218a0139bf",
      "tree": "6fae182a5e147d3c64103c4b9285dbb75e011e2b",
      "parents": [
        "0378d8f65126b2d94c731f2719a68773e370f615"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu May 14 21:28:21 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu May 14 21:28:21 2015 -0700"
      },
      "message": "Remove -z global workaround for target x86\n\nChange-Id: I08e75a1c7437c97e4af59316d2c14c7fa3f65e03\n"
    },
    {
      "commit": "697bd9fd38ab078a117ad9a5777cf286c467b9b9",
      "tree": "f34ace69fa45951dbcd215dea1c040b549bf3c6f",
      "parents": [
        "75f2dfca653dd57b6f65bf898ec4f45d87d18926"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue May 12 11:12:27 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue May 12 13:46:40 2015 -0700"
      },
      "message": "Improved dlsym tests and fixes to linker\n\n Answers the question: what if dependent library\n was preloaded with RTLD_LOCAL flag.\n\n Also add test for RTLD_NEXT within local_group.\n\nBug: http://b/17512583\nChange-Id: I79e081e68b3a8c0ed8980d4275a06515fea94ec9\n"
    },
    {
      "commit": "f9eeea6d6531b0dea837027c7e1f47bec837f311",
      "tree": "548529081b249b31a7d298c0f3348edfa87026a7",
      "parents": [
        "dc10b077ea52baaa1b7be42eb5d2ba05a8a8c860",
        "2957cc5f1043adf0b9c0f1cdfff2d408952e40f5"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Fri May 08 01:36:29 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri May 08 01:36:30 2015 +0000"
      },
      "message": "Merge \"Remove pthread_detach_no_leak test.\""
    },
    {
      "commit": "2957cc5f1043adf0b9c0f1cdfff2d408952e40f5",
      "tree": "9cfc2b6c86fb990924ce694e3108f736d2ff3350",
      "parents": [
        "c95a9e9dad126108a0106844f4d572d4cd4ae103"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Thu May 07 16:53:25 2015 -0700"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Thu May 07 16:53:25 2015 -0700"
      },
      "message": "Remove pthread_detach_no_leak test.\n\nThis test has lost its purpose as we are using mmap/munmap for pthread_internal_t. And it is a flaky test.\n\nBug: 20860440\nChange-Id: I7cbb6bc3fd8a2ca430415beab5ee27a856ce4ea7\n"
    },
    {
      "commit": "5624a6a1e52ff959b0f88765d38f190700422773",
      "tree": "5259b59adb0536c7cc8ff950a5ce01182c432777",
      "parents": [
        "f3392791bc0f8f3638a04e15cea893c7c102f3c3"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue May 05 16:29:28 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed May 06 14:15:28 2015 -0700"
      },
      "message": "Move pthread_atfork_dlclose test out of static lib\n\nBug: http://b/20858755\nChange-Id: I0d84e8b43dc33902d75af18db6b7c8e0b619d718\n"
    },
    {
      "commit": "64a869880921b7e12d092b3fe7adc68fc74f98c6",
      "tree": "5b33262117b723385189bd66ae05bc529a0957ba",
      "parents": [
        "7fbd6355ae809089ae9a62d0c738aea200ac20fe",
        "3da136aa47e2d1608b98abb2580f024b36f92831"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon May 04 16:45:13 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon May 04 16:45:13 2015 +0000"
      },
      "message": "Modify test to avoid race condition.\nautomerge: 3da136a\n\n* commit \u00273da136aa47e2d1608b98abb2580f024b36f92831\u0027:\n  Modify test to avoid race condition.\n"
    },
    {
      "commit": "9a2744df301c509ea48361016ab441c792ec6d5a",
      "tree": "ddb8027705abc3fdfd5355b80407ac49811d484b",
      "parents": [
        "2c256a0f0927abd94f2210b37c18ead210d30477",
        "d1aea30b2ade504550f7bb7996c808b9af1c415d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Apr 25 18:01:18 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Apr 25 18:01:18 2015 +0000"
      },
      "message": "Merge \"Fix POSIX timer thread naming.\""
    },
    {
      "commit": "d1aea30b2ade504550f7bb7996c808b9af1c415d",
      "tree": "5510d43664f9693ccab80e9b68be854d2ce9f859",
      "parents": [
        "2bb93482a7793640205ade2f7316db5b3f5cac19"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Apr 25 10:05:24 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Apr 25 10:05:24 2015 -0700"
      },
      "message": "Fix POSIX timer thread naming.\n\nSpencer Low points out that we never actually set a name because the constant\npart of the string was longer than the kernel\u0027s maximum, and the kernel\nrejects long names rather than truncate.\n\nShorten the fixed part of the string while still keeping it meaningful. 9999\nPOSIX timers should be enough for any process...\n\nBug: https://code.google.com/p/android/issues/detail?id\u003d170089\nChange-Id: Ic05f07584c1eac160743519091a540ebbf8d7eb1\n"
    },
    {
      "commit": "2c256a0f0927abd94f2210b37c18ead210d30477",
      "tree": "2de93d1a6e2c09be6467d79cacc57def83733910",
      "parents": [
        "440242f03805872a0c62528d763e5e98dad9b580",
        "ea295f68f1fae7c701baaa717f67296659d567ac"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Sat Apr 25 05:36:06 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Apr 25 05:36:07 2015 +0000"
      },
      "message": "Merge \"Unregister pthread_atfork handlers on dlclose()\""
    },
    {
      "commit": "e91e66f223950fdc963cd89697541a32a253a0a6",
      "tree": "be470cebc8b8809e6b69499e14f11e3e6d689a3b",
      "parents": [
        "ebfb55e4cdf03473d66eaf5928fb3c3a8b0c2f85"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Apr 24 21:05:49 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Apr 24 21:05:49 2015 -0700"
      },
      "message": "Use bfd linker for x86/x86_64 targets\n\n ld.gold in current toolchain for x86_64\n does not support -z global.\n\nChange-Id: Iea2b192f0f0aa998a02adb356fd4eec4e10a1739\n"
    },
    {
      "commit": "ea295f68f1fae7c701baaa717f67296659d567ac",
      "tree": "745388310ffe715acbfd96b3cedfe55ccb50a2ca",
      "parents": [
        "ebfb55e4cdf03473d66eaf5928fb3c3a8b0c2f85"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Nov 20 20:47:02 2014 -0800"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Apr 24 17:57:37 2015 -0700"
      },
      "message": "Unregister pthread_atfork handlers on dlclose()\n\nBug: http://b/20339788\nChange-Id: I874c87faa377645fa9e0752f4fc166d81fd9ef7e\n"
    },
    {
      "commit": "6612d7a34768484eb002c07a1c7df1bd85c0997a",
      "tree": "fcc60bf45254bf181ed12930c162b270a5cd6908",
      "parents": [
        "2bb93482a7793640205ade2f7316db5b3f5cac19"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Apr 24 16:26:03 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Apr 24 16:26:03 2015 -0700"
      },
      "message": "Enable dlsym_df_1_global test for arm/arm64\n\nChange-Id: I1fdebced93175cb14053e2239e79f97239fc2dc2\n"
    },
    {
      "commit": "094f58fb2a57d1ed5736ae3588bf0355618f915b",
      "tree": "8f41a50086a97f88be5bf98d2a2806a26d854d5a",
      "parents": [
        "6df122f8528f9b9fcf7dfea14ae98b0ef66274e1"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Apr 24 03:45:59 2015 +0000"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Apr 24 03:46:57 2015 +0000"
      },
      "message": "Revert \"Unregister pthread_atfork handlers on dlclose()\"\n\n The visibility control in pthread_atfork.h is incorrect.\n It breaks 64bit libc.so by hiding pthread_atfork.\n\n This reverts commit 6df122f8528f9b9fcf7dfea14ae98b0ef66274e1.\n\nChange-Id: I21e4b344d500c6f6de0ccb7420b916c4e233dd34\n"
    },
    {
      "commit": "6df122f8528f9b9fcf7dfea14ae98b0ef66274e1",
      "tree": "5a59eb4d1148b6218b8a06895baf6176f17b995b",
      "parents": [
        "ff18108981aa1fa73696d6db1919cdc38788bd4e"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Nov 20 20:47:02 2014 -0800"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Apr 22 19:19:37 2015 -0700"
      },
      "message": "Unregister pthread_atfork handlers on dlclose()\n\nChange-Id: I326fdf6bb06bed12743f08980b5c69d849c015b8\n"
    },
    {
      "commit": "42281880a8ac8614832ff918a14e4b950f35d05d",
      "tree": "0823c1e87386aea7417635e176494ab2b9fb89ab",
      "parents": [
        "3875744f89600027c69ea68650fff1eeb4b29723"
      ],
      "author": {
        "name": "Daniel Micay",
        "email": "danielmicay@gmail.com",
        "time": "Fri Apr 17 11:26:36 2015 -0400"
      },
      "committer": {
        "name": "Daniel Micay",
        "email": "danielmicay@gmail.com",
        "time": "Fri Apr 17 18:49:12 2015 -0400"
      },
      "message": "add fortified readlink/readlinkat implementations\n\nChange-Id: Ia4b1824d20cad3a072b9162047492dade8576779\n"
    },
    {
      "commit": "3875744f89600027c69ea68650fff1eeb4b29723",
      "tree": "dec2852717151c4004af3e36df748279a88a990a",
      "parents": [
        "fc4850e37b713eae12d0bde7f6e0b4e9b444bfef",
        "2a815361448d01b0f4e575f507ce31913214c536"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Apr 17 03:57:45 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 17 03:57:46 2015 +0000"
      },
      "message": "Merge \"Support symbol versioning\""
    },
    {
      "commit": "2a815361448d01b0f4e575f507ce31913214c536",
      "tree": "82b941e908b54d6d48ef04495ff2808aa2823ae1",
      "parents": [
        "c6ccdfaf1ff4665ec96962863054263510d73e7b"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Apr 09 13:42:33 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Apr 16 17:57:30 2015 -0700"
      },
      "message": "Support symbol versioning\n\nBug: http://b/20139821\nChange-Id: I64122a0fb0960c20b2ce614161b7ab048456b681\n"
    },
    {
      "commit": "e7e1c875b0f8eefb1d771f200a58f54e64c39d55",
      "tree": "f6f7d5465c32d2dc7144c9e46b8b57da480f8528",
      "parents": [
        "a40cb0ca7fe8ddc146831e92ec543be9feb26a65"
      ],
      "author": {
        "name": "Daniel Micay",
        "email": "danielmicay@gmail.com",
        "time": "Thu Apr 16 09:07:45 2015 -0400"
      },
      "committer": {
        "name": "Daniel Micay",
        "email": "danielmicay@gmail.com",
        "time": "Thu Apr 16 10:33:35 2015 -0400"
      },
      "message": "add fortified implementations of pread/pread64\n\nChange-Id: Iec39c3917e0bc94371bd81541619392f5abe29b9\n"
    },
    {
      "commit": "a40cb0ca7fe8ddc146831e92ec543be9feb26a65",
      "tree": "4bf0c59669d2bb2bce605a400a49de7eaf62c723",
      "parents": [
        "12d89027457b4d5dce6c3a7fd01a2951f273d9a9",
        "163ab8ba86deb991c73152e6828f270cc71dc4c5"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Apr 16 08:06:02 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 16 08:06:03 2015 +0000"
      },
      "message": "Merge \"Call __cxa_thread_finalize for the main thread.\""
    },
    {
      "commit": "2587c6a2f0f946bd7c1e526c20b2623c01accd60",
      "tree": "6d45690a29969aed3585d62f947aa5c537548440",
      "parents": [
        "c6ccdfaf1ff4665ec96962863054263510d73e7b",
        "95f1ee235ae257802a94d7e94d476ea0aaea5cd8"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Thu Apr 16 01:08:24 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 16 01:08:25 2015 +0000"
      },
      "message": "Merge \"Change on handling of SIGEV_THREAD timers.\""
    },
    {
      "commit": "95f1ee235ae257802a94d7e94d476ea0aaea5cd8",
      "tree": "cf163cac0ade7c84c7c07bbffcd8f5e07201a0d4",
      "parents": [
        "447cd19681cfd0a71282c87d1b32a7757bbaba81"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Jan 13 19:53:15 2015 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Wed Apr 15 17:36:01 2015 -0700"
      },
      "message": "Change on handling of SIGEV_THREAD timers.\n\n1. Don\u0027t prevent calling callback when SIGEV_THREAD timers are disarmed by timer_settime.\nAs in POSIX standard: The effect of disarming or resetting a timer with pending\nexpiration notifications is unspecified. And glibc didn\u0027t prevent in this situation, so I\nthink it is fine to remove the support.\n2. Still prevent calling callback when SIGEV_THREAD timers are deleted by timer_delete.\nAs in POSIX standard: The disposition of pending signals for the deleted timer is unspecified.\nHowever, glibc handles this (although that is not perfect). And some of our tests in\ntime_test.cpp depend on this feature as described in b/18039727. so I retain the support.\n3. Fix some flaky test in time_test.cpp, and make \"time*\" test pass on bionic-unit-tests-glibcxx.\n\nBug: 18263854\n\nChange-Id: I8ced184eacdbfcf433fd81b0c69c38824beb8ebc\n"
    },
    {
      "commit": "163ab8ba86deb991c73152e6828f270cc71dc4c5",
      "tree": "fdaf88cdc6ae4788a95f2f527e35fa869398397f",
      "parents": [
        "8f3f04184a5772b421867b59acd3d0dfbc6fa4eb"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Apr 15 15:31:51 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Apr 15 16:24:21 2015 -0700"
      },
      "message": "Call __cxa_thread_finalize for the main thread.\n\nBug: http://b/20231984\nBug: http://b/16696563\nChange-Id: I71cfddd0d404d1d4a593ec8d3bca9741de8cb90f\n"
    },
    {
      "commit": "66aa0b61f736678e97a0cfaf975052881a23651b",
      "tree": "0377a161a2d6745f88c73bd6474916efb1dcaa99",
      "parents": [
        "cafc948069d447aa1e4dde599ee83bf6c0c5d5d8"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Apr 15 14:07:28 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Apr 15 14:23:00 2015 -0700"
      },
      "message": "Hide emutls* symbols in libc.so\n\n Also make thread_local in test static to avoid ld.bfd\n warning for arm64.\n\nChange-Id: I09a3f2aa9b73a4fafa3f3bbc64ddc2a128ad50ee\n"
    },
    {
      "commit": "8f3f04184a5772b421867b59acd3d0dfbc6fa4eb",
      "tree": "df95970c47bdea9e89cb5f64ef69f9ff39aef5d5",
      "parents": [
        "447cd19681cfd0a71282c87d1b32a7757bbaba81",
        "5ddbb3f936ee44555a46020239e49ab45109a806"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Apr 14 20:35:08 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 14 20:35:08 2015 +0000"
      },
      "message": "Merge \"Prevent using static-allocated pthread keys before creation.\""
    },
    {
      "commit": "5ddbb3f936ee44555a46020239e49ab45109a806",
      "tree": "70395ecf0897580781856c68cbcd57019ff831e3",
      "parents": [
        "4bd8f9637daaada333ff35945b00cfe6cb822376"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Thu Mar 05 20:35:32 2015 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Apr 14 13:32:09 2015 -0700"
      },
      "message": "Prevent using static-allocated pthread keys before creation.\n\nBug: 19993460\n\nChange-Id: I244dea7f5df3c8384f88aa48d635348fafc9cbaf\n"
    },
    {
      "commit": "de889741201faa338e01babdfd10bbd597769e60",
      "tree": "12166e0d22320706656a26e6ac4dd815c5eba8aa",
      "parents": [
        "c921eb677077f96c09c66ac34cad490356afde6c",
        "ef25592f14d23ce6294ea103e9edf894779d141d"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Sat Apr 11 00:28:05 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Apr 11 00:28:05 2015 +0000"
      },
      "message": "Merge \"Fix dl* tests to run-on-host\""
    },
    {
      "commit": "ef25592f14d23ce6294ea103e9edf894779d141d",
      "tree": "5c6bd7e34adb984bb2d63f9f115ce6d85b0803f5",
      "parents": [
        "598493e725e0298ae11ddbdee62c3a7007eb503c"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Apr 08 11:53:08 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Apr 09 14:56:26 2015 -0700"
      },
      "message": "Fix dl* tests to run-on-host\n\nBug: http://b/20121152\nChange-Id: I1e1f41d885c75dbb26f91565a53a15d62ef72ce6\n"
    },
    {
      "commit": "9f2c2f53d372001ac6565b060a07d4416ca58e47",
      "tree": "6ad666e24eb8f32caa68dc1740cba8b0706b33a2",
      "parents": [
        "f9ff2eeaeeb841fa9f197ee8b6bc9521e63210dd",
        "76615dae93c18ac890e167c547a08c0228709a33"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Thu Apr 09 17:19:02 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 09 17:19:44 2015 +0000"
      },
      "message": "Merge \"Provide writer preference option in rwlock.\""
    },
    {
      "commit": "76615dae93c18ac890e167c547a08c0228709a33",
      "tree": "12a7e87c6fb332bebc087f43bcf29b2f7827571e",
      "parents": [
        "4bd8f9637daaada333ff35945b00cfe6cb822376"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Mar 17 14:22:09 2015 -0700"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Wed Apr 08 13:11:13 2015 -0700"
      },
      "message": "Provide writer preference option in rwlock.\n\nPrevious implementation of rwlock contains four atomic variables, which\nis hard to maintain and change. So I make following changes in this CL:\n\n1. Add pending flags in rwlock.state, so we don\u0027t need to synchronize\nbetween different atomic variables. Using compare_and_swap operations\non rwlock.state is enough for all state change.\n\n2. Add pending_lock to protect readers/writers waiting and wake up\noperations. As waiting/wakeup is not performance critical, using a\nlock is easier to maintain.\n\n3. Add writer preference option.\n\n4. Add unit tests for rwlock.\n\nBug: 19109156\n\nChange-Id: Idcaa58d695ea401d64445610b465ac5cff23ec7c\n"
    },
    {
      "commit": "1dce3ed24940808a553f4da1a92a9b6759efd4ab",
      "tree": "736d4b68165f00e2ca60a1eb4de086d5340cb138",
      "parents": [
        "8a1007dbababa6c4812c267ca9119cf0765afc3f"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Apr 06 19:05:58 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Apr 06 19:05:58 2015 -0700"
      },
      "message": "Fix x86_64 build\n\nChange-Id: Id81c059bf3ecdb9cc84d04d16ffda34baaadc5a1\n"
    },
    {
      "commit": "8a1007dbababa6c4812c267ca9119cf0765afc3f",
      "tree": "7bea0e59f6c8c8ab2113b297aed8161c750f4fd9",
      "parents": [
        "67de2593b3d7e9e94ac8993efd51da4b512c6af5",
        "aae859cc3ca127d890e853cbf12b731e05624a22"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Apr 07 00:14:56 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 07 00:14:57 2015 +0000"
      },
      "message": "Merge \"Add realpath for soinfo\""
    },
    {
      "commit": "aae859cc3ca127d890e853cbf12b731e05624a22",
      "tree": "159e996dd6756b99fe70371e99a69ec6040e851b",
      "parents": [
        "e686df8d839216460f02cf7db6c4e26a13e49afd"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Mar 31 11:14:03 2015 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Apr 06 21:15:43 2015 +0000"
      },
      "message": "Add realpath for soinfo\n\n  This change adds realpath to soinfo and\n  extends limit on filenames from 128 to PATH_MAX.\n\n  It also removes soinfo::name field, linker uses\n  dt_soname instead.\n\nBug: http://b/19818481\nBug: https://code.google.com/p/android/issues/detail?id\u003d80336\nChange-Id: I9cff4cb5bda3ee2bc74e1bbded9594ea7fbe2a08\n"
    },
    {
      "commit": "67de2593b3d7e9e94ac8993efd51da4b512c6af5",
      "tree": "fa8a711e1ff6c5e13fd2a55813ba9ebf3213d530",
      "parents": [
        "4bd8f9637daaada333ff35945b00cfe6cb822376",
        "694fd2d880634f23254582ab1161bffbfd104696"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 06 19:36:13 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Apr 06 19:36:13 2015 +0000"
      },
      "message": "Merge \"Add a test for getdelim(3) on a directory.\""
    },
    {
      "commit": "694fd2d880634f23254582ab1161bffbfd104696",
      "tree": "a3a121297c62764d302ebe574d154cda1df459bd",
      "parents": [
        "ec8b3a7dde3c282c4f9ca5c8bf5a7e1b7469def0"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Apr 05 10:51:56 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Apr 05 10:51:56 2015 -0700"
      },
      "message": "Add a test for getdelim(3) on a directory.\n\nApparently uClibc has a bug here. We don\u0027t, but let\u0027s keep it that way.\n\nBug: http://landley.net/notes.html#21-03-2015\nChange-Id: If406df963db9bee47921d7a1c116ebcab08d96bf\n"
    },
    {
      "commit": "4bd8f9637daaada333ff35945b00cfe6cb822376",
      "tree": "558ae0624aff54953ca601079a3560f7340467ff",
      "parents": [
        "e686df8d839216460f02cf7db6c4e26a13e49afd",
        "f796985923e2d8308e00ed9567f36546dafb98d7"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Sat Apr 04 19:31:54 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Apr 04 19:31:55 2015 +0000"
      },
      "message": "Merge \"Fix bug for recursive/errorcheck mutex on 32-bit devices.\""
    },
    {
      "commit": "f796985923e2d8308e00ed9567f36546dafb98d7",
      "tree": "4fd9bbdae36ecfd15a4e08cdad3c7818995760ec",
      "parents": [
        "06b6e3c51d38d70c5ca99f3a3f795697031ac27f"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Thu Apr 02 17:47:48 2015 -0700"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Fri Apr 03 19:01:17 2015 -0700"
      },
      "message": "Fix bug for recursive/errorcheck mutex on 32-bit devices.\n\nBug: 19216648\nChange-Id: I3b43b2d18d25b9bde352da1e35f9568133dec7cf\n"
    },
    {
      "commit": "45c57131d25c82d6026ed36a791e9f5be40d5d7e",
      "tree": "44c2dd482fed18c90747b660485190c6cc40a288",
      "parents": [
        "cec2ab20a0d2b24c15aa289cbac5d4291c856092"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Apr 03 15:17:52 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Apr 03 15:17:52 2015 -0700"
      },
      "message": "Add libdl dependency for target libraries\n\n Fixed x86_64 target build with gcc 4.9\n\nChange-Id: Id3b1e9286c2bcbb8e3ac117bcef957304db7cfd3\n"
    },
    {
      "commit": "aea165cb03abceb85062e94f22f72e1c9d9800a4",
      "tree": "0198e16b3f8c44754be9bf8501794a344b3232db",
      "parents": [
        "b1f1de4dd4b1a3802abd5284de9ebfe6a98057f1",
        "9b82136b987bc01224e3b42732334ea27c97d188"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Apr 03 19:45:24 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 03 19:45:24 2015 +0000"
      },
      "message": "Merge \"Add ANDROID_DLEXT_FORCE_LOAD flag\""
    },
    {
      "commit": "9b82136b987bc01224e3b42732334ea27c97d188",
      "tree": "036facba010c670c5d6bfc3fa9dbb2de0f28caf8",
      "parents": [
        "ab7c79e22e5495a2aa171047a044ce1037e461a9"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Apr 02 16:03:56 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Apr 03 10:50:48 2015 -0700"
      },
      "message": "Add ANDROID_DLEXT_FORCE_LOAD flag\n\n  This flag allows to force loading of the library\n  in the case when for some reason multiple ELF files\n  share the same filename (because the already-loaded\n  library has been removed and overwritten, for example).\n\nChange-Id: I798d44409ee13d63eaa75d685e99c4d028d2b0c1\n"
    },
    {
      "commit": "06b6e3c51d38d70c5ca99f3a3f795697031ac27f",
      "tree": "1673971f2291c122c8944ec16cf6c99c17cfa245",
      "parents": [
        "d619d6ffb876de6a8f051c850762a6f7a7e55c76",
        "76ac1acdacc045cf1e56504e011dca68137dcd61"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Apr 02 21:55:01 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 02 21:55:01 2015 +0000"
      },
      "message": "Merge \"Look into local group on dlsym with RTLD_DEFAULT\""
    },
    {
      "commit": "76ac1acdacc045cf1e56504e011dca68137dcd61",
      "tree": "9eb3bee0f92ae74f1eba59efad4c037d50aa3dcd",
      "parents": [
        "ab7c79e22e5495a2aa171047a044ce1037e461a9"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Apr 01 14:45:10 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Apr 02 14:12:45 2015 -0700"
      },
      "message": "Look into local group on dlsym with RTLD_DEFAULT\n\n  Fix dlsym to look into local group when called with\n  RTLD_DEFAULT and RTLD_NEXT.\n\nBug: 17512583\nChange-Id: I541354e89539c712af2ea4ec751e546913027084\n"
    },
    {
      "commit": "00d1101cc170ce786f26143a897b4a3e3363b55f",
      "tree": "38c9343d5aa084c672c6932787c8adab09851c68",
      "parents": [
        "618935d2679e84cc839316c042ee3dde5f7d7097",
        "e69c24543db577d8b219ab74b0ba7566e0f13b38"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Thu Apr 02 20:27:40 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 02 20:27:40 2015 +0000"
      },
      "message": "Merge \"Refactor pthread_mutex to support 32-bit owner_tid on 64-bit devices.\""
    },
    {
      "commit": "618935d2679e84cc839316c042ee3dde5f7d7097",
      "tree": "b14e1469a3fdec5814e733e6ce4a35a7e2cd4f55",
      "parents": [
        "3cc3f17aa4b241da7303299032e4269fcf92a4e6",
        "119cb55d43304579af741d8dbc3ca701b97bbf70"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Apr 02 19:19:38 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 02 19:19:38 2015 +0000"
      },
      "message": "Merge \"gtest_repeat should allow negative values.\""
    },
    {
      "commit": "119cb55d43304579af741d8dbc3ca701b97bbf70",
      "tree": "604c5b9e2e2c255325e58849828ce2c6d0bf15ee",
      "parents": [
        "52a0f01421fde3cd4f879b491a9f491d792fa2d5"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Apr 02 12:02:55 2015 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Apr 02 12:16:00 2015 -0700"
      },
      "message": "gtest_repeat should allow negative values.\n\nIf you pass in a negative value to gtest_repeat, it should run forever.\nThe new runner didn\u0027t allow this, now it does.\n\nChange-Id: Ie0002c12e2fdad22b264adca37c165cfcfe05c7a\n"
    },
    {
      "commit": "e69c24543db577d8b219ab74b0ba7566e0f13b38",
      "tree": "5591f3540876c166a08b80815d1d257d8b98a5eb",
      "parents": [
        "611fd2cc91f79be6759f6e630e1e81998326dfe8"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Fri Feb 13 16:21:25 2015 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Wed Apr 01 21:12:22 2015 -0700"
      },
      "message": "Refactor pthread_mutex to support 32-bit owner_tid on 64-bit devices.\n\nBug: 19216648\nChange-Id: I765ecacc9036659c766f5d1f6600e1a65364199b\n"
    },
    {
      "commit": "0ad256c1b234cddc97290be761f8a0163a5c6c00",
      "tree": "7f1124ef13c059647062349357f5ff7c0d29d5cf",
      "parents": [
        "d227d57d50f7a5251dbbfa3f2b41d3fe882851fa"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 01 12:22:40 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 01 12:22:40 2015 -0700"
      },
      "message": "Fix ftw tests when run as non-root.\n\nRoot can create subdirectories inside non-writable directories, but\nother users can\u0027t.\n\nChange-Id: I102fe610d1bd2733aebf184b544e58612465287d\n"
    },
    {
      "commit": "6170693e28dd72a1517c267f3f62b3f37477b8bb",
      "tree": "f7cf73e397d83074a6da0b6cce4459b51af334cf",
      "parents": [
        "611fd2cc91f79be6759f6e630e1e81998326dfe8"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 31 10:56:58 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 31 10:56:58 2015 -0700"
      },
      "message": "Make ThreadLocalBuffer a class rather than a macro.\n\nBug: 19995392\nChange-Id: I497c512648fbe66257da3fb3bcd5c9911f983705\n"
    },
    {
      "commit": "947adedebc480917b8490bc16e8b2d82b441095a",
      "tree": "7750e1e29c848a611e7723bdc20d1aa054d0b461",
      "parents": [
        "cfd794a96d0c4f1d97e54b701b408dafdb514d17"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Mar 26 11:07:04 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Mar 27 12:05:36 2015 -0700"
      },
      "message": "Add test for thread_local keyword.\n\n  For gcc only for the time being.\n\nBug: 19800080\nBug: 16696563\nChange-Id: Ifaa59a131ca2d9030554cee7ce631dcb1d081938\n"
    },
    {
      "commit": "8f3eb5a4e5dbbac1fb431e40e25eec07ecc24ee8",
      "tree": "6eaa84d2960c9e3788093101dd9ae2c9d9426ad7",
      "parents": [
        "7c01e3a9ba80c85c7e7998d2347885e9a6e3bbf2",
        "220b99bdc1c5f51825ac2a87062bc05fe3e0d722"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Thu Mar 26 18:14:22 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 26 18:14:23 2015 +0000"
      },
      "message": "Merge \"Revert \"Cause Fatal error when invalid pthread_id is detected.\"\""
    },
    {
      "commit": "220b99bdc1c5f51825ac2a87062bc05fe3e0d722",
      "tree": "a152db94f166379d6691f67b09ff142e768e7ebe",
      "parents": [
        "03324780aae9ff28c8acf52debf0ea39120e5ab8"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Thu Mar 26 18:13:07 2015 +0000"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Thu Mar 26 18:13:07 2015 +0000"
      },
      "message": "Revert \"Cause Fatal error when invalid pthread_id is detected.\"\n\nSome code like in https://buganizer.corp.google.com/u/0/issues/19942911 need to change first.\n\nThis reverts commit 03324780aae9ff28c8acf52debf0ea39120e5ab8.\n\nChange-Id: I13ff1e5b3d0672bae9cde234ffba32fbbf33d338\n"
    },
    {
      "commit": "f2d153f836e529892854b91452fabd2c2fa79c05",
      "tree": "ed380102ca80fbfcf2b0b716d90d7237ec067132",
      "parents": [
        "7f8d91ea8e24e89db39ae868085913e763e04557",
        "df79c330d895af31f39ee301dee62731fa586168"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Mar 26 17:50:23 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 26 17:50:23 2015 +0000"
      },
      "message": "Merge \"Initial implementation of __cxa_thread_atexit_impl\""
    },
    {
      "commit": "df79c330d895af31f39ee301dee62731fa586168",
      "tree": "7129c6e46b2c150027605af4c6f08c1e6de24815",
      "parents": [
        "0c3b632bd6570064bab1055d2b8a51cfb85e60bb"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Mar 25 17:38:10 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Mar 25 18:07:59 2015 -0700"
      },
      "message": "Initial implementation of __cxa_thread_atexit_impl\n\n  This is initial implementations; does not yet handle\n  dlclose - undefined behavior, needs linker support to\n  handle it right.\n\nBug: 19800080\nBug: 16696563\nChange-Id: I7a3e21ed7f7ec01e62ea1b7cb2ab253590ea0686\n"
    },
    {
      "commit": "17393b06bab9cb3e95d0f466a56c746de19b8eee",
      "tree": "fa260e58da8fe186bca7787e3d7645a86b2f79cb",
      "parents": [
        "fa3dcecc0fd7bbbf04234e41be690a5d33277870"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Sat Mar 21 15:08:25 2015 -0700"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Wed Mar 25 17:54:17 2015 -0700"
      },
      "message": "Hide internal of pthread_mutex_t.\n\nBug: 19249079\nChange-Id: Iffb79c8d861b698d474f212dc80c638fc2cf1620\n"
    },
    {
      "commit": "03324780aae9ff28c8acf52debf0ea39120e5ab8",
      "tree": "0b20e663701fc040c406d7f7014680b63b73f5ed",
      "parents": [
        "0c3b632bd6570064bab1055d2b8a51cfb85e60bb"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Mar 24 17:43:14 2015 -0700"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Wed Mar 25 15:30:39 2015 -0700"
      },
      "message": "Cause Fatal error when invalid pthread_id is detected.\n\nThis is a patch testing whether we can use abort() instead of\nreturning ESRCH for invalid pthread ids. It is an intermediate\nstep to remove g_thread_list/g_thread_list_lock.\n\nBug: 19636317\nChange-Id: Idd8e4a346c7ce91e1be0c2ebcb78ce51c0d0a31d\n"
    },
    {
      "commit": "b58457221364eaad039c2c49a42626b725e980d5",
      "tree": "a7a8d9b3de7c34bda99153ebae330b6d180b112e",
      "parents": [
        "4149dc944bbe3c5f1c14fc998106975e68bdd6bf"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Mon Mar 16 22:46:42 2015 -0700"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Fri Mar 20 17:42:09 2015 -0700"
      },
      "message": "Add test for pthread types alignment check.\n\nBug: 19249079\nChange-Id: I83c4f0d11ec5d82a346ae0057d02a92bb1d519e8\n"
    },
    {
      "commit": "bbb0432a33787f1a627abb396fe343a7943ac7bc",
      "tree": "356c2b33690b7c1e43c4d5a4ba46d0553b1e06f6",
      "parents": [
        "7875b506edfb1fe593034eaf4bc9aa156179fbd2"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Thu Mar 19 15:19:25 2015 -0700"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Thu Mar 19 16:48:19 2015 -0700"
      },
      "message": "Return EINVAL when calling pthread_detach for joined thread.\n\nChange-Id: I717015132187e087e0ad485284a13c8801e25e77\n"
    },
    {
      "commit": "52393a56335435efc605aff66aca3145873e1e56",
      "tree": "db601ac602f90c06269d41fb653c15797b2d7188",
      "parents": [
        "6943f2968cb6054f8874e30b309985b41a37e2e0"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Mar 18 22:50:01 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Mar 18 22:50:01 2015 -0700"
      },
      "message": "Move open from zip tests to dlext\n\n To avoid building them for glibc.\n\n Also replace snprintf with std::string\n\nChange-Id: I12e1d2e4ab46ff5af6c05453da67842e0d838fc5\n"
    },
    {
      "commit": "618f1a36f8635fa0f2d60c621fbf79ead2c3f3de",
      "tree": "22f103645d9fcd4568dae35f9c76262541bc85bb",
      "parents": [
        "c6fbbb42e69bef4f058d0cbfaaaf3cbf51f95694"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Mar 17 20:06:36 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Mar 18 18:14:30 2015 -0700"
      },
      "message": "Implement lookup by DT_SONAME\n\n  This CL also fixes SEARCH_NAME hack and resolves\n  https://code.google.com/p/android/issues/detail?id\u003d6670\n  once and for all.\n\nBug: https://code.google.com/p/android/issues/detail?id\u003d6670\nChange-Id: I9b8d6a672cd722f30fbfbb40cdee8d9b39cfe56e\n"
    },
    {
      "commit": "c6fbbb42e69bef4f058d0cbfaaaf3cbf51f95694",
      "tree": "ceb7ef7d297876950db808ed6a4e55ac1edf6fe5",
      "parents": [
        "0cf2657bc25242c097d42346d17eaae4107b1d55",
        "fa495d51b02e1575088ed358614d3baa442f455f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Mar 18 23:11:51 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 18 23:11:52 2015 +0000"
      },
      "message": "Merge \"Hide statfs/fstatfs\u0027 ST_VALID flag from userspace.\""
    },
    {
      "commit": "fa495d51b02e1575088ed358614d3baa442f455f",
      "tree": "7d44227f43953a5b99d2fc582f917987a5980f56",
      "parents": [
        "ab12dc70f3ef551c490dcfede76033e57ceee64d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Mar 18 15:46:48 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Mar 18 15:46:48 2015 -0700"
      },
      "message": "Hide statfs/fstatfs\u0027 ST_VALID flag from userspace.\n\nSpotted while debugging the strace 4.10 upgrade.\n\nChange-Id: I1af1be9c9440151f55f74a835e1df71529b0e4fe\n"
    },
    {
      "commit": "c0eaa732844a8397d40a7ec82641f709e4b47a61",
      "tree": "b5fa6d3f36f7520c12f31e6bb75c3fe9ba6331a5",
      "parents": [
        "ab12dc70f3ef551c490dcfede76033e57ceee64d",
        "aef719510a57274e73ca02ab5ecdc5bf17d3985c"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Mar 18 17:25:32 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 18 17:25:33 2015 +0000"
      },
      "message": "Merge \"Support loading shared libraries from zip files\""
    },
    {
      "commit": "ee7649c5ac5f1e56cc8193cd4cee73004c04893d",
      "tree": "a7267fa3a7635c394f47fd409ad11058a6f4df3b",
      "parents": [
        "d917b20b613fd51e5f1056c8648fe8769ae8161e"
      ],
      "author": {
        "name": "Daniel Micay",
        "email": "danielmicay@gmail.com",
        "time": "Sun Mar 15 21:39:25 2015 -0400"
      },
      "committer": {
        "name": "Daniel Micay",
        "email": "danielmicay@gmail.com",
        "time": "Tue Mar 17 19:50:55 2015 -0400"
      },
      "message": "set errno to ENOENT in getauxval per glibc 2.19\n\nBionic\u0027s getauxval(...) implementation returns zero when entries are\nmissing. Zero can be a valid value, so there is no unambiguous way of\ndetecting an error. Since glibc 2.19, errno is set to ENOENT when an\nentry is missing to make it possible to detect this. Bionic should match\nthis behavior as code in the Linux ecosystem will start relying on it to\ncheck for the presence of newly added entries.\n\nChange-Id: Ic1efe29bc45fc87489274c96c4d2193f3a7b8854\nSigned-off-by: Daniel Micay \u003cdanielmicay@gmail.com\u003e\n"
    },
    {
      "commit": "5490bebd7cdd4406780358f590391b75ab8a7d84",
      "tree": "845211310385c3998a280b73553ef7b852a725b6",
      "parents": [
        "5f8ddf69e59b13653d016e236599b95daf6501a8",
        "5b8e7cd957f9380e93c3aee84962d157fe0bc526"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Mar 17 18:12:32 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 17 18:12:32 2015 +0000"
      },
      "message": "Merge \"Remove duplication in pthread_mutex.cpp.\""
    },
    {
      "commit": "aef719510a57274e73ca02ab5ecdc5bf17d3985c",
      "tree": "a3161800a6a0082e59df412a6d4d712041383fc2",
      "parents": [
        "5f8ddf69e59b13653d016e236599b95daf6501a8"
      ],
      "author": {
        "name": "Simon Baldwin",
        "email": "simonb@google.com",
        "time": "Fri Jan 16 13:22:54 2015 +0000"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Mar 16 17:50:50 2015 -0700"
      },
      "message": "Support loading shared libraries from zip files\n\nAdd code to support loading shared libraries directly from within\nAPK files.\n\nExtends the linker\u0027s handling of LD_LIBRARY_PATH, DT_RUNPATH, etc\nto allow elements to be either directories as normal, or ZIP\nformat files.  For ZIP, the ZIP subdirectory string is separated\nfrom the path to file by \u0027!\u0027.\n\nFor example, if DT_NEEDED is libchrome.so and Chrome.apk is the\nAndroid ARM APK then the path element\n\n  /system/app/Chrome.apk!lib/armeabi-v7a\n\nwould cause the linker to load lib/armeabi-v7a/libchrome.so\ndirectly from inside Chrome.apk.  For loading to succeed,\nlibchrome.so must be \u0027stored\u0027 and not compressed in Chrome.apk,\nand must be page aligned within the file.\n\nMotivation:\n  Chromium tracking issue:\n  https://code.google.com/p/chromium/issues/detail?id\u003d390618\n\nBug: 8076853\nChange-Id: Ic49046600b1417eae3ee8f37ee98c8ac1ecc19e7\n"
    },
    {
      "commit": "cb0443c0fa07e4c049f426e3041894df522732df",
      "tree": "381413df3bfbe60beb5b974fa0b81a69c13c6bbb",
      "parents": [
        "169a84f980d7a55c5f829cdd53a3eaba8f968442"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Mar 16 14:15:46 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Mar 16 14:20:57 2015 -0700"
      },
      "message": "Remove obsolete test_isolated wrapper function\n\n We already run all of our tests in isolated mode.\n\nChange-Id: I8236baa302b1026a9b4a1c33a4aa65e223771bc7\n"
    },
    {
      "commit": "d3e2a207ffcaefedf2d3baaaad3d62be1abdb33c",
      "tree": "34f101f8d1352525c184ee76ec0fabd0f151c0c9",
      "parents": [
        "9923c8cd13d1e8305a908ef23712c7d3e4d4131d",
        "32651b8e8e453391c7aaca47cd885e94d54d0bf4"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Mon Mar 16 20:58:01 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 16 20:58:02 2015 +0000"
      },
      "message": "Merge \"Hide content of pthread_cond_t in pthread_cond_internal_t.\""
    },
    {
      "commit": "b1ada3dd3fbf188ced9ab1edf1ee154d119bbc02",
      "tree": "c395fa5f5d52694f53ea07877d2678c57f2cf68b",
      "parents": [
        "11a06c73f6e7d31442429a58a346d881b0a8a441"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Mar 16 13:20:23 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Mar 16 13:20:23 2015 -0700"
      },
      "message": "Fix typo\n\nChange-Id: Ie6dad7d09873c88f6bbb2d45c2780e3b0c618bd6\n"
    },
    {
      "commit": "32651b8e8e453391c7aaca47cd885e94d54d0bf4",
      "tree": "16c36165ce78fbc359bba222ee0744556c3ed4c4",
      "parents": [
        "d2cf59d4633d9e731d0342d4f94b6e925589ab1e"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Fri Mar 13 20:30:00 2015 -0700"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Mon Mar 16 11:09:52 2015 -0700"
      },
      "message": "Hide content of pthread_cond_t in pthread_cond_internal_t.\n\nBug: 19249079\nChange-Id: I6f55af30bcd6211ce71630c6cacbef0e1663dcee\n"
    },
    {
      "commit": "64a9c4f697a2588bbcfb20534b8b15b823595d1f",
      "tree": "741786b82d596c864abca1b34a1298dc7c9dd63b",
      "parents": [
        "f6f96df5b031b0bf79eb8ad49bd73a3ceab87db5"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Thu Mar 12 22:16:03 2015 -0700"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Thu Mar 12 23:36:29 2015 -0700"
      },
      "message": "Make gtest_main exit 1 when some test are failed.\n\nThis is the gtest behavior, which I think can make test status\njudgement more convenient.\n\nChange-Id: I7d3c210d1744b954a4148cd905dd5c353207fce8\n"
    },
    {
      "commit": "5b8e7cd957f9380e93c3aee84962d157fe0bc526",
      "tree": "c454f02e61518005d531a825e2f0469fac261bbf",
      "parents": [
        "c3307dc43b2526c4031837738b139d22831c5d09"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Wed Mar 04 17:36:59 2015 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Thu Mar 12 21:54:41 2015 -0700"
      },
      "message": "Remove duplication in pthread_mutex.cpp.\n\nAlso add unit tests about thread woken up by pthread_mutex_unlock.\n\nBug: 19216648\n\nChange-Id: I8bde8105b00186c52a2f41d92458ae4a5eb90426\n"
    },
    {
      "commit": "c6e5874a4c19f398eb179a23de9b1d2c06bccea0",
      "tree": "28ef6705ccf67c524b52eaa8e7dc7fc0f31637a7",
      "parents": [
        "e86a86f9f24df7028d2596c69ff008cf88e039e4"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Mon Mar 09 13:55:18 2015 -0700"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Mon Mar 09 18:13:15 2015 -0700"
      },
      "message": "Loosen fchmodat AT_SYMLINK_NOFOLLOW test on symlink.\n\nIt has been reported in b2/19657449 and b2/19381040 that fchmodat\nAT_SYMLINK_NOFOLLOW operation on symlink can succeed. It seems to be\ncontrolled by kernel(version or configuration) or user configuration\nwhether chmod is allowed on symlinks. Unless we can disable chmod on\nsymlinks in bionic explicitly, we can not guarantee that the test can\npass. But it seems reasonable to allow chmod on symlink if kernel allows\nto. So We prefer to loosen the test here, accepting both success and\nfailure when doing chmod operation on symlinks.\n\nBug: 19657449\nBug: 19381040\nChange-Id: I780e84f0b50d0412fbac9f1c240d07e984892a28\n"
    },
    {
      "commit": "24e8871faa34e9c49c629ae63970422ff75ee4a2",
      "tree": "60381befa1df474ffd154d5e93c182c4545821a6",
      "parents": [
        "5d400204589ceb781fa11864c2e8f3001e5dc96f"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Wed Mar 04 15:31:55 2015 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Thu Mar 05 00:46:18 2015 -0800"
      },
      "message": "Rename fortify_sprintf_warnings.cpp to fortify_compilation_test.cpp.\n\nBug: 19234260\nChange-Id: Ife27ca13eeae317739eda25b40dd2a08606d6d6f\n"
    },
    {
      "commit": "d9647594dee6fc0352845904f2249b7f1c4e2364",
      "tree": "40e3f834826c8f754bb9284279aea23f65053021",
      "parents": [
        "94545eba371be428c11d587a3b7d9883f37c7b19"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Thu Mar 05 00:39:09 2015 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Thu Mar 05 00:39:09 2015 -0800"
      },
      "message": "Fix fortify compilation test in x86_64.\n\nChange-Id: Ic243f6583e4f435899d01c7845dddacacbfc916e\n"
    },
    {
      "commit": "94545eba371be428c11d587a3b7d9883f37c7b19",
      "tree": "c91d2a87811d1597ebc8d9a59d99eb031c28a70f",
      "parents": [
        "5ad57ce6ab95a12ab738eb7cd3595745ddd60d8d"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Wed Mar 04 22:35:13 2015 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Wed Mar 04 22:35:13 2015 -0800"
      },
      "message": "Fix fortify compilation test on x86.\n\nChange-Id: I9b88cbcec51b6f1dbac2780a9bf82851bd6cc87c\n"
    },
    {
      "commit": "f3bd305b8f8270f157ee79851fc630abd94d3245",
      "tree": "081017b1a01aff24767fa5f7c58ede336ebd2af5",
      "parents": [
        "e1c0213be3f0c2c4e310cbc262da88835a2e5d86"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Wed Mar 04 21:43:14 2015 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Wed Mar 04 21:43:14 2015 -0800"
      },
      "message": "Fix fortify compilation test on mips.\n\nChange-Id: Icff5b859ae58067bfa34430d3f5684335fe063b4\n"
    },
    {
      "commit": "e1c0213be3f0c2c4e310cbc262da88835a2e5d86",
      "tree": "052396403af1b7e83ca747a87ce2bc0ff730ba51",
      "parents": [
        "dec9501af2ee4d7cec3a163310d42e8ea1b8c58f",
        "08ee8d2030fbc73c4c144e819dd68806b0351cbe"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Thu Mar 05 04:42:35 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 05 04:42:35 2015 +0000"
      },
      "message": "Merge \"Switch pthread_rwlock_t to stdatomic.\""
    },
    {
      "commit": "08ee8d2030fbc73c4c144e819dd68806b0351cbe",
      "tree": "61c0f1027bd8967ff7eb8e95a128ee10e260ca32",
      "parents": [
        "ee17e8800418a74e21dba11658234363cf6f6032"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Wed Feb 11 17:04:36 2015 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Wed Mar 04 18:16:20 2015 -0800"
      },
      "message": "Switch pthread_rwlock_t to stdatomic.\n\nBug: 19099838\nChange-Id: Ie82967a60b5cec61a8bdd1e0e4a03738d01944f8\n"
    },
    {
      "commit": "20f2268d61966230587957912491b67ad8bb91c8",
      "tree": "20138d3d1bb7c90961cd4bc683747825fc39789d",
      "parents": [
        "e1edd301d2a722e0a0687a7a3a87081c8cb956d3"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Mar 03 20:27:58 2015 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Wed Mar 04 13:10:38 2015 -0800"
      },
      "message": "Add fortify compile test.\n\nTwo parts of tests are added:\n1. Compile time warnings for gcc checking built-in functions.\n2. Compile time errors for each errordecl() in bionic.\n\nBug: 19234260\nChange-Id: Iec6e4a8070c36815574fe9e0af9595d6143a4757\n"
    },
    {
      "commit": "cc9ca1051dbf5bd2af1b801de13d43a399521cf9",
      "tree": "f8fd2edf4fd85c87a1b9259c821c4d8f9878b104",
      "parents": [
        "e6a33cefe4b3759fb77d9e69356cb50a97ea7e54"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Feb 27 18:22:45 2015 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Feb 27 18:22:45 2015 -0800"
      },
      "message": "Fix fread returning bad data.\n\nBug: 19172514\nChange-Id: I05016577858a02aca7d14e75e6ec28abc925037c\n"
    },
    {
      "commit": "f6237470a3f5ce801b5df2500f3d0ffb1aec4515",
      "tree": "fa2996123c2f5b5a0078051b6539b7d803b50402",
      "parents": [
        "f8eec1e54fbfb7b0304b73cb9ce2de44760a672e"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Thu Feb 26 19:03:54 2015 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Thu Feb 26 19:03:54 2015 -0800"
      },
      "message": "Make bionic gtest main be compatible with gtest output format for cts test.\n\nBug: 17589740\nChange-Id: Ifab521da379a33bf0a7bf11c21386f936f0d494c\n"
    },
    {
      "commit": "ea9c933f360cc07b821b542321309c65cceddbfc",
      "tree": "6141d6350a4aff9501f71f4d498cda3805b0f289",
      "parents": [
        "d91ded81376a10a1c89f7a5ae3c462ae3b24188e"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Feb 24 14:39:19 2015 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Feb 24 14:44:51 2015 -0800"
      },
      "message": "Make all output of child test go to parent process in gtest_main.\n\nChange-Id: Iad460e89755051cdb99593cbf42c97d9a359f32b\n"
    },
    {
      "commit": "35778253a5ed71e87a608ca590b63729d9f88567",
      "tree": "d9e6112654bf2faa754abd9f28bc20c2ccccff57",
      "parents": [
        "2aef607b25c463baed5ae70d14212e24ea7bcf2b"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Feb 24 13:40:43 2015 -0800"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Feb 24 13:40:43 2015 -0800"
      },
      "message": "Fix \"faccessat ignores flags\"\n\nThe kernel system call faccessat() does not have any flags arguments,\nso passing flags to the kernel is currently ignored.\n\nFix the kernel system call so that no flags argument is passed in.\n\nEnsure that we don\u0027t support AT_SYMLINK_NOFOLLOW. This non-POSIX\n(http://pubs.opengroup.org/onlinepubs/9699919799/functions/access.html)\nflag is a glibc extension, and has non-intuitive, error prone behavior.\n\nFor example, consider the following code:\n\n  symlink(\"foo.is.dangling\", \"foo\");\n  if (faccessat(AT_FDCWD, \"foo\", R_OK, AT_SYMLINK_NOFOLLOW) \u003d\u003d 0) {\n    int fd \u003d openat(AT_FDCWD, \"foo\", O_RDONLY | O_NOFOLLOW);\n  }\n\nThe faccessat() call in glibc will return true, but an attempt to\nopen the dangling symlink will end up failing. GLIBC documents this\nas returning the access mode of the symlink itself, which will\nalways return true for any symlink on Linux.\n\nSome further discussions of this are at:\n\n  * http://lists.landley.net/pipermail/toybox-landley.net/2014-September/003617.html\n  * http://permalink.gmane.org/gmane.linux.lib.musl.general/6952\n\nAT_SYMLINK_NOFOLLOW seems broken by design. I suspect this is why this\nfunction was never added to POSIX. (note that \"access\" is pretty much\nbroken by design too, since it introduces a race condition between\ncheck and action). We shouldn\u0027t support this until it\u0027s clearly\ndocumented by POSIX or we can have it produce intuitive results.\n\nDon\u0027t support AT_EACCESS for now. Implementing it is complicated, and\npretty much useless on Android, since we don\u0027t have setuid binaries.\nSee http://git.musl-libc.org/cgit/musl/commit/?id\u003d0a05eace163cee9b08571d2ff9d90f5e82d9c228\nfor how an implementation might look.\n\nBug: 18867827\nChange-Id: I25b86c5020f3152ffa3ac3047f6c4152908d0e04\n"
    },
    {
      "commit": "be52e658171edf6651895c40d1563289bafa52f7",
      "tree": "0f58f6022d63e08166da1a03775d50df4d2f13b5",
      "parents": [
        "393bdb156d5024a03f03425a977d0518c84dbb98"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 23 18:02:29 2015 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 23 21:52:56 2015 -0800"
      },
      "message": "Fix dup2 in the case where the two fds are equal.\n\ndup3\u0027s behavior differs from dup2 in this case, so we need to paper\nover that in the C library.\n\nChange-Id: I313cd6f226db5e237f61866f324c5ecdd12bf762\n"
    },
    {
      "commit": "3cfb52aab2548df635e9672218cc433e14922fd3",
      "tree": "eebbf162a1e5e1ed8726a9129ea17a410ebaa3ed",
      "parents": [
        "3e1b5f46c07aef5983ecf2feb1c3369b2cd200c0"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 18 21:29:13 2015 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 18 22:02:56 2015 -0800"
      },
      "message": "Add GNU extensions mempcpy and wmemcpy.\n\nUsed by elfutils. On the bright side, they stopped using __mempcpy.\n\nBug: 18374026\nChange-Id: Id29bbe6ef1c5ed5a171bb6c32182f129d8332abb\n"
    },
    {
      "commit": "3da136aa47e2d1608b98abb2580f024b36f92831",
      "tree": "555be2ba96c58e6d11c2dbdb5ed1376a4a41b1aa",
      "parents": [
        "4177bd8d16e0dc2d0d541fc54f81518c57651e55"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Feb 18 17:11:47 2015 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Feb 18 17:45:50 2015 -0800"
      },
      "message": "Modify test to avoid race condition.\n\nThere is a possible race if a timer is set to trigger at nearly the same\ntime as it is set. Since nobody uses the timers like this, modify the test\nso this doesn\u0027t happen. The race that this can provoke has been fixed in\naosp.\n\nBug: 19423618\nChange-Id: I21084c99da5ae46f404936d673dae6bad7c82caa\n"
    },
    {
      "commit": "54b61b7ca7d7c9c7474e2beb35d20a9ab635529f",
      "tree": "ea6359d64b68187a34a9fd3a3f6b8544056a4770",
      "parents": [
        "89dad68efb07ef0868c2ac35737a4b2c83aea326",
        "56b2b2916b72eb21352c7aed529e0deeb5582072"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Feb 17 21:41:41 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 17 21:41:41 2015 +0000"
      },
      "message": "Merge \"Accuracy tests for libm\""
    },
    {
      "commit": "fb48c68221afb1f9e7c63a15a20cca0857d1b9f9",
      "tree": "b845b7e6adc69d65e8b96e31fd25c1cf98d56493",
      "parents": [
        "40d06b25ac86260e9c1701540420c9634bab8bad",
        "41ef902379ba24bd8a3ca6d7733b8376efb55ebd"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 17 17:54:39 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 17 17:54:40 2015 +0000"
      },
      "message": "Merge \"Fix memchr overflow.\""
    },
    {
      "commit": "e1f9ddaf0d314186da8b2a86e5a438f6ff204030",
      "tree": "14e658d45b2e519c75c66a9c4823689a5f0e7430",
      "parents": [
        "4181cc691e36546c556274d46d389d7e0cb9cfab"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Feb 14 14:11:50 2015 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Feb 14 14:11:50 2015 -0800"
      },
      "message": "Regression test for NDK bug 80199.\n\nBionic never had this bug, but since the proposed fix is to remove the NDK\u0027s\nbroken code, we should add a regression test here.\n\nBug: https://code.google.com/p/android/issues/detail?id\u003d80199\nChange-Id: I4de21b5da9913cef990bc4d05a7e27562a71a02b\n"
    },
    {
      "commit": "41ef902379ba24bd8a3ca6d7733b8376efb55ebd",
      "tree": "855ac7e3fa276bfb55594e4efb28c7c29cf28f3f",
      "parents": [
        "f9fb52ab309c97d5b2ef4f8e1daff3eed4cf4024"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Feb 14 13:21:22 2015 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Feb 14 13:21:22 2015 -0800"
      },
      "message": "Fix memchr overflow.\n\nThe overflow\u0027s actually in the generic C implementation of memchr.\n\nWhile I\u0027m here, let\u0027s switch our generic memrchr to the OpenBSD version too.\n\nBug: https://code.google.com/p/android/issues/detail?id\u003d147048\nChange-Id: I296ae06a1ee196d2c77c95a22f11ee4d658962da\n"
    },
    {
      "commit": "56b2b2916b72eb21352c7aed529e0deeb5582072",
      "tree": "1299d64a93aec1d48f3abe304a8db75668a9dad1",
      "parents": [
        "f9fb52ab309c97d5b2ef4f8e1daff3eed4cf4024"
      ],
      "author": {
        "name": "Jingwei Zhang",
        "email": "jingwei.zhang@intel.com",
        "time": "Tue Sep 02 21:39:14 2014 +0800"
      },
      "committer": {
        "name": "Mingwei Shi",
        "email": "mingwei.shi@intel.com",
        "time": "Sat Feb 14 00:56:46 2015 +0800"
      },
      "message": "Accuracy tests for libm\n\nThis patch adds more tests for math functions to address coverage\nissue of math functions discussed in:\nhttps://android-review.googlesource.com/#/c/49653/\nhttps://android-review.googlesource.com/#/c/94780/\n\nThese are data sets used in regression tests for the Intel the math library (libm). They were collected over a long period of testing various libm implementations.\nThe data sets contain function specific data (special and corner cases such as +/-0, maximum/minimum normalized numbers, +/-infinity, QNaN/SNaN, maximum/minimum denormal numbers, arguments that would produce close to overflow/underflow results, known hard-to-round cases, etc), implementation specific data (arguments close to table look-up values for different polynomial approximations, worst cases for range reduction algorithms) and other data with interesting bit patterns.\nThe reference values are computed with Maple and were converted into hexadecimal format.\n\nChange-Id: I7177c282937369eae98f25d02134e4fc3beadde8\nSigned-off-by: Jingwei Zhang \u003cjingwei.zhang@intel.com\u003e\nSigned-off-by: Mingwei Shi \u003cmingwei.shi@intel.com\u003e\n"
    }
  ],
  "next": "7f925097e8a741bb23f91c45ffcbd74688c9e231"
}
