)]}'
{
  "log": [
    {
      "commit": "646e058136d59671d5d32d93bedbb71004a9ce73",
      "tree": "354d30a60436bb8a093faf72b56ad2b96abb55b6",
      "parents": [
        "2f41531ff9f48dbdaf2ba711e14c669031728e99"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 07 12:16:10 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 07 12:16:10 2013 -0800"
      },
      "message": "Fix x86 build, remove void* arithmetic.\n\nChange-Id: Idc7f14af2e094ac33de315e808176237af063bb8\n"
    },
    {
      "commit": "2f41531ff9f48dbdaf2ba711e14c669031728e99",
      "tree": "ae8b9be038220ed0d4cba96453560676d8bd4699",
      "parents": [
        "d4187efd7f9c30ffaff4738862e3d08be27a52e9",
        "42b2c6a5eed5e4ef35315b8cd32d1355f12a69b6"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 07 19:48:16 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 07 19:48:17 2013 +0000"
      },
      "message": "Merge \"Clean up the argc/argv/envp/auxv handling.\""
    },
    {
      "commit": "42b2c6a5eed5e4ef35315b8cd32d1355f12a69b6",
      "tree": "0fb55a369b620ef79cfa103f67a5184f067dadeb",
      "parents": [
        "d32fdbaf03f688497adbec885e85c0a69f7a4542"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 07 10:14:39 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 07 11:44:21 2013 -0800"
      },
      "message": "Clean up the argc/argv/envp/auxv handling.\n\nThere\u0027s now only one place where we deal with this stuff, it only needs to\nbe parsed once by the dynamic linker (rather than by each recipient), and it\u0027s\nnow easier for us to get hold of auxv data early on.\n\nChange-Id: I6314224257c736547aac2e2a650e66f2ea53bef5\n"
    },
    {
      "commit": "7582a9c119a4e4d0c306996b2513205889a9fb6c",
      "tree": "44c9126902c7477c5f260323a07a775725c22f55",
      "parents": [
        "d32fdbaf03f688497adbec885e85c0a69f7a4542"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 06 17:08:15 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 06 17:08:15 2013 -0800"
      },
      "message": "Switch x86 syscall stubs over to the ENTER/END style of the ARM stubs.\n\nAlso update the x86 asm.h to support this; we need it for libm assembler\nanyway.\n\nAlso clean up the _FBSDID hack in \u003csys/cdefs.h\u003e.\n\nChange-Id: Iababd977b8110ec022bf7c93f4d62ece47630e7c\n"
    },
    {
      "commit": "a0ee07829a9ba7e99ef68e8c12551301cc797f0f",
      "tree": "fefc432ee572779579a16d2868d4181a33399281",
      "parents": [
        "a990cf5b3392c5aef767aee1e67b4d7ef651afc6"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 30 19:06:37 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 01 14:51:19 2013 -0800"
      },
      "message": "Upgrade libm.\n\nThis brings us up to date with FreeBSD HEAD, fixes various bugs, unifies\nthe set of functions we support on ARM, MIPS, and x86, fixes \"long double\",\nadds ISO C99 support, and adds basic unit tests.\n\nIt turns out that our \"long double\" functions have always been broken\nfor non-normal numbers. This patch fixes that by not using the upstream\nimplementations and just forwarding to the regular \"double\" implementation\ninstead (since \"long double\" on Android is just \"double\" anyway, which is\nwhat BSD doesn\u0027t support).\n\nAll the tests pass on ARM, MIPS, and x86, plus glibc on x86-64.\n\nBug: 3169850\nBug: 8012787\nBug: https://code.google.com/p/android/issues/detail?id\u003d6697\nChange-Id: If0c343030959c24bfc50d4d21c9530052c581837\n"
    },
    {
      "commit": "a6a3ac59243d8c95c94c3069e9332051f785c05f",
      "tree": "1a8567d1852f147f346240ac6f8187f9e9b526c3",
      "parents": [
        "3db2fc5acb4894a2cb22533b165a0de1bbafc3f6"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 29 15:02:50 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 29 15:02:50 2013 -0800"
      },
      "message": "Use the NetBSD \u003csys/exec_elf.h\u003e.\n\nReplace a kernel header file dependency with files from NetBSD.\nThey\u0027re more complete, and ELF is ELF, whether you\u0027re on Linux or a BSD.\n\nBug: 7973611\nChange-Id: I83ee719e7efdf432ec2ddbe8be271d05b2f558d7\n"
    },
    {
      "commit": "a4b2dc016fa62bd172a73c3f8971c805700ffb0f",
      "tree": "e4fdfa1397187776c680825a805ae3672c27c052",
      "parents": [
        "364d9ee62f583bca795a2b40f71a04e272c80389"
      ],
      "author": {
        "name": "Rom Lemarchand",
        "email": "romlem@google.com",
        "time": "Wed Jan 09 15:46:06 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 10 13:14:46 2013 -0800"
      },
      "message": "Add signalfd call to bionic\n\nAdd signalfd() call to bionic.\n\nAdding the signalfd call was done in 3 steps:\n- add signalfd4 system call (function name and syscall\n  number) to libc/SYSCALLS.TXT\n- generate all necessary headers by calling\n  libc/tools/gensyscalls.py. This patch is adding\n  the generated files since the build system\n  does not call gensyscalls.py.\n- create the signalfd wrapper in signalfd.cpp and add\n  the function prototype to sys/signalfd.h\n\n(cherry-pick of 0c11611c11f4dc1b6d43587b72c3ccbe8c51a51c, modified to\nwork with older versions of GCC still in use on some branches.)\n\nChange-Id: I4c6c3f12199559af8be63f93a5336851b7e63355\n"
    },
    {
      "commit": "4fa35d8ae80c175425e9525831d7b6a71a3ada60",
      "tree": "aa349c2c944131991af7fcbcd91b1ab54c9c6b4e",
      "parents": [
        "0521ff8234cafcc61060961b2f856fcf4dae1e7d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Dec 11 16:14:54 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Dec 11 16:17:33 2012 -0800"
      },
      "message": "Fix \u003cendian.h\u003e and \u003csys/endian.h\u003e.\n\nPreviously we\u0027d been relying on getting the machine-specific \u003cendian.h\u003e\ninstead of the top-level \u003cendian.h\u003e, and \u003csys/endian.h\u003e was basically broken.\nNow, with this patch and the previous patch we should have \u003cendian.h\u003e\nand \u003csys/endian.h\u003e behaving the same. This is basically how NetBSD\u0027s endian.h\nworks, and was probably how ours was originally intended to work.\n\nBug: http://code.google.com/p/android/issues/detail?id\u003d39824\nChange-Id: I71de5a507e633de166013a658b5764df9e1aa09c\n"
    },
    {
      "commit": "97b70b2bda47af46adf58dfde61050357114aa1f",
      "tree": "b9158b242f0beaacf3c9f6eb72fcc818cc812b87",
      "parents": [
        "07c0b73a7fc9214e50fc6b9a15a06aeef0506e0f",
        "20c4a3a8eee5ca8c87ae377732f541baffce1fda"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Nov 30 10:06:53 2012 -0800"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 30 10:07:19 2012 -0800"
      },
      "message": "Merge \"Replace .S version of x86 crtfiles with .c version\""
    },
    {
      "commit": "20c4a3a8eee5ca8c87ae377732f541baffce1fda",
      "tree": "73b9ac8f6749da7b637f90727f5f7051bf0e36aa",
      "parents": [
        "8784709a2cfe6d32b5fff2c6b826b8d9cbf73d7b"
      ],
      "author": {
        "name": "Pavel Chupin",
        "email": "pavel.v.chupin@intel.com",
        "time": "Wed Nov 28 18:31:14 2012 +0400"
      },
      "committer": {
        "name": "Pavel Chupin",
        "email": "pavel.v.chupin@intel.com",
        "time": "Fri Nov 30 17:41:25 2012 +0400"
      },
      "message": "Replace .S version of x86 crtfiles with .c version\n\nThis patch replaces .S versions of x86 crtfiles with .c which are much\neasier to support. Some of the files are matching .c version of Arm\ncrtfiles. x86 files required some cleanup anyway and this cleanup actually\nled to matching Arm files.\n\nI didn\u0027t change anything to share the same crt*.c between x86 and Arm. I\nprefer to keep them separate for a while in case any change is required\nfor one of the arch, but it\u0027s good thing to do in the following patches.\n\nChange-Id: Ibcf033f8d15aa5b10c05c879fd4b79a64dfc70f3\nSigned-off-by: Pavel Chupin \u003cpavel.v.chupin@intel.com\u003e\n"
    },
    {
      "commit": "3975cec694a0c9b42e3f7e671fcd678da92836c3",
      "tree": "bf92249d492ff0b9902d06950814e18be342a4b8",
      "parents": [
        "50e62e4051c14d7d2a5e07ebe66afd2a81693a26"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 29 17:25:23 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 29 17:25:23 2012 -0800"
      },
      "message": "Remove (near-)duplicate definitions of size_t and ssize_t.\n\nThe near duplicates upset fussier compilers that insist that\ntypedefs be exactly the same, but the fix isn\u0027t to make all\ncopies identical...\n\nChange-Id: Icfdace41726f36ec33c9ae919dbb5a54d3529cc9\n"
    },
    {
      "commit": "b15c58bb0fe55f076751acd7a5d00ded0ec33963",
      "tree": "a77604250097aa29d362334783e7f4d9277efa67",
      "parents": [
        "f2de6b0f6e873f9cb28682b8fc6764b0ab41c6ee"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Nov 27 14:18:04 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Nov 27 14:18:04 2012 -0800"
      },
      "message": "Clean up _BYTE_ORDER definitions for better x86 portability.\n\nWe\u0027d manually hacked _BYTE_ORDER into the arm and mips \"_types.h\" headers,\nbut not into the x86 one. Judging by upstream, _BYTE_ORDER should be in\nthe \"endian.h\" headers instead, so let\u0027s uniformly do that.\n\nI\u0027ve also ironed out some of the other differences between the different\narchitectures\u0027 header files too.\n\nBug: http://code.google.com/p/android/issues/detail?id\u003d39824\nChange-Id: I19d3af7ffd74e1c02b1b6886aec0f0d11f44ab8d\n"
    },
    {
      "commit": "c1b44ecc5385e68e81667068e03b32c2084a85b1",
      "tree": "d80d0045d50a9c5c775dbfb574f0635520ab104c",
      "parents": [
        "4136c3a2b7f7546968c5a305aa2ef0663fcb6c6d"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@android.com",
        "time": "Wed Oct 17 19:10:11 2012 +0200"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@android.com",
        "time": "Wed Oct 17 19:10:11 2012 +0200"
      },
      "message": "Revert \"libc: Provide ucontext_t/mcontext_t/\u003csys/ucontext.h\u003e\"\n\nThis creates build issues in the internal Android tree.\nWill investigate later.\n\nOriginal patch: https://android-review.googlesource.com/#/c/38875/\n\nChange-Id: I12c5995ebf172890051af42a5d3b31014c9c5117\n"
    },
    {
      "commit": "c124baaf29a948fd8b93e7f1fefc20b659271026",
      "tree": "a2f4e090a3822fc51b94ab9f1bf03117993dd2c5",
      "parents": [
        "a9944cfe9e152ca46afb0a77300ec5a2a1a24e64"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@android.com",
        "time": "Thu Jul 12 19:06:15 2012 +0200"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@android.com",
        "time": "Wed Oct 17 15:59:23 2012 +0200"
      },
      "message": "libc: Provide ucontext_t/mcontext_t/\u003csys/ucontext.h\u003e\n\nThis patch updates the C library headers to provide ucontext_t\ndefinitions for three architectures.\n\n+ Fix \u003csignal.h\u003e to always define \u0027struct sigcontext\u0027.\n\nThe new declarations are announced with new macros defined in\n\u003csys/cdefs.h\u003e in order to make it easier to adapt client code\nthat already defines its own, incompatible, versions of the\nstructures seen here.\n\nhttp://code.google.com/p/android/issues/detail?id\u003d34784\n\nChange-Id: Ie78c48690a4ce61c50593f6c39639be7fead3596\n"
    },
    {
      "commit": "1ad05db9cef23c1ca28ffd51852fa2a0b0c9b4b7",
      "tree": "23595a588bdd3a9bfb5c223e4cc7bc39b8dd84d9",
      "parents": [
        "6e3b0f2d2e89a8f3bbfc5d26dcdc13233c1111ba"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 06 11:24:45 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 06 11:24:45 2012 -0700"
      },
      "message": "Add mlockall and munlockall for Google TV.\n\nChange-Id: I10e961d701e74aab07211ec7975f61167e387853\n"
    },
    {
      "commit": "1ad10a566e042676c95a0bdbf3cbc48e99ddafb2",
      "tree": "113ce6b3d9940da27f19e77d9234feeafa082671",
      "parents": [
        "8b4e8a937be2e7ac94e52d596813095ef16c9ec8"
      ],
      "author": {
        "name": "Irina Tirdea",
        "email": "irina.tirdea@intel.com",
        "time": "Wed Aug 29 11:48:35 2012 +0300"
      },
      "committer": {
        "name": "Irina Tirdea",
        "email": "irina.tirdea@intel.com",
        "time": "Mon Sep 03 01:38:34 2012 +0300"
      },
      "message": "Add getsid system call to bionic\n\nAdd getsid() system call to bionic for\nall architectures. This is needed for various tools\n(e.g. perf).\n\nAdding the getsid system call was done in 3 steps:\n() add getsid system call (function name and syscall\nnumber) to libc/SYSCALLS.TXT\n() generate all necessary headers by calling\nlibc/tools/gensyscalls.py. This patch is adding\nthe generated files since the build system\ndoes not call gensyscalls.py.\n() add the system call signature to libc/include/unistd.h\n\nChange-Id: Id69a257e13ec02e1a44085a6b217a3f19ab025b1\nSigned-off-by: Irina Tirdea \u003cirina.tirdea@intel.com\u003e\n"
    },
    {
      "commit": "c0b4d18d7d23981c1afa6a98ded011849a3c2fe2",
      "tree": "9570ba9144f949a6064c141547cee78a72fbf745",
      "parents": [
        "1bd035cf119a2e4a667f07907c7860e5ec223cee"
      ],
      "author": {
        "name": "Kevin Schoedel",
        "email": "kevin.p.schoedel@intel.com",
        "time": "Fri Jun 29 09:23:47 2012 -0400"
      },
      "committer": {
        "name": "Edwin Vane",
        "email": "edwin.vane@intel.com",
        "time": "Tue Aug 21 15:28:23 2012 -0400"
      },
      "message": "Use unambiguous mnemonics\n\nChange-Id: I8da0af54cc3cbf69d9e485eb71bc44a6976b1adc\nAuthor: Kevin P Schoedel \u003ckevin.p.schoedel@intel.com\u003e\nReviewed-by: Edwin Vane \u003cedwin.vane@intel.com\u003e\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": "e36c826f7a6580227e9e70f6ec70aa88ba0f577e",
      "tree": "d36ec57b36b908d06e3d277c0eb1e486ca18da89",
      "parents": [
        "4ec9e343cf445c5032d9a782d2e92b1dba713e61"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Aug 10 11:17:59 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 10 12:57:43 2012 -0700"
      },
      "message": "Add unshare() syscall.\n\n(cherry-pick of 5467f25f82934d611c60f8bc57a05114f3c1bea0.)\n\nBug: 6925012\nChange-Id: Ic5ea2fbd606311087de05d7a3594df2fa9b2fef9\n"
    },
    {
      "commit": "7c92b6ca409f514e7ff67ac8c10d73ce92ff38d2",
      "tree": "63fa992b2b1420924bb759c7ebf55faec0d41771",
      "parents": [
        "1c861728e5c8dda7589e6595f4850d77ec21a236",
        "bdcc14d721ddff57f9f71086a998feda05376b61"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 06 07:57:59 2012 -0700"
      },
      "committer": {
        "name": "android code review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Aug 06 07:57:59 2012 -0700"
      },
      "message": "Merge \"Remove an awkward #include that is no longer upstream.\""
    },
    {
      "commit": "c164f2a9694fa8c373ec72d237ee16b412aa5c53",
      "tree": "dcacd8495782709e5441e349b84168322d069587",
      "parents": [
        "1510795fec5aa8b8700a08200f37f6e57dea8d04"
      ],
      "author": {
        "name": "Jin Wei",
        "email": "wei.a.jin@intel.com",
        "time": "Thu Apr 12 16:50:42 2012 +0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 03 13:54:29 2012 -0700"
      },
      "message": "bionic: modify syscall to use 6 registers to pass parameter.\n\nKernel allows to use 6 registers(exclude eax) to pass parameter.\nBut in syscall\u0027s implementation, it only uses five registers.\nIt will lead to error when 6 parameters passed.\n\nChange-Id: I92d663194e6334c3847f0c0c257ca3b9dee0edef\nAuthor: 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: 30838\n"
    },
    {
      "commit": "bdcc14d721ddff57f9f71086a998feda05376b61",
      "tree": "4a4da8b04a2e863b5490b3872bcd35719558a419",
      "parents": [
        "52f3ee962b384bf247638adb653f0024ce92a895"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 02 18:12:36 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 02 18:12:36 2012 -0700"
      },
      "message": "Remove an awkward #include that is no longer upstream.\n\nThis was causing trouble in https://android-review.googlesource.com/#/c/37590/.\n\nChange-Id: Ib7cb4fbaef6e9c1470c59f67d24bd24c7ce90bcc\n"
    },
    {
      "commit": "405b8029a6888f386adf3512113a33546141d1c8",
      "tree": "1e8e2122e5a6c662235c6729fed6b3d32e4abbb4",
      "parents": [
        "a1c0f08d3ccbe5c40be53903615e59113ade4922"
      ],
      "author": {
        "name": "Raghu Gandham",
        "email": "raghu@mips.com",
        "time": "Wed Jul 25 18:16:42 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 02 16:07:26 2012 -0700"
      },
      "message": "MIPS support for libc.\n\nChange-Id: I2864dea04b3faf2d919165dcaa600af5b16c41c8\nSigned-off-by: Chris Dearman \u003cchris@mips.com\u003e\nSigned-off-by: Raghu Gandham \u003craghu@mips.com\u003e\n"
    },
    {
      "commit": "9d40326830c2bd407427889c554adeb915ee6b4a",
      "tree": "17c901c0eb9768711be1c299178cbd891624281b",
      "parents": [
        "857fc9eab912fbb3f27913c3582ed2268420bce9"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu May 31 11:40:10 2012 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Jun 01 14:41:27 2012 -0700"
      },
      "message": "arm: rewrite crtbegin* as C files.\n\nRewrite\n crtbegin.S     -\u003e crtbegin.c\n crtbegin_so.S  -\u003e crtbegin_so.c\n\nThis change allows us to generate PIC code without relying\non text relocations.\n\nAs a consequence of this rewrite, also rewrite\n  __dso_handle.S    -\u003e __dso_handle.c\n  __dso_handle_so.S -\u003e __dso_handle_so.c\n  atexit.S          -\u003e atexit.c\n\nIn crtbegin.c _start, place the __PREINIT_ARRAY__, __INIT_ARRAY__,\n__FINI_ARRAY__, and __CTOR_LIST__ variables onto the stack, instead of\npassing a pointer to the text section of the binary.\n\nThis change appears sorta wonky, as I attempted to preserve,\nas much as possible, the structure of the original assembly.\nAs a result, you have C files including other C files, and other\nprogramming uglyness.\n\nResult: This change reduces the number of files with text-relocations\nfrom 315 to 19 on my Android build.\n\nBefore:\n  $ scanelf -aR $OUT/system | grep TEXTREL | wc -l\n  315\n\nAfter:\n  $ scanelf -aR $OUT/system | grep TEXTREL | wc -l\n  19\n\nChange-Id: Ib9f98107c0eeabcb606e1ddc7ed7fc4eba01c9c4\n"
    },
    {
      "commit": "83a73d1afe972014f6c8ff2520fe6d3357421f87",
      "tree": "f7aea2d4044d20ff5236f53e0988d296e3ea8bd8",
      "parents": [
        "1ebb243d1ad7b82887b6b09c972f57f4c820a9f1"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed May 30 11:45:12 2012 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed May 30 11:45:12 2012 -0700"
      },
      "message": "crtbegin: eliminate duplicate code\n\ncrtbegin_dynamic and crtbegin_static are essentially identical,\nminus a few trivial differences (comments and whitespace).\n\nEliminate duplicates.\n\nChange-Id: Ic9fae6bc9695004974493b53bfc07cd3bb904480\n"
    },
    {
      "commit": "f2f7bf76dfd1d6014ed3baa1e27b221388e70a09",
      "tree": "9ff65c1ccaaa7b107756e7a203d04f8bcdac85d0",
      "parents": [
        "8034415ddd8404f8788199ed993af89692235dc5",
        "4f05d1c758ba141c617f25251a661ecb66627e9e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 10 21:31:48 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 10 21:31:48 2012 -0700"
      },
      "message": "am 4f05d1c7: Merge \"bionic/x86: Optimization for memcpy\"\n\n* commit \u00274f05d1c758ba141c617f25251a661ecb66627e9e\u0027:\n  bionic/x86: Optimization for memcpy\n"
    },
    {
      "commit": "c47703a521abab120100673d5281f71bc8ba9a49",
      "tree": "37a30b9773f6a0bb6de885d3ba27c6dee0add9d4",
      "parents": [
        "20bea00090e530f2e6f4d97de4b7cf8031b86a86"
      ],
      "author": {
        "name": "Jack Ren",
        "email": "jack.ren@intel.com",
        "time": "Tue Feb 14 12:01:52 2012 +0400"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue May 08 12:18:25 2012 -0700"
      },
      "message": "bionic/x86: Optimization for memcpy\n\nSigned-off-by: Liubov Dmitrieva \u003cliubov.dmitrieva@intel.com\u003e\nSigned-off-by: H.J. Lu \u003chongjiu.lu@intel.com\u003e\nSigned-off-by: Wei A Jin \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\nConflicts:\n\n\tlibc/arch-x86/string/ssse3-memcpy5.S\n\nChange-Id: I41e70d1d19d5457e65c89b64da452fbdaf3a00a7\n"
    },
    {
      "commit": "5982e33aca9dde3ba7b2487c4866e52c667485fa",
      "tree": "ec1ae8fdcc0d2c0223148c73148c7f96968daebe",
      "parents": [
        "6cf3c7c50a4b9bc8425562c542f6a3d320db70c3"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Nov 11 15:47:24 2011 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue May 08 11:53:28 2012 -0700"
      },
      "message": "Cherry-pick \"generate PIC code\".\n\nChange-Id: I7d5f2e5663df263493f65e364c959e663fc4d13a\n"
    },
    {
      "commit": "f848321c4feb0a8b194a2148c3a9d6d65280f924",
      "tree": "87cf90cc1e952a4eb705c521bc9e56620f7d4181",
      "parents": [
        "8ecb4770a0a046e753e16d51d31371b827d20cf1",
        "ef9876569aa5c772439b883a7ee68aa207c98d1e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 16 14:26:43 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 16 14:26:43 2012 -0700"
      },
      "message": "resolved conflicts for merge of ef987656 to master\n\nChange-Id: I3854de8f4cddaf344444efa6f9da027642a237d9\n"
    },
    {
      "commit": "8ecb4770a0a046e753e16d51d31371b827d20cf1",
      "tree": "29a924ee55909059732fe9903ec809695ddd951d",
      "parents": [
        "8266cf94d399e2bf9f787ac9d6a5ecbfb5af3f5d",
        "6b8fd05414decfbbe46c8ce8e45ab8384594805e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 16 14:16:42 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 16 14:16:42 2012 -0700"
      },
      "message": "resolved conflicts for merge of 6b8fd054 to master\n\nChange-Id: Ifc5a10d9c2f7764ad80d64cc552aad81d5fbf5eb\n"
    },
    {
      "commit": "4994deaef51d5fa1ac12e6160b47d9cbe3b2bc43",
      "tree": "83d2a1780ad295899ea3ed18dea561f107de76c8",
      "parents": [
        "7b8666e683e56549091b86fd7b9c421fd0124dbc",
        "d515ce465be909d830a39462c3f196b5d7f35c66"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 16 09:09:04 2012 -0700"
      },
      "committer": {
        "name": "android code review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Apr 16 09:09:05 2012 -0700"
      },
      "message": "Merge \"Bionic: Fix wrong prototype of system call clock_nanosleep\""
    },
    {
      "commit": "d515ce465be909d830a39462c3f196b5d7f35c66",
      "tree": "707c0067ad2351d96bba6fd19f14e04e5223514c",
      "parents": [
        "6bc18fa58849a4307cf6ddcfd526d9258e8175fc"
      ],
      "author": {
        "name": "Jack Ren",
        "email": "jack.ren@intel.com",
        "time": "Tue Apr 17 11:20:15 2012 +0800"
      },
      "committer": {
        "name": "Jack Ren",
        "email": "jack.ren@intel.com",
        "time": "Mon Apr 16 23:53:05 2012 +0800"
      },
      "message": "Bionic: Fix wrong prototype of system call clock_nanosleep\n\nIn bionic/libc/SYSCALLS.TXT, the prototype of system call\nclock_nanosleep is incorrect.\n\nAccording to man page:\nint clock_nanosleep(clockid_t clock_id, int flags,\n                    const struct timespec *request,\n                    struct timespec *remain);\n\nChange-Id: Ic44c6db3d632293aa17998035554eacd664c2d57\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": "41070dd15f2c5916dfc96da4c256dd04d7f9c837",
      "tree": "6900905494d40539c9b2fe1ea03f349fa24f4c5b",
      "parents": [
        "6bc18fa58849a4307cf6ddcfd526d9258e8175fc"
      ],
      "author": {
        "name": "Jack Ren",
        "email": "jack.ren@intel.com",
        "time": "Tue Apr 17 11:16:18 2012 +0800"
      },
      "committer": {
        "name": "Jack Ren",
        "email": "jack.ren@intel.com",
        "time": "Mon Apr 16 23:45:36 2012 +0800"
      },
      "message": "bionic: Fix wrong prototype of system call getresuid/getresgid\n\nIn bionic/libc/SYSCALLS.TXT, the prototypes of system call\ngetresuid/getresgid are incorrect.\n\nAccording to man page, they should be:\n    int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid);\n    int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid);\n\nChange-Id: I676098868bb05a9e1fe45419b234cf397626fdad\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": "f0ec06ba609a15cf9343aabd5b2486f9a8af9adb",
      "tree": "63612c38daa434ed182266d38a630914e6882933",
      "parents": [
        "e54cc75f5907684dfd7b1df89b39b4d8375e23a3"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Apr 13 14:56:25 2012 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Apr 13 15:45:42 2012 -0700"
      },
      "message": "Add faccessat to syscall list\n\nChange-Id: I427a18811089cb280769ac8da3ed8adc00a65a10\n"
    },
    {
      "commit": "4e362f230b36596650feaa305bdf5f6af7b634f8",
      "tree": "587dd8a5da3eb158e498b970d22e13118f004e33",
      "parents": [
        "ddb2f135490e4b500e5f06d58997a1102fd6f0b1",
        "cd834618c4752b61d54ff4005a8baa8219b822e4"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 30 22:16:02 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Mar 30 22:16:02 2012 -0700"
      },
      "message": "am cd834618: am 63b14755: Merge \"libc/x86: ensure the stack 16-byte aligned when tasks created\"\n\n* commit \u0027cd834618c4752b61d54ff4005a8baa8219b822e4\u0027:\n  libc/x86: ensure the stack 16-byte aligned when tasks created\n"
    },
    {
      "commit": "63b14755512d515762cbe3ad8544c561a576f32e",
      "tree": "ac52ac3af7e5771a325599be8bf4f0ac3f1bf86a",
      "parents": [
        "d509f9ccbba6e1dd53acfd7425bfc06d6b3f8693",
        "cb08204053a285951b1907ef14a832f16a1a4679"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 30 13:42:42 2012 -0700"
      },
      "committer": {
        "name": "android code review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 30 13:42:42 2012 -0700"
      },
      "message": "Merge \"libc/x86: ensure the stack 16-byte aligned when tasks created\""
    },
    {
      "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": "1a823691a21519014daf252691a314f0726d7c3a",
      "tree": "aaf44aebed27ae43e9a9e2682b22f42c99d7201a",
      "parents": [
        "654325de026a2ca5b76b8b40e576c959d8211fdc"
      ],
      "author": {
        "name": "Ben Cheng",
        "email": "bccheng@google.com",
        "time": "Tue Mar 13 12:28:40 2012 -0700"
      },
      "committer": {
        "name": "Ben Cheng",
        "email": "bccheng@google.com",
        "time": "Tue Mar 13 12:28:40 2012 -0700"
      },
      "message": "Update kernel headers and add syscall \"perf_event_open\"\n\nChange-Id: I43f12b727881df002a8524f2738586c043833bae\n"
    },
    {
      "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": "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": "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": "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": "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": "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": "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": "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": "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"
    }
  ],
  "next": "3b43f87d2949a340e2c19cb735af7727157d8274"
}
