)]}'
{
  "log": [
    {
      "commit": "fa9e16efaf0e885f6044e725eb759ef6de10f7ef",
      "tree": "b2788038c17cde5a1d53c13a51d6a16868bd229f",
      "parents": [
        "0d7415fb225573c37ff9e880957cd2044dd658ce"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jun 23 17:49:45 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jun 23 17:49:45 2014 -0700"
      },
      "message": "Fix getpid caching across a clone.\n\nIf you make clone, fork, or vfork system calls directly, you\u0027re still\non your own, but we now do the right thing for the clone wrapper.\nWith this implementation, children lose the getpid caching, but we\u0027ve\nno reason to think that that covers any significant use cases.\n\nBug: 15387103\nChange-Id: Icfab6b63c708fea830960742ec92aeba8ce7680d\n"
    },
    {
      "commit": "ebc8cd117a562f387c52ed4e1aeba0fb21f33194",
      "tree": "f271f020ad489e0c6dddb6c2f4135963f8bec9bd",
      "parents": [
        "b837767a63dfc65653448cf732090d7d0b270080"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jun 06 15:18:54 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jun 06 15:18:54 2014 -0700"
      },
      "message": "Rename __bionic_clone_entry to __start_thread.\n\nThis seems a bit less obscure.\n\nChange-Id: I7dc528c253b73c861694f67556ad8f919bf92136\n"
    },
    {
      "commit": "6203e7b853a587fbd70cea2e58b63ae38a71a13e",
      "tree": "e13aad8c180100b87e7a24c2ae5292c81599d223",
      "parents": [
        "3a3b27e04df395b789b92af3d0ed05d2a0f3bf04"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri May 30 14:49:00 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri May 30 15:56:25 2014 -0700"
      },
      "message": "Add some missing __noreturn attributes.\n\nThis is more honest, and lets us remove a hack.\n\nChange-Id: I309f064743ded5248573ccafc379f78d417db08d\n"
    },
    {
      "commit": "0d236aa3f1e6d31b0c729448ae9d3ed1cad23fb4",
      "tree": "1370d62648bdbe2be69259ed593274d23851c8c6",
      "parents": [
        "8fa5c2528c04df00f9f9a3dc4047ae88d3f13524"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri May 09 14:42:16 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri May 09 17:06:51 2014 -0700"
      },
      "message": "Align the child stack in clone(2).\n\nAlso let clone(2) set the TLS for x86.\n\nAlso ensure we initialize the TLS before we clone(2) for all architectures.\n\nChange-Id: Ie5fa4466e1c9ee116a281dfedef574c5ba60c0b5\n"
    },
    {
      "commit": "954cf0d4e2669f91194b45f484152e47efa4f6c7",
      "tree": "a367f6590dcf1723983c7396a63bb6174b94b8e9",
      "parents": [
        "170daa042cb0ef3e5d7839f79d052a683b3c670f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 08 19:00:23 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 08 19:00:23 2014 -0700"
      },
      "message": "Hide the __bionic_clone and __bionic_clone_entry implementation details.\n\nclone(2) is the public symbol.\n\nAlso switch a test from __bionic_clone to clone; testing public API\nmeans the test now works on glibc too.\n\nChange-Id: If59def26a00c3afadb8a6cf9442094c35a59ffde\n"
    },
    {
      "commit": "36d6188f8cd8b948fb797f11d9620d63d0c2215a",
      "tree": "86b3162cac031151b2ae44b4d554fce4f9456147",
      "parents": [
        "318e86ed887e04e593f3db9b84b402d5501ced9b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Nov 19 13:31:58 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Nov 19 14:08:54 2013 -0800"
      },
      "message": "Clean up forking and cloning.\n\nThe kernel now maintains the pthread_internal_t::tid field for us,\nand __clone was only used in one place so let\u0027s inline it so we don\u0027t\nhave to leave such a dangerous function lying around. Also rename\nfiles to match their content and remove some useless #includes.\n\nChange-Id: I24299fb4a940e394de75f864ee36fdabbd9438f9\n"
    },
    {
      "commit": "70b24b1cc2a1a4436b1fea3f8b76616fdcb27224",
      "tree": "70c8e04ccd256eaeda3c7e516776f4c9bca25628",
      "parents": [
        "05ec00bf62ac168c9787a3d0640879ab3e502fe5"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Nov 15 11:51:07 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Nov 15 14:41:19 2013 -0800"
      },
      "message": "Switch pthread_create over to __bionic_clone.\n\nBug: 8206355\nBug: 11693195\nChange-Id: I04aadbc36c87e1b7e33324b9a930a1e441fbfed6\n"
    },
    {
      "commit": "6b53c2349a5a3fc70a475de6a66131b615e88e48",
      "tree": "3e06ca4bee68b07b1ea57cb564fed82333e997be",
      "parents": [
        "bbefbf1a75052e4c887309299fb4532705aa843d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 24 22:36:58 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 24 22:41:50 2013 -0700"
      },
      "message": "Fix the exit syscall stub\u0027s name.\n\nI\u0027ve left the exit_group syscall as _exit because otherwise we\u0027d have to\nconvince the compiler that our _exit (which just calls __exit_group) is\nactually \"noreturn\", and it seems like that would be less clean than just\ncutting out the middleman.\n\nWe\u0027ll just have to trust ourselves not to add anything to SYSCALLS.TXT\nthat ought to be private but that only has a single leading underscore.\nHopefully we can manage that.\n\nChange-Id: Iac47faea9f516186e1774381846c54cafabc4354\n"
    },
    {
      "commit": "c4c6e192ac045c06f4aad3afc8e437baf67227b7",
      "tree": "3d5177d557937711cbcf05516946cc1ce6935139",
      "parents": [
        "5d06718cd357b509588465ec1fa261db23b5899a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 08 14:48:05 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 08 14:48:05 2013 -0700"
      },
      "message": "pthread_exit should call __NR_exit with status 0.\n\nWe shouldn\u0027t have been passing the bottom 32 bits of the address used\nfor pthread_join to the kernel.\n\nChange-Id: I487e5002d60c27adba51173719213abbee0f183f\n"
    },
    {
      "commit": "40eabe24e4e3ae8ebe437f1f4e43cf39cbba2e9e",
      "tree": "19eef7fcbba616a52bd37f4c83ece3e918b25445",
      "parents": [
        "3e3b239d2be0c5a92e91385f4f10b8f7da8d2837"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 14 18:59:37 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 15 12:08:59 2013 -0800"
      },
      "message": "Fix the pthread_setname_np test.\n\nFix the pthread_setname_np test to take into account that emulator kernels are\nso old that they don\u0027t support setting the name of other threads.\n\nThe CLONE_DETACHED thread is obsolete since 2.5 kernels.\n\nRename kernel_id to tid.\n\nFix the signature of __pthread_clone.\n\nClean up the clone and pthread_setname_np implementations slightly.\n\nChange-Id: I16c2ff8845b67530544bbda9aa6618058603066d\n"
    },
    {
      "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": "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"
    }
  ]
}
