)]}'
{
  "log": [
    {
      "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": "bec5dec947b1ad097c200888365a3ec61f9e7a28",
      "tree": "ee6d8a4aa949c13c9f2e95da9936972b53ebe242",
      "parents": [
        "338a06f4bcb12c4418e66a6c3210a236259c1bf8",
        "0c3d21e63c6e75ae73aaf2b8d64af0bd8caa6beb"
      ],
      "author": {
        "name": "Jack Ren",
        "email": "jack.ren@intel.com",
        "time": "Wed Nov 30 10:50:59 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Nov 30 10:50:59 2011 -0800"
      },
      "message": "am 0c3d21e6: am e480fc83: bionic: fix pthread_{create, exit}/signal race condition\n\n* commit \u00270c3d21e63c6e75ae73aaf2b8d64af0bd8caa6beb\u0027:\n  bionic: fix pthread_{create, exit}/signal race condition\n"
    },
    {
      "commit": "338a06f4bcb12c4418e66a6c3210a236259c1bf8",
      "tree": "d1fed7584b5cde3b1234f2f84bfe4803775ca70a",
      "parents": [
        "0e0bd586319b25e6e8e797b426a0adcce7612577",
        "621df52644cc19001688c0964ad425c5ed6c8990"
      ],
      "author": {
        "name": "Jack Ren",
        "email": "jack.ren@intel.com",
        "time": "Wed Nov 30 10:50:58 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Nov 30 10:50:58 2011 -0800"
      },
      "message": "am 621df526: am 31e72bc3: bionic: fix __get_tls( ) crash issue\n\n* commit \u0027621df52644cc19001688c0964ad425c5ed6c8990\u0027:\n  bionic: fix __get_tls( ) crash issue\n"
    },
    {
      "commit": "e480fc83b2887388d469eb3bf58c86c610f5b082",
      "tree": "c595c2a61a1a4aa4d5049762a0130af7c0442437",
      "parents": [
        "31e72bc3289acdd85b0b745fbf64c5949ca33432"
      ],
      "author": {
        "name": "Jack Ren",
        "email": "jack.ren@intel.com",
        "time": "Wed Sep 21 12:44:11 2011 +0200"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Nov 29 17:09:51 2011 -0800"
      },
      "message": "bionic: fix pthread_{create, exit}/signal race condition\n\n(1) in pthread_create:\n    If the one signal is received before esp is subtracted by 16 and\n    __thread_entry( ) is called, the stack will be cleared by kernel\n    when it tries to contruct the signal stack frame. That will cause\n    that __thread_entry will get a wrong tls pointer from the stack\n    which leads to the segment fault when trying to access tls content.\n\n(2) in pthread_exit\n    After pthread_exit called system call unmap(), its stack will be\n    freed.  If one signal is received at that time, there is no stack\n    available for it.\n\nFixed by subtracting the child\u0027s esp by 16 before the clone system\ncall and by blocking signal handling before pthread_exit is started.\n\nAuthor: Jack Ren \u003cjack.ren@intel.com\u003e\nSigned-off-by: Bruce Beare \u003cbruce.j.beare@intel.com\u003e\n"
    },
    {
      "commit": "31e72bc3289acdd85b0b745fbf64c5949ca33432",
      "tree": "e67e3743e9ceeeb8afdfe25121fbe62dc1608bce",
      "parents": [
        "897815a1feff230be3ea42655a77dcbb9a8dcca9"
      ],
      "author": {
        "name": "Jack Ren",
        "email": "jack.ren@intel.com",
        "time": "Mon Aug 01 18:44:55 2011 +0800"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Nov 29 17:09:15 2011 -0800"
      },
      "message": "bionic: fix __get_tls( ) crash issue\n\nWhen running the stress test of pthread create/destroy, a crash may\noocur in __get_tls(). That is caused by the race condition with __set_tls( ):\n\nAuthor: Jack Ren \u003cjack.ren@intel.com\u003e\nSigned-off-by: Bruce Beare \u003cbruce.j.beare@intel.com\u003e\n"
    },
    {
      "commit": "de44d0b2bd32a2c2cc5e2ffb64f8356efd893bca",
      "tree": "7b83cab0619d43bef90d24e2590032759d5e1a7d",
      "parents": [
        "95a17848d3a96000f90cdbfc7ff922182f0003b3",
        "0fec6b9d88ee5a9e359b2208038f9806c0804538"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Nov 22 02:10:06 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 22 02:10:06 2011 -0800"
      },
      "message": "Merge \"libc: provide atomic operations will full barriers for NDK apps.\""
    },
    {
      "commit": "10c8ce59a40a1d8ae8f49145eca365b364aabe58",
      "tree": "5157c1d270cda4e2933a0e7fedf8b5ed6b920f96",
      "parents": [
        "4b469eae40368913b2841b390dada6c58296c602"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Nov 18 15:17:07 2011 -0800"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Nov 18 16:40:48 2011 -0800"
      },
      "message": "Add tgkill syscall.\n\nUse tgkill instead of tkill to implement pthread_kill.\nThis is safer in the event that the thread has already terminated\nand its id has been reused by a different process.\n\nChange-Id: Ied715e11d7eadeceead79f33db5e2b5722954ac9\n"
    },
    {
      "commit": "0fec6b9d88ee5a9e359b2208038f9806c0804538",
      "tree": "09eeea71b53e27010352ac913e886459f2ed6c6c",
      "parents": [
        "b38522983712432ba143c046343ba4fa01baf7c8"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed Nov 16 17:37:15 2011 +0100"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed Nov 16 17:37:15 2011 +0100"
      },
      "message": "libc: provide atomic operations will full barriers for NDK apps.\n\n__atomic_cmpxchg and other related atomic operations did not\nprovide memory barriers, which can be a problem for non-platform\ncode that links against them when it runs on multi-core devices.\n\nThis patch does two things to fix this:\n\n- It modifies the existing implementation of the functions\n  that are exported by the C library to always provide\n  full memory barriers. We need to keep them exported by\n  the C library to prevent breaking existing application\n  machine code.\n\n- It also modifies \u003csys/atomics.h\u003e to only export\n  always-inlined versions of the functions, to ensure that\n  any application code compiled against the new header will\n  not rely on the platform version of the functions.\n\n  This ensure that said machine code will run properly on\n  all multi-core devices.\n\nThis is based on the GCC built-in sync primitives.\n\nThe end result should be only slightly slower than the\nprevious implementation.\n\nNote that the platform code does not use these functions\nat all. A previous patch completely removed their usage in\nthe pthread and libstdc++ code.\n\n+ rename arch-arm/bionic/atomics_arm.S to futex_arm.S\n+ rename arch-x86/bionic/atomics_x86.S to futex_x86.S\n+ remove arch-x86/include/sys/atomics.h which already\n  provided inlined functions to the x86 platform.\n\nChange-Id: I752a594475090cf37fa926bb38209c2175dda539\n"
    },
    {
      "commit": "0aa8289c6fddda6502fa97c8789341f1462c4224",
      "tree": "20b4b4f1459278304f61d0361b86dbb0327394ac",
      "parents": [
        "7939908c8310342c8e1b717c4599273a782b3c2b"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Nov 11 15:47:24 2011 -0800"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Nov 11 17:28:59 2011 -0800"
      },
      "message": "generate PIC code.\n\nChange-Id: I6740c30e2782ae203aa7ddaeaf3b233e90de9c4d\n"
    },
    {
      "commit": "3dc94305e4eb243747248b43954c499ddc96638d",
      "tree": "d654d9c0e051ad27068c1e99da6e1a223ed7bffe",
      "parents": [
        "951e8381916464243c7601fdb41e941811aa3773",
        "17a40ffbf0e12ee44a024a9bb37434388478b478"
      ],
      "author": {
        "name": "David Turner",
        "email": "digit@android.com",
        "time": "Fri Aug 05 09:42:57 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Aug 05 09:42:57 2011 -0700"
      },
      "message": "am 17a40ffb: am c57fd963: Merge \"NDK: x86 header file has incorrect definition for ptrdiff_t\"\n\n* commit \u002717a40ffbf0e12ee44a024a9bb37434388478b478\u0027:\n  NDK: x86 header file has incorrect definition for ptrdiff_t\n"
    },
    {
      "commit": "c57fd963817afa8894af49d6c98a80d8f9100937",
      "tree": "2e901c624fcd83db159057107739d4d1c81aaffc",
      "parents": [
        "f5aa1382ec7592c58827ed0822c77cb5bf8df165",
        "c3c0e88beda2abee4380237bbc7aa95da588c00d"
      ],
      "author": {
        "name": "David Turner",
        "email": "digit@android.com",
        "time": "Fri Aug 05 09:23:29 2011 -0700"
      },
      "committer": {
        "name": "Android Code Review",
        "email": "code-review@android.com",
        "time": "Fri Aug 05 09:23:29 2011 -0700"
      },
      "message": "Merge \"NDK: x86 header file has incorrect definition for ptrdiff_t\""
    },
    {
      "commit": "c3c0e88beda2abee4380237bbc7aa95da588c00d",
      "tree": "4e041cb648a5eae4ad695215a0f0d4294493c80b",
      "parents": [
        "023c49882e247bd0345946c908cff231ebf7097e"
      ],
      "author": {
        "name": "Mark D Horn",
        "email": "mark.d.horn@intel.com",
        "time": "Thu Aug 04 17:09:39 2011 -0700"
      },
      "committer": {
        "name": "Mark D Horn",
        "email": "mark.d.horn@intel.com",
        "time": "Fri Aug 05 08:34:17 2011 -0700"
      },
      "message": "NDK: x86 header file has incorrect definition for ptrdiff_t\n\nSee Bug http://code.google.com/p/android/issues/detail?id\u003d19042\n\nChange-Id: I8e975930e7f8c3c437ecdffbc6f6bc5028937829\nSigned-off-by: Mark D Horn \u003cmark.d.horn@intel.com\u003e\n"
    },
    {
      "commit": "951e8381916464243c7601fdb41e941811aa3773",
      "tree": "6738dce0a5fc53cc37503d8e4f27a4022ff36917",
      "parents": [
        "a64990f3f25c45fcfe79b9b71cf54d7045af0e4f",
        "3906a9c16b971c2689e1b8ae5455feec8cf7353c"
      ],
      "author": {
        "name": "David Turner",
        "email": "digit@android.com",
        "time": "Fri Aug 05 08:25:35 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Aug 05 08:25:35 2011 -0700"
      },
      "message": "am 3906a9c1: am f5aa1382: Merge \"x86 libc: Fix the range to check the error\"\n\n* commit \u00273906a9c16b971c2689e1b8ae5455feec8cf7353c\u0027:\n  x86 libc: Fix the range to check the error\n"
    },
    {
      "commit": "f5aa1382ec7592c58827ed0822c77cb5bf8df165",
      "tree": "1c5fb68a7ab535feaa5e52e0a3e918250452ebd2",
      "parents": [
        "023c49882e247bd0345946c908cff231ebf7097e",
        "5288fee835a6e52d7870b3ee3320a5a3ddb96f34"
      ],
      "author": {
        "name": "David Turner",
        "email": "digit@android.com",
        "time": "Fri Aug 05 08:08:57 2011 -0700"
      },
      "committer": {
        "name": "Android Code Review",
        "email": "code-review@android.com",
        "time": "Fri Aug 05 08:08:57 2011 -0700"
      },
      "message": "Merge \"x86 libc: Fix the range to check the error\""
    },
    {
      "commit": "a64990f3f25c45fcfe79b9b71cf54d7045af0e4f",
      "tree": "db7b2c66c406b190fb471284955b467630b06a49",
      "parents": [
        "bc9d1fe7c467d861a2b7c1deafca5589c1bc309e",
        "f03fb955a92bdcc341aaa1b4a6eb2d81bc844e06"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@android.com",
        "time": "Thu Aug 04 11:13:10 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Aug 04 11:13:10 2011 -0700"
      },
      "message": "am f03fb955: am 023c4988: Merge \"libc: x86: Fixed size_t definition.\"\n\n* commit \u0027f03fb955a92bdcc341aaa1b4a6eb2d81bc844e06\u0027:\n  libc: x86: Fixed size_t definition.\n"
    },
    {
      "commit": "d265046dcc4e081bd5fc9e6eb3f38c42ab07920e",
      "tree": "0d49ac16db4867c50ab4219056ccd99c35fcef50",
      "parents": [
        "9efda5b7d0a2e8d9dc7495680d66085dc0e151f3"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@android.com",
        "time": "Thu Aug 04 14:07:00 2011 +0200"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@android.com",
        "time": "Thu Aug 04 14:07:00 2011 +0200"
      },
      "message": "libc: x86: Fixed size_t definition.\n\nThis patch changes the declaration of size_t on x86 targets\nto test for the __ANDROID__ macro, instead of ANDROID\n\n__ANDROID__ should be a builting toolchain macro, while ANDROID\nis usually added manually during the build.\n\nTesting against __ANDROID__ allows us to use the header when\nusing the NDK\u0027s standalone x86 toolchain.\n\nThis is related to http://code.google.com/p/android/issues/detail?id\u003d19011\nThe bug was already fixed in the NDK platform headers, this simply updates\nthe C library one accordingly.\n\nChange-Id: Ie038c4c8b37b7d24e2e4ae4d7a63371b69c9a51e\n"
    },
    {
      "commit": "b489666086265eb756f11fd224137c7e3a03a707",
      "tree": "f6eaf3b51b9edc6e81033ee4b5d089815a25ba20",
      "parents": [
        "d0909a874a0b4e2de1468021942c75712a4463fa",
        "1c0a0381dfb3648ffadef9537ec9383d63d62473"
      ],
      "author": {
        "name": "David Turner",
        "email": "digit@android.com",
        "time": "Thu Jun 23 05:28:13 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jun 23 05:28:13 2011 -0700"
      },
      "message": "am 1c0a0381: Merge \"Enable functional DSO object destruction\"\n\n* commit \u00271c0a0381dfb3648ffadef9537ec9383d63d62473\u0027:\n  Enable functional DSO object destruction\n"
    },
    {
      "commit": "39640842823ba4cd42bd11514c0da39aa939519f",
      "tree": "c2cddf3319145716533bc9d12ad1d6bb5c047f59",
      "parents": [
        "4d9b75a9b08c19cef81b22f889edba61257fb356"
      ],
      "author": {
        "name": "Bruce Beare",
        "email": "bruce.j.beare@intel.com",
        "time": "Mon Jun 20 10:29:50 2011 -0700"
      },
      "committer": {
        "name": "Bruce Beare",
        "email": "bruce.j.beare@intel.com",
        "time": "Mon Jun 20 14:44:44 2011 -0700"
      },
      "message": "Enable functional DSO object destruction\n\nUnfortunately, legacy .so files for ARM don\u0027t have a correct crtbegin file.\nConsequently, we have to grandfather the old __dso_handle behaviour.\nAdd some ifdefs for ARM to allow it to use the old code until we can work\nout a transition.\n\nChange-Id: I6a28f368267d792c94e1d985d8344023bc632f6f\nAuthor: H.J. Lu \u003chongjiu.lu@intel.com\u003e\nSigned-off-by: Bruce Beare \u003cbruce.j.beare@intel.com\u003e\n"
    },
    {
      "commit": "5288fee835a6e52d7870b3ee3320a5a3ddb96f34",
      "tree": "fc4873177ed29e26e020f5bed1a4d662dd9ba5cb",
      "parents": [
        "4d9b75a9b08c19cef81b22f889edba61257fb356"
      ],
      "author": {
        "name": "Jun Nakajima",
        "email": "jun.nakajima@intel.com",
        "time": "Fri Jun 17 14:37:50 2011 -0700"
      },
      "committer": {
        "name": "Jun Nakajima",
        "email": "jun.nakajima@intel.com",
        "time": "Fri Jun 17 14:37:50 2011 -0700"
      },
      "message": "x86 libc: Fix the range to check the error\n\nThe spec says \"A value in the range between -4095 to -1 indicates an error\" (not -129).\nThis was pointed out in the comment in 22039.\n\nChange-Id: I11b7c45015a9e4ccf09aed5364a889437eab6ab8\nSigned-off-by: Jun Nakajima \u003cjun.nakajima@intel.com\u003e\n"
    },
    {
      "commit": "204d1f65dbfc6d5a14a90627d9d1efcfce8261ee",
      "tree": "6a2095b5e572f934e970149f8ee5f3e7a3887244",
      "parents": [
        "a57270b6ab2978764920ade17448f94875249001",
        "b2c7e0c18b7ab04cfe306277c79165de0612a2d1"
      ],
      "author": {
        "name": "David Turner",
        "email": "digit@android.com",
        "time": "Mon Jun 06 11:32:49 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jun 06 11:32:49 2011 -0700"
      },
      "message": "am b2c7e0c1: Merge \"x86: Enable -fstack-protector\"\n\n* commit \u0027b2c7e0c18b7ab04cfe306277c79165de0612a2d1\u0027:\n  x86: Enable -fstack-protector\n"
    },
    {
      "commit": "a57270b6ab2978764920ade17448f94875249001",
      "tree": "68de63a34c4e2b3794d858e5f89c195c31dc35fb",
      "parents": [
        "5c7384fa791dafe6cdf9769c5166e683e29f189e",
        "56baceca024f1cc2a5e8ef8c5e7ba7ea463d1ae2"
      ],
      "author": {
        "name": "David Turner",
        "email": "digit@android.com",
        "time": "Mon Jun 06 11:32:38 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jun 06 11:32:38 2011 -0700"
      },
      "message": "am 56baceca: Merge \"Update X86 Bionic CRT files for unwind/exceptions\"\n\n* commit \u002756baceca024f1cc2a5e8ef8c5e7ba7ea463d1ae2\u0027:\n  Update X86 Bionic CRT files for unwind/exceptions\n"
    },
    {
      "commit": "e0b4844a20ffd022a568abb4203b3f7c759c7ff5",
      "tree": "6105d32ac5682170ae58b7a4aa141fd496135400",
      "parents": [
        "dc3bc87b43d0d73d89cca59692b80de878e11a5d"
      ],
      "author": {
        "name": "Bruce Beare",
        "email": "bruce.j.beare@intel.com",
        "time": "Tue May 03 21:04:40 2011 -0700"
      },
      "committer": {
        "name": "Bruce Beare",
        "email": "bruce.j.beare@intel.com",
        "time": "Tue May 24 13:32:14 2011 -0700"
      },
      "message": "x86: Enable -fstack-protector\n\nChange-Id: Ib69514c3afcb4c1f5e5f3f8cd91acfd145a0866c\nSigned-off-by: Bruce Beare \u003cbruce.j.beare@intel.com\u003e\n"
    },
    {
      "commit": "dc3bc87b43d0d73d89cca59692b80de878e11a5d",
      "tree": "8f67ff271139055a7dd842b11028f00b86abc4bc",
      "parents": [
        "9062a2369107eadb2b45973adc3246cba35640e6"
      ],
      "author": {
        "name": "Mark D Horn",
        "email": "mark.d.horn@intel.com",
        "time": "Tue Apr 26 14:05:30 2011 -0700"
      },
      "committer": {
        "name": "Bruce Beare",
        "email": "bruce.j.beare@intel.com",
        "time": "Tue May 24 13:31:50 2011 -0700"
      },
      "message": "Update X86 Bionic CRT files for unwind/exceptions\n\nSeveral updates to Bionic crt*.o files to implement Linux/x86\nstack unwind/exception handling.\nMark __dso_handle as hidden.\nNote: Requires complete rebuild due to CRT changes. Google will\nneed to regenerate and check-in all the prebuilt x86 CRT object\nfiles and libraries which link to them.\n\nChange-Id: I191ce1afb0dee7bbc28dcd9694e5919226dbd070\nSigned-off-by: Bruce J Beare \u003cbruce.j.beare@intel.com\u003e\nSigned-off-by: Mark D Horn \u003cmark.d.horn@intel.com\u003e\nAuthor: Lu, Hongjiu \u003chongjiu.lu@intel.com\u003e\n"
    },
    {
      "commit": "2b434862fdc595f1488f2ab3b13ed40f2aed6edb",
      "tree": "7934e5d3114a817df41b2b574bbbe59e86db346e",
      "parents": [
        "31e2feeef3dffb49ce742a6ae1c9280c792c7c49",
        "2b10d912cc5a566818ff68f9af192033d8f8b2a9"
      ],
      "author": {
        "name": "David Turner",
        "email": "digit@android.com",
        "time": "Mon Apr 11 14:46:44 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Apr 11 14:46:44 2011 -0700"
      },
      "message": "am 2b10d912: am fcee105b: Merge \"x86 libc: fix the wrong return value of syscall\"\n\n* commit \u00272b10d912cc5a566818ff68f9af192033d8f8b2a9\u0027:\n  x86 libc: fix the wrong return value of syscall\n"
    },
    {
      "commit": "8488efaa0913f8484cbfdb61180e47bc19fff5d8",
      "tree": "bd9db56eb6b7dc84e2fdb50178f23c6ac6a9b7b2",
      "parents": [
        "0e47a919f413ff14a540a0dbad873ee8f834b210"
      ],
      "author": {
        "name": "Kan-Ru Chen",
        "email": "kanru@0xlab.org",
        "time": "Tue Mar 29 12:00:38 2011 +0800"
      },
      "committer": {
        "name": "Chih-Wei Huang",
        "email": "cwhuang@linux.org.tw",
        "time": "Tue Mar 29 13:16:42 2011 +0800"
      },
      "message": "x86 libc: fix the wrong return value of syscall\n\nAccording to Intel ABI spec, there is no need to save %eax, %ecx, %edx\non the stack. Worse, popping %eax will wipe out the return value.\n\nChange-Id: Ida536c3b98174b8deef88f8f3b9352eaaeb7c0c0\n"
    },
    {
      "commit": "b130f00493f6ae3b2343e1caac002de528a45e41",
      "tree": "832506f069fca6e8eea42a49854b90c352a1761a",
      "parents": [
        "0b3c5c50f7bed92282783995bf6a7cc777fa9392",
        "ae2d5ba31412c4f382ef405000baa866f35dd736"
      ],
      "author": {
        "name": "Ken Sumrall",
        "email": "ksumrall@android.com",
        "time": "Thu Mar 24 22:31:40 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Mar 24 22:31:40 2011 -0700"
      },
      "message": "am ae2d5ba3: Add support for the utimensat(2) syscall to bionic.\n\n* commit \u0027ae2d5ba31412c4f382ef405000baa866f35dd736\u0027:\n  Add support for the utimensat(2) syscall to bionic.\n"
    },
    {
      "commit": "ae2d5ba31412c4f382ef405000baa866f35dd736",
      "tree": "54338fc3fa81d2ff665cf259570b7684c0453269",
      "parents": [
        "ec7e8cc9dddafc624cd28939c1a38ea336c89455"
      ],
      "author": {
        "name": "Ken Sumrall",
        "email": "ksumrall@android.com",
        "time": "Fri Mar 18 11:55:12 2011 -0700"
      },
      "committer": {
        "name": "Ken Sumrall",
        "email": "ksumrall@android.com",
        "time": "Thu Mar 24 18:18:48 2011 -0700"
      },
      "message": "Add support for the utimensat(2) syscall to bionic.\n\nThe kernel has supported this syscall for quite some time now,\nbut bionic did not.  Now that there is a need for it, let\u0027s\nadd it to bionic.\n\nChange-Id: Ifcef3e46f1438d79435b600c4e6063857ab16903\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": "f4680b57eda711058e7d68b3075c78b9be8dcaf0",
      "tree": "19fbdfab43d8244420b1a12aeaed3865cbfaa6f3",
      "parents": [
        "0f2001b1478ae1e10be4418e96aa20874eda3af2"
      ],
      "author": {
        "name": "Bruce Beare",
        "email": "bruce.j.beare@intel.com",
        "time": "Thu Jan 27 10:25:33 2011 -0800"
      },
      "committer": {
        "name": "Bruce Beare",
        "email": "bruce.j.beare@intel.com",
        "time": "Thu Feb 03 12:21:04 2011 -0800"
      },
      "message": "Remove an extra register move.\n\nChange-Id: I63c217b73203b44b1a2e74950b58f2ec12989cab\nAuthor: H.J. Lu \u003chjl.tools@gmail.com\u003e\nSigned-off-by: Bruce Beare \u003cbruce.j.beare@intel.com\u003e\n"
    },
    {
      "commit": "0f2001b1478ae1e10be4418e96aa20874eda3af2",
      "tree": "5b959673041e2b88165ce66d24c5ed480b20eb02",
      "parents": [
        "f6ccc15457f05d0c0ced683ffe01cd014c491fe6"
      ],
      "author": {
        "name": "Bruce Beare",
        "email": "bruce.j.beare@intel.com",
        "time": "Thu Jan 27 10:24:52 2011 -0800"
      },
      "committer": {
        "name": "Bruce Beare",
        "email": "bruce.j.beare@intel.com",
        "time": "Thu Feb 03 12:21:03 2011 -0800"
      },
      "message": "Replace __atomic_XXX with GCC __sync_XXX intrinsics.\n\nChange-Id: I14f275392fcd70cc15e307470e0a099777c7c09e\nAuthor: H.J. Lu \u003chjl.tools@gmail.com\u003e\nSigned-off-by: Bruce Beare \u003cbruce.j.beare@intel.com\u003e\n"
    },
    {
      "commit": "3c56ce497d1ea3baa6406c49be82c1245fda2443",
      "tree": "5f2dd8e41152fd9235f92ad8b3f1f4e29c6d32d2",
      "parents": [
        "ce6c1d6184b76bbaee65d91dd715c771fd1a4652"
      ],
      "author": {
        "name": "Bruce Beare",
        "email": "bruce.j.beare@intel.com",
        "time": "Sun Dec 26 09:29:57 2010 -0800"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Fri Jan 07 11:42:54 2011 -0800"
      },
      "message": "use consistent guards for off_t and size_t defines for IA\n\nChange-Id: Ie92b7597883c99e7f4101f4cf5e0ad267b4ee706\n"
    },
    {
      "commit": "ce6c1d6184b76bbaee65d91dd715c771fd1a4652",
      "tree": "b338f743da033996861171f195995fdbc31a46a4",
      "parents": [
        "64b6c43379dba176659bc1313b6bb488ac94cfd6"
      ],
      "author": {
        "name": "Bruce Beare",
        "email": "bruce.j.beare@intel.com",
        "time": "Sun Dec 26 09:28:49 2010 -0800"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Fri Jan 07 11:40:42 2011 -0800"
      },
      "message": "Simplify variable typing for IA builds\n\nChange-Id: I065e5176b3a15bd74ba832f8827b4a4e4837b0f7\n"
    },
    {
      "commit": "53c3e86fae4be95499f9f9340a26a462212bffad",
      "tree": "ba1f7b120ebdc0c96a45cdcce1163f896a7f6175",
      "parents": [
        "6042658cb550eeaefba923343462b908ec4e78f1",
        "3d302be485bc2f62a889fac85e386c9b8775eb59"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Dec 29 11:29:33 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Dec 29 11:29:33 2010 -0800"
      },
      "message": "am 3d302be4: Merge \"android-x86: add sigsetjmp.S\"\n\n* commit \u00273d302be485bc2f62a889fac85e386c9b8775eb59\u0027:\n  android-x86: add sigsetjmp.S\n"
    },
    {
      "commit": "18635d9c173120f6f97dd9b035b6f9a1ebfcd1a3",
      "tree": "3aed78b3675330e0ebf4dc2863a8bb8e020ad3b9",
      "parents": [
        "a4f6d2281f979c013080e28b1f658c2ba9a8e9f3"
      ],
      "author": {
        "name": "Chih-Wei Huang",
        "email": "cwhuang@linux.org.tw",
        "time": "Tue Dec 14 17:55:23 2010 +0800"
      },
      "committer": {
        "name": "Bruce Beare",
        "email": "bruce.j.beare@intel.com",
        "time": "Sun Dec 26 09:22:13 2010 -0800"
      },
      "message": "android-x86: add sigsetjmp.S\n\nIt adds two functions sigsetjmp and siglongjmp\nthat fix compiling errors in bluetooth and mksh.\n\nCopy directly from sigsetjmp.S of OpenBSD.\n\nChange-Id: I4696f82ee6f85d1c93cbdd3c9e40f4917d50f3a6\n"
    },
    {
      "commit": "95d751feacdb58d3fbc36f3f21a895a3ec2f065b",
      "tree": "fc598e3e60c32a6bb576e224d27f37905769f0e8",
      "parents": [
        "4a7f31fad74417696ce740b1f5c14e4de0740e33"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Thu Dec 16 16:47:14 2010 +0100"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Thu Dec 16 17:04:41 2010 +0100"
      },
      "message": "libc: Add ftruncate64 and improve 64-bit parameter syscall handling.\n\nThis patch improves the handling of 64-bit parameters in syscalls on ARM.\nThe ARM EABI mandates that 64-bit quantities be passed in even/odd register\npairs, which requires special treatment.\n\nThis allows us to simplify our implementations of pread() and pwrite()\nand remove the C stubs for pread64() and pwrite64().\n\nAlso add ftruncate64() to \u003cunistd.h\u003e\n\nChange-Id: I407e2fd223ba0093dd2d0b04c6152fadfc9ce3ef\n\nBug 3107933\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": "82775ae0acf7cac647c057c80fbcc7f13d0554d3",
      "tree": "4e09b0b6e200010ba9a69bd9c3f0c9025ebf1f81",
      "parents": [
        "5c485373563c1183db2ba02ec2aca695d1c87cc8",
        "347db52a1d9e607fe55e8e5441c238fc2500c3fb"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Fri Oct 15 12:52:21 2010 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Fri Oct 15 12:52:21 2010 -0700"
      },
      "message": "resolved conflicts for merge of 347db52a to gingerbread-plus-aosp\n\nChange-Id: I706a5158e781cbbc00344a72badca1543bcbca15\n"
    },
    {
      "commit": "124a542aa4d78040176f65b28f4958540b5d89aa",
      "tree": "217b3b90bee9b07da5fe01fe73b4c52456da4fe8",
      "parents": [
        "f67e5211e045af1b12f646448a5a35f96ba5e8f1"
      ],
      "author": {
        "name": "Bruce Beare",
        "email": "brucex.j.beare@intel.com",
        "time": "Mon Oct 11 12:24:41 2010 -0700"
      },
      "committer": {
        "name": "Bruce Beare",
        "email": "brucex.j.beare@intel.com",
        "time": "Mon Oct 11 12:33:58 2010 -0700"
      },
      "message": "Update ATOM string routines to latest\n\nChange-Id: I22a600e7f172681cfd38ff73a64e3fd07b284959\nSigned-off-by: Lu, Hongjiu \u003chongjiu.lu@intel.com\u003e\nSigned-off-by: Bruce Beare \u003cbruce.j.beare@intel.com\u003e\n"
    },
    {
      "commit": "686af0b3a5978356be3b1a97187c765d63f11623",
      "tree": "f0fcad6936e22c50d5fadb314efc8b3388e6b0db",
      "parents": [
        "a511f245614d8e6c7700df624e13a41a084ad7e4",
        "defd162212de3789d2268a1f3339c2a6097fa825"
      ],
      "author": {
        "name": "repo sync",
        "email": "digit@google.com",
        "time": "Tue Sep 28 12:23:55 2010 +0200"
      },
      "committer": {
        "name": "repo sync",
        "email": "digit@google.com",
        "time": "Tue Sep 28 12:23:55 2010 +0200"
      },
      "message": "resolved conflicts for merge of defd1622 to gingerbread-plus-aosp\n\nConflicts:\n\tlibc/arch-arm/syscalls/eventfd.S\n\tlibc/include/sys/eventfd.h\n\tlibc/include/sys/linux-syscalls.h\n\nChange-Id: I02f6e9536aa5478322240c199ff4c2f4367922d0\n"
    },
    {
      "commit": "a511f245614d8e6c7700df624e13a41a084ad7e4",
      "tree": "ea2494e096f62afc3234c29f6b5107b08bb56987",
      "parents": [
        "052fbd88080c88b7f568612dcac7579092c2e3d9",
        "9973a564222b842eb7497fd6e659fe8c8c49e2b3"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Sep 28 00:22:25 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Sep 28 00:22:25 2010 -0700"
      },
      "message": "am 9973a564: libc: Add missing waitid() implementation.\n\nMerge commit \u00279973a564222b842eb7497fd6e659fe8c8c49e2b3\u0027 into gingerbread-plus-aosp\n\n* commit \u00279973a564222b842eb7497fd6e659fe8c8c49e2b3\u0027:\n  libc: Add missing waitid() implementation.\n"
    },
    {
      "commit": "defd162212de3789d2268a1f3339c2a6097fa825",
      "tree": "35242a10fe8453224718e9da6db3b44f58d8aa15",
      "parents": [
        "9973a564222b842eb7497fd6e659fe8c8c49e2b3"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Sun Sep 26 22:29:14 2010 +0200"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Sep 28 09:20:37 2010 +0200"
      },
      "message": "libc: add \u003csys/eventfd.h\u003e and corresponding implementations.\n\nChange-Id: Ide040884c456190226e580513099fdb8377e015b\n"
    },
    {
      "commit": "052fbd88080c88b7f568612dcac7579092c2e3d9",
      "tree": "820b5f544a242380a10edf7878d1b76ceb2192de",
      "parents": [
        "5b5212b457f7308f9d7d4011c02af71ef1cad9c4",
        "a3ae60d343661784e3f6f4566b276d8e6b8a06a7"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Sep 28 00:19:31 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Sep 28 00:19:31 2010 -0700"
      },
      "message": "am a3ae60d3: libc: Add missing fdatasync() implementation\n\nMerge commit \u0027a3ae60d343661784e3f6f4566b276d8e6b8a06a7\u0027 into gingerbread-plus-aosp\n\n* commit \u0027a3ae60d343661784e3f6f4566b276d8e6b8a06a7\u0027:\n  libc: Add missing fdatasync() implementation\n"
    },
    {
      "commit": "9973a564222b842eb7497fd6e659fe8c8c49e2b3",
      "tree": "e1a716e1850f15d9245b82affa0b0e7688b0c782",
      "parents": [
        "a3ae60d343661784e3f6f4566b276d8e6b8a06a7"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Sep 27 17:30:33 2010 +0200"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Sep 28 09:18:26 2010 +0200"
      },
      "message": "libc: Add missing waitid() implementation.\n\nChange-Id: I312ee608dbf9249e4886a10d45d13e3cda8a9042\n"
    },
    {
      "commit": "a3ae60d343661784e3f6f4566b276d8e6b8a06a7",
      "tree": "08c1d005960477585df8fd5e0a14b421f4767643",
      "parents": [
        "307aadb8473744c3d946add8b3e4947ada5481aa"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Sep 27 17:28:38 2010 +0200"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Sep 28 09:17:17 2010 +0200"
      },
      "message": "libc: Add missing fdatasync() implementation\n\nChange-Id: I04bb655d77e414021e1f2a973329167ad76ca1c4\n"
    },
    {
      "commit": "914528cdc90dced0c07055d4d986e68adc8da60c",
      "tree": "6739765fe1982a136211499d68b374667c8b4325",
      "parents": [
        "134f31e234128a90ee74d76f48ca12e1bfd080e7",
        "223ddfcfc4cb354641e70da31a60556248db5036"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Sep 28 00:13:48 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Sep 28 00:13:48 2010 -0700"
      },
      "message": "am 223ddfcf: Merge \"libc: Add missing pipe2() declaration and implementation.\" into gingerbread\n\nMerge commit \u0027223ddfcfc4cb354641e70da31a60556248db5036\u0027 into gingerbread-plus-aosp\n\n* commit \u0027223ddfcfc4cb354641e70da31a60556248db5036\u0027:\n  libc: Add missing pipe2() declaration and implementation.\n"
    },
    {
      "commit": "275cd48511daabe4591caa49c3ad0df34a6889ff",
      "tree": "7fa40917d92ff25cbfe6e4f4d4cbe01bd9af588e",
      "parents": [
        "b9e49ad56e5776ace7c6eab2e997d5b7acb16792"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Sep 27 17:33:08 2010 +0200"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Sep 27 17:33:08 2010 +0200"
      },
      "message": "libc: Add missing pipe2() declaration and implementation.\n\nChange-Id: Iacb914bd6ac5adc60c5671e6fef680ede21f9b0c\n"
    },
    {
      "commit": "611793d6abcf504544d6ebccb8c46da06464b701",
      "tree": "5ff851ee3dca32f3d8c4c17e3ba15e4d1796fb5e",
      "parents": [
        "ea5adb571e664e5d0444230169062baaa996686f",
        "16984423bc67cd334d74b585bac2c01e44583624"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Jul 09 10:47:23 2010 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Jul 09 10:47:23 2010 -0700"
      },
      "message": "merge from open-source master\n\nChange-Id: Ia22080192681c2ac596582d6cfdac732b1ff4c9f\n"
    },
    {
      "commit": "ab8b54101eed0a4b92ebf8fa6994cd1b4f22d8f4",
      "tree": "938dc20fe75d7fcedb7c11c7c44f68aa783463e7",
      "parents": [
        "d466780c7cedb41edcf13f28ad900556c6aaa5b2"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Thu Jul 08 16:52:27 2010 -0700"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Thu Jul 08 16:52:27 2010 -0700"
      },
      "message": "libc: fix fstatfs() implementation.\n\nThe syscall expects the size of the buffer as the second argument.\n\nChange-Id: I99ede2fec7fcd385ca03ff022c2cffa4297bea8d\n"
    },
    {
      "commit": "16984423bc67cd334d74b585bac2c01e44583624",
      "tree": "8fd5c4ec23fbbe60c0b13322fa48825d61eb4b28",
      "parents": [
        "6fce15cea1145c0359b7103305e215e3e2d1b548"
      ],
      "author": {
        "name": "Bruce Beare",
        "email": "brucex.j.beare@intel.com",
        "time": "Fri Jun 25 09:02:10 2010 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Jul 08 11:12:36 2010 -0700"
      },
      "message": "Fix missing NL\n\nChange-Id: Ic210fe9f740b9a8235a66d479ad4eddc869998bb\nSigned-off-by: Bruce Beare \u003cbrucex.j.beare@intel.com\u003e\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": "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": "aa4b1d042927872224e4bf5d22e4db5367e389fa",
      "tree": "de40a80b8f9d1d2dd6a75b45901927378a1aed45",
      "parents": [
        "6304d8b21891fd0cb7b5a4c25159a3d3b1709d62"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Thu May 20 10:55:45 2010 -0700"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed Jun 09 13:12:15 2010 -0700"
      },
      "message": "Add missing sysinfo() implementation (already declared in \u003csys/sysinfo.h\u003e) - DO NOT MERGE\n\nChange-Id: Iac4eb5911ffe4a7ab72b84df44e907685ac816af\n"
    },
    {
      "commit": "5ffedb22c856ae5731324b43832ab3f5309683f2",
      "tree": "c4b4d5c3cd96ca9c347d2ba9fed98c4d9be5e43e",
      "parents": [
        "62ac0dc457bddf7472f7be1e9895b1aee20f35cf",
        "8ab5b02b5f58d9b2f050a98b189284a3d6263d7b"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Mar 31 14:15:30 2010 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Mar 31 14:15:30 2010 -0700"
      },
      "message": "merge from open-source master\n\nChange-Id: I076e0df8656fdf58c229cc9a168cd6d8e16b6d8e\n"
    },
    {
      "commit": "87ae0da81716d61f556b1ee456a6764a1f635e55",
      "tree": "ee134838e961e5a90f01bb2bc30548f35f00951d",
      "parents": [
        "58f0326362ca0f5fc17cbc19fd9217cabf0d93dd",
        "8ff1a2759a6389bed30d7862d0beb76077032c99"
      ],
      "author": {
        "name": "David Turner",
        "email": "digit@android.com",
        "time": "Mon Mar 29 14:40:05 2010 -0700"
      },
      "committer": {
        "name": "Android Code Review",
        "email": "code-review@android.com",
        "time": "Mon Mar 29 14:40:05 2010 -0700"
      },
      "message": "Merge \"Atom optimized string and memory routines\""
    },
    {
      "commit": "62ac0dc457bddf7472f7be1e9895b1aee20f35cf",
      "tree": "a64eeb5831341d6f51c2f64af2335fc3a8a0e600",
      "parents": [
        "7e0bfb511e85834d7c6cb9631206b62f82701d60",
        "58f0326362ca0f5fc17cbc19fd9217cabf0d93dd"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Mar 29 11:01:59 2010 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Mar 29 11:01:59 2010 -0700"
      },
      "message": "merge from open-source master\n\nChange-Id: I96d2cd063f084fd17116bf7ee08fa7109a3c1ceb\n"
    },
    {
      "commit": "8ff1a2759a6389bed30d7862d0beb76077032c99",
      "tree": "7be1e8b794d09c84b52a40d08eac6dfffbf3d252",
      "parents": [
        "1825fb5d5f214849e39d95660795a0d3633f8eeb"
      ],
      "author": {
        "name": "Bruce Beare",
        "email": "brucex.j.beare@intel.com",
        "time": "Thu Mar 04 11:03:37 2010 -0800"
      },
      "committer": {
        "name": "Bruce Beare",
        "email": "brucex.j.beare@intel.com",
        "time": "Fri Mar 26 10:54:07 2010 -0700"
      },
      "message": "Atom optimized string and memory routines\n\nChange-Id: I27b68bb28551c75c9ac84bb9730e2cd8254d8991\n"
    },
    {
      "commit": "58f0326362ca0f5fc17cbc19fd9217cabf0d93dd",
      "tree": "fd4b6450243770a37214f83ded426cfca3fab259",
      "parents": [
        "1825fb5d5f214849e39d95660795a0d3633f8eeb"
      ],
      "author": {
        "name": "Bruce Beare",
        "email": "brucex.j.beare@intel.com",
        "time": "Wed Mar 10 15:52:42 2010 -0800"
      },
      "committer": {
        "name": "Bruce Beare",
        "email": "brucex.j.beare@intel.com",
        "time": "Fri Mar 26 09:36:01 2010 -0700"
      },
      "message": "Android hack for size_t\n\nChange-Id: I3c967fca60f542459dc17be84da47b3b6a26242b\n"
    },
    {
      "commit": "377d4c979dee3dcb5929e8f7a68a53c2407259ab",
      "tree": "1783fe0272f1437faabfe8365e615696eb8d374c",
      "parents": [
        "709a898de82128c065381e258e8e71f0a55df976",
        "1825fb5d5f214849e39d95660795a0d3633f8eeb"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Mar 22 15:55:09 2010 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Mar 22 15:55:09 2010 -0700"
      },
      "message": "merge from open-source master\n\nChange-Id: I70266ee8c520b216773f267e46c8273d2334c31d\n"
    },
    {
      "commit": "88f06cd84a70f8a5212cb03272ec2c7cf0017afa",
      "tree": "4ff0a88177cd5fb2ca9c0e6df9a331cea7ecad1c",
      "parents": [
        "ee7b077abf1d99503b986489ad93374a057cb354"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Thu Mar 18 17:13:41 2010 -0700"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Thu Mar 18 17:13:41 2010 -0700"
      },
      "message": "Use private futexes for pthread_mutex_t.\n\nThis does not change the implementation of conditional variables\nsince we\u0027re waiting for other system components to properly use\npthread_condattr_init/setpshared before that.\n\nAlso remove an obsolete x86 source file.\n\nChange-Id: Ia3e3fbac35b87a534fb04d4381c3c66b975bc8f7\n"
    },
    {
      "commit": "8641833b62e3b319796dc80ea16eb1592c05edf6",
      "tree": "f0b9b778513da0e049ce1b4c706ae5000848d7c1",
      "parents": [
        "ba9c6f0989ae94778ba2b9f597adc827c9dc81e8"
      ],
      "author": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Thu Mar 11 14:47:47 2010 -0800"
      },
      "committer": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Thu Mar 11 14:47:47 2010 -0800"
      },
      "message": "Revert \"bionic: pthread: use private futexes by default for mutexes and condvars\"\n\nThis reverts commit ba9c6f0989ae94778ba2b9f597adc827c9dc81e8.\n"
    },
    {
      "commit": "ba9c6f0989ae94778ba2b9f597adc827c9dc81e8",
      "tree": "2376f2a87f6ac304bd93beca7c8139b890a6227f",
      "parents": [
        "1cfbda826ce66e9bd1507a31b7e6df62e0dbcc6e"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed Mar 10 16:44:08 2010 -0800"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Thu Mar 11 11:48:38 2010 -0800"
      },
      "message": "bionic: pthread: use private futexes by default for mutexes and condvars\n\nPrivate futexes are a recent kernel addition: faster futexes that cannot be\nshared between processes. This patch uses them by default, unless the PROCESS_SHARED\nattribute flag is used when creating a mutex and/or conditional variable.\n\nAlso introduces pthread_condattr_init/destroy/setpshared/getpshared.\n\nChange-Id: I3a0e2116f467072b046524cb5babc00e41057a53\n"
    },
    {
      "commit": "3c543e1da9a2780a70b25299f39734bf0a18c4a0",
      "tree": "07780890d546321d9426758f629f5a951b5a2eeb",
      "parents": [
        "58060c50bc4228a7d0253338cae0437211759959"
      ],
      "author": {
        "name": "Bruce Beare",
        "email": "brucex.j.beare@intel.com",
        "time": "Thu Mar 04 10:29:38 2010 -0800"
      },
      "committer": {
        "name": "Bruce Beare",
        "email": "brucex.j.beare@intel.com",
        "time": "Thu Mar 04 10:29:38 2010 -0800"
      },
      "message": "x86 syscall system call implementation\n"
    },
    {
      "commit": "9f6915631b918a56e0e6be958fb14d274cbab322",
      "tree": "5d3b311f885dd053f4b816f69e8961ee21c37938",
      "parents": [
        "bd9a90c443ee4582d2be1a68c6f3a2928d130ce4"
      ],
      "author": {
        "name": "Mike Chan",
        "email": "mike@android.com",
        "time": "Tue Mar 02 10:55:58 2010 -0800"
      },
      "committer": {
        "name": "Mike Chan",
        "email": "mike@android.com",
        "time": "Tue Mar 02 18:18:04 2010 -0800"
      },
      "message": "bonic: libc: cpuacct support for setuid functions\n\nAny of the setuid functions now updates /acct/uid/ with its own tid\nbefore changing users. This is so we can properly account for cpu time\nper uid.\n\nChange-Id: I34186cf4d5228cac8439e582a9e26c01ef3011e4\nSigned-off-by: Mike Chan \u003cmike@android.com\u003e\n"
    },
    {
      "commit": "eb9d5ed3477ef8cd9ccfa424ea585541ea3af84a",
      "tree": "57860bc44d54d743b05f8a7680267170af3f3069",
      "parents": [
        "8f8b5310d2c3fe8782377bd66b65ed14dc6511a4"
      ],
      "author": {
        "name": "Andrei Popescu",
        "email": "andreip@google.com",
        "time": "Thu Feb 25 13:27:46 2010 +0000"
      },
      "committer": {
        "name": "Andrei Popescu",
        "email": "andreip@google.com",
        "time": "Tue Mar 02 11:43:24 2010 +0000"
      },
      "message": "add sigaltstack syscall\n"
    },
    {
      "commit": "75c5e25ae3615c34f4bcc7dcbe9b29e548e26b9c",
      "tree": "a5e9210444c3974d51c8e24d2ad0b6c256c0cbf6",
      "parents": [
        "b55462328f7f7468bb8c0cb44ad1069af30415a3"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Tue Feb 23 15:55:29 2010 -0800"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Tue Feb 23 15:55:29 2010 -0800"
      },
      "message": "bionic: syscalls: Add ioprio_set/ioprio_get syscall wrappers\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "97cf7f3394780d524038fc083e2c134031b54728",
      "tree": "40b61956bbe4d28babe839c3be40e9f114810e5f",
      "parents": [
        "1a2917ca954f575cc9698c99e54bd93087793c8f"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Fri Jan 22 18:59:05 2010 -0800"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Jan 25 11:18:30 2010 -0800"
      },
      "message": "Implement clone() C library function properly.\n\nOnly provide an implementation for ARM at the moment, since\nit requires specific assembly fragments (the standard syscall\nstubs cannot be used because the child returns in a different\nstack).\n"
    },
    {
      "commit": "3a654b1e04d4275ae315cfe1b196998acf10052c",
      "tree": "79ce08ac573c6c5bd7d7a65f7fdc24237c00452a",
      "parents": [
        "03eabfe65e1e2c36f4d26c78a730fa19a3bdada3"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed Jun 03 19:32:37 2009 +0200"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed Jun 03 19:32:37 2009 +0200"
      },
      "message": "Revert \"Fix the C library initialization to avoid calling static C++ constructors twice.\"\n\nThis reverts commit 03eabfe65e1e2c36f4d26c78a730fa19a3bdada3.\n"
    },
    {
      "commit": "03eabfe65e1e2c36f4d26c78a730fa19a3bdada3",
      "tree": "b965ea27e54b0833639227c619f6e35647c92510",
      "parents": [
        "0353195f344666256dba474a15c9ba22cf0cccc9"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Thu May 28 15:54:03 2009 +0200"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Jun 02 23:27:44 2009 +0200"
      },
      "message": "Fix the C library initialization to avoid calling static C++ constructors twice.\n\nThe problem was due to the fact that, in the case of dynamic executables,\nthe dynamic linker calls the DT_PREINIT_ARRAY, DT_INIT and DT_INIT_ARRAY\nconstructors when loading shared libraries and dynamic executables,\n*before* calling the executable\u0027s entry point (i.e. arch-$ARCH/bionic/crtbegin_dynamic.c)\nwhich in turns call __libc_init() in libc.so, as defined by bionic/libc_init_dynamic.c\n\nThe latter did call these constructors array again, mistakenly.\n\nThe patch also updates the documentation of many related functions.\n\nAlso adds a new section to linker/README.TXT explaining restrictions on\nC library usage.\n\nThe patch has been tested on a Dream for stability issues with\nproprietary blobs:\n\n- H264 decoding works\n- Camera + Video recording works\n- GPS works\n- Sensors work\n\nThe tests in system/extra/tests/bionic/libc/common/test_static_cpp_mutex.cpp has been\nrun and shows the static C++ constructor being called only once.\n"
    },
    {
      "commit": "1dc9e472e19acfe6dc7f41e429236e7eef7ceda1",
      "tree": "3be0c520fae17689bbf5584e1136fb820caef26f",
      "parents": [
        "1767f908af327fa388b1c66883760ad851267013"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 19:28:35 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 19:28:35 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@135843\n"
    },
    {
      "commit": "1767f908af327fa388b1c66883760ad851267013",
      "tree": "4b825dc642cb6eb9a060e54bf8d69288fbee4904",
      "parents": [
        "a799b53f10e5a6fd51fef4436cfb7ec99836a516"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 18:28:13 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 18:28:13 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@135843\n"
    },
    {
      "commit": "4e468ed2eb86a2406e14f1eca82072ee501d05fd",
      "tree": "4e05b3c66eef86531e464521a3bf96a1864d4bf5",
      "parents": [
        "a27d2baa0c1a2ec70f47ea9199b1dd6762c8a349"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Dec 17 18:03:48 2008 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Dec 17 18:03:48 2008 -0800"
      },
      "message": "Code drop from //branches/cupcake/...@124589\n"
    },
    {
      "commit": "a27d2baa0c1a2ec70f47ea9199b1dd6762c8a349",
      "tree": "defd1cc07d16ad2f3b21154114e092d11c94c5bb",
      "parents": [],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Oct 21 07:00:00 2008 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Oct 21 07:00:00 2008 -0700"
      },
      "message": "Initial Contribution\n"
    }
  ]
}
