)]}'
{
  "log": [
    {
      "commit": "94a85f663694e1869acb1c2e8a3c374a6fa3ab86",
      "tree": "096ba2712dc3e41a18223abff203b6f08dd093c6",
      "parents": [
        "d027ffdd7a2b2239db929a53d3a3c82be42dd1a0"
      ],
      "author": {
        "name": "Ben Cheng",
        "email": "bccheng@google.com",
        "time": "Tue Mar 06 15:45:52 2012 -0800"
      },
      "committer": {
        "name": "Ben Cheng",
        "email": "bccheng@google.com",
        "time": "Wed Mar 07 12:27:59 2012 -0800"
      },
      "message": "Update bionic kernel headers using update_all.py\n\nChange-Id: I4da6b23cdbce89445f1ca5d2fadeb23345ce694c\n"
    },
    {
      "commit": "d027ffdd7a2b2239db929a53d3a3c82be42dd1a0",
      "tree": "81138dd64a4b9ea18c3cfd5c69783add6deeb201",
      "parents": [
        "45976873353d05b44f23fa53cbcd793b22927820",
        "9ec0f03a0d0b17bbb94ac0b9fef6add28a133c3a"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Mar 06 11:31:59 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 06 11:31:59 2012 -0800"
      },
      "message": "Merge \"Add relro support\""
    },
    {
      "commit": "9ec0f03a0d0b17bbb94ac0b9fef6add28a133c3a",
      "tree": "dde5e86b6ae51f92087a9034750c282e11884164",
      "parents": [
        "1fe109ecf3b1acd10d55091f3e0eed7efeca98f1"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Feb 28 10:40:00 2012 -0800"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Mon Mar 05 16:44:42 2012 -0800"
      },
      "message": "Add relro support\n\nAdd support for PT_GNU_RELRO. This allows the static linker to\nindicate that certain regions of memory should be marked as\n\"read-only\" after dynamic linking is complete.\n\nSee:\n  * http://www.akkadia.org/drepper/nonselsec.pdf (section 6)\n  * http://tk-blog.blogspot.com/2009/02/relro-not-so-well-known-memory.html\n\nNote that this change has no effect on Android right now, because\nwe don\u0027t compile our code with relro enabled.\n\nChange-Id: I6541f8775367e8558b4388f7d105b1ae6e8f046b\n"
    },
    {
      "commit": "45976873353d05b44f23fa53cbcd793b22927820",
      "tree": "70e376f699f4a354dd7135601d6b489af99665e0",
      "parents": [
        "1fe109ecf3b1acd10d55091f3e0eed7efeca98f1",
        "be101bf39aaaaaee3a96d62fbc4c1136548480de"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Mar 05 10:46:01 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 05 10:46:01 2012 -0800"
      },
      "message": "Merge \"Revert \"Reference __dso_handle in PIC way\"\""
    },
    {
      "commit": "be101bf39aaaaaee3a96d62fbc4c1136548480de",
      "tree": "af2003dd9e75b71015e03dbf4d5e64fe285c3740",
      "parents": [
        "93cb30813764b140f0adbaa620dcdbb1cae56dd8"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Mar 05 10:45:31 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 05 10:45:31 2012 -0800"
      },
      "message": "Revert \"Reference __dso_handle in PIC way\"\n\nThis reverts commit 93cb30813764b140f0adbaa620dcdbb1cae56dd8"
    },
    {
      "commit": "1fe109ecf3b1acd10d55091f3e0eed7efeca98f1",
      "tree": "a9f19447aa5be60be335d46ac136e14e59db2495",
      "parents": [
        "079989259f257a29bb0734ed968d80a1e35c494f",
        "93cb30813764b140f0adbaa620dcdbb1cae56dd8"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Mar 02 16:05:57 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 02 16:05:57 2012 -0800"
      },
      "message": "Merge \"Reference __dso_handle in PIC way\""
    },
    {
      "commit": "93cb30813764b140f0adbaa620dcdbb1cae56dd8",
      "tree": "3e96ed0c75c2b4e06edfd7fa1d637bc8142f1f4a",
      "parents": [
        "3690bcb217668a26675a7144637a4eed14bf7741"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Mar 02 13:05:25 2012 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Mar 02 13:09:36 2012 -0800"
      },
      "message": "Reference __dso_handle in PIC way\n\nUse the same pattern in atexit.S to reference __dso_handle in a way that\ndoesn\u0027t require a TEXTREL flag to be set.\n\nChange-Id: Id69d20863ee203d2b2f7ef0db230f9b548657741\n"
    },
    {
      "commit": "079989259f257a29bb0734ed968d80a1e35c494f",
      "tree": "70e376f699f4a354dd7135601d6b489af99665e0",
      "parents": [
        "da16ad11fe83d41d43bcf30b3aad01aafa8f5bc6",
        "6d074bb71a316f73f35f4430a71fa706c46d4b75"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 02 11:13:05 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Mar 02 11:13:05 2012 -0800"
      },
      "message": "am 6d074bb7: am 70d1d45f: am a58c88c2: Merge \"Upgrade to tzdata2012b.\"\n\n* commit \u00276d074bb71a316f73f35f4430a71fa706c46d4b75\u0027:\n  Upgrade to tzdata2012b.\n"
    },
    {
      "commit": "70d1d45f0ecaee262627a6ca323fc2b4fe3e9024",
      "tree": "d1e0ba4d3a8d51932411ddd56e3dc4349746e88d",
      "parents": [
        "a480cf930f31ab404e7efe66259427a53d72fa2b",
        "a58c88c235bfeeb17ac495991e66f7b906935852"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 02 11:07:03 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Mar 02 11:07:03 2012 -0800"
      },
      "message": "am a58c88c2: Merge \"Upgrade to tzdata2012b.\"\n\n* commit \u0027a58c88c235bfeeb17ac495991e66f7b906935852\u0027:\n  Upgrade to tzdata2012b.\n"
    },
    {
      "commit": "da16ad11fe83d41d43bcf30b3aad01aafa8f5bc6",
      "tree": "e7fc79dfe375fd5f84e0297198dc58ac5f22ee95",
      "parents": [
        "3690bcb217668a26675a7144637a4eed14bf7741",
        "a2b1bbc9a605819eb5ecd1df61d4f2a79f1a8f92"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 02 10:49:45 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Mar 02 10:49:45 2012 -0800"
      },
      "message": "am a2b1bbc9: am a480cf93: resolved conflicts for merge of cfe535ef to stage-aosp-master\n\n* commit \u0027a2b1bbc9a605819eb5ecd1df61d4f2a79f1a8f92\u0027:\n  Upgrade to tzdata2011a.\n"
    },
    {
      "commit": "a480cf930f31ab404e7efe66259427a53d72fa2b",
      "tree": "caa4710856a2f74c9eed75f13f3ddc10e432a600",
      "parents": [
        "018c27eda89b54e59e6c043ea2986c6e39ec2ee0",
        "cfe535ef9fe08ffceef826f6a0f1ba281528843a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 02 10:11:18 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 02 10:11:18 2012 -0800"
      },
      "message": "resolved conflicts for merge of cfe535ef to stage-aosp-master\n\nChange-Id: I21a1dd41503518e75892180c14f1ce79102772ad\n"
    },
    {
      "commit": "dd8e4045e73a3cd7fc64353252bd553ed1a53236",
      "tree": "65a9535d8628950ae1b4de0275c7da2643908e28",
      "parents": [
        "cfe535ef9fe08ffceef826f6a0f1ba281528843a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 01 23:34:11 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 01 23:34:11 2012 -0800"
      },
      "message": "Upgrade to tzdata2012b.\n\nSummer time in Cuba has been delayed 3 weeks (now starts April 1 rather\nthan March 11). Since March 11 (the old start date, as listed in 2012a)\nis just a little over a week away, this change is urgent.\n\nChange-Id: Iadf4dc30072bdac0bcd0ad4b9e076a9ca071efbe\n"
    },
    {
      "commit": "69ea1c03e0856c264ff9eb66974f53134ab9bc3a",
      "tree": "9502849e097181c5740c06bac3b4b2a591ce6540",
      "parents": [
        "25f2d1f0c3c7802af0d4d1e2bbd3bf95a7e0970b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 01 09:38:31 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 01 09:38:31 2012 -0800"
      },
      "message": "Upgrade to tzdata2011a.\n\nFrom the notes:\n\n       Chile 2011/2012 and 2012/2013 summer time date adjustments.\n       Falkland Islands onto permanent summer time (we\u0027re assuming for the\n               foreseeable future, though 2012 is all we\u0027re fairly certain of.)\n       Armenia has abolished Summer Time.\n       Tokelau jumped the International Date Line back last December\n               (just the same as their near neighbour, Samoa).\n       America/Creston is a new zone for a small area of British Columbia\n       There will be a leapsecod 2012-06-30 23:59:60 UTC.\n\nChange-Id: I1d66edf8d33fd1dbcf21178def91844025fd9047\n"
    },
    {
      "commit": "018c27eda89b54e59e6c043ea2986c6e39ec2ee0",
      "tree": "7203d2fa92c163fdbff444e81786556dfd68f8da",
      "parents": [
        "51d22d7ea92e77f47accee59c99cb8157bf29fcb",
        "25f2d1f0c3c7802af0d4d1e2bbd3bf95a7e0970b"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Feb 29 19:08:50 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Feb 29 19:08:50 2012 -0800"
      },
      "message": "am 25f2d1f0: Merge \"update stddef.h\"\n\n* commit \u002725f2d1f0c3c7802af0d4d1e2bbd3bf95a7e0970b\u0027:\n  update stddef.h\n"
    },
    {
      "commit": "51d22d7ea92e77f47accee59c99cb8157bf29fcb",
      "tree": "3f6150fbf5547ceb51749b3bea185341d7544563",
      "parents": [
        "7c38f53d1911e04acf6398921a7bd4444d585c2b",
        "afab5a703d30df613848cb30ab3ecceafd76102b"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Feb 29 19:08:49 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Feb 29 19:08:49 2012 -0800"
      },
      "message": "am afab5a70: Merge \"Eliminate duplicate constants\"\n\n* commit \u0027afab5a703d30df613848cb30ab3ecceafd76102b\u0027:\n  Eliminate duplicate constants\n"
    },
    {
      "commit": "53d161a2bc8a4c827225818709dae069416c9c85",
      "tree": "4d5e35bd85c432de2d1be8383f9369ffcd31d028",
      "parents": [
        "9921947e6fa4547c10f68281fc1a7ad72e11cf56"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Feb 28 13:36:31 2012 -0800"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Feb 29 18:43:55 2012 -0800"
      },
      "message": "update stddef.h\n\nPull in an updated version of stddef.h from the linux kernel.\nPulled from upstream kernel at 891003abb0db6bfffd61b76ad0ed39bb7c3db8e1\n\nThis file was generated using the following command:\n\ncd bionic/libc/kernel/\n./tools/clean_header.py -u ../../../external/kernel-headers/original/linux/stddef.h\n\nChange-Id: I6c29f3fa100c5368da41d0f0da39bc50fa668e9d\n"
    },
    {
      "commit": "9921947e6fa4547c10f68281fc1a7ad72e11cf56",
      "tree": "80ef6214f13ab93abd40160313cd38e89bb6c1b1",
      "parents": [
        "7f28e0b4501de7c4f8f627fd3e4be323d737ae82"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Feb 28 11:49:41 2012 -0800"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Feb 29 18:43:51 2012 -0800"
      },
      "message": "Eliminate duplicate constants\n\ninclude/elf.h contains basically the same values as\nlinux/auxvec.h. Eliminate dups.\n\ninclude/sys/exec_elf.h contains basically the same\nvalues as linux/elf.h. Eliminate dups.\n\nChange-Id: I66b8358161bb52223bb657f8f73ba28b324f4fa3\n"
    },
    {
      "commit": "7c38f53d1911e04acf6398921a7bd4444d585c2b",
      "tree": "8956d2f496db464333e6a18c8c3775e4c78857b7",
      "parents": [
        "17edd38f03300af28c89f9031dad177af8232c3a",
        "7f28e0b4501de7c4f8f627fd3e4be323d737ae82"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Feb 29 15:38:55 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Feb 29 15:38:55 2012 -0800"
      },
      "message": "am 7f28e0b4: Merge \"Clean up the remnants of SuperH support\"\n\n* commit \u00277f28e0b4501de7c4f8f627fd3e4be323d737ae82\u0027:\n  Clean up the remnants of SuperH support\n"
    },
    {
      "commit": "7f28e0b4501de7c4f8f627fd3e4be323d737ae82",
      "tree": "187c638706e047a1f9291409fe50834b81e50560",
      "parents": [
        "9c9b0fc7e1dff39baa8cdf2536be9776aa4af766",
        "b69060f1ae0bd14c93caed2d113a72cf81d98f1d"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Feb 29 14:39:41 2012 -0800"
      },
      "committer": {
        "name": "android code review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 29 14:39:42 2012 -0800"
      },
      "message": "Merge \"Clean up the remnants of SuperH support\""
    },
    {
      "commit": "86addd65abdde06c96fb72f359f63cf72b206325",
      "tree": "af2003dd9e75b71015e03dbf4d5e64fe285c3740",
      "parents": [
        "4fc127345968c0e75775a6377c6f784ae6600cff",
        "67e7a93844989a4ea4660e6cfb9613e486c6d352"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Feb 29 13:30:48 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 29 13:30:48 2012 -0800"
      },
      "message": "Merge \"Eliminate duplicate constants\""
    },
    {
      "commit": "67e7a93844989a4ea4660e6cfb9613e486c6d352",
      "tree": "80c24f58ede5bdc1d7a1200f106bb4b0c84fcf0f",
      "parents": [
        "d638a500e96bdfec2bd3e34fc5545561b60cd9e6"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Feb 28 11:49:41 2012 -0800"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Feb 29 11:21:53 2012 -0800"
      },
      "message": "Eliminate duplicate constants\n\ninclude/elf.h contains basically the same values as\nlinux/auxvec.h. Eliminate dups.\n\ninclude/sys/exec_elf.h contains basically the same\nvalues as linux/elf.h. Eliminate dups.\n\nChange-Id: I66b8358161bb52223bb657f8f73ba28b324f4fa3\n"
    },
    {
      "commit": "4fc127345968c0e75775a6377c6f784ae6600cff",
      "tree": "28f49f7aa5dd646e233c95cd967856b31eed7104",
      "parents": [
        "d638a500e96bdfec2bd3e34fc5545561b60cd9e6",
        "58b2c1616bed68fe5a6a1794c8764b24d29ad8cb"
      ],
      "author": {
        "name": "Andrew Hsieh",
        "email": "andrewhsieh@google.com",
        "time": "Wed Feb 29 09:40:49 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 29 09:40:49 2012 -0800"
      },
      "message": "Merge \"Trivial fix in comment\""
    },
    {
      "commit": "ec37237d69289e2bb9836bfa0d071ab958234d00",
      "tree": "54ec0eae52a5ff9a57274d1f21754555de4270ad",
      "parents": [
        "83c366cf093b068da38e24e4ae4525c015ddde20"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Feb 28 13:36:31 2012 -0800"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Feb 28 14:04:57 2012 -0800"
      },
      "message": "update stddef.h\n\nPull in an updated version of stddef.h from the linux kernel.\nPulled from upstream kernel at 891003abb0db6bfffd61b76ad0ed39bb7c3db8e1\n\nThis file was generated using the following command:\n\ncd bionic/libc/kernel/\n./tools/clean_header.py -u ../../../external/kernel-headers/original/linux/stddef.h\n\nChange-Id: I6c29f3fa100c5368da41d0f0da39bc50fa668e9d\n"
    },
    {
      "commit": "83c366cf093b068da38e24e4ae4525c015ddde20",
      "tree": "c9692a2b37b5beefd4af35d37f903af7f7dad786",
      "parents": [
        "7dbbfac0fc7bbca072885185bf9bbee9e2e40e63",
        "1fb6662d1aa51eec54cfc133c40cacc0b15aad30"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Feb 24 11:04:56 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 24 11:04:56 2012 -0800"
      },
      "message": "Merge \"Revert \"Use the new NativeDaemonConnector style.\"\""
    },
    {
      "commit": "1fb6662d1aa51eec54cfc133c40cacc0b15aad30",
      "tree": "2912705bce262b9de1e9bd9c2631e47ea6c3619a",
      "parents": [
        "1625c7a837d73b6729f97edb32c497d289c0220c"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Feb 24 11:04:42 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 24 11:04:42 2012 -0800"
      },
      "message": "Revert \"Use the new NativeDaemonConnector style.\"\n\nThe other changes relating to this were already reverted.\n\nThis reverts commit 1625c7a837d73b6729f97edb32c497d289c0220c"
    },
    {
      "commit": "7dbbfac0fc7bbca072885185bf9bbee9e2e40e63",
      "tree": "370f409cef0ea8eb6050a16584dff1bb403c5aa3",
      "parents": [
        "76ab561b4dd30711d82060d66b599aece0a40878",
        "5d8fd2a0bc059cd07405a372c98617829f8ac378"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Feb 23 12:34:02 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Feb 23 12:34:02 2012 -0800"
      },
      "message": "am 5d8fd2a0: am a71aefc6: am d041bf20: Merge \"bionic/x86: fix one potential deadlock in __set_tls()\"\n\n* commit \u00275d8fd2a0bc059cd07405a372c98617829f8ac378\u0027:\n  bionic/x86: fix one potential deadlock in __set_tls()\n"
    },
    {
      "commit": "a71aefc66f6d4bf1302e0ce5c321aff1a2c769d1",
      "tree": "06260b92df3f65c201b175017e3f7a9cde56a1b1",
      "parents": [
        "62daffe147e8810ce48a897df46b0b3db95ebaa3",
        "d041bf2095f5f133c87f7ba632a8dfb39537a437"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Feb 23 12:29:10 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Feb 23 12:29:10 2012 -0800"
      },
      "message": "am d041bf20: Merge \"bionic/x86: fix one potential deadlock in __set_tls()\"\n\n* commit \u0027d041bf2095f5f133c87f7ba632a8dfb39537a437\u0027:\n  bionic/x86: fix one potential deadlock in __set_tls()\n"
    },
    {
      "commit": "c5393b23f6b7837d3b775e447573180fac4923fc",
      "tree": "ef1204c0a0cf0ae2044f94beeb26e1a6d1465e9e",
      "parents": [
        "f9c5afb1f9d8e615ab98774a10bbf117962db66d"
      ],
      "author": {
        "name": "Jin Wei",
        "email": "wei.a.jin@intel.com",
        "time": "Thu Dec 15 15:49:25 2011 +0800"
      },
      "committer": {
        "name": "Jack Ren",
        "email": "jack.ren@intel.com",
        "time": "Thu Feb 23 17:37:58 2012 +0800"
      },
      "message": "bionic/x86: fix one potential deadlock in __set_tls()\n\nFix bug:\nCurrently the mutex lock _tls_desc_lock is not released\nwhen __set_thread_area() fails. That will leads to the deadlock\nwhen __set_tls( ) is called later on.\n\nChange-Id: Iea3267cb0659971cba7766cbc3346f6924274f86\nSigned-off-by: Jin Wei \u003cwei.a.jin@intel.com\u003e\nSigned-off-by: Jack Ren \u003cjack.ren@intel.com\u003e\nSigned-off-by: Bruce Beare \u003cbruce.j.beare@intel.com\u003e\n"
    },
    {
      "commit": "f1a17e762b6fab449cff3006178e42b68e8e241e",
      "tree": "65e9434cc213a1710b2c0369d5a1290d16261546",
      "parents": [
        "d6b58b03b8e046e0bd46d6d7e57290dcabe48860"
      ],
      "author": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Wed Feb 22 15:18:54 2012 -0800"
      },
      "committer": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Wed Feb 22 15:18:56 2012 -0800"
      },
      "message": "libc: Add __aeabi_llsl and __aeabi_llsr to libgcc_compat\n\nSome platform libraries built for ICS do not work with master\nbecause of some refactoring in frameworks/base.\n\nMake sure that these libgcc symbols are always present in our libc\n\nChange-Id: Ib8d345878be0ba711f051082a778f5cc1f1b3a19\nSigned-off-by: Dima Zavin \u003cdima@android.com\u003e\n"
    },
    {
      "commit": "58b2c1616bed68fe5a6a1794c8764b24d29ad8cb",
      "tree": "c278335183202451fd6fc0c107300e1dd1fd072d",
      "parents": [
        "d6b58b03b8e046e0bd46d6d7e57290dcabe48860"
      ],
      "author": {
        "name": "Andrew Hsieh",
        "email": "andrewhsieh@google.com",
        "time": "Tue Feb 21 15:09:32 2012 -0800"
      },
      "committer": {
        "name": "Andrew Hsieh",
        "email": "andrewhsieh@google.com",
        "time": "Tue Feb 21 15:09:32 2012 -0800"
      },
      "message": "Trivial fix in comment\n\nVery, very trivial fix for minor typo in comment about how it works\n\nChange-Id: Ia08d332366837dec8f7e91b9728732c5edea223e\n"
    },
    {
      "commit": "d6b58b03b8e046e0bd46d6d7e57290dcabe48860",
      "tree": "71ee46309e89bb83e7a78fb116730a71cd2df8ef",
      "parents": [
        "32c226d6ed6e1bf62e2bd46645905210bbf20989",
        "09049311a229c427f73e3e0ac873bf344b45aaf2"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Mon Feb 13 14:42:48 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Feb 13 14:42:48 2012 -0800"
      },
      "message": "am 09049311: am cfff36df: am a60ff6c5: Merge \"libc: Define new symbol visibility macros\"\n\n* commit \u002709049311a229c427f73e3e0ac873bf344b45aaf2\u0027:\n  libc: Define new symbol visibility macros\n"
    },
    {
      "commit": "cfff36df2bebd95f2663b7b053c6308593c343dd",
      "tree": "d0f674e29737bd49d3ac8cd029962a5d64b58021",
      "parents": [
        "68fc85ffc05aca5cc187676bd1502c3c446046d9",
        "a60ff6c5b2ca76181b387d8c10aee22a2cbcf840"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Mon Feb 13 14:25:53 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Feb 13 14:25:53 2012 -0800"
      },
      "message": "am a60ff6c5: Merge \"libc: Define new symbol visibility macros\"\n\n* commit \u0027a60ff6c5b2ca76181b387d8c10aee22a2cbcf840\u0027:\n  libc: Define new symbol visibility macros\n"
    },
    {
      "commit": "32c226d6ed6e1bf62e2bd46645905210bbf20989",
      "tree": "c0253596b4bdea4dbf14ef64b99488219e2c16a9",
      "parents": [
        "058d6d88b959efc00d7ba9777e447bc55c409569",
        "f39a3fe67d7f1faa21a39ea8e1f57a6596c8cadb"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Feb 10 13:45:49 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 10 13:45:49 2012 -0800"
      },
      "message": "Merge \"Allow C++ to call fdprintf\""
    },
    {
      "commit": "058d6d88b959efc00d7ba9777e447bc55c409569",
      "tree": "267905681e7975a066a9ba4682f583a2747e001b",
      "parents": [
        "1625c7a837d73b6729f97edb32c497d289c0220c"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Feb 09 16:14:28 2012 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Feb 09 16:14:28 2012 -0800"
      },
      "message": "Update bionic to know users and isolated uids for uid string representation.\n\nChange-Id: I6681bacd69299a7f9837ef8025a80c5562081bad\n"
    },
    {
      "commit": "b69060f1ae0bd14c93caed2d113a72cf81d98f1d",
      "tree": "3eb4e37e676fd676e35ff3d8eea3d532e3c23254",
      "parents": [
        "177a77067b6d3326dbcf88fd93d0664e48e27f9f"
      ],
      "author": {
        "name": "Raghu Gandham",
        "email": "raghu@mips.com",
        "time": "Thu Feb 09 15:58:46 2012 -0800"
      },
      "committer": {
        "name": "Raghu Gandham",
        "email": "raghu@mips.com",
        "time": "Thu Feb 09 15:58:46 2012 -0800"
      },
      "message": "Clean up the remnants of SuperH support\n"
    },
    {
      "commit": "f39a3fe67d7f1faa21a39ea8e1f57a6596c8cadb",
      "tree": "4b348d687db7a7a27af9840571ccbb8ff8dc847a",
      "parents": [
        "1625c7a837d73b6729f97edb32c497d289c0220c"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Feb 09 10:15:45 2012 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Feb 09 10:15:45 2012 -0800"
      },
      "message": "Allow C++ to call fdprintf\n\nChange-Id: I1adb7b165ab9f62eaee4e7a9108e8b461350b347\n"
    },
    {
      "commit": "1625c7a837d73b6729f97edb32c497d289c0220c",
      "tree": "cf18c3d2a948a069a2405bab819b491bdaeaa29f",
      "parents": [
        "9db064a0d3985bc1e4bb9f88ec81c7c2715c410c"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Tue Feb 07 11:53:55 2012 -0800"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Tue Feb 07 11:53:55 2012 -0800"
      },
      "message": "Use the new NativeDaemonConnector style.\n\nPrepend a 0 to match the new sequence-number style, though this module\ndoesn\u0027t really need/use it.\n\nbug:5864209\nChange-Id: Iacbcddaced6fe8bb01d186596a916e4fb4805fef\n"
    },
    {
      "commit": "25b7a16a6ee73248192909862f03f95d2363ad14",
      "tree": "97d420779e6b79917ba5ac65b9bc182a8ceaa68d",
      "parents": [
        "b118b9c5cd6a99fd3368a01ee9de8849d869afc7",
        "c4cb87f367fc33b36c9988b4f42fc07876abccd1"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Feb 01 09:46:08 2012 -0800"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Feb 01 09:46:08 2012 -0800"
      },
      "message": "Merge c4cb87f3\n\nChange-Id: I4cc14eba43fde75a7702fdc7ad07d3d949e9c092\n"
    },
    {
      "commit": "c4cb87f367fc33b36c9988b4f42fc07876abccd1",
      "tree": "04772e71faec8bb3b1a4f35ac8c2e0d57e134ff3",
      "parents": [
        "cc12c74f7f65c571778989cd902eb5b9fa74fb11",
        "5b892aa7e581c0b247262a95d70db20991121afe"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Feb 01 07:12:13 2012 -0800"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Feb 01 07:12:13 2012 -0800"
      },
      "message": "Merge 5b892aa7\n\nChange-Id: Ic82bc2866bdb0c93822c94281301fa127fd4bb0c\n"
    },
    {
      "commit": "5fbf2e09921723cfdea75e83c1fac2080f0ad564",
      "tree": "e14922f0147869514be03fc3154c4576c68ef154",
      "parents": [
        "5b892aa7e581c0b247262a95d70db20991121afe"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@android.com",
        "time": "Mon Jan 23 15:15:30 2012 +0100"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@android.com",
        "time": "Tue Jan 31 22:19:09 2012 +0100"
      },
      "message": "libc: Define new symbol visibility macros\n\nThis patch defines a few new macros that can be used to control the\nvisibility of symbols exported by the C library:\n\n- ENTRY_PRIVATE() can be used in assembly sources to indicate\n  that an assembler function should have \"hidden\" visibility, i.e.\n  will never be exported by the C library\u0027s shared library.\n\n  This is the equivalent of using __LIBC_HIDDEN__ for a C function,\n  but ENTRY_PRIVATE() works like ENTRY(), and must be used with\n  END() to tag the end of the function.\n\n- __LIBC_ABI_PUBLIC__ can be used to tag a C functions as being\n  part of the C library\u0027s public ABI. This is important for a\n  few functions that must be exposed by the NDK to maintain\n  binary compatibility.\n\n  Once a symbol has been tagged with this macro, it shall\n  *never* be removed from the library, even if it becomes\n  directly unused due to implementation changes\n  (e.g. __is_threaded).\n\n- __LIBC_ABI_PRIVATE__ can be used for C functions that should\n  always be exported by the C library because they are used by\n  other libraries in the platform, but should not be exposed\n  by the NDK. It is possible to remove such symbols from the\n  implementation if all callers are also modified.\n\n+ Add missing END() assembly macro for x86\n\nChange-Id: Ia96236ea0dbec41d57bea634b39d246b30e5e234\n"
    },
    {
      "commit": "70b1668a76d3b719ae690903ea790fda964a5458",
      "tree": "674232e6152fa67c0db8b07b0083bb3ac6c9bd8c",
      "parents": [
        "e80044455961005ac95e405c8d553f2418d8e50c"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Jan 30 17:17:58 2012 +0100"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@android.com",
        "time": "Tue Jan 31 20:28:23 2012 +0100"
      },
      "message": "remove obsolete SuperH support\n\nWe don\u0027t have a toolchain anymore, we don\u0027t have working original\nkernel headers, and nobody is maintaining this so there is really\nno point in keeping this here. Details of the patch:\n\n- removed code paths from Android.mk files related to the SuperH\n  architecture (\"sh\")\n\n- removed libc/arch-sh, linker/arch-sh, libc/kernel/arch-sh\n\n- simplified libc/SYSCALLS.TXT\n\n- simplified the scripts in libc/tools/ and libc/kernel/tools\n\nChange-Id: I26b0e1422bdc347489e4573e2fbec0e402f75560\n\nSigned-off-by: David \u0027Digit\u0027 Turner \u003cdigit@android.com\u003e\n"
    },
    {
      "commit": "b118b9c5cd6a99fd3368a01ee9de8849d869afc7",
      "tree": "ffa492625a3357de8a714e31edee419f6340545b",
      "parents": [
        "a7ad3399104048b9d730cc8044d9fd96badbe229",
        "e1414aa96bb62057b1a25c6a9ea1797dd38dce59"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Jan 31 11:02:33 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 31 11:02:33 2012 -0800"
      },
      "message": "Merge \"libc: remove global lock from recursive mutex implementation.\""
    },
    {
      "commit": "a7ad3399104048b9d730cc8044d9fd96badbe229",
      "tree": "4664c3eac38242793111c893b0ad7688d631183f",
      "parents": [
        "f5d1693e3ca8cfd089e6259f320044833eae2991",
        "3452e301ecfce42bd3da5ce1b322d89f8a132ee6"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Jan 31 10:05:35 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 31 10:05:35 2012 -0800"
      },
      "message": "Merge \"Add new suspend-block input ioctls.\""
    },
    {
      "commit": "e1414aa96bb62057b1a25c6a9ea1797dd38dce59",
      "tree": "86dd372e2ea90adceefa57cf324fc29c5ae64faf",
      "parents": [
        "b70659d8ea4a0f67694125a340186da96afa4210"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Jan 24 15:26:54 2012 +0100"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Jan 30 10:13:41 2012 +0100"
      },
      "message": "libc: remove global lock from recursive mutex implementation.\n\nThis optimization improves the performance of recursive locks\ndrastically. When running the thread_stress program on a Xoom,\nthe total time to perform all operations goes from 1500 ms to\n500 ms on average after this change is pushed to the device.\n\nChange-Id: I5d9407a9191bdefdaccff7e7edefc096ebba9a9d\n"
    },
    {
      "commit": "632c07c09297324565fd7adeda7322f1fafb3a1a",
      "tree": "1d597901499ef4ee2c8f049ac31da9427e999000",
      "parents": [
        "514126b2b59105427da8014a11fb1fc32e6a751c",
        "cc12c74f7f65c571778989cd902eb5b9fa74fb11"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Fri Jan 27 21:09:07 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jan 27 21:09:07 2012 -0800"
      },
      "message": "am cc12c74f: am e8004445: Merge \"Make sure __u64 is defined even for strict ansi or -std\u003dc99\"\n\n* commit \u0027cc12c74f7f65c571778989cd902eb5b9fa74fb11\u0027:\n  Make sure __u64 is defined even for strict ansi or -std\u003dc99\n"
    },
    {
      "commit": "cc12c74f7f65c571778989cd902eb5b9fa74fb11",
      "tree": "5be793e1708bb0eed1e08a632af3f34f0367433e",
      "parents": [
        "482d59a42f6c81e3a142ffbf23c67a903836f203",
        "e80044455961005ac95e405c8d553f2418d8e50c"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Fri Jan 27 07:41:43 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jan 27 07:41:43 2012 -0800"
      },
      "message": "am e8004445: Merge \"Make sure __u64 is defined even for strict ansi or -std\u003dc99\"\n\n* commit \u0027e80044455961005ac95e405c8d553f2418d8e50c\u0027:\n  Make sure __u64 is defined even for strict ansi or -std\u003dc99\n"
    },
    {
      "commit": "514126b2b59105427da8014a11fb1fc32e6a751c",
      "tree": "e9ef4cd0bbd737c2f96ff9969e2b1d194bde2327",
      "parents": [
        "1fc51769ded79c74f15d59611c5ae4bd0547b32b",
        "52764f5546362d0ffab99afaffe8e8c7f21f8ef2"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Thu Jan 26 14:51:08 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 26 14:51:08 2012 -0800"
      },
      "message": "Merge \"Increase the size of the system-wide dns cache\""
    },
    {
      "commit": "52764f5546362d0ffab99afaffe8e8c7f21f8ef2",
      "tree": "6a3533eb82bac3bea5137b1e4276396c3f271764",
      "parents": [
        "b70659d8ea4a0f67694125a340186da96afa4210"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Wed Jan 25 15:16:03 2012 -0800"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Wed Jan 25 15:36:58 2012 -0800"
      },
      "message": "Increase the size of the system-wide dns cache\n\n32 enteries perhaps was ok for per-process caching with ipv4 only\nbut adding ipv6 records makes it effectively 16 entries and making\nit system wide makes is pretty useless.  Increasing to 640 entries.\n\nbug:5841178\nChange-Id: I879f8bf4d3c4d8c1708bb46d46a67c1f64b1861f\n"
    },
    {
      "commit": "738b175a932e9eba424750926e753f2227b4d1bc",
      "tree": "b26540e615e53db53c8072488cba838825c957b8",
      "parents": [
        "e22dfc46b763e9b0c6300b7068609d2db60a9b2c"
      ],
      "author": {
        "name": "Martin Storsjo",
        "email": "martin@martin.st",
        "time": "Wed Jan 25 23:25:09 2012 +0200"
      },
      "committer": {
        "name": "Martin Storsjo",
        "email": "martin@martin.st",
        "time": "Wed Jan 25 23:41:19 2012 +0200"
      },
      "message": "Make sure __u64 is defined even for strict ansi or -std\u003dc99\n\nThe x86 asm headers define __u64 regardless of __STRICT_ANSI__.\nThe linux/videodev2.h header requires __u64 to be defined, thus\nthis fixes compiling with -std\u003dc99 when including the\nlinux/videodev2.h header.\n\nIn glibc, the asm/types.h header defines __u64 regardless of\n__STRICT_ANSI__.\n\nThis is the change for the generated arch-arm/asm/types.h\nheader, as produced by the update_all.py script (without all\nthe other unrelated changes that the script produces).\n\nFWIW, the same issue also is present in\narch-sh/asm/types.h, but there are no source headers for\narch-sh in external/kernel-headers (and regenerating the\nheaders simply removes that file).\n\nChange-Id: If05fcc9ed6ff5943602be121c7be140116e361fe\n"
    },
    {
      "commit": "8584a922dca76fc60e7d18f3b03f0b1ec3a42097",
      "tree": "129bf062b1af1bc173702e627161a207acdbb23e",
      "parents": [
        "b70659d8ea4a0f67694125a340186da96afa4210",
        "482d59a42f6c81e3a142ffbf23c67a903836f203"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Jan 25 08:57:30 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jan 25 08:57:30 2012 -0800"
      },
      "message": "am 482d59a4: am e22dfc46: Merge \"execvp: bcopy() is deprecated. Use memcpy() instead\"\n\n* commit \u0027482d59a42f6c81e3a142ffbf23c67a903836f203\u0027:\n  execvp: bcopy() is deprecated. Use memcpy() instead\n"
    },
    {
      "commit": "482d59a42f6c81e3a142ffbf23c67a903836f203",
      "tree": "f0efb57b8acc3bdb0be14edad8e8b812fe4bd0b1",
      "parents": [
        "c83c1da54831ef1c9ff59cf9df8d5c0173893ee5",
        "e22dfc46b763e9b0c6300b7068609d2db60a9b2c"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Jan 24 15:07:56 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jan 24 15:07:56 2012 -0800"
      },
      "message": "am e22dfc46: Merge \"execvp: bcopy() is deprecated. Use memcpy() instead\"\n\n* commit \u0027e22dfc46b763e9b0c6300b7068609d2db60a9b2c\u0027:\n  execvp: bcopy() is deprecated. Use memcpy() instead\n"
    },
    {
      "commit": "e22dfc46b763e9b0c6300b7068609d2db60a9b2c",
      "tree": "93f1a386a4cd69d3f72699e903f79a7d23e4cd08",
      "parents": [
        "cee8425f22cfe268614c7bb47b2f5874ac6a0e4b",
        "28a7c35feac8d73b94f99493534dad069afe5049"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Jan 24 14:26:34 2012 -0800"
      },
      "committer": {
        "name": "android code review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jan 24 14:26:36 2012 -0800"
      },
      "message": "Merge \"execvp: bcopy() is deprecated. Use memcpy() instead\""
    },
    {
      "commit": "b70659d8ea4a0f67694125a340186da96afa4210",
      "tree": "51438c99b533ef2b8439004725467d783fdc70bf",
      "parents": [
        "f20d59e69137336a2555844ce9f74ece96ad60ea",
        "b57db7581cabb98651c4d8940d65c5c404b914ad"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Jan 24 09:28:29 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 24 09:28:29 2012 -0800"
      },
      "message": "Merge \"libc: Fix recursive mutex lock implementation.\""
    },
    {
      "commit": "b57db7581cabb98651c4d8940d65c5c404b914ad",
      "tree": "f2f75b325541d06da64cb6a2d6e1a58771b2e30e",
      "parents": [
        "79fcc6948d139878b9ae0423c2fe804636433ad8"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Jan 24 13:20:38 2012 +0100"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Jan 24 13:20:38 2012 +0100"
      },
      "message": "libc: Fix recursive mutex lock implementation.\n\nThis fixes a bug that was introduced in the latest pthread optimization.\nIt happens when a recursive lock is contented by several threads. The main\nissue was that the atomic counter increment in _recursive_increment() could\nbe annihilated by a non-conditional write in pthread_mutex_lock() used to\nupdate the value\u0027s lower bits to indicate contention.\n\nThis patch re-introduces the use of the global recursive lock in\n_recursive_increment(). This will hit performance, but a future patch\nwill be provided to remove it from the source code.\n\nChange-Id: Ie22069d376cebf2e7d613ba00b6871567f333544\n"
    },
    {
      "commit": "73fa5fdaf9ec27741a17b0b793ff6890e6dcecd5",
      "tree": "6ea04b41beb695e792e21018b1e7c0ea6e79a5b5",
      "parents": [
        "d8545e2690c0c179f36c0e4a15c5589bdd6265ce",
        "2f80f07d8106782ac94b05f529c8cbb1fd1c6f64"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Fri Jan 20 16:47:01 2012 -0800"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Fri Jan 20 16:47:01 2012 -0800"
      },
      "message": "Merge 2f80f07d\n\nChange-Id: Iff51b8530dbee01499ba4af0ecd6ab837c8c94fb\n"
    },
    {
      "commit": "2f80f07d8106782ac94b05f529c8cbb1fd1c6f64",
      "tree": "9617b50e1bf6a35cbaf55cd0d5003595c41bc2c0",
      "parents": [
        "8eb948d8c8b66d8442a45d398db4e970fb3bf68b",
        "23f56bbb6ae053996dd821f29379aea0c7166055"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Fri Jan 20 11:54:47 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jan 20 11:54:47 2012 -0800"
      },
      "message": "am 23f56bbb: Merge \"Add extended attribute (xattr) system call wrappers to bionic.\"\n\n* commit \u002723f56bbb6ae053996dd821f29379aea0c7166055\u0027:\n  Add extended attribute (xattr) system call wrappers to bionic.\n"
    },
    {
      "commit": "23f56bbb6ae053996dd821f29379aea0c7166055",
      "tree": "cda01bb165e43f09f7952e80f410fd7d21f4ab97",
      "parents": [
        "eae1f1fba33cb105302227b044a14e5abcbe55e7",
        "5eb686d105ebd7cea332fd1ef0bb3af9386e19f7"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Fri Jan 20 10:29:21 2012 -0800"
      },
      "committer": {
        "name": "android code review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 20 10:29:22 2012 -0800"
      },
      "message": "Merge \"Add extended attribute (xattr) system call wrappers to bionic.\""
    },
    {
      "commit": "3452e301ecfce42bd3da5ce1b322d89f8a132ee6",
      "tree": "7f748983afd39b9d037ff37380f816236d12c721",
      "parents": [
        "df49ebabfe58af3e5d5dd0016d17d109151d3da8"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Jan 19 14:27:30 2012 -0800"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Jan 19 14:27:30 2012 -0800"
      },
      "message": "Add new suspend-block input ioctls.\n\nChange-Id: I8cfd63d22ecf8e08f261eb576d6ea448f396f709\n"
    },
    {
      "commit": "79fcc6948d139878b9ae0423c2fe804636433ad8",
      "tree": "e9750f58b22df996e11220a5bc7be5ccb3db0445",
      "parents": [
        "df49ebabfe58af3e5d5dd0016d17d109151d3da8",
        "208898ee776117f42815c2fcb15903b2781bf0aa"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Thu Jan 19 04:15:38 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 19 04:15:38 2012 -0800"
      },
      "message": "Merge \"libc: remove private declarations from \u003ctime.h\u003e and \u003cresolv.h\u003e\""
    },
    {
      "commit": "dac52ff9f5591afda2b8c2a3d41aa08d7cab179e",
      "tree": "fcffb0cb0a26a8758674f2f26309fc265d597c91",
      "parents": [
        "b00d7a331c9f2a578a4cfc4dfe0d626aa58fa702",
        "e8e1efeafb8754ea8358e78cfe3d0f7ad4e809b2"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 18 16:34:01 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jan 18 16:34:01 2012 -0800"
      },
      "message": "am e8e1efea: Update to tzdata2011n.\n\n* commit \u0027e8e1efeafb8754ea8358e78cfe3d0f7ad4e809b2\u0027:\n  Update to tzdata2011n.\n"
    },
    {
      "commit": "df49ebabfe58af3e5d5dd0016d17d109151d3da8",
      "tree": "82c33ecf929bd5a8230b17bc6c43801ee185eb3e",
      "parents": [
        "5f926c26795c3a72987652870a2ae6f3fb1ac49c",
        "ea29cd5a4a0b1fc49a63a789ace1668283a6a280"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Jan 18 08:53:51 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 18 08:53:51 2012 -0800"
      },
      "message": "Merge \"Eliminate duplicate copies of constants.\""
    },
    {
      "commit": "5eb686d105ebd7cea332fd1ef0bb3af9386e19f7",
      "tree": "3df9e137dcdcc8b78cb9ca78aee8c5de50316e87",
      "parents": [
        "e30e909363c5c706f394050d9cd00ce222caadbf"
      ],
      "author": {
        "name": "Stephen Smalley",
        "email": "sds@tycho.nsa.gov",
        "time": "Fri Jan 13 07:45:16 2012 -0500"
      },
      "committer": {
        "name": "Stephen Smalley",
        "email": "sds@tycho.nsa.gov",
        "time": "Wed Jan 18 08:02:23 2012 -0500"
      },
      "message": "Add extended attribute (xattr) system call wrappers to bionic.\n\nThe xattr system calls are required for the SE Android userspace in\norder to get and set file security contexts.  In particular, libselinux\nrequires these calls.\n\nChange-Id: I78f5eb3d8f3384aed0a5e7c6a6f001781d982017\n"
    },
    {
      "commit": "5f926c26795c3a72987652870a2ae6f3fb1ac49c",
      "tree": "ae53c2fa6e04b92bd40dd520d2d4ce62e47483f5",
      "parents": [
        "d6045cba4e572cf9ed0b87efddce93f3c4a80a8f",
        "b00d7a331c9f2a578a4cfc4dfe0d626aa58fa702"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Jan 17 18:18:29 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jan 17 18:18:29 2012 -0800"
      },
      "message": "am b00d7a33: am eae1f1fb: Merge \"res_send: Avoid spurious close()s and (rare) failure\"\n\n* commit \u0027b00d7a331c9f2a578a4cfc4dfe0d626aa58fa702\u0027:\n  res_send: Avoid spurious close()s and (rare) failure\n"
    },
    {
      "commit": "b00d7a331c9f2a578a4cfc4dfe0d626aa58fa702",
      "tree": "49fda4fb66b0e3f5fb08029aca582aaebc3c5cbf",
      "parents": [
        "06f51ba1af2fafeec7fdfcba5d635bd001a31b3e",
        "eae1f1fba33cb105302227b044a14e5abcbe55e7"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Jan 17 18:16:10 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jan 17 18:16:10 2012 -0800"
      },
      "message": "am eae1f1fb: Merge \"res_send: Avoid spurious close()s and (rare) failure\"\n\n* commit \u0027eae1f1fba33cb105302227b044a14e5abcbe55e7\u0027:\n  res_send: Avoid spurious close()s and (rare) failure\n"
    },
    {
      "commit": "e8e1efeafb8754ea8358e78cfe3d0f7ad4e809b2",
      "tree": "7672e9c24da57867c389a5129e59934b3197f6a8",
      "parents": [
        "f44de270bba32c9b1b5eff8a34be07b10ddff238"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 31 14:11:32 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 17 17:47:59 2012 -0800"
      },
      "message": "Update to tzdata2011n.\n\nThere are three changes of note - most urgently, Cuba (America/Havana)\nhas extended summer time by two weeks, now to end on Nov 13, rather than\nthe (already past) Oct 30.   Second, the Pridnestrovian Moldavian Republic\n(Europe/Tiraspol) decided not to split from the rest of Moldova after\nall, and consequently that zone has been removed (again) and reinstated\nin the \"backward\" file as a link to Europe/Chisinau.   And third, the\nend date for Fiji\u0027s summer time this summer was moved forward from the\nearlier planned Feb 26, to Jan 22.\n\nApart from that, Moldova (MD) returns to a single entry in zone.tab\n(and the incorrect syntax that was in the 2011m version of that file\nis so fixed - it would have been fixed in a different way had this\nchange not happened - that\u0027s the \"missing\" sccs version id).\n\nBug: 5863692\n\nChange-Id: I78e29c682c623b1dec0b0ea2cb6545713ae9eed0\n"
    },
    {
      "commit": "ea29cd5a4a0b1fc49a63a789ace1668283a6a280",
      "tree": "fe277d68df56dffaa54f7e9127b4f33970dbd32d",
      "parents": [
        "d6045cba4e572cf9ed0b87efddce93f3c4a80a8f"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Jan 17 17:21:33 2012 -0800"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Jan 17 17:28:42 2012 -0800"
      },
      "message": "Eliminate duplicate copies of constants.\n\nsys/personality.h and linux/personality.h contain mostly\nidentical contents. Eliminate dups.\n\nChange-Id: Ie786edcb5dca57af7ee5b5fdad2949369f1bc4e4\n"
    },
    {
      "commit": "d6045cba4e572cf9ed0b87efddce93f3c4a80a8f",
      "tree": "fe644600155a4aa33c0a66ca7129661dc80c0946",
      "parents": [
        "fc5ea79c5eec404c5790a74478255b8e2ad1e837"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Jan 17 15:56:26 2012 -0800"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Jan 17 15:56:26 2012 -0800"
      },
      "message": "Don\u0027t generate sys/linux-unistd.h\n\nlinux-unistd.h was here for reference purposes, but shouldn\u0027t\nhave been accessible to client code. Delete it.\n\nChange-Id: I60c264ff6ca489a48117914bdf6daa486737af8c\n"
    },
    {
      "commit": "fc5ea79c5eec404c5790a74478255b8e2ad1e837",
      "tree": "1bd073dfdc61da74b4acf723e208caa15c17e8fb",
      "parents": [
        "023e5409df07a5d5ead6efb1825f6df92bcf50da",
        "b6f40f0027c736af0e0a7ed08ee910caccf47792"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Jan 17 15:46:54 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 17 15:46:54 2012 -0800"
      },
      "message": "Merge \"update personality.h\""
    },
    {
      "commit": "023e5409df07a5d5ead6efb1825f6df92bcf50da",
      "tree": "fb62c1b226535e429cd337ec4114372c1a097649",
      "parents": [
        "697011d3c4d3bfb6b8b070ea9ac7c393b85f9f5e",
        "06f51ba1af2fafeec7fdfcba5d635bd001a31b3e"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Jan 17 13:09:53 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jan 17 13:09:53 2012 -0800"
      },
      "message": "am 06f51ba1: am f44de270: add personality() system call.\n\n* commit \u002706f51ba1af2fafeec7fdfcba5d635bd001a31b3e\u0027:\n  add personality() system call.\n"
    },
    {
      "commit": "b6f40f0027c736af0e0a7ed08ee910caccf47792",
      "tree": "0dc7efd4c32342601ea7214e3d5fa71cd6f57288",
      "parents": [
        "697011d3c4d3bfb6b8b070ea9ac7c393b85f9f5e"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Jan 17 13:03:11 2012 -0800"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Jan 17 13:03:11 2012 -0800"
      },
      "message": "update personality.h\n\nPull in an updated version of personality.h from the linux\nkernel.\n\nThis file was generated using the following command:\n\ncd bionic/libc/kernel/\n./tools/clean_header.py -u ../../../external/kernel-headers/original/linux/personality.h\n\nChange-Id: I860ce21110ebf7e7499fb8165584d296a73aa602\n"
    },
    {
      "commit": "06f51ba1af2fafeec7fdfcba5d635bd001a31b3e",
      "tree": "f8221ac70c84c7708a97e9963aa772e83f11923f",
      "parents": [
        "82c4be54da0825ebe74b524932c9db733419057a",
        "f44de270bba32c9b1b5eff8a34be07b10ddff238"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Jan 17 11:45:25 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jan 17 11:45:25 2012 -0800"
      },
      "message": "am f44de270: add personality() system call.\n\n* commit \u0027f44de270bba32c9b1b5eff8a34be07b10ddff238\u0027:\n  add personality() system call.\n"
    },
    {
      "commit": "87043f9c89593125a27199d0c1b4069d088672d7",
      "tree": "161f017fed7022c8a8f898fd880ab3306577a9e2",
      "parents": [
        "e30e909363c5c706f394050d9cd00ce222caadbf"
      ],
      "author": {
        "name": "Jim Huang",
        "email": "jserv@0xlab.org",
        "time": "Mon Dec 12 16:32:56 2011 +0800"
      },
      "committer": {
        "name": "Jim Huang",
        "email": "jserv@0xlab.org",
        "time": "Sat Jan 14 11:30:00 2012 +0800"
      },
      "message": "res_send: Avoid spurious close()s and (rare) failure\n\nWhen looping over the current list of sockets we are connected to,\nuse getpeername() not getsockname() to find out who the remote\nend is.  This change avoids spurious close() and (rare) failure.\n\nOrigin: ISC bug #18625 and fixed in libbind 6.0\n\nChange-Id: I5e85f9ff4b98c237978e4bf4bd85ba0a90d768e6\n"
    },
    {
      "commit": "28a7c35feac8d73b94f99493534dad069afe5049",
      "tree": "6c9f36d08271a8870bf1886388bd6c9d1c025bf4",
      "parents": [
        "e30e909363c5c706f394050d9cd00ce222caadbf"
      ],
      "author": {
        "name": "Jim Huang",
        "email": "jserv@0xlab.org",
        "time": "Mon Dec 12 16:17:22 2011 +0800"
      },
      "committer": {
        "name": "Jim Huang",
        "email": "jserv@0xlab.org",
        "time": "Sat Jan 14 11:22:36 2012 +0800"
      },
      "message": "execvp: bcopy() is deprecated. Use memcpy() instead\n\nThe function bcopy() is marked as LEGACY in POSIX.1-2001 and removed in\nPOSIX.1-2008. memcpy (POSIX.1-2001) is its recommended replacement.\n\nChange-Id: I2cc0cc4673d1368255afd11132ddbfd3f87b530b\n"
    },
    {
      "commit": "f44de270bba32c9b1b5eff8a34be07b10ddff238",
      "tree": "79597af69be025eb643e495bf9a635077717cc8a",
      "parents": [
        "ecd0e95a0276c1ba72c7331f5e4617815f015f22"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Jan 13 14:03:01 2012 -0800"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Jan 13 15:50:40 2012 -0800"
      },
      "message": "add personality() system call.\n\nChange-Id: Ie899def8ea1d705930ed83adae1343c1353e7c57\n"
    },
    {
      "commit": "697011d3c4d3bfb6b8b070ea9ac7c393b85f9f5e",
      "tree": "1afa454075641951e825e30c3b2a5b8fc3a6fe29",
      "parents": [
        "c61f99056634119806916d5dfb58505d432e6732",
        "11f3d5a4319e6e37e5280cf187b3d173e1ac0adb"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Fri Jan 13 14:25:25 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 13 14:25:25 2012 -0800"
      },
      "message": "Merge \"libc: Copy private C library declarations to private/\""
    },
    {
      "commit": "c61f99056634119806916d5dfb58505d432e6732",
      "tree": "e0122e41506b805eb153c7185aa49826df0f5f31",
      "parents": [
        "e4ade69654d9026310ce7a895f14aa67947b4f31"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Dec 19 11:27:50 2011 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 13 07:41:20 2012 -0800"
      },
      "message": "Fix misspelled Python variable name and typos\n\nTypos:\n - Update pathname in README.txt\n - Fix missing newlines in header update script.\n\nChange-Id: Ib0e053f92a27ff10071b9805fa64e5653ab31b0c\n"
    },
    {
      "commit": "208898ee776117f42815c2fcb15903b2781bf0aa",
      "tree": "ad3cf092397fa7e398e37c65312e4675016a1da3",
      "parents": [
        "11f3d5a4319e6e37e5280cf187b3d173e1ac0adb"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Fri Jan 13 14:24:08 2012 +0100"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Fri Jan 13 14:24:08 2012 +0100"
      },
      "message": "libc: remove private declarations from \u003ctime.h\u003e and \u003cresolv.h\u003e\n\nThis patch is used to remove private C library declarations from the\npublic headers (that are exported to the NDK). It should *only* be\nsubmitted after all other patches modifying the users of said\nprivate functions have been submitted to the tree, to avoid\nbreakages.\n\nChange-Id: I0a5e3014f8e3ac9ed8df86a5cdae506337c23252\n"
    },
    {
      "commit": "11f3d5a4319e6e37e5280cf187b3d173e1ac0adb",
      "tree": "8c67346daa2fab7c3b2a0ab62defbfbf5a53acd5",
      "parents": [
        "68d03fdbd8eb4d0e40dcdfbfa5e6c6dd931b467a"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Fri Jan 13 13:26:50 2012 +0100"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Fri Jan 13 13:26:50 2012 +0100"
      },
      "message": "libc: Copy private C library declarations to private/\n\nThis patch is the first in a series that aims at cleaning up the\npublic C library headers (which end up being distributed with the NDK).\n\n\u003cresolv.h\u003e and \u003ctime.h\u003e contain declarations that should not be public.\nThey are used by other parts of the platform, but NDK applications should\nnot use or rely on them.\n\nSo copy them to private \u003cbionic_time.h\u003e and \u003cresolv_iface.h\u003e headers\nand use a guard macro to avoid conflicts when both headers are included\nat the same time.\n\nThe idea is that we\u0027re going to fix the other platform modules to\ninclude these private headers. After this is done, we will remove the\nduplicate definitions from \u003cresolv.h\u003e and \u003ctime.h\u003e\n\nChange-Id: I121c11936951c98ca7165e811126ed8a4a3a394d\n"
    },
    {
      "commit": "e4ade69654d9026310ce7a895f14aa67947b4f31",
      "tree": "74a187c0cc105ac86e380f5563fb86d17057c589",
      "parents": [
        "5977ee02f634964b9c6ac936c9705a182f8b506d",
        "82c4be54da0825ebe74b524932c9db733419057a"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Thu Jan 12 15:05:57 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jan 12 15:05:57 2012 -0800"
      },
      "message": "am 82c4be54: am ecd0e95a: Adding a timeout to tcp dns lookup connects.\n\n* commit \u002782c4be54da0825ebe74b524932c9db733419057a\u0027:\n  Adding a timeout to tcp dns lookup connects.\n"
    },
    {
      "commit": "82c4be54da0825ebe74b524932c9db733419057a",
      "tree": "619227d91d52cc01c295225624a1b5610c4de3fd",
      "parents": [
        "e30e909363c5c706f394050d9cd00ce222caadbf",
        "ecd0e95a0276c1ba72c7331f5e4617815f015f22"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Thu Jan 12 15:03:52 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jan 12 15:03:52 2012 -0800"
      },
      "message": "am ecd0e95a: Adding a timeout to tcp dns lookup connects.\n\n* commit \u0027ecd0e95a0276c1ba72c7331f5e4617815f015f22\u0027:\n  Adding a timeout to tcp dns lookup connects.\n"
    },
    {
      "commit": "ecd0e95a0276c1ba72c7331f5e4617815f015f22",
      "tree": "e54104270c6705bcb9fe3ca159b3ac69d852390e",
      "parents": [
        "94963af28e445384e19775a838a29e6a71708179"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Wed Jan 11 10:04:48 2012 -0800"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Thu Jan 12 14:26:41 2012 -0800"
      },
      "message": "Adding a timeout to tcp dns lookup connects.\n\nTCP isn\u0027t supported on some dns servers, which makes the old code\nhang forever.\n\nNOT adding a stopship to remove debugging stuff - it was too painful\n(14s timeout on failed tcp dns lookups) so we decided not to bother people.\n\nbug:5766949\nChange-Id: I381c20c3e11b8e994438d4f7c58ef643cd36554e\n"
    },
    {
      "commit": "68d03fdbd8eb4d0e40dcdfbfa5e6c6dd931b467a",
      "tree": "ef8b4301dea68af3d466bc4f679c732c5d40e7a3",
      "parents": [
        "6519c8124ee9f2b1ed341cc683b78cf26809678d",
        "7c0c3793722aea293c45921ef50e4adcdf9645ce"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jan 05 14:05:30 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 05 14:05:30 2012 -0800"
      },
      "message": "Merge \"implement pthread mutex deadlock detection\""
    },
    {
      "commit": "6519c8124ee9f2b1ed341cc683b78cf26809678d",
      "tree": "2dc3f350fa429f85e263ab913b534ac4dc7972ab",
      "parents": [
        "334379dadaf481785909367cfc26600514b6119c",
        "e30e909363c5c706f394050d9cd00ce222caadbf"
      ],
      "author": {
        "name": "Bruce Beare",
        "email": "bruce.j.beare@intel.com",
        "time": "Tue Jan 03 18:37:28 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jan 03 18:37:28 2012 -0800"
      },
      "message": "am e30e9093: sreadahead: adding readahead system call into bionic libc\n\n* commit \u0027e30e909363c5c706f394050d9cd00ce222caadbf\u0027:\n  sreadahead: adding readahead system call into bionic libc\n"
    },
    {
      "commit": "e30e909363c5c706f394050d9cd00ce222caadbf",
      "tree": "33dcf8fcbca380db7910ff3519cfc4cf362ab917",
      "parents": [
        "a37f3729730e4e7345977915d67adc3eea93dfe4"
      ],
      "author": {
        "name": "Bruce Beare",
        "email": "bruce.j.beare@intel.com",
        "time": "Wed Jul 13 10:23:50 2011 -0700"
      },
      "committer": {
        "name": "Bruce Beare",
        "email": "bruce.j.beare@intel.com",
        "time": "Tue Jan 03 15:18:04 2012 -0800"
      },
      "message": "sreadahead: adding readahead system call into bionic libc\n\nAdd bionic libc to support readahead system call.\nThis is needed to enable sreadahead to work.\n\nChange-Id: I3856e1a3833db82e6cf42fd34af7631bd40cc723\nAuthor: Winson Yung \u003cwinson.w.yung@intel.com\u003e\nSigned-off-by: Bruce Beare \u003cbruce.j.beare@intel.com\u003e\n"
    },
    {
      "commit": "334379dadaf481785909367cfc26600514b6119c",
      "tree": "aeb82cfa85e949e61f22204e2ce8d4879755ea5a",
      "parents": [
        "5936e36f6bc4785363d25ab6420002d6daa9cad2",
        "85aad909560508410101c18c6ecc6633df39c596"
      ],
      "author": {
        "name": "Ken Sumrall",
        "email": "ksumrall@android.com",
        "time": "Tue Dec 20 15:06:52 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Dec 20 15:06:52 2011 -0800"
      },
      "message": "Merge \"Add the posix_memalign(3) function to bionic\""
    },
    {
      "commit": "5936e36f6bc4785363d25ab6420002d6daa9cad2",
      "tree": "fd5c8bb3507380315d7b51f5510fb1cf548539a1",
      "parents": [
        "a5cb76bca00b1ce44a04687fb179809c12ea9cd3",
        "a37f3729730e4e7345977915d67adc3eea93dfe4"
      ],
      "author": {
        "name": "Bruce Beare",
        "email": "bruce.j.beare@intel.com",
        "time": "Mon Dec 19 11:36:48 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Dec 19 11:36:48 2011 -0800"
      },
      "message": "am a37f3729: readdir: fix interface to kernel getdents64 function\n\n* commit \u0027a37f3729730e4e7345977915d67adc3eea93dfe4\u0027:\n  readdir: fix interface to kernel getdents64 function\n"
    },
    {
      "commit": "a37f3729730e4e7345977915d67adc3eea93dfe4",
      "tree": "b292c186e3959bdae3a6f558eb7436f75cf01331",
      "parents": [
        "c2d5944e19863bb2d831b13893a3bb78e0d53783"
      ],
      "author": {
        "name": "Bruce Beare",
        "email": "bruce.j.beare@intel.com",
        "time": "Tue Aug 02 06:43:52 2011 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Mon Dec 19 09:38:48 2011 -0800"
      },
      "message": "readdir: fix interface to kernel getdents64 function\n\nIssue:\n  The kernel will pad the entry-\u003ed_reclen in a getdents64 call to a\n  long-word boundary.  For very long records, this could exceed the\n  size of a struct dirent. The mismatch in the size was causing error\n  paranoid checking code in bionic to fail... thus causing an early\n  \"end\" when reading the dirent structures from the kernel buffer.\n\nTest:\n ls\n mkdir abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstu\n ls\n\nChange-Id: I75d1f8e45e1655fdd7bac4a08a481d086f28073a\nAuthor: Bruce Beare \u003cbruce.j.beare@intel.com\u003e\n"
    },
    {
      "commit": "85aad909560508410101c18c6ecc6633df39c596",
      "tree": "1da341473c2090fa35afc5d22351603bd49ac79c",
      "parents": [
        "a5cb76bca00b1ce44a04687fb179809c12ea9cd3"
      ],
      "author": {
        "name": "Ken Sumrall",
        "email": "ksumrall@android.com",
        "time": "Wed Dec 14 20:50:01 2011 -0800"
      },
      "committer": {
        "name": "Ken Sumrall",
        "email": "ksumrall@android.com",
        "time": "Wed Dec 14 20:55:43 2011 -0800"
      },
      "message": "Add the posix_memalign(3) function to bionic\n\nThe posix_memalign(3) function is very similar to the traditional\nmemalign(3) function, but with better error reporting and a guarantee\nthat the memory it allocates can be freed.  In bionic, memalign(3)\nallocated memory can be freed, so posix_memalign(3) is just a wrapper\naround memalign(3).\n\nChange-Id: I62ee908aa5ba6b887d8446a00d8298d080a6a299\n"
    },
    {
      "commit": "a5cb76bca00b1ce44a04687fb179809c12ea9cd3",
      "tree": "16c42ffde3fc4b588418501465d6d1c18702395c",
      "parents": [
        "f6aa779383f5f5e61969a2b4fdb8bf435c5194b1"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed Dec 14 18:23:40 2011 +0100"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed Dec 14 18:23:40 2011 +0100"
      },
      "message": "libc: x86: Use SSE2 or SSSE3 optimized routines when possible.\n\nThis patch uses the new hardware feature macros for x86 to define\nvarious compile-time macros used to make the C library use\nSSE2 and/or SSSE3 optimized memory functions for target CPUs\nthat support these features.\n\nNote that previously, we relied on the macros being defined by\nbuild/core/combo/TARGET_linux-x86.mk, but this is no longer the\ncase.\n\nChange-Id: Ieae5ff5284c0c839bc920953fb6b91d2f2633afc\n"
    },
    {
      "commit": "ddaa771cd5de6c41df2431cb3e535232f176dbe2",
      "tree": "eac68ca979d9f3c2c8e7e11b23eb653a899434e9",
      "parents": [
        "e2bb45a7c0c45116c51a3577d6118c74f6f8007f",
        "8d28b043e93d323684add3406ebae6b8fe6475d5"
      ],
      "author": {
        "name": "Erik Gilling",
        "email": "konkers@android.com",
        "time": "Tue Dec 13 17:29:12 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Dec 13 17:29:12 2011 -0800"
      },
      "message": "am 8d28b043: am 94963af2: update video/dsscomp.h\n\n* commit \u00278d28b043e93d323684add3406ebae6b8fe6475d5\u0027:\n  update video/dsscomp.h\n"
    },
    {
      "commit": "8d28b043e93d323684add3406ebae6b8fe6475d5",
      "tree": "41ea43cb85c24f330a01963d8d1c5413eb8d45a6",
      "parents": [
        "f3087c6e86f54874538669d899d8a2ede59f7433",
        "94963af28e445384e19775a838a29e6a71708179"
      ],
      "author": {
        "name": "Erik Gilling",
        "email": "konkers@android.com",
        "time": "Tue Dec 13 16:02:50 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Dec 13 16:02:50 2011 -0800"
      },
      "message": "am 94963af2: update video/dsscomp.h\n\n* commit \u002794963af28e445384e19775a838a29e6a71708179\u0027:\n  update video/dsscomp.h\n"
    },
    {
      "commit": "94963af28e445384e19775a838a29e6a71708179",
      "tree": "3d83d0844a6a658a68c2570baf9ae017b29571dd",
      "parents": [
        "bba5c314b2420483e2c0e3e441bf54bda6935bc1"
      ],
      "author": {
        "name": "Erik Gilling",
        "email": "konkers@android.com",
        "time": "Tue Dec 13 14:48:51 2011 -0800"
      },
      "committer": {
        "name": "Erik Gilling",
        "email": "konkers@android.com",
        "time": "Tue Dec 13 14:48:51 2011 -0800"
      },
      "message": "update video/dsscomp.h\n\nChange-Id: I9da47f7fb7f34f9c4baa860bb767cb8fd4f8020c\nSigned-off-by: Erik Gilling \u003ckonkers@android.com\u003e\n"
    },
    {
      "commit": "e2bb45a7c0c45116c51a3577d6118c74f6f8007f",
      "tree": "501f7f33ced9aa002a41920856128a90a2e64001",
      "parents": [
        "cb4d9c0e1d0861358cd5e023f90c8d04cbeea1cf",
        "f3087c6e86f54874538669d899d8a2ede59f7433"
      ],
      "author": {
        "name": "Bruce Beare",
        "email": "bruce.j.beare@intel.com",
        "time": "Mon Dec 12 15:39:04 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Dec 12 15:39:04 2011 -0800"
      },
      "message": "am f3087c6e: am af96d4da: x86: libc may use the gcc flags from TARGET_linux-x86.mk\n\n* commit \u0027f3087c6e86f54874538669d899d8a2ede59f7433\u0027:\n  x86: libc may use the gcc flags from TARGET_linux-x86.mk\n"
    },
    {
      "commit": "cb4d9c0e1d0861358cd5e023f90c8d04cbeea1cf",
      "tree": "990398fc6a6ae316d20546596ba3dc4613bc5561",
      "parents": [
        "e2cb764778f62819f4e6c0b1d22a5272a9d71ba2",
        "68ec71ebd6df12596dc5688c907c76ea4b32c9b4"
      ],
      "author": {
        "name": "Bruce Beare",
        "email": "bruce.j.beare@intel.com",
        "time": "Mon Dec 12 15:30:11 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Dec 12 15:30:11 2011 -0800"
      },
      "message": "am 68ec71eb: am 7d03c9cb: pathconf: dead loop in bionic function __2_symlinks\n\n* commit \u002768ec71ebd6df12596dc5688c907c76ea4b32c9b4\u0027:\n  pathconf: dead loop in bionic function __2_symlinks\n"
    },
    {
      "commit": "61f90d189833e10c624893a8ab86d25eeb28a0b6",
      "tree": "71e6a11df5b08936f7f2d4c570e0eeef726b6c9d",
      "parents": [
        "b7590d784f55af66804ccaf58a6b2cf52993ded6",
        "ffe65783b4afc3f687a54b582a4e236caa22ed30"
      ],
      "author": {
        "name": "Erik Gilling",
        "email": "konkers@android.com",
        "time": "Mon Dec 12 12:34:57 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Dec 12 12:34:57 2011 -0800"
      },
      "message": "am ffe65783: am bba5c314: update video/dsscomp.h\n\n* commit \u0027ffe65783b4afc3f687a54b582a4e236caa22ed30\u0027:\n  update video/dsscomp.h\n"
    },
    {
      "commit": "f3087c6e86f54874538669d899d8a2ede59f7433",
      "tree": "2f2a20ce917ba7ea826f53636ad0d4a4570a18bf",
      "parents": [
        "68ec71ebd6df12596dc5688c907c76ea4b32c9b4",
        "af96d4dadc3f3d8466dbbeaf3a816e6871715fbc"
      ],
      "author": {
        "name": "Bruce Beare",
        "email": "bruce.j.beare@intel.com",
        "time": "Fri Dec 09 16:19:30 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Dec 09 16:19:30 2011 -0800"
      },
      "message": "am af96d4da: x86: libc may use the gcc flags from TARGET_linux-x86.mk\n\n* commit \u0027af96d4dadc3f3d8466dbbeaf3a816e6871715fbc\u0027:\n  x86: libc may use the gcc flags from TARGET_linux-x86.mk\n"
    },
    {
      "commit": "7c0c3793722aea293c45921ef50e4adcdf9645ce",
      "tree": "f8cf3c609929a34bbdf40d83396545f00d1fd6b5",
      "parents": [
        "022d303116f742cd337852d37547e2ea24d97a25"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias.agopian@gmail.com",
        "time": "Mon Sep 05 23:54:55 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Dec 09 14:38:57 2011 -0800"
      },
      "message": "implement pthread mutex deadlock detection\n\nthis works by building a directed graph of acquired\npthread mutexes and making sure there are no loops in\nthat graph.\n\nthis feature is enabled with:\n\n    setprop debug.libc.pthread 1\n\nwhen a potential deadlock is detected, a large warning is\noutput to the log with appropriate back traces.\n\ncurrently disabled at compile-time. set PTHREAD_DEBUG_ENABLED\u003d1\nto enable.\n\nChange-Id: I916eed2319599e8aaf8f229d3f18a8ddbec3aa8a\n"
    },
    {
      "commit": "af96d4dadc3f3d8466dbbeaf3a816e6871715fbc",
      "tree": "f5e3a6a34739c5889ea2f18e35f6b8ba6acbc747",
      "parents": [
        "7d03c9cbcedb1dc7e3a8210ac0001120558ec6df"
      ],
      "author": {
        "name": "Bruce Beare",
        "email": "bruce.j.beare@intel.com",
        "time": "Fri Dec 09 13:52:19 2011 -0800"
      },
      "committer": {
        "name": "Bruce Beare",
        "email": "bruce.j.beare@intel.com",
        "time": "Fri Dec 09 13:54:20 2011 -0800"
      },
      "message": "x86: libc may use the gcc flags from TARGET_linux-x86.mk\n\nChange-Id: Iaf4d864d4b6fe388bd3c2d7c4d7d6e42aebb0d35\nSigned-off-by: Bruce Beare \u003cbruce.j.beare@intel.com\u003e\n"
    },
    {
      "commit": "68ec71ebd6df12596dc5688c907c76ea4b32c9b4",
      "tree": "7011e4316685aa8068bddb1100203bdc14f3da5d",
      "parents": [
        "c14ea96f2f4e36f7a3b3d9676df845afb09c2245",
        "7d03c9cbcedb1dc7e3a8210ac0001120558ec6df"
      ],
      "author": {
        "name": "Bruce Beare",
        "email": "bruce.j.beare@intel.com",
        "time": "Fri Dec 09 10:19:37 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Dec 09 10:19:37 2011 -0800"
      },
      "message": "am 7d03c9cb: pathconf: dead loop in bionic function __2_symlinks\n\n* commit \u00277d03c9cbcedb1dc7e3a8210ac0001120558ec6df\u0027:\n  pathconf: dead loop in bionic function __2_symlinks\n"
    },
    {
      "commit": "ffe65783b4afc3f687a54b582a4e236caa22ed30",
      "tree": "98d21bddda93f88f6024ddba59ef135d6e12fcaf",
      "parents": [
        "c448c082cf834f95afcfa3296eba2c67780727cf",
        "bba5c314b2420483e2c0e3e441bf54bda6935bc1"
      ],
      "author": {
        "name": "Erik Gilling",
        "email": "konkers@android.com",
        "time": "Thu Dec 08 14:57:00 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Dec 08 14:57:00 2011 -0800"
      },
      "message": "am bba5c314: update video/dsscomp.h\n\n* commit \u0027bba5c314b2420483e2c0e3e441bf54bda6935bc1\u0027:\n  update video/dsscomp.h\n"
    }
  ],
  "next": "bba5c314b2420483e2c0e3e441bf54bda6935bc1"
}
