)]}'
{
  "log": [
    {
      "commit": "d53cae0e45dafdb3a83ccc3675051c0aee532111",
      "tree": "c8771059f9c172b0da3b05f7e4903e1225008635",
      "parents": [
        "b8ef90d67950c5d4e04f95c30e164e924f41f70a"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jul 11 15:41:28 2011 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Sep 16 12:38:28 2011 -0700"
      },
      "message": "Add non-NDK internal API __pthread_gettid\n\nTracking bugs 5267571 and 5090073 (for deadlock detection logs).\n\nChange-Id: Icb90f91ec1525607551c2234ef921bf88296484f\n"
    },
    {
      "commit": "30e30acf106166bf65ad781bb4a63eead1d2c3a6",
      "tree": "b0a12123fbfa78be81e8b9c9965e964f593606c0",
      "parents": [
        "6b577759b21ca160d72b1fab6454821b950a05e0",
        "6b6ebeca985fb3843b56b507ac4ac1be44080a9c"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed Jul 13 14:53:56 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jul 13 14:53:56 2011 -0700"
      },
      "message": "am 6b6ebeca: am 3a131026: resolved conflicts for merge of 50a83255 to gingerbread-plus-aosp\n\n* commit \u00276b6ebeca985fb3843b56b507ac4ac1be44080a9c\u0027:\n  enable support for large files (\u003e 2G)\n  Enable functional DSO object destruction\n  x86: Enable -fstack-protector\n  Update X86 Bionic CRT files for unwind/exceptions\n  bionic, libthread_db x86 fixes\n  Updated gcc 4.4.3 IA toolchain doesn\u0027t require the .ctors list\n  Remove an extra register move.\n  Replace __atomic_XXX with GCC __sync_XXX intrinsics.\n  move some typedefs to procfs.h required by gdbserver build\n  use consistent guards for off_t and size_t defines for IA\n  Simplify variable typing for IA builds\n  sigsetmask.c was not processing the \"mask\" argument.\n  Add defines for CAIF support\n  Remove extra/unneeded copy of fenv.h\n  Use proper variable typing\n  Update ATOM string routines to latest\n  Fix undefined reference to dl_iterate_phdr for x86\n  Fix missing NL\n  ptrace.c Fix source file format to unix from dos\n"
    },
    {
      "commit": "6b6ebeca985fb3843b56b507ac4ac1be44080a9c",
      "tree": "400a65efcc4271e056cd1f96b802440222da318d",
      "parents": [
        "f2ebd304c3c0822121e6a4d0f542a048a7fc3b20",
        "3a13102637c8be53edf28f96598ac11aaa3e14df"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Jul 11 13:25:01 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jul 11 13:25:01 2011 -0700"
      },
      "message": "am 3a131026: resolved conflicts for merge of 50a83255 to gingerbread-plus-aosp\n\n* commit \u00273a13102637c8be53edf28f96598ac11aaa3e14df\u0027:\n  enable support for large files (\u003e 2G)\n  Enable functional DSO object destruction\n  x86: Enable -fstack-protector\n  Update X86 Bionic CRT files for unwind/exceptions\n  bionic, libthread_db x86 fixes\n  Updated gcc 4.4.3 IA toolchain doesn\u0027t require the .ctors list\n  Remove an extra register move.\n  Replace __atomic_XXX with GCC __sync_XXX intrinsics.\n  move some typedefs to procfs.h required by gdbserver build\n  use consistent guards for off_t and size_t defines for IA\n  Simplify variable typing for IA builds\n  sigsetmask.c was not processing the \"mask\" argument.\n  Add defines for CAIF support\n  Remove extra/unneeded copy of fenv.h\n  Use proper variable typing\n  Update ATOM string routines to latest\n  Fix undefined reference to dl_iterate_phdr for x86\n  Fix missing NL\n  ptrace.c Fix source file format to unix from dos\n"
    },
    {
      "commit": "3a13102637c8be53edf28f96598ac11aaa3e14df",
      "tree": "a8e77af69edd9db40c53b31d1c36b5cae7a2b5c6",
      "parents": [
        "57aadbb096a118dd33f9f16c67bd18dbb6b92c4a",
        "50a83255d80f98b857c3f72dd2225d4bbc720ca3"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Jul 11 21:39:06 2011 +0200"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Jul 11 21:39:14 2011 +0200"
      },
      "message": "resolved conflicts for merge of 50a83255 to gingerbread-plus-aosp\n\nChange-Id: Idf1971120bbdd52676f95aa3aa69f62342dc012e\n"
    },
    {
      "commit": "3435fc600d8d78b63a355b519667c23f56d6611b",
      "tree": "131bc5304ff7554ccbc5a74e522e77146a5f645a",
      "parents": [
        "bf296479646e97108174a13b74a6eb11f1bea713"
      ],
      "author": {
        "name": "James Rose",
        "email": "james.rose@intel.com",
        "time": "Tue May 31 10:20:42 2011 -0700"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Thu Jul 07 22:46:16 2011 +0200"
      },
      "message": "bionic, libthread_db x86 fixes\n\nOrig-Change-Id: I3be997f5f1f6a894a3c200d4f325cf3bfd428c66\nAuthor: James Rose \u003cjames.rose@intel.com\u003e\nSigned-off-by: Bruce Beare \u003cbruce.j.beare@intel.com\u003e\n"
    },
    {
      "commit": "bf296479646e97108174a13b74a6eb11f1bea713",
      "tree": "90c77798065d7564e1e9e629bc3c3a42ebc41006",
      "parents": [
        "b1dd939e90b86d40250306bce07350c2d60eec13"
      ],
      "author": {
        "name": "Bruce Beare",
        "email": "bruce.j.beare@intel.com",
        "time": "Thu Jan 27 10:23:16 2011 -0800"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Thu Jul 07 22:46:16 2011 +0200"
      },
      "message": "Updated gcc 4.4.3 IA toolchain doesn\u0027t require the .ctors list\n\nOrig-Change-Id: Ia840a19a45257128eccdcf25d105f500f2d90741\nSigned-off-by: H.J. Lu \u003chjl.tools@gmail.com\u003e\nSigned-off-by: Bruce Beare \u003cbruce.j.beare@intel.com\u003e\n"
    },
    {
      "commit": "0f2dc2b60cf684f58eefda51b7442c44c10aa492",
      "tree": "b1de5fe531c8e1599ccc1ce9135be8cd9714cf5c",
      "parents": [
        "3f14ff34dfbd00fcffb18b10a1a3e17e2cc5ebdf"
      ],
      "author": {
        "name": "Bruce Beare",
        "email": "bruce.j.beare@intel.com",
        "time": "Tue May 31 10:26:08 2011 -0700"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Thu Jul 07 22:46:15 2011 +0200"
      },
      "message": "ptrace.c Fix source file format to unix from dos\n\nOrig-Change-Id: Ia771b457eec7f9575d4631fb1c12a7062ebcc7de\nSigned-off-by: Bruce Beare \u003cbruce.j.beare@intel.com\u003e\n"
    },
    {
      "commit": "681c4bd782369e0d42bd02d3ac38a8031270ad7e",
      "tree": "e2a6eb8ea379c07143343938504d9a01e75421b7",
      "parents": [
        "cb5529efd80bc9ae78a8ea5f16f062adda4ec368",
        "b3773e9cc84630fced2117bb57224f0e766c5a26"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Jul 06 13:00:03 2011 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Jul 06 13:00:05 2011 -0700"
      },
      "message": "Merge b3773e9c\n\nChange-Id: I5787d9ac5e745a08e1c891e9ce9efc4e7f97ace8\n"
    },
    {
      "commit": "cb5529efd80bc9ae78a8ea5f16f062adda4ec368",
      "tree": "bd8406edf2d073901b7b44123ea49bdd93a99056",
      "parents": [
        "c99376836021e6623516cf38d42259d38e1a480f",
        "784515ad93c63ce9b7add4830946f30a2792b97d"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Jul 06 12:59:46 2011 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Jul 06 12:59:55 2011 -0700"
      },
      "message": "Merge 784515ad\n\nChange-Id: I3e5b691d008e9548f43339635bafdd95bc2f56fe\n"
    },
    {
      "commit": "c99376836021e6623516cf38d42259d38e1a480f",
      "tree": "369350c5eb46452d6c693d8d6aa4286012dccd51",
      "parents": [
        "368ee1e4d65c555fdb0fa4b3a91d75a397936908"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Jul 06 12:58:56 2011 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Jul 06 12:58:56 2011 -0700"
      },
      "message": "Revert \"Revert \"libc: Add logcat error message for memory corruption\"\"\n\nThis reverts commit 368ee1e4d65c555fdb0fa4b3a91d75a397936908.\n"
    },
    {
      "commit": "b3773e9cc84630fced2117bb57224f0e766c5a26",
      "tree": "d95591c508bdb12628374e1204cc7ee70cb2a4f3",
      "parents": [
        "784515ad93c63ce9b7add4830946f30a2792b97d",
        "9c95cbf75094c15d251bb3d57a55ce47d7c6c2c8"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@android.com",
        "time": "Wed Jul 06 10:27:49 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jul 06 10:27:49 2011 -0700"
      },
      "message": "am 9c95cbf7: Merge \"Really fix the build.\"\n\n* commit \u00279c95cbf75094c15d251bb3d57a55ce47d7c6c2c8\u0027:\n  Really fix the build.\n"
    },
    {
      "commit": "c51871d4b22425b32ec40c060c39d6b6fa4406f6",
      "tree": "a6ab54ad614fc61af9377d9242c206dd3aaff2f6",
      "parents": [
        "01eb7f72434830bb14cec906d885d2b7ee40d53b"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@android.com",
        "time": "Wed Jul 06 19:02:15 2011 +0200"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@android.com",
        "time": "Wed Jul 06 19:02:15 2011 +0200"
      },
      "message": "Really fix the build.\n\nlibcutils/mspace.c includes libc/bionic/dlmalloc.c, we need to\ntake care of the fact that any internal C library function cannot\nbe used from it.\n\nChange-Id: I0bc81ae090b7ac2d464f26b97fc6b94a08cdad9c\n"
    },
    {
      "commit": "784515ad93c63ce9b7add4830946f30a2792b97d",
      "tree": "03f1f97f1c472ab59aa4dbcb3e8c4586e68d721c",
      "parents": [
        "d25ea49e632c00d57d893563dac3f6dae5493b7e",
        "01eb7f72434830bb14cec906d885d2b7ee40d53b"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@android.com",
        "time": "Wed Jul 06 09:08:47 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jul 06 09:08:47 2011 -0700"
      },
      "message": "am 01eb7f72: Merge \"Fix broken build\"\n\n* commit \u002701eb7f72434830bb14cec906d885d2b7ee40d53b\u0027:\n  Fix broken build\n"
    },
    {
      "commit": "a4824467c33c5a59317f777a54c60e3b339e4966",
      "tree": "c3e76fe6290976c907e6a27bc81a08e9780fc786",
      "parents": [
        "b73b6783a595cf4b1cef6463c23317a8b417f1e9"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@android.com",
        "time": "Wed Jul 06 17:54:35 2011 +0200"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@android.com",
        "time": "Wed Jul 06 17:54:35 2011 +0200"
      },
      "message": "Fix broken build\n\nChange-Id: Ia46b50aec51a55434c8828a73e07f4732f8f6c1c\n"
    },
    {
      "commit": "368ee1e4d65c555fdb0fa4b3a91d75a397936908",
      "tree": "bab57744349e2a22c98a07c83d130983d0df5e9c",
      "parents": [
        "877923d369c953d601afd461a04854a27ec720fd"
      ],
      "author": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Wed Jul 06 16:51:54 2011 +0100"
      },
      "committer": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Wed Jul 06 16:51:54 2011 +0100"
      },
      "message": "Revert \"libc: Add logcat error message for memory corruption\"\n\nThis fixes the build.\n\nThis reverts commit 7708a89c60e7b024d31c48c8034932c5e9f0aceb.\n"
    },
    {
      "commit": "877923d369c953d601afd461a04854a27ec720fd",
      "tree": "369350c5eb46452d6c693d8d6aa4286012dccd51",
      "parents": [
        "d625b56d6b0dba3444723b9f9198f7759d3dcd82",
        "d25ea49e632c00d57d893563dac3f6dae5493b7e"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@android.com",
        "time": "Wed Jul 06 07:53:10 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jul 06 07:53:10 2011 -0700"
      },
      "message": "am d25ea49e: am b73b6783: Merge \"libc: Add logcat error message for memory corruption\"\n\n* commit \u0027d25ea49e632c00d57d893563dac3f6dae5493b7e\u0027:\n  libc: Add logcat error message for memory corruption\n"
    },
    {
      "commit": "d25ea49e632c00d57d893563dac3f6dae5493b7e",
      "tree": "80d71801e912953212601c17968f0f82e73a3ac4",
      "parents": [
        "946f3ad199e4c20606f4461751f510220b22e7b8",
        "b73b6783a595cf4b1cef6463c23317a8b417f1e9"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@android.com",
        "time": "Wed Jul 06 07:46:40 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jul 06 07:46:40 2011 -0700"
      },
      "message": "am b73b6783: Merge \"libc: Add logcat error message for memory corruption\"\n\n* commit \u0027b73b6783a595cf4b1cef6463c23317a8b417f1e9\u0027:\n  libc: Add logcat error message for memory corruption\n"
    },
    {
      "commit": "7708a89c60e7b024d31c48c8034932c5e9f0aceb",
      "tree": "d74fbfa8efa44b57fe91e768b4bea8834c49dd31",
      "parents": [
        "2f5c6d2d663591b0b5cff9f7e90f58f12a5967eb"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@android.com",
        "time": "Thu Jun 30 18:32:03 2011 +0200"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@android.com",
        "time": "Tue Jul 05 19:53:53 2011 +0200"
      },
      "message": "libc: Add logcat error message for memory corruption\n\nOur dlmalloc implementation currently calls abort() when it detects\nthat the heap is corrupted, or that an invalid pointer is passed to\none of its functions.\n\nThe only way to detect this is because abort() will force-fully\ncrash the current program with a magic fault address of \u00270xdeadbaad\u0027.\n\nHowever, this is not really well documented, and a frequent topic\non the android-ndk forum (among others).\n\nThis change makes our dlmalloc code dump a simple message to the\nlog just before the abort() call (and hence before the stack trace)\nto better help identify the problem.\n\nChange-Id: Iebf7eb7fe26463ecadfaca8f247d237edb441e3c\n"
    },
    {
      "commit": "1f8e2672a8f261d5bb08e3ab26f026b30f5ff77b",
      "tree": "45e6b8bf1abfb8ccacce27582c8563dd25f5101e",
      "parents": [
        "fe88a194a308ae3753f90c9f7ecb99557fdbfcca"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri May 27 00:52:21 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri May 27 00:52:21 2011 -0700"
      },
      "message": "Implement getpwnam_r(3) and getpwuid_r(3).\n\nThese functions were already declared in \u003cpwd.h\u003e, but hadn\u0027t been implemented\nyet.\n\ngit cherry-pick --no-commit 081504af74826bad7035669ad34d457b4b439e8f\n\nChange-Id: I316acf4cffb9f2c6788e8e342aa620f9a00886d5\n"
    },
    {
      "commit": "54e494d909fff343ed0c612506fe68294a3936d0",
      "tree": "1aacb9e661f65323e8aba1186f924f80932a197f",
      "parents": [
        "18a0a39a1bfb050351b486d5a980b16578cf967d",
        "add0a45a117f00553e79e7137d023416f9c0a54f"
      ],
      "author": {
        "name": "David Turner",
        "email": "digit@android.com",
        "time": "Wed May 11 13:11:56 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 11 13:11:56 2011 -0700"
      },
      "message": "am add0a45a: am e8f7e30b: Merge \"bionic, libthread_db x86 fixes\"\n\n* commit \u0027add0a45a117f00553e79e7137d023416f9c0a54f\u0027:\n  bionic, libthread_db x86 fixes\n"
    },
    {
      "commit": "add0a45a117f00553e79e7137d023416f9c0a54f",
      "tree": "bf41720295f493b73b58cdb4793498d32703b8a7",
      "parents": [
        "86d25a54bc093aae369ce54af11151d60ef191fc",
        "e8f7e30b05c6ba103d64c1fb3cd5ef2b17be7aab"
      ],
      "author": {
        "name": "David Turner",
        "email": "digit@android.com",
        "time": "Tue May 10 17:19:13 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue May 10 17:19:13 2011 -0700"
      },
      "message": "am e8f7e30b: Merge \"bionic, libthread_db x86 fixes\"\n\n* commit \u0027e8f7e30b05c6ba103d64c1fb3cd5ef2b17be7aab\u0027:\n  bionic, libthread_db x86 fixes\n"
    },
    {
      "commit": "8e551a6319e45dd5c8d03864f3330b45cf8551b7",
      "tree": "70eb80f79b0b24a96f4fd4fd8ed68ce3b63ff154",
      "parents": [
        "3ef36b2115d0802e668e325b59af6ef14d999e71"
      ],
      "author": {
        "name": "Bruce Beare",
        "email": "bruce.j.beare@intel.com",
        "time": "Mon Mar 28 09:47:35 2011 -0700"
      },
      "committer": {
        "name": "Bruce Beare",
        "email": "bruce.j.beare@intel.com",
        "time": "Wed Apr 27 09:12:58 2011 -0700"
      },
      "message": "bionic, libthread_db x86 fixes\n\nChange-Id: I3be997f5f1f6a894a3c200d4f325cf3bfd428c66\nAuthor: James Rose \u003cjames.rose@intel.com\u003e\nSigned-off-by: Bruce Beare \u003cbruce.j.beare@intel.com\u003e\n"
    },
    {
      "commit": "3be409a38c18c75690b74bca5d81ca95c8f0f5b9",
      "tree": "0a6dddd0c13a1189481455f47ca7fa0e7a12d17e",
      "parents": [
        "f11b3bcbf952a13aaca4e24d530b51ade8493d76",
        "702457363c2b1b01f0d9cb0093a48ce28753e275"
      ],
      "author": {
        "name": "David Turner",
        "email": "digit@android.com",
        "time": "Mon Apr 11 14:50:33 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Apr 11 14:50:33 2011 -0700"
      },
      "message": "am 70245736: am aad685ce: am 4c090434: Merge \"removing shadowing redeclaration of result\"\n\n* commit \u0027702457363c2b1b01f0d9cb0093a48ce28753e275\u0027:\n  removing shadowing redeclaration of result\n"
    },
    {
      "commit": "702457363c2b1b01f0d9cb0093a48ce28753e275",
      "tree": "f839317d742e799538763bdb1852bdf3a6313ee5",
      "parents": [
        "2b434862fdc595f1488f2ab3b13ed40f2aed6edb",
        "aad685ce001495260a3ce0c9d9284a6ee3ca09c0"
      ],
      "author": {
        "name": "David Turner",
        "email": "digit@android.com",
        "time": "Mon Apr 11 14:46:48 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Apr 11 14:46:48 2011 -0700"
      },
      "message": "am aad685ce: am 4c090434: Merge \"removing shadowing redeclaration of result\"\n\n* commit \u0027aad685ce001495260a3ce0c9d9284a6ee3ca09c0\u0027:\n  removing shadowing redeclaration of result\n"
    },
    {
      "commit": "5f133f3c4ddd6d43d8da6b3bcccb9a7477dd20b3",
      "tree": "95c26717aa882e5cd0f4fb7b46b5fc7d0a842728",
      "parents": [
        "e1d5bef7a648d922a9e5d5a637387eb1551e1d1b",
        "31e2feeef3dffb49ce742a6ae1c9280c792c7c49"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Fri Apr 01 12:27:07 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Apr 01 12:27:07 2011 -0700"
      },
      "message": "am 31e2feee: am 2dc801f9: am 8da75ab8: Ignore property set timeouts.\n\n* commit \u002731e2feeef3dffb49ce742a6ae1c9280c792c7c49\u0027:\n  Ignore property set timeouts.\n"
    },
    {
      "commit": "2dc801f9fce57c35c00a3366f86bc38fe3e38c25",
      "tree": "6d92e201afc947632ab31b6731c0d15d22c2796f",
      "parents": [
        "099423ba1c68d960888905ce5de093ea8cb7ad39",
        "8da75ab8936b0b7fcf8dd9a3befeb696ee6aa39d"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Fri Apr 01 12:24:15 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Apr 01 12:24:15 2011 -0700"
      },
      "message": "am 8da75ab8: Ignore property set timeouts.\n\n* commit \u00278da75ab8936b0b7fcf8dd9a3befeb696ee6aa39d\u0027:\n  Ignore property set timeouts.\n"
    },
    {
      "commit": "8da75ab8936b0b7fcf8dd9a3befeb696ee6aa39d",
      "tree": "76423701d05ee17a93ba91da93a113f1f36082c7",
      "parents": [
        "23bc3ff71dffdfec208aee05938e544c7cb3bc37"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Fri Apr 01 10:53:12 2011 -0700"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Fri Apr 01 10:53:12 2011 -0700"
      },
      "message": "Ignore property set timeouts.\n\nChange-Id: Ic3f6119398368ba047736370336d0260905abd40\n"
    },
    {
      "commit": "099423ba1c68d960888905ce5de093ea8cb7ad39",
      "tree": "39691bf870cd2198d7e8bb47e9a259c7c4bbaf9a",
      "parents": [
        "6d46b09954847b8905507c22e84c39b33425c5bd",
        "23bc3ff71dffdfec208aee05938e544c7cb3bc37"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Wed Mar 30 15:48:11 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Mar 30 15:48:11 2011 -0700"
      },
      "message": "am 23bc3ff7: Don\\\u0027t futex_wait spin when setting properties. Wait for socket close.\n\n* commit \u002723bc3ff71dffdfec208aee05938e544c7cb3bc37\u0027:\n  Don\u0027t futex_wait spin when setting properties. Wait for socket close.\n"
    },
    {
      "commit": "23bc3ff71dffdfec208aee05938e544c7cb3bc37",
      "tree": "270716248216ba150645e4374498a93252698bea",
      "parents": [
        "2f169162462e44d7aa6443e682b15fc756c2e4ad"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Wed Mar 30 13:10:04 2011 -0700"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Wed Mar 30 15:28:11 2011 -0700"
      },
      "message": "Don\u0027t futex_wait spin when setting properties. Wait for socket close.\n\nDepends on init change I8dd685ea\n\nBug: 4185486\nChange-Id: I5a2dbc3b7be1759212d4a3988d9033b9b947a1db\n"
    },
    {
      "commit": "bf90b57b442760b85a0af38792e6e2f8aa9e7826",
      "tree": "65e9c5438b01750a1e1d724d366a42ccc473853a",
      "parents": [
        "02be15039a79735286ca8f10074aaa9b2d61a56b"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Wed Mar 30 13:10:04 2011 -0700"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Wed Mar 30 14:25:27 2011 -0700"
      },
      "message": "Don\u0027t futex_wait spin when setting properties. Wait for socket close.\n\nDepends on init change I8dd685ea\n\nBug: 4185486\nChange-Id: I3e80cecfad8e072973003ec6f93146c5cad369ac\n"
    },
    {
      "commit": "0f5587097bf2b27e13434b23f61a562816fe7649",
      "tree": "20947d0856d639548dfdd2751f048b76c4ba48ee",
      "parents": [
        "5a6f593b6197b96f980d9d45f9a981ef8705caf4"
      ],
      "author": {
        "name": "Christopher Schwardt",
        "email": "nookieman@gmx.de",
        "time": "Tue Mar 22 15:35:40 2011 +0100"
      },
      "committer": {
        "name": "Christopher Schwardt",
        "email": "nookieman@gmx.de",
        "time": "Tue Mar 22 15:35:40 2011 +0100"
      },
      "message": "removing shadowing redeclaration of result\n\nChange-Id: Ic1f86962dfb8620cf5c63ff4913b2f0bf908abb5\n"
    },
    {
      "commit": "2cc2b2be692f1d559a09d2066e56e450249cc9c0",
      "tree": "3391bb270f64051bf1e8c592bbf1dad8c06a5e66",
      "parents": [
        "f8e658cf6b9601e63d4b363ccee83ee4af1a78e4"
      ],
      "author": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Mon Mar 21 20:01:03 2011 -0700"
      },
      "committer": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Mon Mar 21 20:01:03 2011 -0700"
      },
      "message": "Add some missing includes.\n\nChange-Id: Ieec623c06bc32ec78334f628af25b00c2bccd2e7\n"
    },
    {
      "commit": "0b3c5c50f7bed92282783995bf6a7cc777fa9392",
      "tree": "15889487a34373cb0c7695d68977cdaf8eef11a4",
      "parents": [
        "aa00ec1a2c6fa2bc06bfa16759d99e17a1d0b9b7"
      ],
      "author": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Tue Mar 15 11:02:26 2011 +0900"
      },
      "committer": {
        "name": "The Android Automerger",
        "email": "android-build@android.com",
        "time": "Tue Mar 15 23:06:58 2011 -0700"
      },
      "message": "do not merge. Move property setting from libcutils to bionic.\n\nBackport I110b653a58f3\n\nAll the other property stuff is already here.  Property setting was\nonly in libcutils previously to leverage a utility function / constant\nor two.\n\nUnfortunately in the process of fixing a race condition we would\u0027ve\nhad to do break abstraction boundaries and put some libc-internal\ndetails into libcutils so instead of that we\u0027ll just move this\ninto bionic.\n\nAlong with Iee1ca9b7, this now passes:\n\n$ adb shell am instrument -w -e class android.os.SystemPropertiesTest \\\n  com.android.frameworks.coretests.systemproperties/android.test.InstrumentationTestRunner\n\n  Bug: 3511230\n\nChange-Id: I1b588db3344169621e1279ecc0b660cf4e1015d7\n"
    },
    {
      "commit": "ec7e8cc9dddafc624cd28939c1a38ea336c89455",
      "tree": "1bbea89a5334230a64b7e60b3b429f8cbc8d9069",
      "parents": [
        "2bb79ad9b5941ad11b7ccaa8147577cef69524b2"
      ],
      "author": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Tue Mar 15 11:02:26 2011 +0900"
      },
      "committer": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Tue Mar 15 11:02:26 2011 +0900"
      },
      "message": "do not merge. Move property setting from libcutils to bionic.\n\nBackport I110b653a58f3\n\nAll the other property stuff is already here.  Property setting was\nonly in libcutils previously to leverage a utility function / constant\nor two.\n\nUnfortunately in the process of fixing a race condition we would\u0027ve\nhad to do break abstraction boundaries and put some libc-internal\ndetails into libcutils so instead of that we\u0027ll just move this\ninto bionic.\n\nAlong with Iee1ca9b7, this now passes:\n\n$ adb shell am instrument -w -e class android.os.SystemPropertiesTest \\\n  com.android.frameworks.coretests.systemproperties/android.test.InstrumentationTestRunner\n\n  Bug: 3511230\n\nChange-Id: I1b588db3344169621e1279ecc0b660cf4e1015d7\n"
    },
    {
      "commit": "4399df8f2ebd797e45bec81e6f22e4911b2c5686",
      "tree": "333595bb8060913140086592f30663e2b969749c",
      "parents": [
        "70828ae0ea33c8e2f3316a705b5da478a32f8498"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Thu Mar 10 15:52:49 2011 -0800"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Mon Mar 14 16:53:18 2011 -0700"
      },
      "message": "Move property setting from libcutils to bionic.\n\nAll the other property stuff is already here.  Property setting was\nonly in libcutils previously to leverage a utility function / constant\nor two.\n\nUnfortunately in the process of fixing a race condition we would\u0027ve\nhad to do break abstraction boundaries and put some libc-internal\ndetails into libcutils so instead of that we\u0027ll just move this\ninto bionic.\n\nAlong with Iee1ca9b7, this now passes:\n\n$ adb shell am instrument -w -e class android.os.SystemPropertiesTest \\\n  com.android.frameworks.coretests.systemproperties/android.test.InstrumentationTestRunner\n\nBug: 3511230\nChange-Id: I110b653a58f312fbe069dca59892a877ae9bc911\n"
    },
    {
      "commit": "f9316d37b462d523438c621f75c47f52a12e4087",
      "tree": "c6a8c3909a5a33116b8efde994b87a524d56721e",
      "parents": [
        "8d1f2e6ffc7230e4000e5352e5798095a1f6d428",
        "08a4ce983ba14cef394e5198c9561349ec7fef44"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Mon Mar 14 11:50:56 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Mar 14 11:50:56 2011 -0700"
      },
      "message": "am 08a4ce98: am 0c398985: Merge \"[ENDIAN] Build md5 code correctly for bigendian targets\"\n\n* commit \u002708a4ce983ba14cef394e5198c9561349ec7fef44\u0027:\n  [ENDIAN] Build md5 code correctly for bigendian targets\n"
    },
    {
      "commit": "865e3789dd222ca2ec4f173f43085851165a0ecb",
      "tree": "c4b5129903b4ccf0bdad19d622406c313b6f3327",
      "parents": [
        "fed58049d50083e4c960d89f4bbd516a181c2d18"
      ],
      "author": {
        "name": "Paul Lind",
        "email": "plind@mips.com",
        "time": "Thu Mar 10 11:13:50 2011 -0800"
      },
      "committer": {
        "name": "Raghu Gandham",
        "email": "raghu@mips.com",
        "time": "Thu Mar 10 11:13:50 2011 -0800"
      },
      "message": "[ENDIAN] Build md5 code correctly for bigendian targets\n\nSigned-off-by: Raghu Gandham \u003craghu@mips.com\u003e\n"
    },
    {
      "commit": "81d79f9fb38d9ae8a5711f5774aa5a1516f6cc26",
      "tree": "1f7155f97090e9f31235dca71d44ad7a651ea920",
      "parents": [
        "b6a562e3895c51741748e90d56d822b0a9d36710",
        "962dcb22218a1a6d4ebd05e4fc4a69875d037234"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@android.com",
        "time": "Thu Mar 10 01:55:35 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Mar 10 01:55:35 2011 -0800"
      },
      "message": "am 962dcb22: am fed58049: Merge \"libc: Fix PTHREAD_RWLOCK_INITIALIZER\"\n\n* commit \u0027962dcb22218a1a6d4ebd05e4fc4a69875d037234\u0027:\n  libc: Fix PTHREAD_RWLOCK_INITIALIZER\n  Proxy getnameinfo through netd\n  Updated gcc 4.4.3 IA toolchain doesn\u0027t require the .ctors list\n  Convert cname lenght before use\n"
    },
    {
      "commit": "48e1feaa9d7d7f36b5eba25baccd99a56adf9b64",
      "tree": "cebfb3b8bbea895cf8f56246b8c60839cd8c50db",
      "parents": [
        "69d6c2ccd943f43e87445d00e96eb98deb690ea1"
      ],
      "author": {
        "name": "Bruce Beare",
        "email": "bruce.j.beare@intel.com",
        "time": "Thu Jan 27 10:23:16 2011 -0800"
      },
      "committer": {
        "name": "Bruce Beare",
        "email": "bruce.j.beare@intel.com",
        "time": "Wed Feb 16 17:50:23 2011 -0800"
      },
      "message": "Updated gcc 4.4.3 IA toolchain doesn\u0027t require the .ctors list\n\nChange-Id: Ia840a19a45257128eccdcf25d105f500f2d90741\nSigned-off-by: H.J. Lu \u003chjl.tools@gmail.com\u003e\nSigned-off-by: Bruce Beare \u003cbruce.j.beare@intel.com\u003e\n"
    },
    {
      "commit": "4ce737f5df6bda362b45ca2a9d72d0aad2d5a58f",
      "tree": "be509a811429de013b697c183219ccb8c3edafaa",
      "parents": [
        "5b987745668aa39278f7881d6b91caba1c3ec6cf"
      ],
      "author": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Fri Feb 04 14:45:57 2011 -0800"
      },
      "committer": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Fri Feb 04 14:49:49 2011 -0800"
      },
      "message": "Added _memmove_words\n\nAdded a memmove() variant for Dalvik\u0027s System.arraycopy()\nimplementation.  It guarantees 16-bit or 32-bit atomicity depending\non the alignment of the arguments.\n\nBug 3398352\n\nChange-Id: Ie7bd246305ef0ff8290513663327c5b81680368d\n"
    },
    {
      "commit": "a37cf34eded8a84227e9cbb53befaf4b58cf60c0",
      "tree": "d4320b08ecd344fba556cf07999ce6709e410d13",
      "parents": [
        "015610e64eb728dd031c6b1730b70460d9d298b8"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Sun Jan 09 12:37:26 2011 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Sun Jan 09 12:37:26 2011 -0800"
      },
      "message": "Bug 3330205 Reentrant MD5\n\nChange-Id: I4c8e4a8f3ef4cdaac50f32d9e55accb16133ab35\n"
    },
    {
      "commit": "5c8c00a95a6cdcd74ac32dadedf0cea2b1661169",
      "tree": "fafdb4a207ac0dad61b0abd831fe2f0f97b7643b",
      "parents": [
        "be5755969d70668bbab0e0c0ed75ebd867189723"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Dec 20 15:58:06 2010 +0100"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Dec 20 15:58:06 2010 +0100"
      },
      "message": "libc: Fix the definition of SIGRTMAX\n\nAfter this change, SIGRTMAX will be set to 64 (instead of 32 currently).\nNote that this doesn\u0027t change the fact that our sigset_t is still defined\nas a 32-bit unsigned integer, so most functions that deal with this type\nwon\u0027t support real-time signals though.\n\nChange-Id: Ie1e2f97d646f1664f05a0ac9cac4a43278c3cfa8\n"
    },
    {
      "commit": "72e6fd42421dca80fb2776a9185c186d4a04e5f7",
      "tree": "322fe185cb1e6bee163cb5c99ed5e1d545ae3c33",
      "parents": [
        "6481b91520150e9664a3c4abc5d2aebdce422f93"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Fri Dec 03 18:04:01 2010 +0100"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Dec 06 13:42:54 2010 +0100"
      },
      "message": "\u003csched.h\u003e: Add sched_getcpu() and cpu_set_t\n\nThis adds the cpu_set_t type definition and related functions\nand macros used to handle CPU thread affinity.\n\n  sched_getcpu()\n  sched_setaffinity()\n  sched_getaffinity()\n\nChange-Id: If382ecafde8926341a88478062b275553645065b\n"
    },
    {
      "commit": "6481b91520150e9664a3c4abc5d2aebdce422f93",
      "tree": "8fadb7aadcc6002a7053da60d50b49704423a5f9",
      "parents": [
        "23d24394e72715ddf580726655c8ba3fbcf11bfe"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Dec 06 12:23:16 2010 +0100"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Dec 06 12:25:52 2010 +0100"
      },
      "message": "\u003ctime.h\u003e: Add timegm(), timelocal() and others.\n\nAdd timegm(), timelocal(), time2posix() and posix2time() to the\nC library.\n\nChange-Id: I34d5771ed83dd994870a5ca58a511d01898b1ffb\n"
    },
    {
      "commit": "ff590cadc269aea03d0f66ddec31ba35053cafa9",
      "tree": "bd62acbc2c96636c1887f7fec53cc618b62aff36",
      "parents": [
        "fb76fd5b6148ec082f751e8a04a3bda239651d67"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 04 17:53:06 2010 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 04 17:53:06 2010 -0700"
      },
      "message": "Use a modern chdir(2)-free realpath(3) implementation.\n\n(This is the current OpenBSD implementation.)\n\nBug: 3055824, 2281992\nChange-Id: Iafa8f78e8d6e44c036a547c7210a13d559b7483a\n"
    },
    {
      "commit": "fa8fef9506a8d4cbfcbbdc9821c985038b698380",
      "tree": "cbd224bf51c7a7e7263dbc051eb89a61523069ea",
      "parents": [
        "209cf825932d5caf1e0985cfc75671785c528635",
        "f2c05baac40bceb754ac69a38b83250c3a5aaddd"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Mon Oct 25 18:00:00 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Oct 25 18:00:00 2010 -0700"
      },
      "message": "am f2c05baa: am 96c03c7d: Merge \"Remove duplicated _rand48 implementation. Use stdlib version instead\"\n\nMerge commit \u0027f2c05baac40bceb754ac69a38b83250c3a5aaddd\u0027\n\n* commit \u0027f2c05baac40bceb754ac69a38b83250c3a5aaddd\u0027:\n  Remove duplicated _rand48 implementation. Use stdlib version instead\n"
    },
    {
      "commit": "f2c05baac40bceb754ac69a38b83250c3a5aaddd",
      "tree": "e4f194e23613bc2945edf94d20d38e50f6f02ffc",
      "parents": [
        "f7ad13b0ce5ad2d2f0340c066b09eb8174877739",
        "96c03c7dcc8cad59f2b8f3e6fef6a77a43750756"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Mon Oct 25 17:32:13 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Oct 25 17:32:13 2010 -0700"
      },
      "message": "am 96c03c7d: Merge \"Remove duplicated _rand48 implementation. Use stdlib version instead\"\n\nMerge commit \u002796c03c7dcc8cad59f2b8f3e6fef6a77a43750756\u0027 into gingerbread-plus-aosp\n\n* commit \u002796c03c7dcc8cad59f2b8f3e6fef6a77a43750756\u0027:\n  Remove duplicated _rand48 implementation. Use stdlib version instead\n"
    },
    {
      "commit": "70478100d5967f528e6514a42f98a76bb85b7e28",
      "tree": "6e84c6ff7099ad5b5e21fb74e917fdcb05c9d49e",
      "parents": [
        "b2061a30da29ee531c16862a5be3566e3b860839"
      ],
      "author": {
        "name": "Jim Huang",
        "email": "jserv@0xlab.org",
        "time": "Mon Sep 27 22:42:28 2010 +0800"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Mon Oct 25 16:27:47 2010 -0700"
      },
      "message": "Remove duplicated _rand48 implementation. Use stdlib version instead\n\nOriginally, there are _rand48 (in libc/bionic/_rand48.c) and __rand48\n(in libc/stdlib/_rand48.c) implemented in bionic.  Besides the naming,\nthe functionality is identical.  This patch removes the duplicated\n_rand48.  Also, drand48 and erand48 are modified accordingly.\n\nChange-Id: Ie5761a0a97f45df8538222a77edacb7c3e0125d7\n"
    },
    {
      "commit": "209cf825932d5caf1e0985cfc75671785c528635",
      "tree": "487f689c6e6597ee04252a9b113f7c52b594f4aa",
      "parents": [
        "ff44eeef97b6b2ac669da348db657c5d1b2ec81c",
        "f7ad13b0ce5ad2d2f0340c066b09eb8174877739"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Thu Oct 21 13:50:42 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Oct 21 13:50:42 2010 -0700"
      },
      "message": "am f7ad13b0: am 1df986c2: libc: fix executable destruction support.\n\nMerge commit \u0027f7ad13b0ce5ad2d2f0340c066b09eb8174877739\u0027\n\n* commit \u0027f7ad13b0ce5ad2d2f0340c066b09eb8174877739\u0027:\n  libc: fix executable destruction support.\n"
    },
    {
      "commit": "51a4f7872acbb26a678940c3bc49b9a3d3a516ac",
      "tree": "7186c39e3ee0f8be04981571b1b303310714ae23",
      "parents": [
        "f97ce8cb7b9ccec18471fca5c275581c342cc3cb",
        "001a321897d0f053b87799dafe17a39036b72470"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Oct 21 13:48:17 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Oct 21 13:48:17 2010 -0700"
      },
      "message": "am 001a3218: am 4afe0f47: Merge \"time64: make helper functions static\"\n\nMerge commit \u0027001a321897d0f053b87799dafe17a39036b72470\u0027\n\n* commit \u0027001a321897d0f053b87799dafe17a39036b72470\u0027:\n  time64: make helper functions static\n"
    },
    {
      "commit": "f97ce8cb7b9ccec18471fca5c275581c342cc3cb",
      "tree": "fa96ebcaf8620a3ed806e574d540d63778269674",
      "parents": [
        "d3ecb3cd05bb135bf7cd4ab4d1572e2fb9745a8a",
        "6ac5660e1c8fc9934d11ed675771063624ac1b4b"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Oct 21 13:48:14 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Oct 21 13:48:14 2010 -0700"
      },
      "message": "am 6ac5660e: am ade2a929: Merge \"bionic: stubs: Make internal symbol static\"\n\nMerge commit \u00276ac5660e1c8fc9934d11ed675771063624ac1b4b\u0027\n\n* commit \u00276ac5660e1c8fc9934d11ed675771063624ac1b4b\u0027:\n  bionic: stubs: Make internal symbol static\n"
    },
    {
      "commit": "d3ecb3cd05bb135bf7cd4ab4d1572e2fb9745a8a",
      "tree": "f21a4c9abf91228d8e6359a31da19a7d5a84cb26",
      "parents": [
        "51ae972502b2a67f2fddf1cd4b2b46b4299fda99",
        "1203671b47246efd20279a39ab9bd7ea934ae8dc"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Oct 21 13:48:11 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Oct 21 13:48:11 2010 -0700"
      },
      "message": "am 1203671b: am 2215c113: Merge \"pthread-timers: Hide internal symbol __timer_table_start_stop\"\n\nMerge commit \u00271203671b47246efd20279a39ab9bd7ea934ae8dc\u0027\n\n* commit \u00271203671b47246efd20279a39ab9bd7ea934ae8dc\u0027:\n  pthread-timers: Hide internal symbol __timer_table_start_stop\n"
    },
    {
      "commit": "d445a2b27588a3e87eec22c38f997f2613c120b8",
      "tree": "ddbea48297023b8c98e1d611040dd0571be1992d",
      "parents": [
        "482358fda727ceab18412d63098db524a46999e8",
        "bcd940444513a24268d5f9c9a6186274cf09c8dd"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Oct 21 09:54:38 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Oct 21 09:54:38 2010 -0700"
      },
      "message": "am bcd94044: am 847223de: Merge \"__set_errno: Hide internal symbol __set_syscall_errno\"\n\nMerge commit \u0027bcd940444513a24268d5f9c9a6186274cf09c8dd\u0027\n\n* commit \u0027bcd940444513a24268d5f9c9a6186274cf09c8dd\u0027:\n  __set_errno: Hide internal symbol __set_syscall_errno\n"
    },
    {
      "commit": "f7ad13b0ce5ad2d2f0340c066b09eb8174877739",
      "tree": "21a0fc62890f7df4b1315fc41f298ce8fd5bcc9e",
      "parents": [
        "aeb41ec103103c37bf4a1700de714d9ff1befe8e",
        "1df986c21ee52c6756846b4a5e45cb316f772112"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Thu Oct 21 09:43:19 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Oct 21 09:43:19 2010 -0700"
      },
      "message": "am 1df986c2: libc: fix executable destruction support.\n\nMerge commit \u00271df986c21ee52c6756846b4a5e45cb316f772112\u0027 into gingerbread-plus-aosp\n\n* commit \u00271df986c21ee52c6756846b4a5e45cb316f772112\u0027:\n  libc: fix executable destruction support.\n"
    },
    {
      "commit": "1df986c21ee52c6756846b4a5e45cb316f772112",
      "tree": "da7effa96dd8e57e1cd718e69b79827d9011038e",
      "parents": [
        "d3f0638aeec0b1daf4d3347386a5e441d5a4bcc4"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Thu Oct 21 04:16:50 2010 +0200"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Thu Oct 21 04:16:50 2010 +0200"
      },
      "message": "libc: fix executable destruction support.\n\nThis change allows an executable to call its destructor functions\n(declared with __attribute__((destructor))) to be properly called\nwhen it normally exits.\n\nNote that this is different from calling the destructors of a shared\nlibrary when it is unloaded with dlclose() or through program exit,\nwhich are already supported.\n\nBug: 3106500\nChange-Id: I1412ef5407f13b613fc6cb6103e0a691dbee4b1a\n"
    },
    {
      "commit": "001a321897d0f053b87799dafe17a39036b72470",
      "tree": "a6778eb746195312a1da840932884a26a0075f67",
      "parents": [
        "6ac5660e1c8fc9934d11ed675771063624ac1b4b",
        "4afe0f4724b3d7180d67eae29bfdad5f815857cb"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Oct 20 18:57:55 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Oct 20 18:57:55 2010 -0700"
      },
      "message": "am 4afe0f47: Merge \"time64: make helper functions static\"\n\nMerge commit \u00274afe0f4724b3d7180d67eae29bfdad5f815857cb\u0027 into gingerbread-plus-aosp\n\n* commit \u00274afe0f4724b3d7180d67eae29bfdad5f815857cb\u0027:\n  time64: make helper functions static\n"
    },
    {
      "commit": "6ac5660e1c8fc9934d11ed675771063624ac1b4b",
      "tree": "6efb7ffd6c2df4dd92b8b618b28d45ad23c36504",
      "parents": [
        "1203671b47246efd20279a39ab9bd7ea934ae8dc",
        "ade2a92991d1c7edc32c4a300bd83d622fa1567d"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Oct 20 18:57:53 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Oct 20 18:57:53 2010 -0700"
      },
      "message": "am ade2a929: Merge \"bionic: stubs: Make internal symbol static\"\n\nMerge commit \u0027ade2a92991d1c7edc32c4a300bd83d622fa1567d\u0027 into gingerbread-plus-aosp\n\n* commit \u0027ade2a92991d1c7edc32c4a300bd83d622fa1567d\u0027:\n  bionic: stubs: Make internal symbol static\n"
    },
    {
      "commit": "1203671b47246efd20279a39ab9bd7ea934ae8dc",
      "tree": "e0e75b6a82bdebfd7e727b79a2e538d42337839e",
      "parents": [
        "958214aa998d9378e7d70c7c08ffab4c5f9d3fde",
        "2215c11325d0af07cde67bfee7bafa09ee5556a7"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Oct 20 18:57:51 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Oct 20 18:57:51 2010 -0700"
      },
      "message": "am 2215c113: Merge \"pthread-timers: Hide internal symbol __timer_table_start_stop\"\n\nMerge commit \u00272215c11325d0af07cde67bfee7bafa09ee5556a7\u0027 into gingerbread-plus-aosp\n\n* commit \u00272215c11325d0af07cde67bfee7bafa09ee5556a7\u0027:\n  pthread-timers: Hide internal symbol __timer_table_start_stop\n"
    },
    {
      "commit": "4afe0f4724b3d7180d67eae29bfdad5f815857cb",
      "tree": "f5b9355e650154e8b4d7f27109684467666b06ab",
      "parents": [
        "ade2a92991d1c7edc32c4a300bd83d622fa1567d",
        "8b2707a6a074e64a36ced73b45f5c5fbe774b63b"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Oct 20 18:54:17 2010 -0700"
      },
      "committer": {
        "name": "Android Code Review",
        "email": "code-review@android.com",
        "time": "Wed Oct 20 18:54:17 2010 -0700"
      },
      "message": "Merge \"time64: make helper functions static\""
    },
    {
      "commit": "ade2a92991d1c7edc32c4a300bd83d622fa1567d",
      "tree": "c4759946128839ebb2d12bdfd192fa97e79a1da4",
      "parents": [
        "2215c11325d0af07cde67bfee7bafa09ee5556a7",
        "c940945155fa8bf92e23bd1e8bd843cc41e9628d"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Oct 20 18:52:10 2010 -0700"
      },
      "committer": {
        "name": "Android Code Review",
        "email": "code-review@android.com",
        "time": "Wed Oct 20 18:52:10 2010 -0700"
      },
      "message": "Merge \"bionic: stubs: Make internal symbol static\""
    },
    {
      "commit": "2215c11325d0af07cde67bfee7bafa09ee5556a7",
      "tree": "ac0ade7eb712bca092ff0d7a55568fddeff45d6f",
      "parents": [
        "8ad63d745d4ec1edea0bbd04fd0644983ad77bf5",
        "c9a41a69971b10186f0c9947fd9868d4d570884f"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Oct 20 18:49:51 2010 -0700"
      },
      "committer": {
        "name": "Android Code Review",
        "email": "code-review@android.com",
        "time": "Wed Oct 20 18:49:51 2010 -0700"
      },
      "message": "Merge \"pthread-timers: Hide internal symbol __timer_table_start_stop\""
    },
    {
      "commit": "bcd940444513a24268d5f9c9a6186274cf09c8dd",
      "tree": "a7daab53970fb4ebe91c464871658883934379e0",
      "parents": [
        "d29b8a51a5f95a3f38e5fb812231e12e5a66a865",
        "847223de9ceff6db468a8246792542517a12d39f"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Oct 19 15:22:17 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Oct 19 15:22:17 2010 -0700"
      },
      "message": "am 847223de: Merge \"__set_errno: Hide internal symbol __set_syscall_errno\"\n\nMerge commit \u0027847223de9ceff6db468a8246792542517a12d39f\u0027 into gingerbread-plus-aosp\n\n* commit \u0027847223de9ceff6db468a8246792542517a12d39f\u0027:\n  __set_errno: Hide internal symbol __set_syscall_errno\n"
    },
    {
      "commit": "cd9c98dfda3e54fd7191e446079295cf4885f24e",
      "tree": "ac7d34ae721185ef5ded8386c09685de9ab1000f",
      "parents": [
        "f67e5211e045af1b12f646448a5a35f96ba5e8f1"
      ],
      "author": {
        "name": "Jim Huang",
        "email": "jserv@0xlab.org",
        "time": "Fri Oct 15 03:05:25 2010 +0800"
      },
      "committer": {
        "name": "Jim Huang",
        "email": "jserv@0xlab.org",
        "time": "Fri Oct 15 03:07:22 2010 +0800"
      },
      "message": "__set_errno: Hide internal symbol __set_syscall_errno\n\nChange-Id: I21e7ef6bf0bca288069275add43bd53294c0760d\n"
    },
    {
      "commit": "c9a41a69971b10186f0c9947fd9868d4d570884f",
      "tree": "c28e1579f07e8c60f0cc7df9a43d9dac04709bed",
      "parents": [
        "f67e5211e045af1b12f646448a5a35f96ba5e8f1"
      ],
      "author": {
        "name": "Jim Huang",
        "email": "jserv@0xlab.org",
        "time": "Fri Oct 15 02:27:50 2010 +0800"
      },
      "committer": {
        "name": "Jim Huang",
        "email": "jserv@0xlab.org",
        "time": "Fri Oct 15 02:28:22 2010 +0800"
      },
      "message": "pthread-timers: Hide internal symbol __timer_table_start_stop\n\nChange-Id: If99c5816fe6fa9107aa6bef4697048fabf92283f\n"
    },
    {
      "commit": "c940945155fa8bf92e23bd1e8bd843cc41e9628d",
      "tree": "558eaf16cd1434e6d99580b1b86d4d5f2b1ac2c0",
      "parents": [
        "f67e5211e045af1b12f646448a5a35f96ba5e8f1"
      ],
      "author": {
        "name": "Jim Huang",
        "email": "jserv@0xlab.org",
        "time": "Fri Oct 15 02:21:14 2010 +0800"
      },
      "committer": {
        "name": "Jim Huang",
        "email": "jserv@0xlab.org",
        "time": "Fri Oct 15 02:23:00 2010 +0800"
      },
      "message": "bionic: stubs: Make internal symbol static\n\nThread-specific state for the stubs functions should not be exposed to\napplications.\n\nChange-Id: I4d35dab6009dab8db7781671ac5cc9b5f6904e84\n"
    },
    {
      "commit": "8b2707a6a074e64a36ced73b45f5c5fbe774b63b",
      "tree": "62f173ce2dca8f8b0b280fa9b07b0032636e914e",
      "parents": [
        "f67e5211e045af1b12f646448a5a35f96ba5e8f1"
      ],
      "author": {
        "name": "Jim Huang",
        "email": "jserv@0xlab.org",
        "time": "Fri Oct 15 02:15:54 2010 +0800"
      },
      "committer": {
        "name": "Jim Huang",
        "email": "jserv@0xlab.org",
        "time": "Fri Oct 15 02:16:16 2010 +0800"
      },
      "message": "time64: make helper functions static\n\nChange-Id: I98d9a5f736482e52904228c171a1bdefd2f5b213\n"
    },
    {
      "commit": "9d8be5485c366b4f579bef0b88a4c99b899f21e1",
      "tree": "9ffa7d64f6896681d17944af40ed29d3050827fd",
      "parents": [
        "abdb3695b21631ace52123fbe68f86fa4476a4b0"
      ],
      "author": {
        "name": "tedbo",
        "email": "tedbo@google.com",
        "time": "Tue Oct 05 13:06:06 2010 -0700"
      },
      "committer": {
        "name": "tedbo",
        "email": "tedbo@google.com",
        "time": "Tue Oct 05 13:23:28 2010 -0700"
      },
      "message": "get_malloc_leak_info: Fix assumption that totalMemory out parameter was initialized to zero.\n\nThe get_malloc_leak_info() currently asssumes that the totalMemory out parameter\nwas pre-initialized to zero before the routine is called. If it is not then the\naccumulated totalMemory value will be incorrect. It is likely that many callers\nwill simply allocate totalMemory on the stack with no initialization and assume\nthat get_malloc_leak_info will set the proper value.\n\nAs an example, the caller in frameworks/base/core/jni/android_os_Debug.cpp\ncalls get_malloc_leak_info() with the address uninitiazed stack variable\nfor totalMemory. It is probably best to fix this in get_malloc_leak_info.\n\nChange-Id: I84c927c3781419585794726115b7d34d8fdd24ae\n"
    },
    {
      "commit": "b1c9cc2f2d1b0478b07278cdef885cabf1cd2798",
      "tree": "25c4183bf8bf069e392797ed55d90ff1f4badc50",
      "parents": [
        "8939c1e1cca71151a841f5c1d47ed7004cc14d80"
      ],
      "author": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Thu Sep 23 12:30:12 2010 -0700"
      },
      "committer": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Thu Sep 23 12:30:12 2010 -0700"
      },
      "message": "Add memory barriers to pthread_once.\n\nThe implementation was using a double-checked locking approach that\ncould break on SMP.\n\nIn addition to the barriers I also switched to a volatile pointer.  I\ndon\u0027t think this will matter unless gcc can conclude that _normal_lock\ncan\u0027t affect *once_control, but I figured it was better to be safe.\n(It seems to have no impact whatsoever on the generated code.)\n\nBug 3022795.\n\nChange-Id: Ib91da25d57ff5bee4288526e39d457153ef6aacd\n"
    },
    {
      "commit": "6dbfddfe4e76790ee57ddc0a77b64a9457ec08fb",
      "tree": "890be22dd9e267482a48644ed7394bf2c9558b9f",
      "parents": [
        "f3833b67ee4773f2732814efe9e099558167976e",
        "b9e49ad56e5776ace7c6eab2e997d5b7acb16792"
      ],
      "author": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Thu Sep 23 01:43:43 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Sep 23 01:43:43 2010 -0700"
      },
      "message": "am b9e49ad5: Use a recursive lock for pthread_once. DO NOT MERGE.\n\nMerge commit \u0027b9e49ad56e5776ace7c6eab2e997d5b7acb16792\u0027 into gingerbread-plus-aosp\n\n* commit \u0027b9e49ad56e5776ace7c6eab2e997d5b7acb16792\u0027:\n  Use a recursive lock for pthread_once. DO NOT MERGE.\n"
    },
    {
      "commit": "b9e49ad56e5776ace7c6eab2e997d5b7acb16792",
      "tree": "c0e2ba58abab835fb00e89509a8922297038bdcf",
      "parents": [
        "fedbcde6ef552e84bf7ce7598bca7dddf1722d6a"
      ],
      "author": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Wed Sep 22 14:51:53 2010 -0700"
      },
      "committer": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Wed Sep 22 14:51:53 2010 -0700"
      },
      "message": "Use a recursive lock for pthread_once. DO NOT MERGE.\n\nBackport change I9fc8b790 from Master to Gingerbread\n\nChange-Id: I5cf48fcd4efb7991ed82f87d9365c19655dc9b7f\n"
    },
    {
      "commit": "e2ac89869f9b459faa22640fb1bb41e818c1dd55",
      "tree": "8f72e69139c7356c05eafe653d98ca6927802ad6",
      "parents": [
        "964a14d0dd494055d14e2b8ee35ed9394b991c28"
      ],
      "author": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Thu Sep 02 13:34:53 2010 -0700"
      },
      "committer": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Thu Sep 02 13:34:53 2010 -0700"
      },
      "message": "Add a memory barrier to cond var signaling.\n\nThis adds an explicit memory barrier to condition variable signaling.\nIt\u0027s a little murky as to whether it\u0027s strictly required, but it seems\nlike a wise thing to do.\n\nChange-Id: Id0faa542d61e4b8ffa775e4adf68e4d7471f4fb7\n"
    },
    {
      "commit": "caaf7ecd1c93e03b81bbe3fbf479969d0562de74",
      "tree": "b5d5abc3973fdab50313b102a679fa05d20dad6c",
      "parents": [
        "45fe7a42f8cff24c30e91f3ef3859ed0d435b312",
        "1ff910858c8ae5863761101c673a196a6a16bca3"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Aug 09 19:57:25 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Aug 09 19:57:25 2010 -0700"
      },
      "message": "am 1ff91085: am 52e7d3d9: Bulletproof leak dump against null hash entries\n\nMerge commit \u00271ff910858c8ae5863761101c673a196a6a16bca3\u0027\n\n* commit \u00271ff910858c8ae5863761101c673a196a6a16bca3\u0027:\n  Bulletproof leak dump against null hash entries\n"
    },
    {
      "commit": "1ff910858c8ae5863761101c673a196a6a16bca3",
      "tree": "0a94c006284f3e9e37c3a4ab29234018eaeb1f62",
      "parents": [
        "91af9e64b5d86dd5925c0fcfdb3f3db5a86aa43c",
        "52e7d3d91ab6a5bab77c5dfb1ed47381fd52f9ba"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Aug 09 19:53:32 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Aug 09 19:53:32 2010 -0700"
      },
      "message": "am 52e7d3d9: Bulletproof leak dump against null hash entries\n\nMerge commit \u002752e7d3d91ab6a5bab77c5dfb1ed47381fd52f9ba\u0027 into gingerbread-plus-aosp\n\n* commit \u002752e7d3d91ab6a5bab77c5dfb1ed47381fd52f9ba\u0027:\n  Bulletproof leak dump against null hash entries\n"
    },
    {
      "commit": "52e7d3d91ab6a5bab77c5dfb1ed47381fd52f9ba",
      "tree": "95fd304d94292f13851cd4590e89a0b6acb3a297",
      "parents": [
        "18c5bcc66a9a7b2178dcdcf04a0716958798ab81"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Aug 09 13:43:46 2010 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Aug 09 13:43:46 2010 -0700"
      },
      "message": "Bulletproof leak dump against null hash entries\n\nPreviously, the malloc leak checking code would crash in qsort()\nif null entries existed in its bookkeeping table.  This change\nmakes the comparison function detect null entries and sort them\nto the end safely.\n\nChange-Id: I88244a7df1e289dd9d7992ce29606d505bd63079\n"
    },
    {
      "commit": "6b9d2d6839fcb6f2049ae67214dbbc711fc399fd",
      "tree": "54ada0f654666110e1e79d879ffefe159426c10f",
      "parents": [
        "cc1a72b280bd82eeaa3081c29ab61ca91a461dd9",
        "6d4d8cb79c5578d33ab17806d67b1e53a730fbc3"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Fri Jul 23 15:04:24 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jul 23 15:04:24 2010 -0700"
      },
      "message": "am 6d4d8cb7: resolved conflicts for merge of 4f086aeb to gingerbread-plus-aosp\n\nMerge commit \u00276d4d8cb79c5578d33ab17806d67b1e53a730fbc3\u0027\n\n* commit \u00276d4d8cb79c5578d33ab17806d67b1e53a730fbc3\u0027:\n  Implemented pthread_atfork()\n"
    },
    {
      "commit": "6d4d8cb79c5578d33ab17806d67b1e53a730fbc3",
      "tree": "9642a50962a867b9cf1a37a53e7485bfad00f256",
      "parents": [
        "4e69dfed0b0fe672e366bb84d5c3feaedc61d630",
        "4f086aeb4aa06e13079b7fec71a8178ceeacf318"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Fri Jul 23 13:53:19 2010 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Fri Jul 23 13:53:19 2010 -0700"
      },
      "message": "resolved conflicts for merge of 4f086aeb to gingerbread-plus-aosp\n\nChange-Id: Ice2a6d41a7e9d04eca02e15ed189d648d61b5801\n"
    },
    {
      "commit": "4f086aeb4aa06e13079b7fec71a8178ceeacf318",
      "tree": "a6b0fbce5c6d0f507a244ef4f87ec648b7c35a76",
      "parents": [
        "e73a571fd9b60315681eacbef5857f0f0b1ece18"
      ],
      "author": {
        "name": "Matt Fischer",
        "email": "matt.fischer@garmin.com",
        "time": "Fri Jun 25 14:36:39 2010 -0500"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Fri Jul 23 13:10:16 2010 -0700"
      },
      "message": "Implemented pthread_atfork()\n\nChange-Id: Ie6c0bf593315d3507b3c4a6c8903a74a1fa053db\n"
    },
    {
      "commit": "fb6907d39c7ffda90049cb73001ade59e7931a64",
      "tree": "30570c8523488eb97cdf9e8863a25cf9da63483b",
      "parents": [
        "4918d4cb0c4b7ea3c6ca8a5e1bc5c85a8a1efba3",
        "0e78f786777a04af498b43564a8d6ed8e15e8940"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Jul 09 10:54:06 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jul 09 10:54:06 2010 -0700"
      },
      "message": "am 0e78f786: merge from open-source master\n\nMerge commit \u00270e78f786777a04af498b43564a8d6ed8e15e8940\u0027\n\n* commit \u00270e78f786777a04af498b43564a8d6ed8e15e8940\u0027:\n  Change-Id: I68cc462aeb2460345a53bdb9941ce4bfc10456fb\n"
    },
    {
      "commit": "0e78f786777a04af498b43564a8d6ed8e15e8940",
      "tree": "b156d1bf2c5efdcb6af23294baac4161daf5ede4",
      "parents": [
        "611793d6abcf504544d6ebccb8c46da06464b701",
        "fc6d95b10e7629f61013d221cbc1cdbff0190ac0"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Jul 09 10:48:45 2010 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Jul 09 10:48:45 2010 -0700"
      },
      "message": "merge from open-source master\n\nChange-Id: Id84ff747889d6f2c15c0510263e32fdfdd18dbed\n"
    },
    {
      "commit": "fc6d95b10e7629f61013d221cbc1cdbff0190ac0",
      "tree": "b8c2c5a7e8518984f695e5c0072f5463713fdece",
      "parents": [
        "16984423bc67cd334d74b585bac2c01e44583624",
        "2bf607d599b703604cb1caf5beeb2e70c44682fb"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Jul 08 15:38:13 2010 -0700"
      },
      "committer": {
        "name": "Android Code Review",
        "email": "code-review@android.com",
        "time": "Thu Jul 08 15:38:13 2010 -0700"
      },
      "message": "Merge \"Change-Id: I68cc462aeb2460345a53bdb9941ce4bfc10456fb bionic: fix clearenv() compiler warning and related comment typos\""
    },
    {
      "commit": "cf385317417af76f20d2d579da05c0a336691e40",
      "tree": "7120924251469aaac1de571283ca66f90574a89c",
      "parents": [
        "cd122865a53d1b5f9ae7ce46520911a0c02be643",
        "2576abf0eddb86938d85210c96ea220f2d64d4fd"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Fri Jul 02 15:22:19 2010 -0700"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Fri Jul 02 15:22:19 2010 -0700"
      },
      "message": "resolved conflicts for merge of 2576abf0 to master\n\nChange-Id: Ibd3ed11f3cc27ff12c0464b0f56d7057be6a7b85\n"
    },
    {
      "commit": "519763265ec0b634bd9c264a0aca034882458ecc",
      "tree": "263dc7f4fa4256869cea19e6ea8a077d29bd95ad",
      "parents": [
        "a02b93bd75a9d156117264d88069566e447397e2"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Jun 28 14:10:14 2010 -0700"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Fri Jul 02 15:09:57 2010 -0700"
      },
      "message": "libc: Fix sem_post() implementation to wake up all waiting threads.\n\nThis also allows us to optimize the case where we increment an\nuncontended semaphore (no need to call futex_wake() then).\n\nChange-Id: Iad48efe8551dc66dc89d3e3f18c001e5a6c1939f\n"
    },
    {
      "commit": "3b43f87d2949a340e2c19cb735af7727157d8274",
      "tree": "ee57622555c0a91461f86ba7201863665380f0c3",
      "parents": [
        "e8f79c1f5de7ecaf1249ee36813abd2558cacf08"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@android.com",
        "time": "Thu Jul 01 23:09:28 2010 -0700"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@android.com",
        "time": "Thu Jul 01 23:09:28 2010 -0700"
      },
      "message": "Allow dlclose() to properly call static C++ destructors.\n\nWith this patch _and_ an upcoming build/ patch, the destruction\nof static C++ objects contained in shared libraries will happen\nproperly when dlclose() is called.\n\nNote that this change introduces crtbegin_so.S and crtend_so.S which\nare currently ignored by the build system.\n\n+ move definition of __dso_handle to the right place\n(before that, all shared libraries used the __dso_handle\nglobal variable from the C library).\n\nNote that we keep a \u0027weak\u0027 __dso_handle in aeabi.c to avoid\nbreaking the build until the next patch to build/core/combo/\nappears. We will be able to remove that later.\n\n+ move bionic/aeabi.c to arch-arm/bionic/ (its proper location)\n\nNOTE: The NDK will need to be modified to enable this feature in\n         the shared libraries that are generated through it.\n\nChange-Id: I99cd801375bbaef0581175893d1aa0943211b9bc\n"
    },
    {
      "commit": "4e6043a355ccc04b3e931edd7616d35ef5691278",
      "tree": "cbb6044e78c1b4619a4bccee56f257ba6400c18c",
      "parents": [
        "68bcaa4a7b12250d2582fdf59a9e331537e98be0",
        "7d1d98b97e947de22aff4c0b67eec7ae68c822ee"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Jun 29 12:55:34 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jun 29 12:55:34 2010 -0700"
      },
      "message": "am 7d1d98b9: am a02b93bd: libc: add sanity checks to pthread_mutex_destroy()\n\nMerge commit \u00277d1d98b97e947de22aff4c0b67eec7ae68c822ee\u0027\n\n* commit \u00277d1d98b97e947de22aff4c0b67eec7ae68c822ee\u0027:\n  libc: add sanity checks to pthread_mutex_destroy()\n"
    },
    {
      "commit": "a02b93bd75a9d156117264d88069566e447397e2",
      "tree": "82f11630b57fc7a9defa24b8e2955a5614275d1c",
      "parents": [
        "0621a279adfb981ea1f0564e7fc8280cda78e043"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Jun 28 14:20:22 2010 -0700"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Jun 28 14:20:22 2010 -0700"
      },
      "message": "libc: add sanity checks to pthread_mutex_destroy()\n\nChange-Id: Iddb2204fa792fa9aca5f19838926dddbb09b74a2\n"
    },
    {
      "commit": "ccc3d1eea124cbeb1ec2d711d5892db1dd4445d3",
      "tree": "80cb85b2175fb5da5eb96d980ea7cc91365581c5",
      "parents": [
        "1deef576b37b5951d1274bc63a89843a8c1d6bc4"
      ],
      "author": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Mon Jun 28 11:41:16 2010 -0700"
      },
      "committer": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Mon Jun 28 11:41:16 2010 -0700"
      },
      "message": "Use a recursive lock for pthread_once.\n\nbug: 2292366\nChange-Id: I9fc8b790dcfcb30ca94a0beb340d43fe5cd6c22e\n"
    },
    {
      "commit": "2bf607d599b703604cb1caf5beeb2e70c44682fb",
      "tree": "5bb144406d077dcea82fd18fc4003a644105b8ec",
      "parents": [
        "e8f79c1f5de7ecaf1249ee36813abd2558cacf08"
      ],
      "author": {
        "name": "Chris Peterson",
        "email": "cpeterso@cpeterso.com",
        "time": "Sun Jun 27 20:53:04 2010 -0700"
      },
      "committer": {
        "name": "Chris Peterson",
        "email": "cpeterso@cpeterso.com",
        "time": "Sun Jun 27 20:53:04 2010 -0700"
      },
      "message": "Change-Id: I68cc462aeb2460345a53bdb9941ce4bfc10456fb\nbionic: fix clearenv() compiler warning and related comment typos\n"
    },
    {
      "commit": "50ace4fec5e8cb5afcbc656a4556fa528adfd760",
      "tree": "04647e039a457f69ba48a8301bebdd605fda7fca",
      "parents": [
        "6a9b888d7c4b246f6f66360789c72b754ff85021"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed Jun 16 16:36:41 2010 -0700"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Jun 22 17:51:41 2010 -0700"
      },
      "message": "Remove compiler warnings when building Bionic.\n\nAlso add missing declarations to misc. functions.\nFix clearerr() implementation (previous was broken).\nHandle feature test macros like _POSIX_C_SOURCE properly.\n\nChange-Id: Icdc973a6b9d550a166fc2545f727ea837fe800c4\n"
    },
    {
      "commit": "6a9b888d7c4b246f6f66360789c72b754ff85021",
      "tree": "d27e4487c13f200d4cfe193f950e25a01efa7743",
      "parents": [
        "6a09cfd9f916e3a60de707ff0806cdeb143d77a4"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Fri Jun 18 14:47:22 2010 -0700"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Fri Jun 18 16:07:10 2010 -0700"
      },
      "message": "Allow static C++ destructors to be properly called on dlclose().\n\nWith this patch, _and_ an upcoming build/ patch, the destruction\nof static C++ objects contained in shared libraries will happen\nproperly when dlclose() is called.\n\nNote that this change introduces crtbegin_so.S and crtend_so.S which\nare currently ignored by the build system.\n\n+ move definition of __dso_handle to the right place\n  (before that, all shared libraries used the __dso_handle\n   global variable from the C library).\n\n  Note that we keep a \u0027weak\u0027 __dso_handle in aeabi.c to avoid\n  breaking the build until the next patch to build/core/combo/\n  appears. We will be able to remove that later.\n\n+ move bionic/aeabi.c to arch-arm/bionic/ (its proper location)\n\nChange-Id: Ie771aa204e3acbdf02fd30ebd4150373a1398f39\nNOTE: The NDK will need to be modified to enable this feature in\n      the shared libraries that are generated through it.\n"
    },
    {
      "commit": "6c8a2f2a5bc8d612ee953f528f2b5eb35983656a",
      "tree": "7dd45d3e3162220578e93a6cb7244b4209b1c7c5",
      "parents": [
        "038fbae518e904c7aba64779714a22dbeeb90887"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Thu Jun 10 23:34:24 2010 -0700"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Fri Jun 11 13:49:09 2010 -0700"
      },
      "message": "libc: remove cutils dependencies\n\nWe simply copy the stuff we need from cutils headers.\n\nA future patch will change cutils to include the private \u003cbionic_atomic_inline.h\u003e\n\nChange-Id: Ib6fd9a03bc9e337ce867bd606dc94c2b4438480a\n"
    },
    {
      "commit": "6304d8b21891fd0cb7b5a4c25159a3d3b1709d62",
      "tree": "8ab9c2bf6022f139b7af2eabda11846abf684171",
      "parents": [
        "a8a21488630980c1d2a2152d0ac39bd7978879e2"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed Jun 02 18:12:12 2010 -0700"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Jun 08 17:04:49 2010 -0700"
      },
      "message": "Use private futexes for semaphores, unless they are initialized with pshared !\u003d 0.\n\nChange-Id: I534e36a7171cd37037ae03b910ba71ea6968286d\nNote: previously, sem_init() would return an error if pshared !\u003d 0.\n"
    },
    {
      "commit": "a8a21488630980c1d2a2152d0ac39bd7978879e2",
      "tree": "aa2c3da5f3cfb2eb44933b5126984940b2c02e59",
      "parents": [
        "fcd00ebbdf3e7f4e1e7782a65ae10fb0fc03a1aa",
        "7b6e6fa57240466c2728d553be136f800600dd71"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Jun 03 15:05:04 2010 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Jun 03 15:05:04 2010 -0700"
      },
      "message": "resolved conflicts for merge of 7b6e6fa5 to kraken\n\nChange-Id: I2b9b80a7fa32c56be2b85ff8be0d6e7ac1848afe\n"
    },
    {
      "commit": "7b6e6fa57240466c2728d553be136f800600dd71",
      "tree": "5744295128fa6b7b03377c8c7ab3c2df5af16cf5",
      "parents": [
        "8e1ee7fd01986825074ececd39e8c2a5ebc907e0",
        "f982f038329f7da7de5853c9d789ab138a4bcf16"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jun 03 14:39:20 2010 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jun 03 14:39:20 2010 -0700"
      },
      "message": "merge from open-source master\n\nChange-Id: Ib7fc9c6f79f9b13e2175da137005d8968ea85eaf\n"
    },
    {
      "commit": "fcd00ebbdf3e7f4e1e7782a65ae10fb0fc03a1aa",
      "tree": "859e86f36d6bf63ee284c65fff114bbbfdeff38f",
      "parents": [
        "4fdbadde921ec17b4ff9e97fbd41096903b21772"
      ],
      "author": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Fri May 28 13:31:45 2010 -0700"
      },
      "committer": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Fri May 28 16:12:01 2010 -0700"
      },
      "message": "Atomic/SMP update, part 3.\n\nUpdate ARM atomic ops to use LDREX/STREX.  Stripped out #if 0 chunk.\n\nInsert explicit memory barriers in pthread and semaphore code.\n\nFor bug 2721865.\n\nChange-Id: I0f153b797753a655702d8be41679273d1d5d6ae7\n"
    },
    {
      "commit": "78c1c04ced772298be8bdb5a94b6ce491bb9b3e1",
      "tree": "31881f9114a2e6975f262200685d39141a144013",
      "parents": [
        "1297428e89ead45849068989d334d8b7eae2f602"
      ],
      "author": {
        "name": "André Goddard Rosa",
        "email": "andre.goddard@gmail.com",
        "time": "Wed May 19 23:17:16 2010 -0300"
      },
      "committer": {
        "name": "André Goddard Rosa",
        "email": "andre.goddard@gmail.com",
        "time": "Wed May 19 23:17:16 2010 -0300"
      },
      "message": "pthread: introduce pthread_setname_np() as a mean to give names to threads\n\n... so that each cloned process at the kernel level can be named\nindependently. Tools like \u0027top\u0027 can display the CPU/memory statistics\nfor each process\u0027s thread if \"Show Threads\" mode is on.\n\nWith this function in place, we can convert dalvik/Thread.c setThreadName()\nfunction over this function. This feature ought to be provided by the\nunderlying C library and not coded directly in Dalvik.\n\nChange-Id: Ifa997665dbaa114e0b126f8c667708be9a4137fd\nSigned-off-by: André Goddard Rosa \u003candre.goddard@gmail.com\u003e\n"
    },
    {
      "commit": "8a1d2cf1422e35257c160ac5bb12dd3ee481c433",
      "tree": "6307e0ed69c9b22cb49d7702f71d43d1d910e0bf",
      "parents": [
        "8e1ee7fd01986825074ececd39e8c2a5ebc907e0"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue May 11 16:39:22 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed May 19 14:53:18 2010 -0700"
      },
      "message": "Add pthread_rwlock_t implementation to the C library (DO NOT MERGE)\n\nChange-Id: I756d8c26afc37cd7b71117ddbaa02a2cb40fdecb\n"
    },
    {
      "commit": "f450fa5f991af3c0814f96265cb3b2aafdce2309",
      "tree": "1f0e549863606fb8e11215061ad5dde0f37b50cd",
      "parents": [
        "5ef5272be985dfdeafa86077c306f6b64d334240",
        "0be7eda75a14815aaa3e5cd5d5d4e5d25dc35d1c"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon May 03 15:33:05 2010 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon May 03 15:33:05 2010 -0700"
      },
      "message": "merge from open-source master\n\nChange-Id: If02d33af51017dbd85e91c79ac2e848eda6cf253\n"
    },
    {
      "commit": "0be7eda75a14815aaa3e5cd5d5d4e5d25dc35d1c",
      "tree": "e650cc8dd8a90d8d424f9035798c5f77b9172b22",
      "parents": [
        "716e06071a93d2c8dfbde99ea1dfcb7d2cf93d70",
        "c22da7ed32f8b537b8e4653fd777056e8315ebdf"
      ],
      "author": {
        "name": "David Turner",
        "email": "digit@android.com",
        "time": "Sat May 01 15:31:39 2010 -0700"
      },
      "committer": {
        "name": "Android Code Review",
        "email": "code-review@android.com",
        "time": "Sat May 01 15:31:39 2010 -0700"
      },
      "message": "Merge \"Fix log channel initialization at bionic/logd_write.c.\""
    },
    {
      "commit": "5751c54bf1c84ad9b1e23a6909c59431c973deae",
      "tree": "32d6c36cfb0bdbabfc6051344ad1cb23f450eaeb",
      "parents": [
        "c8a850bcd174acf43f951b5b70783cb636418b53"
      ],
      "author": {
        "name": "André Goddard Rosa",
        "email": "andre.goddard@gmail.com",
        "time": "Fri Feb 05 16:03:09 2010 -0200"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Apr 29 07:37:42 2010 -0700"
      },
      "message": "bionic: add missing NULL check from memory allocation on record_backtrace()\n\nSigned-off-by: André Goddard Rosa \u003candre.goddard@gmail.com\u003e\n\nChange-Id: I739c63c5a7344fff1775580044dc647edf246ebf\n"
    },
    {
      "commit": "95faecefdea0f55edafdba09052a904df7cd2405",
      "tree": "953a43567de93a20f4074a0617292e799f9915ab",
      "parents": [
        "f1cd18bdec3686c072bc10cbf66e671b07fc4fde",
        "350bb359fa5e31e3dfae8be6b1ce7ee3495f0da7"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Apr 08 11:11:53 2010 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Apr 08 11:11:53 2010 -0700"
      },
      "message": "merge from open-source master\n\nChange-Id: If77618a329fc7b497c44c2585e644bc50e7e1406\n"
    }
  ],
  "next": "350bb359fa5e31e3dfae8be6b1ce7ee3495f0da7"
}
