)]}'
{
  "log": [
    {
      "commit": "22d366cc09383956dc264ed4641572e609392eee",
      "tree": "8364d1dc738a464cc40bf1ccdaa13ab885f71934",
      "parents": [
        "e1cd69a708d30fbc3b9e0e8d4db67f67fc123b65"
      ],
      "author": {
        "name": "Jin Wei",
        "email": "wei.a.jin@intel.com",
        "time": "Wed Aug 08 15:15:16 2012 +0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 15 17:04:50 2012 -0700"
      },
      "message": "enable clone system call for x86\n\nAdd __bionic_clone function for x86, which will be\nused for clone system call.\n\nChange-Id: I889dc9bf4b7ebb4358476e17e6f3233e26491f4d\nSigned-off-by: Jin Wei \u003cwei.a.jin@intel.com\u003e\nSigned-off-by: Xiaokang Qin \u003cxiaokang.qin@intel.com\u003e\nSigned-off-by: Beare, Bruce J \u003cbruce.j.beare@intel.com\u003e\nSigned-off-by: Jack Ren \u003cjack.ren@intel.com\u003e\nAuthor-tracking-BZ: 51414\n"
    },
    {
      "commit": "cb08204053a285951b1907ef14a832f16a1a4679",
      "tree": "772348f2f3c36865486c8c8a6f380db21c7b647e",
      "parents": [
        "73b5cad989da317cc8089b57ee25f502b1cac71f"
      ],
      "author": {
        "name": "Jack Ren",
        "email": "jack.ren@intel.com",
        "time": "Wed Mar 21 17:48:13 2012 +0800"
      },
      "committer": {
        "name": "Jack Ren",
        "email": "jack.ren@intel.com",
        "time": "Fri Mar 23 20:04:04 2012 +0800"
      },
      "message": "libc/x86: ensure the stack 16-byte aligned when tasks created\n\nCurrently Renderscript sample code RsBalls crashed on x86 when SSE2\nenabled. The root cause is that the stack was not 16-byte aligned\nfrom the beginning when the processes/threads were created, so the\nRsBalls crashed when SSE2 instructions tried to access the variables\non the stack.\n\n- For the thread created by fork():\nIts stack alignment is determined by crtbegin_{dynamic, static}.S\n\n- For the thread created by pthread_create():\nIts stack alignment is determined by clone.S. __thread_entry( ) is\na standard C function. In order to have its stack be aligned with\n16 byte properly, __thread_entry() needs the stack with following\nlayout when it is called:\nlayout #1 (correct)\n--------------\n|            |\n-------------- \u003c--ESP (ECX - 20)\n| ret EIP    |\n-------------- \u003c--ECX - 16\n| arg0       |\n-------------- \u003c--ECX - 12\n| arg1       |\n-------------- \u003c--ECX - 8\n| arg2       |\n-------------- \u003c--ECX - 4\n| unused     |\n-------------- \u003c--ECX (16-byte boundary)\n\nBut it has following layout for now:\nlayout #2: (incorrect)\n--------------\n|            |\n-------------- \u003c--ESP (ECX - 16)\n| unused     |\n-------------- \u003c--ECX - 12\n| arg0       |\n-------------- \u003c--ECX - 8\n| arg1       |\n-------------- \u003c--ECX - 4\n| arg2       |\n-------------- \u003c--ECX (16-byte boundary)\n\nFixed in this patch.\n\nChange-Id: Ibe01f64db14be14033c505d854c73033556ddaa8\nSigned-off-by: Michael Liao \u003cmichael.liao@intel.com\u003e\nSigned-off-by: H.J. Lu \u003chongjiu.lu@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": "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": "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": "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": "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": "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"
    }
  ]
}
