)]}'
{
  "log": [
    {
      "commit": "1c19194c9d2518dbe86973cd313a277ecb70d75c",
      "tree": "46cffb5ae65c870a36e217b2b9a7b27e2c3154be",
      "parents": [
        "27aa9c5b50cc3e979fc67c1bf5296dfd725c8540"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Wed Nov 19 19:49:14 2014 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Fri Nov 21 19:10:52 2014 -0800"
      },
      "message": "flesh out sysconf(3) and the _POSIX_* constants\n\nBug: 17571891\nChange-Id: I81036615486bde65969ae5662587fcc88348474e\n"
    },
    {
      "commit": "9d93986481b67a8135e57fc6400ca8c59f7375f6",
      "tree": "f73d192d6191ef495a63be7fc27130190ba9e79d",
      "parents": [
        "661423a453b2692d592df56307a876dfc35c50f2"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Fri Nov 14 15:51:58 2014 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Fri Nov 14 16:22:48 2014 -0800"
      },
      "message": "Add functions in sysinfo.h.\n\nBug: 17703902\n\nChange-Id: I699d12d76a8fc483c919be730c2ac63641b71a1d\n"
    },
    {
      "commit": "661423a453b2692d592df56307a876dfc35c50f2",
      "tree": "6526acffcca10d34b9e31c94771aa9515f78f1b5",
      "parents": [
        "4cf942d318f2856dff078798ce9a3eac5de593b7",
        "b5e581abfe28de8ed6c8c8af1c265bb4e36f97bb"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Fri Nov 14 23:45:44 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 14 23:45:45 2014 +0000"
      },
      "message": "Merge \"Increase support of pathconf options.\""
    },
    {
      "commit": "b5e581abfe28de8ed6c8c8af1c265bb4e36f97bb",
      "tree": "fef160a2d4f88f2e5e38a7bfbda48458c3c48b93",
      "parents": [
        "e5cabca516252addb5e305c8e1e0f35cafbcafbe"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Sat Nov 08 14:58:12 2014 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Fri Nov 14 23:45:24 2014 +0000"
      },
      "message": "Increase support of pathconf options.\n\nBug: 18206366\nChange-Id: Ie770e49f5af3631eb9fbd2cd5174edf004c81e00"
    },
    {
      "commit": "60d84af1726225320b26683b726e5e735d9d76e8",
      "tree": "e8eec3ae90eecfffa1ce0ada103512b9819f3ef1",
      "parents": [
        "cdcef73a23833ebd50bb5b654eb278b164e286ad"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Nov 14 15:14:44 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Nov 14 15:14:44 2014 -0800"
      },
      "message": "sysconf(3) returns long.\n\nOn LP32, this makes no difference. Not an ABI change.\n\nOn LP64, results are going to be in %rax or x0 whether they\u0027re 32- or 64-bit,\nand the only difference is going to be whether the top bits are clobbered.\n\nBug: 18390956\nChange-Id: I0bd4496231bdded34c1fa03e895021ac0df7f8e1\n"
    },
    {
      "commit": "e3c4acf1e3ef36c2ab1f48b1261dec9a1d8330a4",
      "tree": "68632a0f7a6f832a2c4778a60739d5320673ce33",
      "parents": [
        "288fa03a5aa5ee69c321e7266cdc656d11d8c022"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 13 14:27:25 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 13 15:51:36 2014 -0800"
      },
      "message": "Fix our \u003cmntent.h\u003e implementation.\n\nUsed by toybox.\n\nChange-Id: I36a5053423e5cc54ae02a68f4fe110d75134accd\n"
    },
    {
      "commit": "68d98d832b7935ed5be23836c481a14f00b19ef1",
      "tree": "8055b8a2ba805a99544318feca3d7d894fe93955",
      "parents": [
        "92a585c91a83e63949431c617de936742b080150"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 12 21:03:26 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 12 21:03:26 2014 -0800"
      },
      "message": "Assume glibc \u003e\u003d 2.15.\n\nThis catches one trivial difference between us and glibc --- the error\nreturned by pthread_setname_np for an invalid pthread_t.\n\nChange-Id: If4c21e22107c6488333d11184f8005f8669096c2\n"
    },
    {
      "commit": "e5cabca516252addb5e305c8e1e0f35cafbcafbe",
      "tree": "14bd9f3daf5fd217f97edcaee315dcb9171f0beb",
      "parents": [
        "bbdfa518830d49565966acea02796769434e0d74",
        "5ca4a9e2da46db30ad6d8556b61679d138aaf88d"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Wed Nov 12 20:36:25 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 12 20:36:26 2014 +0000"
      },
      "message": "Merge \"implement missing seekdir and telldir\""
    },
    {
      "commit": "2f954bab2d524f6afed8a443c2a7ee32876db0fa",
      "tree": "7437b6e2e570e89df2b893f30d111e6b7acb3a1d",
      "parents": [
        "d94e7f0f1d95e0da73fca8d591fdb56b69d82653"
      ],
      "author": {
        "name": "Yongqin Liu",
        "email": "yongqin.liu@linaro.org",
        "time": "Thu Oct 30 16:34:55 2014 +0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 12 12:07:33 2014 -0800"
      },
      "message": "gethostname.c: change to report ENAMETOOLONG error when buflen is less\n\nchange to behaviour the same as glibc for the check about buflen\n\nChange-Id: I98265a8fe441df6fed2527686f89b087364ca53d\nSigned-off-by: Yongqin Liu \u003cyongqin.liu@linaro.org\u003e\n"
    },
    {
      "commit": "5ca4a9e2da46db30ad6d8556b61679d138aaf88d",
      "tree": "fe013b8b41e1eb1388c5f76931f6f1c24331f905",
      "parents": [
        "9df70403d95f5cfe6824e38a9a6c35f9b9bbc76a"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Thu Nov 06 19:55:09 2014 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Fri Nov 07 10:20:32 2014 -0800"
      },
      "message": "implement missing seekdir and telldir\n\nBug: 18266863\nChange-Id: I189ee949d4f7ccee099f3341e349cd969d25480f\n"
    },
    {
      "commit": "b20c24456e43df430ec5626a68e5dc0dc6929344",
      "tree": "c9b85b4d913f8f2738bdc8772b9b9a21d6ab51dc",
      "parents": [
        "08a70184b42ef2963794a56233b0253e0b367253"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 06 15:04:08 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 06 15:52:22 2014 -0800"
      },
      "message": "Implement all the POSIX _l functions.\n\nStrictly speaking, this only implements the _l variants of the functions\nwe actually have. We\u0027re still missing nl_langinfo_l, for example, but we\ndon\u0027t have nl_langinfo either.\n\nChange-Id: Ie711c7b04e7b9100932a13f5a5d5b28847eb4c12\n"
    },
    {
      "commit": "7e0d0f8572152c47a993e7bc8407690556754bd4",
      "tree": "4098f53c0801f8076c1080604ab98a363efdbd41",
      "parents": [
        "695781b6f0419f82939176a6ec1a240300d9f036"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Nov 04 18:03:44 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Nov 04 18:03:44 2014 -0800"
      },
      "message": "Fix newlocale with a NULL locale name.\n\nBug: https://code.google.com/p/android/issues/detail?id\u003d78567\nChange-Id: I272dabc12ab186b44a525c7e8ac1846e62334e85\n"
    },
    {
      "commit": "5b1111a6949b6751ce72bd0b034b7bbe6246a6b6",
      "tree": "0a081fcbc3a39613d611be2e5537eee737967052",
      "parents": [
        "c716dd1e21438ac6585be79fb799b3135e9b381f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Oct 24 19:33:11 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Oct 24 19:33:11 2014 -0700"
      },
      "message": "POSIX says pthread_mutex_trylock returns EBUSY, not EDEADLK.\n\nFound by unit test.\n\nChange-Id: Iffbd2f04213616927fbd7b5419460031f7a078e9\n"
    },
    {
      "commit": "ca8e84c6ff55640aef94d25a86a25778a542bfc2",
      "tree": "9bb5852afef5b61cf906caee58cfea12d65e0b0b",
      "parents": [
        "6c5694b6c8343d740c36adbe904442cecd8030a6"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 23 19:10:23 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 23 19:10:54 2014 -0700"
      },
      "message": "Add mkfifoat(3).\n\nLooks like I missed one of the *at functions when I added the rest.\n\nChange-Id: If16de82dbf6f9a3ea7bfdcba406ca1c74a3f2279\n"
    },
    {
      "commit": "62d84b19359a8ddd3df5b6293d1b05ef5281f532",
      "tree": "b614f0c9c9671eb6beaec448a7d22dc1ad44e298",
      "parents": [
        "098cf45f4e853f3c85c14af0e475bfae0839f027"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Oct 20 19:09:19 2014 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Oct 22 13:20:39 2014 -0700"
      },
      "message": "Fix race condition in timer disarm/delete.\n\nWhen setting a repeat timer using the SIGEV_THREAD mechanism, it\u0027s possible\nthat the callback can be called after the timer is disarmed or deleted.\nThis happens because the kernel can generate signals that the timer thread\nwill continue to handle even after the timer is supposed to be off.\n\nAdd two new tests to verify that disarming/deleting doesn\u0027t continue to\ncall the callback.\n\nModify the repeat test to finish more quickly than before.\n\nRefactor the Counter implementation a bit.\n\nBug: 18039727\n\n(cherry pick from commit 0724132c3263145f2a667f453a199d313a5b3d9f)\n\nChange-Id: I135726ea4038a47920a6c511708813b1a9996c42\n"
    },
    {
      "commit": "18160256840e9bb097f17422ea47d54fabbc9f3f",
      "tree": "9e214fedefed00a66099d8cc9abab4dd68cbec80",
      "parents": [
        "c229705051c8b6a06ad81c221ca74ef9aa743e13"
      ],
      "author": {
        "name": "Haruki Hasegawa",
        "email": "h6a.h4i.0@gmail.com",
        "time": "Mon Oct 13 00:50:47 2014 +0900"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 13 17:04:10 2014 -0700"
      },
      "message": "Add clock_settime and clock_nanosleep.\n\nAdd the missing prototypes, fix the existing prototypes to use clockid_t\nrather than int, fix clock_nanosleep\u0027s failure behavior, and add simple\ntests.\n\nBug: 17644443\nBug: https://code.google.com/p/android/issues/detail?id\u003d77372\nChange-Id: I03fba369939403918abcabae9551a7123953d780\nSigned-off-by: Haruki Hasegawa \u003ch6a.h4i.0@gmail.com\u003e\n"
    },
    {
      "commit": "9afb2f2106a5d659854c175c574c1c31e0e205a2",
      "tree": "cbcc21f633b85ff022827d5e2c3ac87db3a5e2c4",
      "parents": [
        "d0944d9ed38be0d74c3d8876f0f36b9ddc0ce38c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 09 14:01:47 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 09 14:01:47 2014 -0700"
      },
      "message": "Fix pthread_attr_getstack under valgrind.\n\nvalgrind seems to mess with the stack enough that the kernel will\nreport \"[stack:pid]\" rather than \"[stack]\" in /proc/self/maps, so\nswitch to the task-specific file instead to force \"[stack]\". (There\nare two conditions in the kernel code that decides which form to\noutput.)\n\nBug: 17897476\nChange-Id: Iff85ceb6d52e8716251fab4e45d95a27184c5529\n"
    },
    {
      "commit": "f183f95946c699924d8ce6c0ee723bf7f4fdfe85",
      "tree": "a19b67ae4bfb1ff566f09ba14e414399a4eaee3e",
      "parents": [
        "8a7f8387b3b95de2ee0c42e34a226a1fcc066896"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Oct 08 22:48:20 2014 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Oct 09 11:47:01 2014 -0700"
      },
      "message": "Re-add dlmalloc for 32 bit.\n\nIt turns out that appportable has a version that calls dlmalloc directly.\nRe-add the dlmalloc symbol for 32 bit only as a compatibility shim that\ncalls malloc.\n\nBug: 17881362\n\n(cherry pick commit from c9734d24d92f4737f5ab3808c77d816a1b084582)\n\nChange-Id: Iee9a777f66a1edb407d7563a60792b767ac4f83a\n"
    },
    {
      "commit": "75129ae9f3448905bf837d774a94ff973efd812e",
      "tree": "16ec05cad9c84f1c831d59ff7d51ffb3569ee390",
      "parents": [
        "1364101067072c2ce6fa395cdef2534f338f30b1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 08 15:11:44 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 08 15:11:44 2014 -0700"
      },
      "message": "Don\u0027t silently return EINVAL for a NULL sem_t*.\n\nBug: 17571197\nChange-Id: Ied31d8de87fc10d20dc338be0457e9a4ddb9a0a5\n"
    },
    {
      "commit": "5a3ca374583f7605672d9e8f9098011de240f7c4",
      "tree": "253051956500d39d0a9e8d282aacebe78dc21def",
      "parents": [
        "c9e4f2de0a92ebf6dec336f383ba172efe1bb366",
        "3d773274ad6caaf7e0431c3d5eeb31f727b53d1a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 08 16:40:57 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 08 16:40:58 2014 +0000"
      },
      "message": "Merge \"Revert \"Work around a bug in Immersion\u0027s libImmEmulatorJ.so.\"\""
    },
    {
      "commit": "c9e4f2de0a92ebf6dec336f383ba172efe1bb366",
      "tree": "2be7b07141d6d32b720b16f2cc7053e305728f1d",
      "parents": [
        "e8d9057e3005f6f53f8ef2e876b43aea7a892292",
        "658727e111ed6dee7be5239494f0764f7b1b02f8"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed Oct 08 00:01:08 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 08 00:01:08 2014 +0000"
      },
      "message": "Merge \"Inline helpers need to be exported unmangled.\""
    },
    {
      "commit": "658727e111ed6dee7be5239494f0764f7b1b02f8",
      "tree": "253051956500d39d0a9e8d282aacebe78dc21def",
      "parents": [
        "eeb9aa02b7f307a1d9b80731dd69ef9dd2f47e47"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Oct 07 11:10:36 2014 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Oct 07 16:46:47 2014 -0700"
      },
      "message": "Inline helpers need to be exported unmangled.\n\n__open_2() is used by the fortify implementation of open(2) in\nfcntl.h, and as such needs an unmangled C name. For some reason\n(inlining?), this doesn\u0027t cause problems at the default optimization\nlevel, but does for -O0.\n\nThe rest of these didn\u0027t cause build failures, but they look suspect\nand probably will, we just haven\u0027t caught them yet.\n\nBug: 17784968\nChange-Id: I7391a7a8999ee204eaf6abd14a3d5373ea419d5b\n"
    },
    {
      "commit": "3d773274ad6caaf7e0431c3d5eeb31f727b53d1a",
      "tree": "e1f6074157470da7a594f3f3d4300265332f271a",
      "parents": [
        "7d3f553f989f830976efa92ddc3c84661d4d42aa"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 07 23:31:06 2014 +0000"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 07 23:31:06 2014 +0000"
      },
      "message": "Revert \"Work around a bug in Immersion\u0027s libImmEmulatorJ.so.\"\n\nThis reverts commit 7d3f553f989f830976efa92ddc3c84661d4d42aa.\n\nChange-Id: I8909b6aa1d97e9a61dbe95a2d91b9fbe336b58f0\n"
    },
    {
      "commit": "7d3f553f989f830976efa92ddc3c84661d4d42aa",
      "tree": "cb8560d4abe6a37b4e45ca577e579d182d42aa6a",
      "parents": [
        "eeb9aa02b7f307a1d9b80731dd69ef9dd2f47e47"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 07 16:02:11 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 07 16:02:11 2014 -0700"
      },
      "message": "Work around a bug in Immersion\u0027s libImmEmulatorJ.so.\n\nThis library calls pthread_mutex_lock and pthread_mutex_unlock with a NULL\npthread_mutex_t*. This gives them (and their users) one release to fix things.\n\nBug: 17443936\nChange-Id: I3b63c9a3dd63db0833f21073e323b3236a13b47a\n"
    },
    {
      "commit": "b0fd55608e707b3e9b5c2937537414be7d098afd",
      "tree": "e05263210015392be20269fbeec18b31ec780206",
      "parents": [
        "81fca35672df90e2f770e67bbf7e7735c6ff8bd8"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Oct 07 11:07:53 2014 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Oct 07 11:28:47 2014 -0700"
      },
      "message": "Use snprintf instead of sprintf.\n\nAt -O0, the attribute warning on sprintf is actually triggered (why\ndoesn\u0027t this happen with -Os?!) and promoted to an error by -Werror.\nasctime64_r() is a non-standard function, but the IBM docs state that\nthe buffer is assumed to be at least 26 characters wide, and the\nformat string does limit to that (assuming a 4 digit year, also\ndefined by the IBM docs).\n\nhttp://www-01.ibm.com/support/knowledgecenter/SSLTBW_2.1.0/com.ibm.zos.v2r1.bpxbd00/asctimer.htm\n\nChange-Id: I1c884474a769aa16c53e985c3d8d694c478c1189\n"
    },
    {
      "commit": "8d0b2dbf2154d5da17ff09b1d4f864d281362ad2",
      "tree": "f17c338cdad0320f0205f8d097d316c0ad2a1894",
      "parents": [
        "d5df4124bbbb30411ef19f7c2fbb3987d0eb9630"
      ],
      "author": {
        "name": "Alex Van Brunt",
        "email": "avanbrunt@nvidia.com",
        "time": "Fri Sep 26 13:32:47 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Oct 03 18:54:28 2014 -0700"
      },
      "message": "Reimplement clock(3) using clock_gettime(3)\n\nUnlike times(), clock_gettime() is implemented as a vDSO on many architectures.\nSo, using clock_gettime() will return a more accurate time and do so with less\noverhead because it does have the overhead of calling into the kernel.\n\nIt is also significantly more accurate because it measures the actual time in\nnanoseconds rather than the number of ticks (typically 1 millisecond or more).\n\nBug: 17814435\nChange-Id: Id4945d9f387330518f78669809639952e9227ed9\n"
    },
    {
      "commit": "fc5a93f7a2ea2be740f2c909e8a6a192fa65adc8",
      "tree": "9c9f2068825c2f4ece4944373efb3ebb84109ace",
      "parents": [
        "ebf37e38861e376ae47c72d45ab8de6703dd18f0",
        "3c5037f1b3b747e79d17a5f717d9f9c365132d33"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed Sep 24 16:00:06 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 24 16:00:07 2014 +0000"
      },
      "message": "Merge \"Fix incorrect parameter types for locale funcs.\""
    },
    {
      "commit": "31165edf5733dae8fbe79551b18cbc0e56c8d808",
      "tree": "e7ed184d94540342f16514a84e02c1f8d38882db",
      "parents": [
        "87b6906f6e0c17b2541535be8e054324cc2fef4a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Sep 23 17:34:29 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Sep 23 18:21:52 2014 -0700"
      },
      "message": "CLOEXEC support in fdopen, freopen, and mkostemp/mkostemps.\n\nChange-Id: I74ea88e0d4973d6ab3c57da7d8bb643c31592b14\n"
    },
    {
      "commit": "3c5037f1b3b747e79d17a5f717d9f9c365132d33",
      "tree": "73805e82ebef155bd7ffb45cf826f9624c47799b",
      "parents": [
        "87b6906f6e0c17b2541535be8e054324cc2fef4a"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Sep 23 15:32:24 2014 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Sep 23 15:32:24 2014 -0700"
      },
      "message": "Fix incorrect parameter types for locale funcs.\n\nstrtoll(3), strtoull(3), wcstoll(3), and wcstoull(3) all take an _int_\nas a base, not a size_t. This is an ABI compatibility issue.\n\nBug: 17628622\nChange-Id: I17f8eead34ce2112005899fc30162067573023ec\n"
    },
    {
      "commit": "0dc39f9952c5e3a3121ea77357bb264ef0f8ded7",
      "tree": "7c19c0e5fda4bceccb0b0e0a1542a661f8c10f55",
      "parents": [
        "e8a95624b6ee37f7ee85f0318f1fccd916292ebd"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Sep 22 17:43:09 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Sep 22 17:43:09 2014 -0700"
      },
      "message": "Fix a couple more cases of missing CLOEXEC.\n\nThe debuggerd case can probably never happen, because you\u0027re crashing at this\npoint anyway. The system property one seems possible though.\n\nChange-Id: Idba6a4f1d68587ec5b320d1e25f0b6a987ea32a0\n"
    },
    {
      "commit": "a186b2e0ca19620a52b4a49c17835532d13eb30a",
      "tree": "41b878b00d0277df342c64648603372ba4f1b9dc",
      "parents": [
        "9f423c554a0ffcee2e34472bf0bc1aef3621a822"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Sep 22 14:49:07 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Sep 22 22:49:40 2014 +0000"
      },
      "message": "Clean up fpathconf(3)/pathconf(3).\n\nfpathconf(3) and pathconf(3) can share code. There\u0027s no such\nheader file as \u003cpathconf.h\u003e. glibc/POSIX and BSD disagree about where\nthe _POSIX_* definitions should go.\n\nChange-Id: I4a67f1595c9f5fbb26700a131178eedebd6bf712"
    },
    {
      "commit": "413de5b0d4ddcf039aaef8b40a5f02d41dbb06e6",
      "tree": "2c87eebd41e90bf014261a6550e19248678056a5",
      "parents": [
        "e716044918d85cd3c34425779a09a24348f7f67a",
        "04303f5a8ab9a992f3671d46b6ee2171582cbd61"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Sep 20 01:34:11 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Sep 20 01:34:11 2014 +0000"
      },
      "message": "Merge \"Add semaphore tests, fix sem_destroy.\""
    },
    {
      "commit": "04303f5a8ab9a992f3671d46b6ee2171582cbd61",
      "tree": "98d3997d33e93eeb91a2c2f331b57f35c180cbb2",
      "parents": [
        "adc01348ee51a4ad678b1c277f85cbbed5c2e728"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 18 16:11:59 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 19 17:37:06 2014 -0700"
      },
      "message": "Add semaphore tests, fix sem_destroy.\n\nBug: https://code.google.com/p/android/issues/detail?id\u003d76088\nChange-Id: I4a0561b23e90312384d40a1c804ca64ee98f4066\n"
    },
    {
      "commit": "6fe376d3925a788f60fd44280b00008af60b9334",
      "tree": "bafa878bb6eb896175fb11aa7ea851744c44e041",
      "parents": [
        "adc01348ee51a4ad678b1c277f85cbbed5c2e728"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Sep 19 12:26:09 2014 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Sep 19 17:15:12 2014 -0700"
      },
      "message": "Remove references to MALLOC_LEAK_CHECK.\n\nThis define isn\u0027t really used any more.\n\nBug: 17378595\nChange-Id: I39722b83cd98955a3a2514577de34a239524617f\n"
    },
    {
      "commit": "1cff9a89645a8f362a9ce19c7f9544e98c1fd9e7",
      "tree": "60dbdc9a2cb73b71f4368a6a9049421e174e6bb3",
      "parents": [
        "380a3be757b04378edecad6ecb96017d2ec6a8b9"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Sep 16 15:49:50 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Sep 16 15:49:50 2014 -0700"
      },
      "message": "Use the kernel\u0027s sa_restorer for aarch64.\n\ngdb was happy with what we had, but libgcc and libunwind weren\u0027t.\nlibgcc is happy with the kernel\u0027s restorer (because of the extra nop),\nthough libunwind looks like it\u0027s going to need code changes regardless.\n\nWe could make our restorer more like the kernel\u0027s one, but why bother\nwhen we can just let the kernel supply the canonical one?\n\nBug: 17436734\nChange-Id: I330fa5e68f23b1cf8133aa552896657b0b873ed3\n"
    },
    {
      "commit": "36f451a6d93b6807944d99fa23396e039c47e845",
      "tree": "116d52e5cb108eed51b2ff692844facb53f7b804",
      "parents": [
        "95b0c6a9407d7a4084d956e273ad1697550452d3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Sep 10 15:20:40 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Sep 15 15:04:14 2014 -0700"
      },
      "message": "Fix signal trampolines.\n\n* LP32 should use sa_restorer too. gdb expects this, and future (\u003e\u003d 3.15) x86\n  kernels will apparently stop supporting the case where SA_RESTORER isn\u0027t\n  set.\n\n* gdb and libunwind care about the exact instruction sequences, so we need to\n  modify the code slightly in a few cases to match what they\u0027re looking for.\n\n* gdb also cares about the exact function names (for some architectures),\n  so we need to use __restore and __restore_rt rather than __sigreturn and\n  __rt_sigreturn.\n\n* It\u0027s possible that we don\u0027t have a VDSO; dl_iterate_phdr shouldn\u0027t assume\n  that getauxval(AT_SYSINFO_EHDR) will return a non-null pointer.\n\nThis fixes unwinding through a signal handler in gdb for all architectures.\nIt doesn\u0027t fix libunwind for arm and arm64. I\u0027ll keep investigating that...\n\nBug: 17436734\nChange-Id: Ic1ea1184db6655c5d96180dc07bcc09628e647cb\n"
    },
    {
      "commit": "5681fe8eaea08a9c95b48291bb94a21ab0f7e24a",
      "tree": "608d6471205f7630593cd869e28fd8238427ef6e",
      "parents": [
        "73d2059f9b3f53446e25d800d64a86efb3bf3f9f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Sep 13 09:24:28 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Sep 13 09:24:28 2014 -0700"
      },
      "message": "Remove an unused file.\n\nAlso remove a reference to it and two other files that have already\nbeen removed in a script --- these files were problematic because they\nweren\u0027t UTF-8.\n\nChange-Id: Ibf597bac1903c34d8d0fe0a09615c42f24d4f23d\n"
    },
    {
      "commit": "f83c208b82c78dad07f4065f63bdd354f5ef9951",
      "tree": "8ceb080fa5d733a247c9cbfc70632653fecbd781",
      "parents": [
        "21451f5bf65ecaa00c9f3b7ac721738b97f41599"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 12 16:33:37 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 12 16:33:37 2014 -0700"
      },
      "message": "Explain why clock(3) isn\u0027t broken.\n\nBug: 17441123\nChange-Id: I6ee9b7f54bab55b1a8760ce9bcaaa6eab1dcc492\n"
    },
    {
      "commit": "0f001b67fea27f8d60afc4677e8970d32a4e3792",
      "tree": "208844ca4857eea0aaad56bbd0018e47201add50",
      "parents": [
        "d74aa580354037b9972524e9d654c0a336974838"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 12 11:35:05 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 12 11:35:05 2014 -0700"
      },
      "message": "Remove \"private/bionic_pthread.h\".\n\nBug: 17476168\nChange-Id: Id642987e641de81e914a28daea4ffe9d11e090ed\n"
    },
    {
      "commit": "a4831cb4a3f44b93788488db8ff9ea76613f0355",
      "tree": "eaa225c537d468307739bc48bbc86e241ada58e0",
      "parents": [
        "ea66004c4a051e40c49314d808e7359634f6c641"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 11 16:11:43 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 11 16:22:50 2014 -0700"
      },
      "message": "Add pthread_gettid_np and re-expose __get_thread for LP32.\n\nA lot of third-party code calls the private __get_thread symbol,\noften as part of a backport of bionic\u0027s pthread_rwlock implementation.\nHopefully this will go away for LP64 (since you\u0027re guaranteed the\nreal implementation there), but there are still APIs that take a tid\nand no way to convert between a pthread_t and a tid. pthread_gettid_np\nis a public API for that. To aid the transition, make __get_thread\navailable again for LP32.\n\n(cherry-pick of 27efc48814b8153c55cbcd0af5d9add824816e69.)\n\nBug: 14079438\nChange-Id: I43fabc7f1918250d31d4665ffa4ca352d0dbeac1\n"
    },
    {
      "commit": "b587f339db269abf08a2c311a7263dd218cb23d3",
      "tree": "18fd8a53623d63cae5e98d5aeb59a8aefaa853c2",
      "parents": [
        "c71483c0b38a6b4f2675f0bffa221dcf175c34ac"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Sep 10 17:39:00 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 11 08:45:46 2014 -0700"
      },
      "message": "Add posix_fadvise(3).\n\n(cherry-pick of 00008263782e484020420c606f7d145fe7d0a4d8.)\n\nBug: 12449798\nChange-Id: I07cbf3f670a0d1304b68148325a774f266b5c433\n"
    },
    {
      "commit": "011e111d299284b65af07add523a9dccac356244",
      "tree": "2b30ac16dffb0cda5da6de86f73075813447ee5b",
      "parents": [
        "201f36d23bb778b29c8d305fa40a41990e0487bc"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Sep 08 15:25:01 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Sep 08 16:46:50 2014 -0700"
      },
      "message": "Ensure __set_errno is still visible on LP32.\n\nThe use of the .hidden directive to avoid going via the PLT for\n__set_errno had the side-effect of actually making __set_errno\nhidden (which is odd because assembler directives don\u0027t usually\naffect symbols defined in a different file --- you can\u0027t even\ncreate a weak reference to a symbol that\u0027s defined in a different\nfile).\n\nThis change switches the system call stubs over to a new always-hidden\n__set_errno_internal and has a visible __set_errno on LP32 just for\nbinary compatibility with old NDK apps.\n\n(cherry-pick of 7efad83d430f4d824f2aaa75edea5106f6ff8aae.)\n\nBug: 17423135\nChange-Id: I6b6d7a05dda85f923d22e5ffd169a91e23499b7b\n"
    },
    {
      "commit": "cf5fc80c3eb710cb5a1985837156cb2758c87a5b",
      "tree": "15682b74fd20e0a37c8d6cef63bba9e05df7145f",
      "parents": [
        "d3d89f0d28aba2db9f11cc0a9b3a865fa1d9d265"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 05 16:12:42 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Sep 08 16:44:48 2014 -0700"
      },
      "message": "Don\u0027t expose non-standard basename_r and dirname_r in LP64.\n\n(cherry-pick of f0e9458ea596227720fa745df15f5357f6c0c8f6.)\n\nBug: 17407423\nChange-Id: I47fe499a4c396bf09d7b78fd828728d04777398b\n"
    },
    {
      "commit": "fc829736e1f399a2b82058b24bb94f6bdab22469",
      "tree": "bad78653b2ef472b7f705696fb801f45854515aa",
      "parents": [
        "b4673c41025f3a16804aff8438c2810c739a11ef"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Sep 08 10:25:33 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Sep 08 10:52:28 2014 -0700"
      },
      "message": "Add arc4random_addrandom binary compatibility.\n\nThis was in \u003cstdlib.h\u003e in older releases. It\u0027s no longer used, but we can\npreserve backwards compatibility by making it a no-op.\n\n(cherry-pick of 51c8355d5cf4b83ccd2ad250ca4c61a616356c2b.)\n\nBug: 16205834\nChange-Id: Idde7b46df4f253e39675600bcf82352879a716e7\n"
    },
    {
      "commit": "f90355844663b85dd57c3adcd9e92c2ee6850412",
      "tree": "ff853a0853b1bc53190df1e9cad3b47bc2c27f4d",
      "parents": [
        "e07b4da53ddcb34939c1b5a88db36dec34352add"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Sep 05 16:39:22 2014 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Sat Sep 06 13:06:57 2014 -0700"
      },
      "message": "Add dlmalloc_usable_size for 32 bit arches.\n\nBug: 17337831\n\n(cherry picked from commit 1c365cb494d8cab1b639ecef21514425647e606b)\n\nChange-Id: Ice100e42eeac4b9c3b77737a546ec33174adcb2f\n"
    },
    {
      "commit": "44352f5f7f06ff9383d695b0a7d4243f5268f430",
      "tree": "f1727f0f95a7865264c3b9d8d5a3a10315789e09",
      "parents": [
        "c0cd9ce5df753161aabb393420a8ada8f369b551",
        "4b41555ba5439025cee9cf3f9ff45db43b1865da"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Sep 04 21:55:59 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 04 21:55:59 2014 +0000"
      },
      "message": "Merge \"Revert \"Register __libc_fini as early as possible.\"\""
    },
    {
      "commit": "4b41555ba5439025cee9cf3f9ff45db43b1865da",
      "tree": "130e856c9feb2499299a5fb57fc911cecacbee45",
      "parents": [
        "e880c736d6c1d947f6309d5f1f63c74e8345c6a6"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Sep 04 21:54:34 2014 +0000"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Sep 04 21:54:34 2014 +0000"
      },
      "message": "Revert \"Register __libc_fini as early as possible.\"\n\nThis reverts commit e880c736d6c1d947f6309d5f1f63c74e8345c6a6.\n\nChange-Id: Ide83e442eb5dbfef5298a15bc602c3fe1dda1862\n"
    },
    {
      "commit": "afe58ad9892de27a7acb0aaded6312ee0f958314",
      "tree": "0bd59ab94eabeaa98113686962a3ccc9b4b8413d",
      "parents": [
        "071bed8091cab4e070a1f5e6b2eb0dd1141f0498"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 04 13:54:42 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 04 13:54:42 2014 -0700"
      },
      "message": "Don\u0027t mask out SA_RESTORER from sa_flags.\n\nglibc doesn\u0027t do this, and we probably shouldn\u0027t either.\n\nBug: 16703540\nChange-Id: Id5b93c3782e34024a9916463348e8f3caff191bf\n"
    },
    {
      "commit": "5dea47221a116aa87b0c286230c944ed6b629636",
      "tree": "9bd6b42efb96dec7fc3db723ac45330f03bd0bee",
      "parents": [
        "450aaa018df19464cb4e01ea3059a2a075ebde52"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Sep 03 15:53:11 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Sep 03 16:30:22 2014 -0700"
      },
      "message": "Add back a dummy arc4random_stir for compatibility.\n\nThe current arc4random implementation stirs itself as needed, but we\nneed to keep an arc4random_stir symbol around for binary compatibility.\n\n(cherry-pick of 1e010d60397db706cd3d1c4d5701a2bced441aa8.)\n\nBug: 17291075\nChange-Id: Iaf6171c3ec65c39c1868364d5b35ea280e29a363\n"
    },
    {
      "commit": "e880c736d6c1d947f6309d5f1f63c74e8345c6a6",
      "tree": "b7e6dfa0c80d87f72ab1bbccd78242eee01ba841",
      "parents": [
        "3b10ba6f1b743ddced32474891ff6d1cb83c027a"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Sep 03 14:56:05 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Sep 03 15:27:29 2014 -0700"
      },
      "message": "Register __libc_fini as early as possible.\n\n  We want __libc_fini to be called after all the destructors.\n\nBug: 14611536\nChange-Id: Ibb83a94436795ec178fd605fa531ac29608f4a3e\n"
    },
    {
      "commit": "416d7ddaff0946d480b6aa945a741b3eeaca5569",
      "tree": "d3fa6382f7d6d26ab7e3ecb95a715328e5f50b5e",
      "parents": [
        "f4e721dd519db89c504c8944763811a3df956b32"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 18 17:28:32 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 28 16:37:09 2014 -0700"
      },
      "message": "Add GNU-compatible strerror_r.\n\nWe already had the POSIX strerror_r, but some third-party code defines\n_GNU_SOURCE and expects to get the GNU strerror_r instead.\n\nThis exposed a bug in the libc internal logging functions where unlike\ntheir standard brethren they wouldn\u0027t return the number of bytes they\u0027d\nhave liked to have written.\n\nBug: 16243479\nChange-Id: I1745752ccbdc569646d34f5071f6df2be066d5f4\n"
    },
    {
      "commit": "9e4ffa7032eaab308876b8e3da86b05c3c613878",
      "tree": "83e23ad0b0ba82c017cbf292abd7594d2148f316",
      "parents": [
        "34da32e7dd00270e98b845f8a810a6f12ffffb9b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 27 15:32:01 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 27 15:32:01 2014 -0700"
      },
      "message": "Have pthread_attr_getstack for the main thread report RLIMIT_STACK...\n\n...rather than just what\u0027s already mapped in. This seems somewhat\ncontrary to POSIX\u0027s \"All pages within the stack described by stackaddr\nand stacksize shall be both readable and writable by the thread\", but\nit\u0027s what glibc does.\n\nBug: 17111575\nChange-Id: If9e2dfad9a603c0d0615a8123aacda4946e95b2c\n"
    },
    {
      "commit": "cc7e5f489f02ceee46e315af4f78559d3ad6c962",
      "tree": "12570a31f29ae6c565b1f993d54a95e5a00105b0",
      "parents": [
        "6bfcefe02f8fbeec1f6790bd5ebb1fdd5dba1e33"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 26 17:00:37 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 26 17:00:37 2014 -0700"
      },
      "message": "Switch to OpenBSD \u003cerr.h\u003e implementation.\n\nChange-Id: Ia950d88871a30f68e74f9ac7dbd87788e128e02f\n"
    },
    {
      "commit": "07401c7136af113304a22f4a8245ef3fc1b6929b",
      "tree": "dc59b1ec1a342d98bb53b88c6019f0924cc1d2b8",
      "parents": [
        "f1e64b5c171a374f36cd970df0c84558d4209e1c",
        "e5055179fd92ae243741d778426e1da03539165f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 26 23:33:43 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 26 23:33:43 2014 +0000"
      },
      "message": "Merge \"Switch to OpenBSD daemon(3).\""
    },
    {
      "commit": "e5055179fd92ae243741d778426e1da03539165f",
      "tree": "94559041a074a70fa311673de48be96884fa60d4",
      "parents": [
        "7b87d441b0f2aa3ad5021ab6bd879a995a1bc2ce"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 26 16:25:19 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 26 16:25:19 2014 -0700"
      },
      "message": "Switch to OpenBSD daemon(3).\n\nChange-Id: I1fd0be09fdb24aa6f1d945410eba5987f8a949b4\n"
    },
    {
      "commit": "f73183f1a34df22b62a3d0bbf82e18d5797c9cde",
      "tree": "1bc3c9a47180aaeb2f734e835034a3f6b9ac9d00",
      "parents": [
        "7b87d441b0f2aa3ad5021ab6bd879a995a1bc2ce"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 26 16:20:59 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 26 16:20:59 2014 -0700"
      },
      "message": "More cases where libc should use O_CLOEXEC.\n\nChange-Id: Idfa111aeebc5deca2399dae919e8b72eb54c23c0\n"
    },
    {
      "commit": "c674edbf27450bbb2396b1434421b1db5325d8f4",
      "tree": "31855742fc4370e2573f29a706a8223aa4d46edf",
      "parents": [
        "c764fb24ccb47e05d8e140cde5b4111225790ef1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 26 15:56:54 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 26 15:56:54 2014 -0700"
      },
      "message": "libc should use O_CLOEXEC when opening files for its own use.\n\nChange-Id: I159f1d57e0ca090d837f57854fcef5879b8b8248\n"
    },
    {
      "commit": "c764fb24ccb47e05d8e140cde5b4111225790ef1",
      "tree": "442368a25fa03844ccd866761b8b0b28aeedaab9",
      "parents": [
        "9e307af982ea9030849293b5e3307733289e3c2c",
        "57b7a6110e7e8b446fc23cce4765ff625ee0a105"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 26 19:53:40 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 26 19:53:40 2014 +0000"
      },
      "message": "Merge \"Fix pthread_getattr_np for the main thread.\""
    },
    {
      "commit": "57b7a6110e7e8b446fc23cce4765ff625ee0a105",
      "tree": "e2578675ae1435988a645a32182ced476f802ec5",
      "parents": [
        "a4a8c4feb8cf3cebf8aceace70e699e128095b5c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 25 17:26:50 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 26 10:36:38 2014 -0700"
      },
      "message": "Fix pthread_getattr_np for the main thread.\n\nOn most architectures the kernel subtracts a random offset to the stack\npointer in create_elf_tables by calling arch_align_stack before writing\nthe auxval table and so on. On all but x86 this doesn\u0027t cause a problem\nbecause the random offset is less than a page, but on x86 it\u0027s up to two\npages. This means that our old technique of rounding the stack pointer\ndoesn\u0027t work. (Our old implementation of that technique was wrong too.)\n\nIt\u0027s also incorrect to assume that the main thread\u0027s stack base and size\nare constant. Likewise to assume that the main thread has a guard page.\nThe main thread is not like other threads.\n\nThis patch switches to reading /proc/self/maps (and checking RLIMIT_STACK)\nwhenever we\u0027re asked.\n\nBug: 17111575\nSigned-off-by: Fengwei Yin \u003cfengwei.yin@intel.com\u003e\nChange-Id: I1d4dbffe7bc7bda1d353c3a295dbf68d29f63158\n"
    },
    {
      "commit": "ae558d6b4bcee740f7e61434982eb5f2c999fb97",
      "tree": "443b26ce7513f9ee430e4f639c5436fd11dbc9a5",
      "parents": [
        "a4a8c4feb8cf3cebf8aceace70e699e128095b5c"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Mon Aug 25 12:08:19 2014 -0700"
      },
      "committer": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Mon Aug 25 21:16:14 2014 +0000"
      },
      "message": "Add standard throw() spec to delete operators.\n\nWithout these specs, clang will reports mismatch between standard definitions and these declarations/definitions. These specs are ignored when compiled with -fno-exceptions.\n\nBUG: 17136236\nChange-Id: I386c712a61dc4fc74dfde45f9ec2d3d037f2e9f1"
    },
    {
      "commit": "ef619cc083fc3aa4f58dd101b25cc97ad1d37570",
      "tree": "1045b243cb72130387802717a299630160d3898e",
      "parents": [
        "4756afe3d5017b50c89761c47f0da17a6799c81e"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Aug 22 11:05:48 2014 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Aug 22 11:05:48 2014 -0700"
      },
      "message": "Fix dlmalloc build.\n\nChange-Id: Ied542c40867ab443cdd2076bd2e535b00c4854e4\n"
    },
    {
      "commit": "4caa1f09770ea3e5ca22afbe8aa0900810a0dbfe",
      "tree": "2bda183c2c930871e73486ea3e9c54e80e500f95",
      "parents": [
        "d5fbc37119ef6cd757ceb449cb071ee03c66590e"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed Aug 20 09:16:57 2014 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Aug 22 10:23:12 2014 -0700"
      },
      "message": "Implement malloc_info(3).\n\nExpose jemalloc stats through the malloc_info(3) interface.\n\nBug: 16874689\nChange-Id: I4358ac283002e60ff161107028d1a3fb1e9afb0a\n"
    },
    {
      "commit": "b61c50647b85b3c33af8ca155e88ec098d9e8cb0",
      "tree": "d6df9b7df0e626b49604a59f4b8c3772976bbff7",
      "parents": [
        "b9d674c8ada9c1e9c22b41bc7c89e35f11f4eb1e",
        "1e8587a479fd8b1ce9b594298a93f517816e8f15"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Tue Aug 19 22:34:00 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 19 22:32:42 2014 +0000"
      },
      "message": "Merge \"Work around atomic_load(const T*) issues.\""
    },
    {
      "commit": "1e8587a479fd8b1ce9b594298a93f517816e8f15",
      "tree": "4333a0ac6fbfcd2a9ae3e11090485cc45c955625",
      "parents": [
        "c5d6df6f2fe57fd5aadbd9ebb131023234c30a0c"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Tue Aug 19 14:07:55 2014 -0700"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Tue Aug 19 14:50:54 2014 -0700"
      },
      "message": "Work around atomic_load(const T*) issues.\n\nBug:17067219\nChange-Id: I78e753bcf03464f5f05c3f37e394f2727d282589\n"
    },
    {
      "commit": "09c39d6df0e952620f8c1751377b559a04e023aa",
      "tree": "1ca25e04d3ed7ebea1dde6f4d3baaeee9526c0e5",
      "parents": [
        "c5d6df6f2fe57fd5aadbd9ebb131023234c30a0c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 19 14:30:30 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 19 14:30:30 2014 -0700"
      },
      "message": "Implement the GNU basename(3) in addition to the POSIX one.\n\nCode like perf(1) needs this.\n\nBug: 11860789\nChange-Id: I907eb448052a7b165e4012d74303330d32328cb2\n"
    },
    {
      "commit": "934c8015d515f96c1f97255b48357da922cf626a",
      "tree": "b20a661222661755661de84e6e86046ec5192a2e",
      "parents": [
        "e4fcc3ad2b2965858571f5fb7d485ceb7e4a8266",
        "ce6b1abbb1da797e716d8ec03da4e3b6304fd11d"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Aug 19 17:18:19 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Aug 16 04:20:19 2014 +0000"
      },
      "message": "Merge \"Expose android_set_abort_message().\""
    },
    {
      "commit": "ce6b1abbb1da797e716d8ec03da4e3b6304fd11d",
      "tree": "75acb30cfbe62bf3141fd01f7a37cc53c1d82dea",
      "parents": [
        "54d24e099c24d0811ae723640d4e12e9558cab73"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon Aug 18 14:37:42 2014 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon Aug 18 14:37:42 2014 -0700"
      },
      "message": "Expose android_set_abort_message().\n\nRemoves the leading underscores from __android_set_abort_message() and\nmoves its declaration into a public header file.\n\nBug: 17059126\nChange-Id: I470c79db47ec783ea7a54b800f8b78ecbe7479ab\n"
    },
    {
      "commit": "6d40d34908137c8d45e9bc303b4317b8303961ee",
      "tree": "f2ece7dfb70602468cfdf2c8280ca267cd751588",
      "parents": [
        "5d9e145c62cc6f6b39409032af529a60cb7bf479"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Aug 15 18:42:58 2014 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Aug 18 13:10:47 2014 -0700"
      },
      "message": "Fix leak_realloc, copy entire allocation.\n\nBug: 16874447\n\n(cherry picked from commit 5df0839cea98bd8c37d8dba5b94b98e99c681a94)\n\nChange-Id: I9280505c0c1c3b5da24ba590448dcd6e7a230406\n"
    },
    {
      "commit": "5d9e145c62cc6f6b39409032af529a60cb7bf479",
      "tree": "a132b3cc31a6a34d27d488d64d28faa3d4e43e23",
      "parents": [
        "2b6cdb5e459661727c99e81660c7c3df5cdbe024"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Aug 14 12:48:04 2014 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Aug 18 13:10:16 2014 -0700"
      },
      "message": "malloc_usable_size returns the original size.\n\nBug: 16874447\n\n(cherry picked from commit 59c1ee44d0a560a754513fab12641c8a57a20d9e)\n\nChange-Id: I70839632974367c8b9893fb1f9c5ee4364608470\n"
    },
    {
      "commit": "5f5cc45cf0e027f6ca503dc229a4890fc7164b66",
      "tree": "36bebf629f486d24d8287e7a735662b0269044a6",
      "parents": [
        "205cc41556d44b104a21bc6839b7ea44f72df9ba"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 18 16:04:03 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 18 16:04:03 2014 -0700"
      },
      "message": "Fix \u003cfeatures.h\u003e (_BSD_SOURCE and _GNU_SOURCE).\n\n\u003cfeatures.h\u003e is supposed to take user-settable stuff like _GNU_SOURCE\nand _BSD_SOURCE and turn them into __USE_GNU and __USE_BSD for use in\nthe C library headers. Instead, bionic used to unconditionally define\n_BSD_SOURCE and _GNU_SOURCE, and then test _GNU_SOURCE in the header\nfiles (which makes no sense whatsoever).\n\nBug: 14659579\nChange-Id: Ice4cf21a364ea2e559071dc8329e995277d5b987\n"
    },
    {
      "commit": "0d4ccee35101c6bcd6cc28c23fe79d7b48a98dd0",
      "tree": "1249c631a5be89488538f3d9d2d0641d1cf5fbe8",
      "parents": [
        "104a472958f86eafafe0c1d9e2c58ba6403f99e7",
        "224ff048efc782bd60047a3ae53eb66941f73125"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Aug 14 21:19:11 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Aug 14 19:41:13 2014 +0000"
      },
      "message": "Merge \"Change name of MB_CUR_MAX implementation function.\""
    },
    {
      "commit": "224ff048efc782bd60047a3ae53eb66941f73125",
      "tree": "7c148e8f2e8095a98fa9cc24e710edc3ccf5d008",
      "parents": [
        "9a74e4c15c17b9126ad348d865002880fc36bd12"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Aug 14 13:56:51 2014 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Aug 14 13:56:51 2014 -0700"
      },
      "message": "Change name of MB_CUR_MAX implementation function.\n\nGlibc calls theirs __ctype_get_mb_cur_max. Make ours match to cut down\non differences between bionic and glibc.\n\nBug: 11156955\nChange-Id: Ib7231f01aa9676dff30aea0af25d597bfe07bc73\n"
    },
    {
      "commit": "b3aaf398e1d6af5362e0f30f11ab7c11890644c2",
      "tree": "d71aeb605341e0bc89b43a483c18b5f5e7c2d9c1",
      "parents": [
        "6e3823d37e54929558990d7c475bc30d381098fe"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed Aug 13 13:11:58 2014 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed Aug 13 13:11:58 2014 -0700"
      },
      "message": "Hide __libc_init_vdso().\n\nBug: 11156955\nChange-Id: I7ee31e1ee2ce479c5746b374a239637d582815fe\n"
    },
    {
      "commit": "4f85c6ffd31d1f8cc000ab326edd8edb7ecd55a9",
      "tree": "1b829c7e8544c18787c7f28729132e621b0c170e",
      "parents": [
        "e942b3ed81ad4e0161f3ffa4f8d0017bfbb750e2",
        "30214b901e8dbec9ec11230187a8e71fc8a04014"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Thu Aug 14 01:03:09 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 12 19:23:43 2014 +0000"
      },
      "message": "Merge \"Add memory ordering constraint, convert to C11 atomics\""
    },
    {
      "commit": "edd81faff0b61fc458dc27b9c91f358d3313ce7a",
      "tree": "75a100c4d5939b8b6b77274626e8994c0b92c8e8",
      "parents": [
        "00c16c1b921dfeab42eb92ac53c6d79addc9f549"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Aug 12 16:21:26 2014 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Aug 12 16:53:14 2014 -0700"
      },
      "message": "Hide __libc_malloc_dispatch.\n\nNow that -Bsymbolic is fixed, we can hide __libc_malloc_dispatch without\nbreaking ASAN.\n\nBug: 11156955\nChange-Id: Ia2fc9b046a74e666b33aa6c6c5435f70a63b8021\n"
    },
    {
      "commit": "51a22a12ab370933a35463f5c81223132ec64dcb",
      "tree": "83033d1672090d93a22d349669bbe9159322f4e8",
      "parents": [
        "a0db46418757dd1b399acb97ff42083cc274e8ae"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Aug 08 16:57:15 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Aug 11 09:22:48 2014 -0700"
      },
      "message": "Label pages mapped by linker_allocator\n\nChange-Id: I7e0bf29bc1a480e9be0d1ae573ca1063d90d82ff\n"
    },
    {
      "commit": "30214b901e8dbec9ec11230187a8e71fc8a04014",
      "tree": "b81bf8ff795f3191c5f139893ffc29b4d4624092",
      "parents": [
        "1c5e415f8c4cd2cb10ad1d1cf660d17161132772"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Thu Jul 31 15:53:22 2014 -0700"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Fri Aug 08 11:34:25 2014 -0700"
      },
      "message": "Add memory ordering constraint, convert to C11 atomics\n\nAdd an ordering constraint/fence to __system_property_serial.\nThis slows down a read on a Nexus 5 from about 50 to about 70 ns,\nbut avoids the possibility of seeing an inconsistent property value.\nUse C11 atomic operations where easy and appropriate.\nThis code remains not fully C++11 memory model conformant, but\nI would now expect the generated code to now be correct with current compilers.\n\nBug:14970171\nChange-Id: I0891ff1d0f914ae5c3857e3d76b6a7c8a4a07d83\n"
    },
    {
      "commit": "88a1f520d2d54d362dc2f29a0fad2cf0029c8918",
      "tree": "d2d8f1a51b39a7883247dbf36544621101decf3b",
      "parents": [
        "f2d8c357eec1bbc4e7441942dfc338ad1d9a207a"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Aug 07 16:21:21 2014 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Aug 08 09:40:17 2014 -0700"
      },
      "message": "Add a way to disable backtracing in malloc debug.\n\nThe property libc.debug.malloc.nobacktrace set to non-zero disables\ngetting backtracing when using mode 1 or mode 10.\n\nBug: 16874447\n\n(cherry picked from 49de01a5be7bfb07baaea7415647d838383e1b59)\n\nChange-Id: I6bbefe5420b14991fe84c2f849222dcd7cb592bf\n"
    },
    {
      "commit": "e380960813bbb6e05d820eb75885556a1c4bf6ac",
      "tree": "9eafb0466f8e3cdc3c24125d295e488312ac2099",
      "parents": [
        "f3868fa735ad67ec853f3db36936ca184bd5f79a"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Aug 06 14:15:01 2014 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Aug 06 17:57:04 2014 -0700"
      },
      "message": "Do a second key cleanup in pthread_exit.\n\nDuring pthread_exit, the keys are cleaned. Unfortunately, a call to\nfree occurs after the cleanup and the memory for some of the keys\nis recreated when using jemalloc. The solution is to do the key\ncleanup twice.\n\nAlso, modify the pthread_detach__leak test to be less flaky\nwhen run on a jemalloc system.\n\nBug: 16513133\n\n(cherry picked from commit 18d93f2793fad393b6aa6eae6afe1054958339d5)\n\nChange-Id: Idb32e7f9b09e2c088d256ed9eb881df80c81ff8e\n"
    },
    {
      "commit": "8b91980e4c139558f9cca4e9a0980dad07c06e68",
      "tree": "53262ac65a9b8d4ee7983650d809f4f4c46f92b0",
      "parents": [
        "afc8672387438f9c8926a12831f43a6dd1f59323",
        "1628eb1d43008c52b00ec98d10c4fd9e8b6fc7c5"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 06 17:55:27 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 06 17:20:04 2014 +0000"
      },
      "message": "Merge \"Explain how wcswcs ended up in ndk_cruft.cpp.\""
    },
    {
      "commit": "1628eb1d43008c52b00ec98d10c4fd9e8b6fc7c5",
      "tree": "dbc976246dd99c44e949e410290283fd6dd882e1",
      "parents": [
        "4ad5066e1de326e5db46df18eeade9a88bc11bec"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 06 10:47:33 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 06 10:47:33 2014 -0700"
      },
      "message": "Explain how wcswcs ended up in ndk_cruft.cpp.\n\nChange-Id: Ie45148095b2d5c3896c0df623d5d06a700c33c70\n"
    },
    {
      "commit": "6a918870bab1a55a5f57dd7954abd9a8a27c1bc2",
      "tree": "fa02049d5e70ded2d921311a4aa1b0af09bf22bf",
      "parents": [
        "447fe1c23bc5adaded9a51d3b58f3adaf2cce7b3"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Aug 05 20:53:31 2014 +0000"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Aug 05 14:11:38 2014 -0700"
      },
      "message": "Revert \"Replaces vfork() implementation with fork()\"\n\nWe\u0027re getting cold feet on this one... let\u0027s put it back.\n\nThis reverts commit 210331d9762037afb9b5ed8413079c6f65872df9.\n\nChange-Id: I6b0d3c2b1dbf7f1dc9566979a91b7504c2189269\n"
    },
    {
      "commit": "b6cc8e00cd562bd0f81fe44a6bc646540a862f32",
      "tree": "f4630dd8581b62020996f5f30636e593ac79c9b4",
      "parents": [
        "36bacd237de931c48714d1a8aa4aa9522283e407"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Jul 31 11:31:03 2014 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Jul 31 11:31:03 2014 -0700"
      },
      "message": "Fix mbsrtowcs(3) src param for finished string.\n\nA mistake I made while cleaning this up the first time through.\nmbstrtowcs(3) sets the src param to null if it finishes the string.\n\nChange-Id: I6263646e25d9537043b7025fd1dd6ae195f365e2\n"
    },
    {
      "commit": "1aec7c1a35b2d03038b194967d5ebdc8e2c24b80",
      "tree": "977211860df02be4f4c0843cf231ec6c3da88ee6",
      "parents": [
        "0f7ed163cf6c1fe6d71a1d7e5fb6d0989213be85"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed Jul 30 10:53:48 2014 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed Jul 30 17:09:46 2014 -0700"
      },
      "message": "Proper MB_CUR_MAX.\n\nPreviously this was hard coded to 4. This is only the case for UTF-8\nlocales.\n\nAs a side effect, this properly reports C.UTF-8 as the default locale\ninstead of C.\n\nChange-Id: I7c73cc8fe6ffac61d211cd5f75287e36de06f4fc\n"
    },
    {
      "commit": "861c0ef37bcfcae56d88572cb01c18bcfe1faded",
      "tree": "f63fc703a50b23213537962e4f60519f8b34db47",
      "parents": [
        "a7dc7600fe1be1f3fd61856b407bb7065307e711"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Jul 24 17:52:23 2014 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Jul 29 18:10:00 2014 -0700"
      },
      "message": "Use libunwindbacktrace for debug malloc code.\n\nCreate a method of disabling the debug allocation code paths so that\nit\u0027s possible to use the libunwindbacktrace library without any\nmodifications.\n\nUse this path to create and destroy the maps for the process. It\u0027s not\nstricly necessary in the init code since the symbols are not modified\nuntil after the initialize calls.\n\nAlso, remove the debug_XXX source files that doesn\u0027t need to be in libc.so.\n\nFix the maps reading code since it was completely broken for 64 bit.\n\nBug: 16408686\n\nChange-Id: I6b02ef6ce26fdb7a59ad1029e7cbba9accceb704\n"
    },
    {
      "commit": "a7dc7600fe1be1f3fd61856b407bb7065307e711",
      "tree": "e9255c5f3358a393b7cdc56d7709a4970bb9d5d0",
      "parents": [
        "52f8271fa9fd3f84849465f3c978580fbed866c1",
        "4916706cfe590eb06c9b5bd4bd402ce056034d51"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 29 17:43:10 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jul 28 22:45:44 2014 +0000"
      },
      "message": "Merge \"Fix linkage of grantpt(3).\""
    },
    {
      "commit": "4916706cfe590eb06c9b5bd4bd402ce056034d51",
      "tree": "75e0434f53123a7f34ffb405b84899bbacc80b38",
      "parents": [
        "50a9630cc26cbc1e38e3ddc589f04fa5cd91697b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jul 25 17:24:00 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jul 25 19:55:23 2014 -0700"
      },
      "message": "Fix linkage of grantpt(3).\n\nAlso clean up the implementation of all the pty functions, add tests,\nand fix the stub implementations of ttyname(3) and ttyname_r(3).\n\nBug: https://code.google.com/p/android/issues/detail?id\u003d58888\nChange-Id: I0fb36438cd1abf8d4e87c29415f03db9ba13c3c2\n"
    },
    {
      "commit": "a406ee6d5f616192e9a13afad6ac6a9969814fc1",
      "tree": "bc9d1575ddacb246d49109367b6151732fbfe19e",
      "parents": [
        "337c0cefdc4667143a1f4f2c30113b452c5d188f"
      ],
      "author": {
        "name": "Brigid Smith",
        "email": "brigidsmith@google.com",
        "time": "Mon Jul 21 15:38:06 2014 -0700"
      },
      "committer": {
        "name": "Brigid Smith",
        "email": "brigidsmith@google.com",
        "time": "Mon Jul 28 19:38:08 2014 -0700"
      },
      "message": "Added a bionic systrace class and tracing to pthread_mutex.cpp.\n\nbionic_systrace.h contains an implementation of tracing that\ncan be used with systrace.py and its associated viewer.  pthread_mutex\nnow uses this tracing to track pthread_mutex contention, which can be\nenabled by using the \"bionic\" command line option to systrace.\n\nBug: 15116468\nChange-Id: I30ed5b377c91ca4c36568a0e647ddf95d4e4a61a\n"
    },
    {
      "commit": "1abb8bd21d64c2bd21258469b688483f821974d5",
      "tree": "53bbf37102d4f12e095eab1816506e7b84153479",
      "parents": [
        "123172ae370fe51e2d1fc26fe0aafa095af52919"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Jul 25 11:24:03 2014 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Jul 25 11:24:03 2014 -0700"
      },
      "message": "en_US.UTF-8 is also supported.\n\nChange-Id: Ic35fad3596dc5e24ee8ae35543a274a471f27bb2\n"
    },
    {
      "commit": "40a521744825b6060960c296d5fb3da4c6593d94",
      "tree": "b9736886f5ca89daf4bf6cca05e090315a006dcd",
      "parents": [
        "4ad5066e1de326e5db46df18eeade9a88bc11bec"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 30 14:48:10 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 30 14:49:40 2014 -0700"
      },
      "message": "Only wipe TLS for user-supplied stacks.\n\nBug: 16667988\nChange-Id: Id180ab2bc6713e1612386120a306db5bbf1d6046\n"
    },
    {
      "commit": "d6f614a4e16b0fcf4a4fba748bf21fc0017d3619",
      "tree": "0c867acec33e9182579f155e52cdcb52feb49f4d",
      "parents": [
        "8dbe3f0f51f0cd26c22df82bdef9a2f8caea7ef6",
        "3e424d0a241f8ae5194514dabc4ad899f5a5416d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jul 24 22:11:05 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 24 22:07:52 2014 +0000"
      },
      "message": "Merge \"Implement twalk(3), add unit tests.\""
    },
    {
      "commit": "3e424d0a241f8ae5194514dabc4ad899f5a5416d",
      "tree": "b206a209b235ba16e560b514766853c1ac908c22",
      "parents": [
        "467e49be70231f55bd7ba908407b4413294d3bfc"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 23 16:02:26 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jul 24 14:55:29 2014 -0700"
      },
      "message": "Implement twalk(3), add unit tests.\n\nI\u0027ve also added insque(3) and remque(3) (from NetBSD because the OpenBSD\nones are currently broken for non-circular lists).\n\nI\u0027ve not added the three hash table functions that should be in this header\nbecause they operate on a single global hash table and thus aren\u0027t likely\nto be useful.\n\nBug: https://code.google.com/p/android/issues/detail?id\u003d73719\nChange-Id: I97397a7b921e2e860fd9c8032cafd9097380498a\n"
    },
    {
      "commit": "f1e83cc34a58761fc7bc5178c6f283db85d6057a",
      "tree": "bfdd6078020a74f855f320fbcb87f60de7bd47e6",
      "parents": [
        "1a918d9be83013cdc8e194edf35b5295eba4ab1c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jul 25 20:31:47 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jul 28 09:43:21 2014 -0700"
      },
      "message": "Use vsnprintf(3) in syslog(3).\n\nIt seemed like a clever trick to use the internal log message formatting\ncode in syslog(3), but on reflection that means you can\u0027t (for example)\nformat floating point numbers. This patch switches us over to using good\nold vsnprintf(3), even though that requires us to jump through a few hoops.\n\nThere\u0027s no obvious way to unit test this, so I wrote a little program and\nran that.\n\n(cherry-pick of b1b60c30bf321c0fc02264b953b5c16c49d34457.)\n\nBug: 14292866\nChange-Id: I9c83500ba9cbb209b6f496067a91bf69434eeef5\n"
    },
    {
      "commit": "afe6360627ef3f0e9bc8f45535fbfae3354f3ae0",
      "tree": "81d3cf23f17e54ad6362ed474f6f0fb822574ffd",
      "parents": [
        "467e49be70231f55bd7ba908407b4413294d3bfc"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 23 11:38:38 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 23 11:38:38 2014 -0700"
      },
      "message": "Fix belated review comments on syslog change.\n\nBug: 14292866\nChange-Id: I3cd92084cb55b5673f6ba62d51952941b79deb51\n"
    },
    {
      "commit": "4d421901e587fd1563da94baf59b015017c01b91",
      "tree": "bc8d44e08bfb7cca6a7f1edd86930d8c62fcade4",
      "parents": [
        "925d388e24945afb17f66d5c132f993e6a0d4fee",
        "2b67d7dee09852789d9ac7d8972ed6cdb2c18430"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 22 01:59:20 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jul 21 15:45:37 2014 +0000"
      },
      "message": "Merge \"Use upstream OpenBSD\u0027s arc4random.\""
    },
    {
      "commit": "2b67d7dee09852789d9ac7d8972ed6cdb2c18430",
      "tree": "a9a5165ceb108943a62dd251c2aeeccd2f96ae23",
      "parents": [
        "1fb90a8aa0086f7e4f7960a5b916b8605a9a3c96"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jul 18 15:57:41 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jul 21 14:38:16 2014 -0700"
      },
      "message": "Use upstream OpenBSD\u0027s arc4random.\n\nThe getentropy_linux.c is lightly modified to build on Android, but we\u0027re now\ncompletely in sync with upstream OpenBSD\u0027s arc4random implementation.\n\nChange-Id: If32229fc28aba908035fb38703190d41ddcabc95\n"
    },
    {
      "commit": "3ad8ecb64e9dd5614169232b84a93eb3b8aa32d7",
      "tree": "f756f624e7cc5bb019465444881deb6ffbc2dfe6",
      "parents": [
        "1fb90a8aa0086f7e4f7960a5b916b8605a9a3c96"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jul 21 16:35:24 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jul 21 16:56:48 2014 -0700"
      },
      "message": "Rewrite syslog(3) to use Android logging.\n\nSince we don\u0027t have syslogd on Android and you can\u0027t run one on a non-rooted\ndevice, it\u0027s more useful if syslog output just goes to the regular Android\nlogging system.\n\nBug: 14292866\nChange-Id: Icee7f088b97f88ccbdaf471b98cbac7f19f9210a\n"
    },
    {
      "commit": "1fb90a8aa0086f7e4f7960a5b916b8605a9a3c96",
      "tree": "15032f013bcf2f4b96c346f70fa0a801d6cb3793",
      "parents": [
        "e9731387f46938dd73fcda0193460b33655400c4",
        "6b55ba54eff4657cffe053b71e1c9cce2944a8a9"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon Jul 21 18:47:05 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 17 22:34:19 2014 +0000"
      },
      "message": "Merge \"Fix mbsrtowcs(3)\u0027s handling of len parameter.\""
    },
    {
      "commit": "6b55ba54eff4657cffe053b71e1c9cce2944a8a9",
      "tree": "cec574487f5fe5c039a9b2acd90ea4dbe22e8066",
      "parents": [
        "7dd126a38ca501818b07927f310dcc0f531c0f1f"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Sun Jul 20 11:51:26 2014 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon Jul 21 11:45:48 2014 -0700"
      },
      "message": "Fix mbsrtowcs(3)\u0027s handling of len parameter.\n\nThe len parameter is a _maximum_ length. The previous code was treating\nit as an exact length, causing the following typical call to fail:\n\n    mbsrtowcs(out, \u0026in, sizeof(out), state); // sizeof(out) \u003e strlen(in)\n\nChange-Id: I48e474fd54ea5f122bc168a4d74bfe08704f28cc\n"
    },
    {
      "commit": "97e31dedf056b07bcfcd46c49b60bf0798c60843",
      "tree": "376eeda115899cee701483913620a0a261b56351",
      "parents": [
        "7dd126a38ca501818b07927f310dcc0f531c0f1f"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Sun Jul 20 11:49:46 2014 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon Jul 21 11:10:00 2014 -0700"
      },
      "message": "__libc_fatal should print a newline to stderr.\n\nChange-Id: I088dc880d7488a65beac8cda95f530f3db41f112\n"
    }
  ],
  "next": "6425327c3278137d153b8a7505f97d2f5f058d49"
}
