)]}'
{
  "log": [
    {
      "commit": "a9cac4c87a4ea3e6d1c0a1159909bf0e209a61a7",
      "tree": "1e70197326b7eed795ce0f4be2785ce2361836d4",
      "parents": [
        "7c10ee9473b5c46da733b2d3d24cf90fb8ac7672"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 12 16:51:31 2015 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 12 16:51:31 2015 -0800"
      },
      "message": "Fix strftime if tm_zone is null.\n\nUpstream tzcode said \"On platforms with tm_zone, strftime.c now assumes it\nis not NULL\". Which is fine for any struct tm generated by tzcode, but not\nnecessarily true of a struct tm constructed by arbitrary code. In particular,\nNetflix on Nexus Player was failing to start because they format \"%Z\" with\na struct tm whose tm_zone is null (the other fields are valid, but, yeah,\nthat\u0027s probably not intentional).\n\nglibc takes a null tm_zone to mean \"the current time zone\", so let\u0027s do that\ntoo. (Historically Android would use the empty string, and POSIX doesn\u0027t\nclarify which of this is the appropriate behavior when tm_zone is null.)\n\nBug: http://b/25170306\nChange-Id: Idbf68bfe90d143aca7dada8607742905188b1d33\n"
    },
    {
      "commit": "857336809ec7fa4d5d9bff5fa5af0f1dee15c085",
      "tree": "eea43004d7f9bb6e619c6c86560ca1761dadc258",
      "parents": [
        "4b99bef35b740108c4a264efcf5744681f72b687",
        "0660be899f2d907dedbcb643315b73e652ec9510"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Aug 11 19:32:20 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Aug 11 19:32:20 2015 +0000"
      },
      "message": "am 0660be89: am a6a12a78: am 0fdcdd00: Merge \"Fix flaky test time.timer_settime_0.\" into lollipop-mr1-cts-dev\n\n* commit \u00270660be899f2d907dedbcb643315b73e652ec9510\u0027:\n  Fix flaky test time.timer_settime_0.\n"
    },
    {
      "commit": "a6a12a7804402273e193074a58162cc0b3890812",
      "tree": "0c9203a5a50a8ffcde795c98cf00a8fc2fbfceb1",
      "parents": [
        "8beb0c34da46a5146a2de8256db8bb42febb283c",
        "0fdcdd0067af88e7deef73070d0861ceb9f53c37"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Aug 11 18:56:43 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Aug 11 18:56:43 2015 +0000"
      },
      "message": "am 0fdcdd00: Merge \"Fix flaky test time.timer_settime_0.\" into lollipop-mr1-cts-dev\n\n* commit \u00270fdcdd0067af88e7deef73070d0861ceb9f53c37\u0027:\n  Fix flaky test time.timer_settime_0.\n"
    },
    {
      "commit": "bf572d91b50f818a7c3e29340cccf1931939ff8b",
      "tree": "aa668ecfa9218ebab90440531b846024cd6b679c",
      "parents": [
        "0f455612d3325932a851418634a17a61307948c5"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Aug 11 11:23:16 2015 -0700"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Aug 11 11:25:02 2015 -0700"
      },
      "message": "Fix flaky test time.timer_settime_0.\n\nIt fixes the problem reported in https://code.google.com/p/android/issues/detail?id\u003d182395.\n\nChange-Id: Ie16aa04095dac08a62dd0d4c50e763b36526624c\n"
    },
    {
      "commit": "1df44bd0a4392ae87593d010817e25faded83551",
      "tree": "cebd3c715265eb3f415c34797822c1465656c2af",
      "parents": [
        "324bd8d0bbd242a2e7cd12c5786b096029f6c3c8",
        "cb0607590341ed2512a55015e66e19e7f7db3723"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Fri Jun 19 20:29:49 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jun 19 20:29:49 2015 +0000"
      },
      "message": "am cb060759: am 8beb0c34: am b245bc75: am 0f455612: Merge \"Fix flaky test of timer_create_multiple in L.\" into lollipop-mr1-cts-dev\n\n* commit \u0027cb0607590341ed2512a55015e66e19e7f7db3723\u0027:\n  Fix flaky test of timer_create_multiple in L.\n"
    },
    {
      "commit": "8beb0c34da46a5146a2de8256db8bb42febb283c",
      "tree": "757c1c3340eb6d8851dadbf311440aa018cd921e",
      "parents": [
        "00cef82013c0826bb43c11651d25de8b99335618",
        "b245bc750021ce6d220e71625fca66620cdd1f05"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Fri Jun 19 18:55:51 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jun 19 18:55:51 2015 +0000"
      },
      "message": "am b245bc75: am 0f455612: Merge \"Fix flaky test of timer_create_multiple in L.\" into lollipop-mr1-cts-dev\n\n* commit \u0027b245bc750021ce6d220e71625fca66620cdd1f05\u0027:\n  Fix flaky test of timer_create_multiple in L.\n"
    },
    {
      "commit": "d1ade7ce0237089d0e44eb2bee0691e4814d1289",
      "tree": "07d47b6970ab90a52ad2e2d86c6d3880fd5d4660",
      "parents": [
        "547fa54e6d5342f4ce68c7d78bd270595caf4b97"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Thu Jun 18 17:01:11 2015 -0700"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Fri Jun 19 00:54:34 2015 +0000"
      },
      "message": "Don\u0027t use TIMER_ABSTIME in time_test.\n\nIf TIMER_ABSTIME is used in timer_settime(), the timer is always fired\nimmediately, which is not the intent of the tests.\n\nChange-Id: I76047dbeb2bdded272ee6d028630b53bfd7d8514\n"
    },
    {
      "commit": "410c1adf5fececb0149b7b65fde3130327ff24c8",
      "tree": "48ef2ad6b954690fca31d8f01d11b43be55eaf85",
      "parents": [
        "ea248d9ca80d4ef731d821648711094aa03b0318"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Thu Jun 18 16:19:02 2015 -0700"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Thu Jun 18 16:19:02 2015 -0700"
      },
      "message": "Fix flaky test of timer_create_multiple in L.\n\nBug: 20677618\nChange-Id: I0cb5faf77edce042b10611543180f3e2e73d3d05\n"
    },
    {
      "commit": "fd20a8c2d669b3f2d63e2d33a32b90d1b7f17b82",
      "tree": "d183804463ff81ad063189ab61112eb17475b148",
      "parents": [
        "bb4961cd4f0348b5e88bdf81dded7b63d1aadb0b",
        "473d96c0a8bb890ac84f4a69a5c8c54134fd30ef"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Wed May 20 13:36:56 2015 -0700"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Wed May 20 13:36:56 2015 -0700"
      },
      "message": "resolved conflicts for merge of 473d96c0 to lmp-mr1-ub-dev\n\nChange-Id: I48269218b152054d527d9257d40490b54205140f\n"
    },
    {
      "commit": "5c0996a96970eb7cf93d3203313a2532c119f1a7",
      "tree": "215389354714a898ed7b90420d99f38f3e439348",
      "parents": [
        "3da136aa47e2d1608b98abb2580f024b36f92831"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Fri May 08 12:01:52 2015 -0700"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Fri May 08 13:12:01 2015 -0700"
      },
      "message": "Fix timer flaky test in lollipop-mr1-cts-dev.\n\nIt is partically cherry-pick from https://android-review.googlesource.com/#/c/123410/.\nAnd as lollipop-mr1-cts-dev still uses stlport, \u003cstdatomic.h\u003e is used instead of \u003catomic\u003e.\n\nBug: 20677618\nChange-Id: I952a6fd074facc4227c955fecf3ecbfbbaec4193\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": "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": "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": "d5c652756bb1a52959cd5c62447b62462f90f983",
      "tree": "8804bb959d8d66a5a8557683416c254f2fc98530",
      "parents": [
        "f64c43ba6c9244c50e904961dc432f04b1dfcfd9"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Wed Nov 26 14:04:26 2014 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Wed Nov 26 17:14:50 2014 -0800"
      },
      "message": "support _POSIX_CPUTIME\n\nBug: 18490039\nChange-Id: I01fa83b48e1b908de1f227b6e4f98e280bcd50ee\n"
    },
    {
      "commit": "154e2026c83575eb17101df3a8d1192e305588d4",
      "tree": "754fa359b8acbe2be4049c45d8976056dc7c95cd",
      "parents": [
        "38569312bc5a3a4688d45997d81b59abb0a60825"
      ],
      "author": {
        "name": "Satoru Takeuchi",
        "email": "satoru.x.takeuchi@sonymobile.com",
        "time": "Tue May 27 17:04:04 2014 +0900"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Nov 14 18:13:07 2014 -0800"
      },
      "message": "libc: Fix mktime returns an uncorrect time in empty TZ case\n\nThe mktime API returned an uncorrect time when TZ is set as empty.\nA timezone UTC/GMT+0 should be implied in the empty case. However\nmktime keeps previous information about timezone. If mktime was called\nwith a timezone which has DST before, the \"defaulttype\" member of\n\"state\" structure wouldn\u0027t be 0. Then it would be used next time,\neven though UTC/GMT+0 doesn\u0027t have DST.\n\nAdded initialization of the \"defaulttype\" in the empty TZ case.\n\nChange-Id: Ic480c63c548c05444134e0aefb30a7b380e3f40b\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": "0724132c3263145f2a667f453a199d313a5b3d9f",
      "tree": "4bf159213d27f805579fc8b9a5a5460d70df5a3d",
      "parents": [
        "c712ceeec4c15da8488c5ce143fcc6b0a02d74f3"
      ],
      "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": "Tue Oct 21 18:31:02 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\nChange-Id: I73192c915cdacf608521b1792c54e5af14a34907\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": "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": "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": "f4c948a9e9b616c4f133f9495dacb105e51b3e49",
      "tree": "47e300fdbb36f28ab843468ad484a8d8a74a06e9",
      "parents": [
        "17f83c93cbbde3e38a03182931f40b7390061a7d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 19 11:16:41 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 19 11:18:20 2014 -0700"
      },
      "message": "Move the meat of \u003cfeatures.h\u003e into \u003csys/cdefs.h\u003e.\n\nThis way it\u0027s a lot harder for us to screw up (since we should always\nbe including \u003csys/cdefs.h\u003e anyway).\n\nBug: 14659579\nChange-Id: I23070fff3296b0d1c683bb5e3a6e214146327d53\n"
    },
    {
      "commit": "708c11205443cda14cfb21138d441106aa77a5f9",
      "tree": "e7e467762f54f04df058431394a3841a305dfee2",
      "parents": [
        "65549969488bbce7f5d1b57714ba32c466943470"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jul 25 11:55:59 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jul 25 15:24:57 2014 -0700"
      },
      "message": "Start hiding \"private/bionic_time.h\".\n\nBug: 15765976\n\n(cherry picked from commit 905e6d58aaf515bf237e62078f8a321920fe4c6b)\n\nChange-Id: Ic7435308e8b521886f42ac7bf59531924921ea67\n"
    },
    {
      "commit": "905e6d58aaf515bf237e62078f8a321920fe4c6b",
      "tree": "07ee9fad11490db7e30bc27e359d5d1adf950cef",
      "parents": [
        "123172ae370fe51e2d1fc26fe0aafa095af52919"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jul 25 11:55:59 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jul 25 12:03:51 2014 -0700"
      },
      "message": "Start hiding \"private/bionic_time.h\".\n\nBug: 15765976\nChange-Id: Ibd9cf07067ec8dffe9fda6c3d498d4ab90708220\n"
    },
    {
      "commit": "3002131da33401cf1b45abbdbec58b7c751fc43a",
      "tree": "ddebae94546e50154d568cd9a9cac943e435a52a",
      "parents": [
        "a446505874ba52eb6ddb893c0d9c9321a73b235d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 15 16:53:13 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 16 15:15:53 2014 -0700"
      },
      "message": "Use VDSO for clock_gettime(2) and gettimeofday(2).\n\nBug: 15387103\n\n(cherry picked from commit 625993dfbb085a3cde7492eda8ec1cdc1ee39a78)\n\nChange-Id: I0e156d7049ba1495902259071a96936592e74025\n"
    },
    {
      "commit": "625993dfbb085a3cde7492eda8ec1cdc1ee39a78",
      "tree": "4385fee1dde6d90f42c616a2afc6766824f72835",
      "parents": [
        "770d0f6177ca1ad242b509151fb612f07ef8a07b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 15 16:53:13 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 16 14:27:43 2014 -0700"
      },
      "message": "Use VDSO for clock_gettime(2) and gettimeofday(2).\n\nBug: 15387103\nChange-Id: Ifc3608ea65060c1dc38120b10b6e79874f182a36\n"
    },
    {
      "commit": "7a39094465bbd01a22565fce1f1155c762f8d145",
      "tree": "c3d23c62894a3dbabd5d0160166afe7ab5f4fcf3",
      "parents": [
        "4d35da1df8b74c1965b2201f6089e7d7bb352def"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon May 19 23:46:51 2014 +0000"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon May 19 23:46:51 2014 +0000"
      },
      "message": "Revert \"Removes bionic\u0027s dependence on stlport\"\n\nThis reverts commit 4d35da1df8b74c1965b2201f6089e7d7bb352def.\n\nChange-Id: Ie9a2620441edb55dbc5949e13a4b913ea4e66797\n"
    },
    {
      "commit": "4d35da1df8b74c1965b2201f6089e7d7bb352def",
      "tree": "21c58c7fa8fa2d34d777eeae25a79d5bf05b087a",
      "parents": [
        "48ee47ce25fa9c99df49855ebf77ae1758d58d47"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon May 19 10:50:15 2014 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon May 19 11:33:14 2014 -0700"
      },
      "message": "Removes bionic\u0027s dependence on stlport\n\nOnly affects tests/benchmarks. Confirmed passing on arm.\n\nChange-Id: If158e23e8cd06e7597ef6f3c9376f6799b467e62\n"
    },
    {
      "commit": "329103d3e2f42d3e35a060c3e0d326d6476eb2ef",
      "tree": "0624fa58c29f43ffe405be7fa47a73f85ad29fae",
      "parents": [
        "f2dc7d17196de9904df67f21aad1525b8568a705"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 25 16:55:04 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 25 21:51:26 2014 -0700"
      },
      "message": "Don\u0027t use so much stack in tzcode.\n\nBug: 14313703\nBug: https://code.google.com/p/android/issues/detail?id\u003d61130\nChange-Id: Id9b240fce20d4a6f2660792070e02b2b5f287655\n"
    },
    {
      "commit": "efbdb53f84f4e1faf38f3c1a4cb60a83b9885ef4",
      "tree": "ce1cefce8be4e92dec242f1a06672b1dfbf566d7",
      "parents": [
        "5f149f1bdef31d198c0e84fd8c904204d263e825"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 07 15:17:19 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 07 15:17:19 2014 -0700"
      },
      "message": "Remove a non-standard turd: strtotimeval.\n\nChange-Id: I1b1e40746cb573e3fb73a5276969b40c5da36d15\n"
    },
    {
      "commit": "4bfaf462f0c864473faaca63cc4ba9e1a1b103a8",
      "tree": "c8514bbb56f1b835c2043367fc7df6b7eb3dd278",
      "parents": [
        "ecbf00bda2fcee65e4e6385772022529ffeeed91"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Mar 26 14:21:11 2014 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Mar 26 17:57:48 2014 +0000"
      },
      "message": "Added strtotimeval tests.\n\nChange-Id: I3dfd3647a8494490a2d549bdb915968063a7fb99\n"
    },
    {
      "commit": "753ad778bc1c3aecc4cd82b8387a7dc8a9b44d34",
      "tree": "6eedabf25b6c892f6eb95b847e3100c8245dcacf",
      "parents": [
        "2cc58603d5fd68ec582984318fb3c5f8865a186f"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Mar 20 20:47:45 2014 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Mar 20 20:47:45 2014 -0700"
      },
      "message": "Fix deadlock in timer_delete.\n\nIf the callback function for a timer did a timer_delete, the function\nwould never return. The problem was that the timer_delete function would try\nto wait until the timer thread has finished. Waiting for yourself to finish\ndoesn\u0027t work very well.\n\nBug: 13397340\nChange-Id: Ica123a5bafbc8660c8a4a909e5c2dead55ca429d\n"
    },
    {
      "commit": "3e3409af0faa8843078a9e6e7110e69a88210da4",
      "tree": "ef07a9b1dac6181400f081a431b6665cbd86e416",
      "parents": [
        "2cd3490d7bdb18e5051a3cc66e7d03635bbcbeaf"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 10 18:19:03 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 10 18:19:03 2014 -0700"
      },
      "message": "Add system/extras strftime and strptime tests.\n\nChange-Id: I889c58f6e2e27b99cf6328a8671858d2e5feaa4e\n"
    },
    {
      "commit": "be1d91dedcfb346ced5ac496cd454f5b2e9bc4a9",
      "tree": "a27aef46b6755f47ff36c6a40661f7f09e55950c",
      "parents": [
        "fd9e20d10f946334955ca199b0178580d284e89f"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sat Mar 08 15:05:26 2014 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sat Mar 08 15:09:43 2014 -0800"
      },
      "message": "Add includes for waitpid\n\n(cherry picked from commit f07c5dd9ab63f2e8ba736107bd4b69bbd8829c9f)\n\nChange-Id: I7a765fd7a3a5f8f29a703f6a591c4fd8df4ebf1c\n"
    },
    {
      "commit": "4b558f50a42c97d461f1dede5aaaae490ea99e2e",
      "tree": "c239a686131cdda28272c961ce98febbc0c772f8",
      "parents": [
        "bef5016491eed41521f514d5c5528e2274689948"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 04 15:58:02 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 07 16:49:46 2014 -0800"
      },
      "message": "Rewrite the POSIX timer functions.\n\nThis is a much simpler implementation that lets the kernel\ndo as much as possible.\n\nCo-authored-by: Jörgen Strand \u003cjorgen.strand@sonymobile.com\u003e\nCo-authored-by: Snild Dolkow \u003csnild.dolkow@sonymobile.com\u003e\nChange-Id: Iad19f155de977667aea09410266d54e63e8a26bf\n"
    },
    {
      "commit": "f04935c85e0b466f0d30d2cd4c0fa2fff62e7d6d",
      "tree": "8f1c6af75517892648f49adad9d4d5d44c20f49c",
      "parents": [
        "e163a3986aa7d1c67fe3274eb9204812be0a6245"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Dec 20 18:43:21 2013 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Feb 06 20:12:21 2014 -0800"
      },
      "message": "Make sure that the same tests are on all platforms.\n\nIn order to be able to generate a list of tests for cts, the same set of\ntests must exist across all platforms. This CL adds empty tests where a\ntest was conditionally compiled out.\n\nThis CL creates a single library libBionicTests that includes all of\nthe tests found in bionic-unit-tests-static.\n\nAlso fix a few missing include files in some test files.\n\nTested by running and compiling the tests for every platform and\nverifying the same number of tests are on each platform.\n\nChange-Id: I9989d4bfebb0f9c409a0ce7e87169299eac605a2\n"
    },
    {
      "commit": "0c40152767188dc718a46e5b4e7e32e937c85bd8",
      "tree": "2960b8f779dcd252946da0cd5c29ec0760199f9e",
      "parents": [
        "d0402acdc76e1ea412085b3b633f5ae798022350"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Oct 18 16:21:54 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Oct 18 16:21:54 2013 -0700"
      },
      "message": "Fix the time unit tests for systems with 64-bit time_t.\n\nChange-Id: I29df50b25d022c1c00906e71b612defa58e46e81\n"
    },
    {
      "commit": "7843d44a594270bcb56e98b130603c054f8a9d38",
      "tree": "cfc044742a435671f93e4a6224f52d314c05c777",
      "parents": [
        "bb34907ff5f60cf1600e83ea1bb4a6c26da6854e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 22 11:37:32 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 22 12:21:18 2013 -0700"
      },
      "message": "Work around tzcode\u0027s reliance on signed overflow.\n\nI\u0027ve mailed the tz list about this, and will switch to whatever upstream\nfix comes along as soon as it\u0027s available.\n\nBug: 10310929\nChange-Id: I36bf3fcf11f5ac9b88137597bac3487a7bb81b0f\n"
    },
    {
      "commit": "ee178bfb794d16d6c5a35f424b28c8ebb83e1581",
      "tree": "5ed2fa5420c5e326ebd7f114463977a94f7d5122",
      "parents": [
        "8a363692be45ed1b36e1f1f21707b6f35f5519c8"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jul 12 11:25:20 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jul 12 11:25:20 2013 -0700"
      },
      "message": "Add a trivial gmtime(3) test.\n\nChange-Id: I849f200a455cd6971646fa45766ab22ba19fb866\n"
    },
    {
      "commit": "e0175ca7e440a87e9d03f249fc8f210063df7908",
      "tree": "982e64580d19fc846cd7f2a1fa1dee2fbe2274d8",
      "parents": [
        "ec706c24acb4d1db6a583a57b76adfb9250d39eb"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 14 14:38:08 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 14 14:38:08 2013 -0700"
      },
      "message": "Don\u0027t search off the end of the index for bad Olson ids.\n\nIn the old code, the index was a file to itself, so it made sense to\nread until you hit the end of the file. In the new code, the index is\nfollowed by hundreds of KiB of data, so we need to just search the\nindex.\n\nBug: 8368791\nChange-Id: Icf5f8b5516cf3a93679fa849c9f6cd1cb100e0f1\n"
    }
  ]
}
