)]}'
{
  "log": [
    {
      "commit": "04a83a48ed89f433c78e31106ed50059764797a0",
      "tree": "6629275f2829d31262bc21cd2e2aea9fce4796ff",
      "parents": [
        "449d4634bea0ff8f6b29a2826871279dd654f941"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 16 15:59:12 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 16 15:59:12 2012 -0700"
      },
      "message": "Enhance getcwd(3) to handle NULL like glibc.\n\nBug: http://code.google.com/p/android/issues/detail?id\u003d36085\nChange-Id: I960a1b585887eb66176c61d29c5c61c239a4003f\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": "cc213f871bf4c5329eb5eb7a80a0ce9d4a880af8",
      "tree": "614352f0342e88315e758fbf63e35172578f260d",
      "parents": [
        "53493a9b26e9fb665de590abf3502af94eaf3f44"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 14 15:32:42 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 15 15:39:11 2012 -0700"
      },
      "message": "Switch to the current NetBSD regex implementation.\n\nChange-Id: If32b28dd85d6a7ab8957ab81d19fa4c0de9499d5\n"
    },
    {
      "commit": "409302f0f9fce73ea4c82bbfd439041cd7923d34",
      "tree": "bc23c82d6b9a68cfe2b114496399e1561d5db749",
      "parents": [
        "54655eaf92ca91bfe2fa293896059a181e27b6eb"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 13 17:02:11 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 13 17:41:49 2012 -0700"
      },
      "message": "Switch to upstream NetBSD tdelete/tfind/tsearch.\n\ntdestroy is a GNU extension, so that stays.\n\nChange-Id: Iedebaff25ea7e92b1ab1dd4440da12b67b99aa40\n"
    },
    {
      "commit": "3d2d448af1b16923f5a329b49bb8e658dbad8a06",
      "tree": "afbfdd1719af181d8bab2a52cabb938ae3a1f425",
      "parents": [
        "b66bc51423a1f3969d0e70e035126ac4c4898b50"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 13 16:38:29 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 13 16:38:29 2012 -0700"
      },
      "message": "Fix nice...\n\n...by switching to the NetBSD implementation.\n\nChange-Id: I562b27b237a24ded95804035cc322c7bff12ff59\n"
    },
    {
      "commit": "de727caee24df86c3052508aa213f7165168913a",
      "tree": "1c8a574f381c460f2a3708d0a7aa281bba61a7f5",
      "parents": [
        "222eec2ecfc4afcbd5cf0f08e16f69f6c3c424fa"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 13 15:45:36 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 13 16:10:19 2012 -0700"
      },
      "message": "Clean up warnings in stubs.cpp.\n\nSwitch to C++ to get extra warnings, and format the code Google style.\n\nChange-Id: Ifc0131bf297a6ee8a8a6b8d049a02518b0b1a4b7\n"
    },
    {
      "commit": "ae5c64413bf72bc18d7fc81e1f5761824bc01f49",
      "tree": "910859328e35be8af64308ad002b0d290bc738f1",
      "parents": [
        "66fba00991f03d07c72f809d033b88748f839bda"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 13 14:06:05 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 13 14:06:05 2012 -0700"
      },
      "message": "Add dependencies on all the makefiles.\n\nThis should help prevent broken builds next time I\u0027m messing with\nassembler/compiler/linker flags...\n\nChange-Id: I30f15a3ce3c3f3c60cad7bc59aaba9f42d792224\n"
    },
    {
      "commit": "a4c7933b49f1d43579f184167e79a5fb237bd206",
      "tree": "d87d5fa1a2d5d142d054a88bc51390ab07cdc614",
      "parents": [
        "0bf5cf87c6b7d3de8962ba132ecfb6f0e4b84f06"
      ],
      "author": {
        "name": "Raghu Gandham",
        "email": "raghu@mips.com",
        "time": "Tue Aug 07 12:23:24 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 10 17:24:02 2012 -0700"
      },
      "message": "MIPS support to the libc Makefile\n\nChange-Id: Ia1f3f545ca61a5abb235e99046cb3cdaf24d4205\n"
    },
    {
      "commit": "f8b3a920a895a53b207017249080087d562bd0d2",
      "tree": "ed13cbbfe8069cba7a30d206d503d4558ed28630",
      "parents": [
        "4ec9e343cf445c5032d9a782d2e92b1dba713e61"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 10 11:39:58 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 10 12:10:10 2012 -0700"
      },
      "message": "Revert \"Revert \"Switch to NetBSD\u0027s strxfrm(3).\"\"\n\nThis reverts commit 8793e7c7d21a0434d1b5e63364c88b2b125a3d29,\nand fixes the build by building upstream NetBSD source as a\nseparate library that\u0027s then swallowed whole into libc_common.\n\nChange-Id: I6c9317d8c48b5ccaf85a7b185bc07fb31176ff97\n"
    },
    {
      "commit": "8793e7c7d21a0434d1b5e63364c88b2b125a3d29",
      "tree": "a515a4be8d2881d734a6b1c2a2e4f1fdd0c43e1d",
      "parents": [
        "be1d78b0dc899a732c0e9d7515d3023e8004e368"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 10 11:36:17 2012 -0700"
      },
      "committer": {
        "name": "android code review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Aug 10 11:36:17 2012 -0700"
      },
      "message": "Revert \"Switch to NetBSD\u0027s strxfrm(3).\"\n\nThis reverts commit be1d78b0dc899a732c0e9d7515d3023e8004e368\n\nChange-Id: I11a95db474796f3da004f27652b081d5ba4ec9b4\n"
    },
    {
      "commit": "be1d78b0dc899a732c0e9d7515d3023e8004e368",
      "tree": "46bb803853eec1e06ee940a04335aa38032b33a3",
      "parents": [
        "0836a7ffb13890558fe568119b023007cce66373"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 10 11:03:02 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 10 11:03:02 2012 -0700"
      },
      "message": "Switch to NetBSD\u0027s strxfrm(3).\n\nThere were two bugs in our implementation. Intel found one, but another\nremainined, and tracking upstream is the way forward for functions where\nwe add no value.\n\nChange-Id: Ida9bac0293fb2c4cbc942b1e0515ee0477c6538b\n"
    },
    {
      "commit": "76be660aae0911467c51dc3f86a4f8d7fed5b332",
      "tree": "b82803b9f4ac484f948547fecb8f1c8dc06aa123",
      "parents": [
        "7e248be76441daa0ee27cc461c806e6010405c25"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 08 14:07:37 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 08 14:07:37 2012 -0700"
      },
      "message": "Clean up libc/Android.mk a bit after the crtbrand changes.\n\nChange-Id: Icfb95fffe70967418cd93da8cbeae22dcd68f8c9\n"
    },
    {
      "commit": "7e248be76441daa0ee27cc461c806e6010405c25",
      "tree": "724c03904cd51262e85f9f0232061787f905d505",
      "parents": [
        "e2731d98c1f0cd32d94b34cc4ee77148d6d52647",
        "ea8fad11d980d55ebd2bcf2302f3f1f742b6351c"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Aug 08 13:44:26 2012 -0700"
      },
      "committer": {
        "name": "android code review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 08 13:44:27 2012 -0700"
      },
      "message": "Merge \"Add a .note.android.ident section to Android ELF binaries.\""
    },
    {
      "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": "ea8fad11d980d55ebd2bcf2302f3f1f742b6351c",
      "tree": "a70cc5c8499f8c830be105fcb89c506a03ab5192",
      "parents": [
        "1ee6e3b7370b36ac72a14c0e31c34963b1bdbbb2"
      ],
      "author": {
        "name": "Michael Hope",
        "email": "michael.hope@linaro.org",
        "time": "Tue Jul 31 16:18:22 2012 +1200"
      },
      "committer": {
        "name": "Michael Hope",
        "email": "michael.hope@linaro.org",
        "time": "Tue Jul 31 16:18:22 2012 +1200"
      },
      "message": "Add a .note.android.ident section to Android ELF binaries.\n\nThis allows debugging tools to know they are working with Android\nbinaries and adapt accordingly.\n\nSigned-off-by: Thiago Jung Bauermann \u003cthiago.bauermann@linaro.org\u003e\nSigned-off-by: Michael Hope \u003cmichael.hope@linaro.org\u003e\n\nChange-Id: Ic906992fcad61c028bb765821637a3e1333bf52b\n"
    },
    {
      "commit": "fc0725ec5cc51053c06bf2c67755a5a57a5da621",
      "tree": "a66fa2604c000184e2a9995d34e61613442cbfbb",
      "parents": [
        "643e5722338d303c0b5aac41107432d8fde4081c"
      ],
      "author": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Sat Jul 28 00:33:28 2012 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Sat Jul 28 00:33:28 2012 -0700"
      },
      "message": "Install crt(begin|end)_so.o to target library path.\n\nBUG\u003d6886348.\n\nChange-Id: I176b2c4963d9731b06d10d4e0b92c010a0006b59\n"
    },
    {
      "commit": "260bf8cfe00f83bc579dfe81c78b75bd9973f051",
      "tree": "b8ff686500d30625cb9d5908ecba4895f20a1467",
      "parents": [
        "b2060b027c9eb2748895b53a0d69d40b52371a4e"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Jul 13 11:27:06 2012 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Jul 13 13:49:59 2012 -0700"
      },
      "message": "FORTIFY_SOURCE: strlen check.\n\nThis test is designed to detect code such as:\n\nint main() {\n  char buf[10];\n  memcpy(buf, \"1234567890\", sizeof(buf));\n  size_t len \u003d strlen(buf); // segfault here with _FORTIFY_SOURCE\n  printf(\"%d\\n\", len);\n  return 0;\n}\n\nor anytime strlen reads beyond an object boundary. This should\nhelp address memory leakage vulnerabilities and make other\nunrelated vulnerabilities harder to exploit.\n\nChange-Id: I354b425be7bef4713c85f6bab0e9738445e00182\n"
    },
    {
      "commit": "6334c662cae4cd9b61f5f3185048b0cd3633dad7",
      "tree": "6214371613d1a579ac61f611af27402d906c7218",
      "parents": [
        "8f08e1c902c726ac5230776c238e5edb6f51f440"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Jul 10 10:46:19 2012 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Jul 10 10:51:41 2012 -0700"
      },
      "message": "Don\u0027t use -fstack-protector on ssp.c\n\nlibc\u0027s stack protector initialization routine (__guard_setup)\nis in bionic/ssp.c. This code deliberately modifies the stack\ncanary.  This code should never be compiled with -fstack-protector-all\notherwise it will crash (mismatched canary value).\n\nForce bionic/ssp.c to be compiled with -fno-stack-protector\n\nChange-Id: Ib95a5736e4bafe1a460d6b4e522ca660b417d8d6\n"
    },
    {
      "commit": "965dbc6405aa2c3170270cfc53a8d4416444fddb",
      "tree": "7764d865c47bc84041f521ac11748ebe986a8871",
      "parents": [
        "2ddf77b37731dff3a271c1312fc0bef2e7d41473"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Jul 03 11:45:31 2012 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Mon Jul 09 09:57:18 2012 -0700"
      },
      "message": "FORTIFY_SOURCE: add fgets support.\n\nChange-Id: I8c3410a90c71a3336c4ac8581618fa9330edf5e3\n"
    },
    {
      "commit": "8df49ad2467ec2d48f94a925162185c34bf6e68b",
      "tree": "00161cd65c6292eebd000699534b554b2c52be0a",
      "parents": [
        "4442d512c66aa32a26fe2e652e55ad05249ea3da"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Jun 13 16:57:27 2012 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Jun 14 12:52:42 2012 -0700"
      },
      "message": "FORTIFY_SOURCE: add strlcpy / strlcat support\n\nAdd strlcpy / strlcat support to FORTIFY_SOURCE. This allows\nus to do consistency checks on to ensure we don\u0027t overflow buffers\nwhen the compiler is able to tell us the size of the buffer we\u0027re\ndealing with.\n\nUnlike previous changes, this change DOES NOT use the compiler\u0027s\nbuiltin support. Instead, we do everything the compiler would\nnormally do.\n\nChange-Id: I47c099a911382452eafd711f8e9bfe7c2d0a0d22\n"
    },
    {
      "commit": "9b549c39c938f54680f282c21e6885f53254bfb0",
      "tree": "8bb4a40d6d9c7f265a58954572097eefa1c2da5e",
      "parents": [
        "c2f1d215b1786520fa8c371caa97f062e0bfb513"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Jun 12 15:59:04 2012 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Jun 13 09:14:30 2012 -0700"
      },
      "message": "FORTIFY_SOURCE: add sprintf / vsprintf support\n\nsprintf FORTIFY_SOURCE protections are not available\non clang.\n\nAlso add various __attribute__s to stdio functions.\n\nChange-Id: I936d1f9e55fe53a68885c4524b7b59e68fed218d\n"
    },
    {
      "commit": "cffdf6693ffb50d2a1258d955a162bca83038f25",
      "tree": "205f5c66002cd0a5f064081142bf1b54507e9a4e",
      "parents": [
        "85b06f9365ae6776deb9fcf09f450f777ace9e34"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Mon Jun 11 15:50:57 2012 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Mon Jun 11 16:46:16 2012 -0700"
      },
      "message": "FORTIFY_SOURCE: add snprintf, vsnprintf\n\nAdd _FORTIFY_SOURCE support for snprintf, vsnprintf\n\nAt this time, we opt out of these protections for clang, as clang\ndoes not implement __builtin_va_arg_pack().\n\nhttp://clang.llvm.org/docs/UsersManual.html#c_unimpl_gcc\n\nChange-Id: I73ebe5ec8dad1dca8898a76d6afb693a25f75375\n"
    },
    {
      "commit": "76656afc6dd069fcfda5768e6e54bb85e4e99942",
      "tree": "8fc474895f6bffba90a06989e9a168fbaaaff99a",
      "parents": [
        "f41855949d5f19e0fc1f8873278ae21c52dd5676"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Jun 07 16:30:02 2012 -0700"
      },
      "committer": {
        "name": "Geremy Condra",
        "email": "gcondra@google.com",
        "time": "Fri Jun 08 20:18:19 2012 -0700"
      },
      "message": "_FORTIFY_SOURCE: check for integer overflows\n\nEnsure that strcat / strncat check for integer overflows\nwhen computing the length of the resulting string.\n\nChange-Id: Ib806ad33a0d3b50876f384bc17787a28f0dddc37\n"
    },
    {
      "commit": "71a18dd435e96564539b5af71b8ea5093a2109a1",
      "tree": "fd59c2a7cc23b663d090b0b8843a5d19c97df7d0",
      "parents": [
        "7d11009a970732ea18f8a0599d63c94eab9ec3f0"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Jun 07 14:01:26 2012 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Jun 07 14:19:52 2012 -0700"
      },
      "message": "_FORTIFY_SOURCE: add memset / bzero support\n\nAdd _FORTIFY_SOURCE support for the following functions:\n\n* memset\n* bzero\n\nMove the __BIONIC_FORTIFY_INLINE definition to cdefs.h so it\ncan be used from multiple header files.\n\nChange-Id: Iead4d5e35de6ec97786d58ee12573f9b11135bb7\n"
    },
    {
      "commit": "158ad015c2eb8f0a7f0e91db706ca363e634f407",
      "tree": "47281e42bc28337e4bc2a322ceea88c4485778e6",
      "parents": [
        "204c6e5ff337cc3be2478172c58de9f4df80b7bd",
        "3069270d8641c7bb57aa308d8f90b4d2dcbf66fc"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jun 06 11:37:25 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jun 06 11:37:25 2012 -0700"
      },
      "message": "am 3069270d: am c2bba24d: Merge \"Give the timer_create SIGEV_THREAD helper threads sensible names.\"\n\n* commit \u00273069270d8641c7bb57aa308d8f90b4d2dcbf66fc\u0027:\n  Give the timer_create SIGEV_THREAD helper threads sensible names.\n"
    },
    {
      "commit": "3069270d8641c7bb57aa308d8f90b4d2dcbf66fc",
      "tree": "4986b35e70c1586a78148c88f15af55aa1a25e41",
      "parents": [
        "252a5c854a08e89fc7337ea679220161fe4ea98f",
        "c2bba24d0a6b906f00d7b9f20ac9d32d63bb2e9d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jun 06 11:35:32 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jun 06 11:35:32 2012 -0700"
      },
      "message": "am c2bba24d: Merge \"Give the timer_create SIGEV_THREAD helper threads sensible names.\"\n\n* commit \u0027c2bba24d0a6b906f00d7b9f20ac9d32d63bb2e9d\u0027:\n  Give the timer_create SIGEV_THREAD helper threads sensible names.\n"
    },
    {
      "commit": "470631ed79538ce912edb94505dee3e24af8db89",
      "tree": "b463bd464e0f4864f444d71639f4b9b9a1149108",
      "parents": [
        "c7882ab2a99a74c8f772ab03fdfd9a3b53515e46"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jun 06 10:32:56 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jun 06 10:32:56 2012 -0700"
      },
      "message": "Give the timer_create SIGEV_THREAD helper threads sensible names.\n\nBug: 6609676\nChange-Id: I286b197c75beee4d9930b0973f2d7dd47c14e91c\n"
    },
    {
      "commit": "204c6e5ff337cc3be2478172c58de9f4df80b7bd",
      "tree": "68431401132bae2b980f682e219940b62ade8bb5",
      "parents": [
        "0a2301598c207fd1b50015984942fee5e8511593",
        "9d40326830c2bd407427889c554adeb915ee6b4a"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Jun 06 08:54:22 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 06 08:54:22 2012 -0700"
      },
      "message": "Merge \"arm: rewrite crtbegin* as C files.\""
    },
    {
      "commit": "0a2301598c207fd1b50015984942fee5e8511593",
      "tree": "161496d8ec411c14f7f82990e82e970c7e328a2a",
      "parents": [
        "31431f454a9d3d3dde46de0e3c39cc409a39c436"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Mon Jun 04 15:20:25 2012 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Jun 05 15:44:31 2012 -0700"
      },
      "message": "libc: implement some FORTIFY_SOURCE functions\n\nAdd initial support for -D_FORTIFY_SOURCE to bionic for the\nfollowing functions:\n\n* memcpy\n* memmove\n* strcpy\n* strcat\n* strncpy\n* strncat\n\nThis change adds a new version of the above functions which passes\nthe size of the destination buffer to __builtin___*_chk.\n\nIf the compiler can determine, at compile time, that the destination\nbuffer is large enough, or the destination buffer can point to an object\nof unknown size, then the check call is bypassed.\n\nIf the compiler can\u0027t make a compile time decision, then it calls\nthe __*_chk() function, which does a runtime buffer size check\n\nThese options are only enabled if the code is compiled with\n-D_FORTIFY_SOURCE\u003d1 or 2, and only when optimizations are enabled.\n\nPlease see\n* http://gcc.gnu.org/onlinedocs/gcc/Object-Size-Checking.html\n* http://gcc.gnu.org/ml/gcc-patches/2004-09/msg02055.html\n\nfor additional details on FORTIFY_SOURCE.\n\nTesting: Compiled the entire Android tree with -D_FORTIFY_SOURCE\u003d1,\nand verified that everything appears to be working properly.\nAlso created a test buffer overflow, and verified that it was\ncaught by this change.\n\nChange-Id: I4fddb445bafe92b16845b22458d72e6dedd24fbc\n"
    },
    {
      "commit": "31431f454a9d3d3dde46de0e3c39cc409a39c436",
      "tree": "6323e46ca9ba03d26b4dceb1acf9c3b9dc0675cf",
      "parents": [
        "143ad4cf31832537102ae8df7ad7360071b806af",
        "252a5c854a08e89fc7337ea679220161fe4ea98f"
      ],
      "author": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Sat Jun 02 08:35:07 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Jun 02 08:35:07 2012 -0700"
      },
      "message": "am 252a5c85: resolved conflicts for merge of e1dd3c28 to jb-dev-plus-aosp\n\n* commit \u0027252a5c854a08e89fc7337ea679220161fe4ea98f\u0027:\n  bionic: import heaptracker as chk_malloc\n"
    },
    {
      "commit": "252a5c854a08e89fc7337ea679220161fe4ea98f",
      "tree": "8e0e154a5c1c94613138ba8cee0b77b8e34d0a49",
      "parents": [
        "f0ddaa2fac00ac20059c0b2c142da9de2838a7b6",
        "e1dd3c287ba836281de0197670018bd9bbfbd62b"
      ],
      "author": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Sat Jun 02 08:14:36 2012 -0700"
      },
      "committer": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Sat Jun 02 08:14:36 2012 -0700"
      },
      "message": "resolved conflicts for merge of e1dd3c28 to jb-dev-plus-aosp\n\nChange-Id: I58b9c13d20771aa39b703ec05cbff8aeaad38fe8\n"
    },
    {
      "commit": "e1dd3c287ba836281de0197670018bd9bbfbd62b",
      "tree": "a5138cb21c8de6be4ea4be61e44f95fb8bcb776e",
      "parents": [
        "7d2e24eb167b6257f7935c7bd2023a708704ca1a"
      ],
      "author": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Tue May 29 14:22:42 2012 -0700"
      },
      "committer": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Fri Jun 01 15:54:34 2012 -0700"
      },
      "message": "bionic: import heaptracker as chk_malloc\n\nThis patch is a rewrite of libc.debug.malloc \u003d 10 (chk_malloc).  It provides\nthe same features as the original (poison freed memory, detect heap overruns\nand underruns), except that it provides more debugging information whenever it\ndetects a problem.\n\nIn addition to the original features, the new chk_malloc() implementation\ndetects multiple frees within a given range of the last N allocations, N being\nconfigurable via the system property libc.debug.malloc.backlog.\n\nFinally, this patch keeps track of all outstanding memory allocations.  On\nprogram exit, we walk that list and report each outstanding allocation.\n\n(There is support (not enabled) for a scanner thread periodically walks over\nthe list of outstanding allocations as well as the backlog of recently-freed\nallocations, checking for heap-usage errors.)\n\nFeature overview:\n\n  1) memory leaks\n  2) multiple frees\n  3) use after free\n  4) overrun\n\nImplementation:\n\n-- for each allocation, there is a:\n  1) stack trace at the time the allocation is made\n  2) if the memory is freed, there is also a stack trace at the point\n  3) a front and rear guard (fence)\n  4) the stack traces are kept together with the allocation\n\n-- the following lists and maintained\n\n  1) all outstanding memory allocations\n  3) a backlog of allocations what are freed; when you call free(), instead of\n     actually freed, the allocation is moved to this backlog;\n  4) when the backlog of allocations gets full, the oldest entry gets evicted\n     from it; at that point, the allocation is checked for overruns or\n     use-after-free errors, and then actually freed.\n  5) when the program exits, the list of outstanding allocations and the\n     backlog are inspected for errors, then freed;\n\nTo use this, set the following system properties before running the process or\nprocesses you want to inspect:\n\nlibc.malloc.debug.backlog # defaults to 100\nlibc.malloc.debug 10\n\nWhen a problem is detected, you will see the following on logcat for a multiple\nfree:\n\nE/libc    ( 7233): +++ ALLOCATION 0x404b9278 SIZE 10 BYTES MULTIPLY FREED!\nE/libc    ( 7233): +++ ALLOCATION 0x404b9278 SIZE 10 ALLOCATED HERE:\nE/libc    ( 7233): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***\nE/libc    ( 7233):      #00  pc 0000c35a  /system/lib/libc_malloc_debug_leak.so\nE/libc    ( 7233):      #01  pc 0000c658  /system/lib/libc_malloc_debug_leak.so\nE/libc    ( 7233):      #02  pc 00016d80  /system/lib/libc.so\nE/libc    ( 7233):      #03  pc 4009647c  /system/bin/malloctest\nE/libc    ( 7233):      #04  pc 00016f24  /system/lib/libc.so\nE/libc    ( 7233): +++ ALLOCATION 0x404b9278 SIZE 10 FIRST FREED HERE:\nE/libc    ( 7233): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***\nE/libc    ( 7233):      #00  pc 0000c35a  /system/lib/libc_malloc_debug_leak.so\nE/libc    ( 7233):      #01  pc 0000c7d2  /system/lib/libc_malloc_debug_leak.so\nE/libc    ( 7233):      #02  pc 00016d94  /system/lib/libc.so\nE/libc    ( 7233):      #03  pc 40096490  /system/bin/malloctest\nE/libc    ( 7233):      #04  pc 00016f24  /system/lib/libc.so\nE/libc    ( 7233): +++ ALLOCATION 0x404b9278 SIZE 10 NOW BEING FREED HERE:\nE/libc    ( 7233): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***\nE/libc    ( 7233):      #00  pc 0000c35a  /system/lib/libc_malloc_debug_leak.so\nE/libc    ( 7233):      #01  pc 0000c6ac  /system/lib/libc_malloc_debug_leak.so\nE/libc    ( 7233):      #02  pc 00016d94  /system/lib/libc.so\nE/libc    ( 7233):      #03  pc 400964a0  /system/bin/malloctest\nE/libc    ( 7233):      #04  pc 00016f24  /system/lib/libc.so\n\nThe following for a heap overrun and underrun:\n\nE/libc    ( 7233): +++ REAR GUARD MISMATCH [10, 11)\nE/libc    ( 7233): +++ ALLOCATION 0x404b9198 SIZE 10 HAS A CORRUPTED REAR GUARD\nE/libc    ( 7233): +++ ALLOCATION 0x404b9198 SIZE 10 ALLOCATED HERE:\nE/libc    ( 7233): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***\nE/libc    ( 7233):      #00  pc 0000c35a  /system/lib/libc_malloc_debug_leak.so\nE/libc    ( 7233):      #01  pc 0000c658  /system/lib/libc_malloc_debug_leak.so\nE/libc    ( 7233):      #02  pc 00016d80  /system/lib/libc.so\nE/libc    ( 7233):      #03  pc 40096438  /system/bin/malloctest\nE/libc    ( 7233):      #04  pc 00016f24  /system/lib/libc.so\nE/libc    ( 7233): +++ ALLOCATION 0x404b9198 SIZE 10 FREED HERE:\nE/libc    ( 7233): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***\nE/libc    ( 7233):      #00  pc 0000c35a  /system/lib/libc_malloc_debug_leak.so\nE/libc    ( 7233):      #01  pc 0000c7d2  /system/lib/libc_malloc_debug_leak.so\nE/libc    ( 7233):      #02  pc 00016d94  /system/lib/libc.so\nE/libc    ( 7233):      #03  pc 40096462  /system/bin/malloctest\nE/libc    ( 7233):      #04  pc 00016f24  /system/lib/libc.so\nE/libc    ( 7233): +++ ALLOCATION 0x404b9358 SIZE 10 HAS A CORRUPTED FRONT GUARD\nE/libc    ( 7233): +++ ALLOCATION 0x404b9358 SIZE 10 ALLOCATED HERE:\nE/libc    ( 7233): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***\nE/libc    ( 7233):      #00  pc 0000c35a  /system/lib/libc_malloc_debug_leak.so\nE/libc    ( 7233):      #01  pc 0000c658  /system/lib/libc_malloc_debug_leak.so\nE/libc    ( 7233):      #02  pc 00016d80  /system/lib/libc.so\nE/libc    ( 7233):      #03  pc 400964ba  /system/bin/malloctest\nE/libc    ( 7233):      #04  pc 00016f24  /system/lib/libc.so\nE/libc    ( 7233): +++ ALLOCATION 0x404b9358 SIZE 10 FREED HERE:\nE/libc    ( 7233): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***\nE/libc    ( 7233):      #00  pc 0000c35a  /system/lib/libc_malloc_debug_leak.so\nE/libc    ( 7233):      #01  pc 0000c7d2  /system/lib/libc_malloc_debug_leak.so\nE/libc    ( 7233):      #02  pc 00016d94  /system/lib/libc.so\nE/libc    ( 7233):      #03  pc 400964e4  /system/bin/malloctest\nE/libc    ( 7233):      #04  pc 00016f24  /system/lib/libc.so\n\nThe following for a memory leak:\n\nE/libc    ( 7233): +++ THERE ARE 1 LEAKED ALLOCATIONS\nE/libc    ( 7233): +++ DELETING 4096 BYTES OF LEAKED MEMORY AT 0x404b95e8 (1 REMAINING)\nE/libc    ( 7233): +++ ALLOCATION 0x404b95e8 SIZE 4096 ALLOCATED HERE:\nE/libc    ( 7233): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***\nE/libc    ( 7233):      #00  pc 0000c35a  /system/lib/libc_malloc_debug_leak.so\nE/libc    ( 7233):      #01  pc 0000c658  /system/lib/libc_malloc_debug_leak.so\nE/libc    ( 7233):      #02  pc 00016d80  /system/lib/libc.so\nE/libc    ( 7233):      #03  pc 0001bc94  /system/lib/libc.so\nE/libc    ( 7233):      #04  pc 0001edf6  /system/lib/libc.so\nE/libc    ( 7233):      #05  pc 0001b80a  /system/lib/libc.so\nE/libc    ( 7233):      #06  pc 0001c086  /system/lib/libc.so\nE/libc    ( 7233):      #07  pc 40096402  /system/bin/malloctest\nE/libc    ( 7233):      #08  pc 00016f24  /system/lib/libc.so\n\nChange-Id: Ic440e9d05a01e2ea86b25e8998714e88bc2d16e0\nSigned-off-by: Iliyan Malchev \u003cmalchev@google.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": "fc9e525fe07846c1efa23235a59575f8dad69c53",
      "tree": "42ace96c6f5df709233c65760e572b223e65ef1d",
      "parents": [
        "1b56aaa659174c56cd602dc54f119b40c5ca1af6"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Tue May 15 15:15:11 2012 -0700"
      },
      "committer": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Tue May 15 15:15:11 2012 -0700"
      },
      "message": "Rename the misleading var name TARGET_OUT_STATIC_LIBRARIES\n\nTARGET_OUT_STATIC_LIBRARIES is actually the same as\nTARGET_OUT_INTERMEDIATE_LIBRARIES.\n\nChange-Id: I11ac35256031d461d20156cd4c19ed7eae781d22\n"
    },
    {
      "commit": "83a38b8c4407ef38203fd103b0e2695037ec412c",
      "tree": "68f340bb7b22f74bcccfd2928c6f5798b9033924",
      "parents": [
        "537867aed889b6205805c03190ba655b8128fc19",
        "8034415ddd8404f8788199ed993af89692235dc5"
      ],
      "author": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Thu May 10 09:24:46 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 10 09:24:46 2012 -0700"
      },
      "message": "am 8034415d: resolved conflicts for merge of 08e72d01 to jb-dev-plus-aosp\n\n* commit \u00278034415ddd8404f8788199ed993af89692235dc5\u0027:\n  bionic: add support for non-NEON memcpy() on NEON SoCs\n"
    },
    {
      "commit": "8034415ddd8404f8788199ed993af89692235dc5",
      "tree": "18342dbe06d1d56229eb1fb49e466b340989d331",
      "parents": [
        "804147cb7d533f5635da6adc28fbca1467a3078b",
        "08e72d0161e39e99ff1003bf1ce894f37d7b7eb4"
      ],
      "author": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Thu May 10 09:19:59 2012 -0700"
      },
      "committer": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Thu May 10 09:19:59 2012 -0700"
      },
      "message": "resolved conflicts for merge of 08e72d01 to jb-dev-plus-aosp\n\nChange-Id: If00e354a5953ed54b31963d4f8ea77e1603c321e\n"
    },
    {
      "commit": "08e72d0161e39e99ff1003bf1ce894f37d7b7eb4",
      "tree": "87b0528fa23fc00d475454b3585beb4f1f3e7f20",
      "parents": [
        "08b51e2c091d036c124259ae59eb7be6bbe346af"
      ],
      "author": {
        "name": "Prajakta Gudadhe",
        "email": "pgudadhe@nvidia.com",
        "time": "Mon May 07 14:17:44 2012 -0700"
      },
      "committer": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Wed May 09 13:34:31 2012 -0700"
      },
      "message": "bionic: add support for non-NEON memcpy() on NEON SoCs\n\nSome SoCs that support NEON nevertheless perform better with a non-NEON than a\nNEON memcpy().  This patch adds build variable ARCH_ARM_USE_NON_NEON_MEMCPY,\nwhich can be set in BoardConfig.mk.  When ARCH_ARM_USE_NON_NEON_MEMCPY is\ndefined, we compile in the non-NEON optimized memcpy() even if the SoC supports\nNEON.\n\nChange-Id: Ia0e5bee6bad5880ffc5ff8f34a1382d567546cf9\n"
    },
    {
      "commit": "fd8bd2c43214baee1888884f302059db094fa824",
      "tree": "a00ae538d55a2f5c2521a6da685fddf6cc615b78",
      "parents": [
        "22167aafba15f9a73860b6193bc22ce30f57dc92",
        "58a00b4977b6fa073a8f56d94d741b1e4cb49856"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 09 12:56:15 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 09 12:56:15 2012 -0700"
      },
      "message": "am 58a00b49: am 7eb1cc23: Merge \"bionic: allow the board to customize MALLOC_ALIGNMENT\"\n\n* commit \u002758a00b4977b6fa073a8f56d94d741b1e4cb49856\u0027:\n  bionic: allow the board to customize MALLOC_ALIGNMENT\n"
    },
    {
      "commit": "58a00b4977b6fa073a8f56d94d741b1e4cb49856",
      "tree": "738970d2e9978d20d72f405a38f9a0483eea709f",
      "parents": [
        "eab2889e66d4fe03f3c5590d7e8b14e3777179ec",
        "7eb1cc23f8976a2062ba0cf92f030216a8e64e60"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 09 12:53:16 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 09 12:53:16 2012 -0700"
      },
      "message": "am 7eb1cc23: Merge \"bionic: allow the board to customize MALLOC_ALIGNMENT\"\n\n* commit \u00277eb1cc23f8976a2062ba0cf92f030216a8e64e60\u0027:\n  bionic: allow the board to customize MALLOC_ALIGNMENT\n"
    },
    {
      "commit": "2fd81ef71c10aecf6583facdd79f8f60f3eed678",
      "tree": "222e5cabd3f44a359cb3e05e1eb4093087bcb3a9",
      "parents": [
        "fd95503347acba5c52d669a186ad2b161338a8a7"
      ],
      "author": {
        "name": "Jack Ren",
        "email": "jack.ren@intel.com",
        "time": "Sat Nov 19 09:48:03 2011 +0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 09 09:52:22 2012 -0700"
      },
      "message": "bionic: allow the board to customize MALLOC_ALIGNMENT\n\nCurrently the dlmalloc allocates the memory with 8-byte alignment.\nAccording to the com.aurorasoftworks.quadrant.ui.professional benchmark data:\nWe can get much better memory performance if we change it to be 16-byte aligned.\nFor example, On Nexus-S:\n8-byte aligned :\n    1378 1070  1142 1665 1765  1163 1179  1263  1404 avg: 1336.555555556\n16-byte aligned:\n    1691 1731  1780 1691 1671  1678 1802  1758  1780 avg: 1731.333333333\n                                                    gain: 29.53%\n\nThat patch provides flexibity to customize the MALLOC_ALIGNMENT from the\nboard config.The macro MALLOC_ALIGNMENT defaults to 8.\nTo change it, please define BOARD_MALLOC_ALIGNMENT in the BoardConfig.mk:\nBOARD_MALLOC_ALIGNMENT :\u003d \u003cwhatever\u003e\n\nChange-Id: I8da0376944a0bbcef1d0fc026bfb6d9125db9739\nSigned-off-by: Jin Wei \u003cwei.a.jin@intel.com\u003e\nSigned-off-by: Jack Ren \u003cjack.ren@intel.com\u003e\nSigned-off-by: Beare, Bruce J \u003cbruce.j.beare@intel.com\u003e\n"
    },
    {
      "commit": "da0d8534f1a6273a383f1dc631fbaf032674bb4d",
      "tree": "a932f1d4194424931c964b96a5f5002b18d3e769",
      "parents": [
        "a674a571dbf0eebf4825f80f3ab229b1d62d49da",
        "08b51e2c091d036c124259ae59eb7be6bbe346af"
      ],
      "author": {
        "name": "Ben Cheng",
        "email": "bccheng@google.com",
        "time": "Wed May 09 01:48:40 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 09 01:48:40 2012 -0700"
      },
      "message": "am 08b51e2c: Implement the \"abort\" stub in assembly for ARM.\n\n* commit \u002708b51e2c091d036c124259ae59eb7be6bbe346af\u0027:\n  Implement the \"abort\" stub in assembly for ARM.\n"
    },
    {
      "commit": "eda7be454d6ff8689392442223335c6558bea932",
      "tree": "0120de8417ec3318c3470726455d21790ac37397",
      "parents": [
        "20bea00090e530f2e6f4d97de4b7cf8031b86a86"
      ],
      "author": {
        "name": "Ben Cheng",
        "email": "bccheng@google.com",
        "time": "Tue May 08 13:36:37 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue May 08 14:47:20 2012 -0700"
      },
      "message": "Implement the \"abort\" stub in assembly for ARM.\n\nSo that we can always get the full stack trace regardless of gcc\u0027s handling\nof the \"noreturn\" attribute associated with abort().\n\n(Cherry pick of Id264a5167e7cabbf11515fbc48f5469c527e34d4.)\n\nBug: 6455193\n\nConflicts:\n\n\tlibc/Android.mk\n\nChange-Id: I568fc5303fd1d747075ca933355f914122f94dac\n"
    },
    {
      "commit": "08b51e2c091d036c124259ae59eb7be6bbe346af",
      "tree": "c2ecae1c03f94d025bc3937b8326966f76776a08",
      "parents": [
        "efcf8893a97df2eb2ecb7aab305998878771d2f2"
      ],
      "author": {
        "name": "Ben Cheng",
        "email": "bccheng@google.com",
        "time": "Tue May 08 13:36:37 2012 -0700"
      },
      "committer": {
        "name": "Ben Cheng",
        "email": "bccheng@google.com",
        "time": "Tue May 08 14:39:35 2012 -0700"
      },
      "message": "Implement the \"abort\" stub in assembly for ARM.\n\nSo that we can always get the full stack trace regardless of gcc\u0027s handling\nof the \"noreturn\" attribute associated with abort().\n\n[cherry-picked from master]\n\nBUG:6455193\nChange-Id: I0102355f5bf20e636d3feab9d1424495f38e39e2\n"
    },
    {
      "commit": "12cbf0605e07782cae5680977c161813590da155",
      "tree": "c5435e71874784eb06b6d62d171e03f57d78542f",
      "parents": [
        "2eef0ca11114891dadef67b14456d857727bca1b",
        "017f438534068f48277fe6f7f7234e6f24ae5065"
      ],
      "author": {
        "name": "Ben Cheng",
        "email": "bccheng@google.com",
        "time": "Tue May 08 14:01:22 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 08 14:01:22 2012 -0700"
      },
      "message": "Merge \"Implement the \"abort\" stub in assembly for ARM.\""
    },
    {
      "commit": "017f438534068f48277fe6f7f7234e6f24ae5065",
      "tree": "8dbb53e33e36ad23a38c0287ee51ecd9fe747bf9",
      "parents": [
        "a2758f19cee0a8daf3194d8c88eeb4d078000a08"
      ],
      "author": {
        "name": "Ben Cheng",
        "email": "bccheng@google.com",
        "time": "Tue May 08 13:36:37 2012 -0700"
      },
      "committer": {
        "name": "Ben Cheng",
        "email": "bccheng@google.com",
        "time": "Tue May 08 13:43:12 2012 -0700"
      },
      "message": "Implement the \"abort\" stub in assembly for ARM.\n\nSo that we can always get the full stack trace regardless of gcc\u0027s handling\nof the \"noreturn\" attribute associated with abort().\n\nBUG:6455193\nChange-Id: Id264a5167e7cabbf11515fbc48f5469c527e34d4\n"
    },
    {
      "commit": "e34c7ffc577b586fccec1960521d81a1267585c1",
      "tree": "70cbebf5cbc6873af352ba83190c648965e64e3d",
      "parents": [
        "a2758f19cee0a8daf3194d8c88eeb4d078000a08",
        "e636e1f2c17d7097b6638cb4ae2b4857765b502d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue May 08 11:32:55 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue May 08 11:32:55 2012 -0700"
      },
      "message": "am e636e1f2: am 8657eafc: Merge \"Adjust memcpy for ARM Cortex A9 cache line size\"\n\n* commit \u0027e636e1f2c17d7097b6638cb4ae2b4857765b502d\u0027:\n  Adjust memcpy for ARM Cortex A9 cache line size\n"
    },
    {
      "commit": "a2758f19cee0a8daf3194d8c88eeb4d078000a08",
      "tree": "1ba8dc94ce7621c346f283b95526df879a106d79",
      "parents": [
        "2ddea18f8113549511ad56252913ab9ea250bbbf"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Mon May 07 14:33:32 2012 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Mon May 07 14:33:32 2012 -0700"
      },
      "message": "libc: stop using the custom linker script\n\nstop using the custom linker script. It prevents relro from\nworking on libc.\n\nThis reverts commit b091dd9bf27a9132c4ac9da55f2f4a87ffe3b59f.\n"
    },
    {
      "commit": "e636e1f2c17d7097b6638cb4ae2b4857765b502d",
      "tree": "ff8532ad9959f67f53ad28b4d0c68c5427920eef",
      "parents": [
        "2ddea18f8113549511ad56252913ab9ea250bbbf",
        "8657eafc3552f36c176667c1591beab255308da6"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon May 07 13:59:58 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon May 07 13:59:58 2012 -0700"
      },
      "message": "am 8657eafc: Merge \"Adjust memcpy for ARM Cortex A9 cache line size\"\n\n* commit \u00278657eafc3552f36c176667c1591beab255308da6\u0027:\n  Adjust memcpy for ARM Cortex A9 cache line size\n"
    },
    {
      "commit": "fe6338da9168330d44b409b2ee36103e8bfe6697",
      "tree": "904bc5df5c840b96996259fb9658b492161117e3",
      "parents": [
        "f7db5ecc4d662da8368f31d57401ca1a39690e40"
      ],
      "author": {
        "name": "Henrik Smiding",
        "email": "henrik.smiding@stericsson.com",
        "time": "Wed Sep 15 16:08:03 2010 +0200"
      },
      "committer": {
        "name": "Christian Bejram",
        "email": "christian.bejram@stericsson.com",
        "time": "Mon May 07 14:18:02 2012 +0200"
      },
      "message": "Adjust memcpy for ARM Cortex A9 cache line size\n\nARM Cortex A8 use 64 bytes and ARM Cortex A9 use 32 bytes cache line\nsize.\n\nThe following patch:\n  Adds code to adjust memcpy cache line size to match A9 cache line\n  size.\n  Adds a flag to select between 32 bytes and 64 bytes cache line\n  size.\n\n  Copyright (C) ST-Ericsson SA 2010\n    Modified neon implementation to fit Cortex A9 cache line size\n    Author: Henrik Smiding henrik.smiding@stericsson.com for\n            ST-Ericsson.\n\nChange-Id: I8a55946bfb074e6ec0a14805ed65f73fcd0984a3\nSigned-off-by: Christian Bejram \u003cchristian.bejram@stericsson.com\u003e\n"
    },
    {
      "commit": "b091dd9bf27a9132c4ac9da55f2f4a87ffe3b59f",
      "tree": "81edf00d647d3e1bd7fa8ec68dcb831cf39a4130",
      "parents": [
        "94179a509ee3f6ba7b4ba45fb90477b01049dab8"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Apr 26 09:54:48 2012 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Apr 26 11:04:44 2012 -0700"
      },
      "message": "libc: continue to use Android\u0027s custom linker script\n\nBy default, Android no longer compiles code using it\u0027s custom\nlinker script /build/core/armelf.xsc. However, this causes\nproblems for libc. Certain programs linked using older versions\nof GOLD expect libc.so to export __exidx_start and __exidx_end.\nRemoving the custom linker script causes libc.so not to export\nthose symbols.\n\nFor now, continue using the old linker script, until we can\nfigure out a better solution.\n\nChange-Id: Iaf002afd63a58b848818da24e5a4525620dc4d74\n"
    },
    {
      "commit": "03273f8fc0a7ac2b54fa2c983d4a647580e34458",
      "tree": "17f5d239e3a94929fdafe78b4358d174e7573c3c",
      "parents": [
        "7f03d2356f1380637d5a38fca20d2cd9b3f6c900"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Apr 10 17:24:24 2012 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Apr 10 17:53:11 2012 -0700"
      },
      "message": "__on_dlclose should be aligned\n\nMarking segments read-only was pushing the alignment of __on_dlclose by\n2 bytes making it unaligned. This change makes sure the ARM code is\naligned to the 4 byte boundary.\n\nBug: 6313309\nChange-Id: Ic2bf475e120dd61225ec19e5d8a9a8b1d0b7f081\n"
    },
    {
      "commit": "21eab513e7eec280a7a8bcb9482a1a8b61e59442",
      "tree": "28ba8f7977161897ebddf533fb8e09755a6f35d7",
      "parents": [
        "adb6989786dcc7248d51a3a5a76221b93951f84a"
      ],
      "author": {
        "name": "Ben Cheng",
        "email": "bccheng@google.com",
        "time": "Tue Mar 13 23:04:57 2012 -0700"
      },
      "committer": {
        "name": "Ben Cheng",
        "email": "bccheng@google.com",
        "time": "Tue Mar 20 12:54:55 2012 -0700"
      },
      "message": "New additions/bug fixes required/found when porting perf.\n\nNew functions:\n\ttfind\n\ttsearch\n\ttdelete\n\ttwalk\n\ttdestroy (GNU extension)\n\nBug fix: the current implementation for realpath would crash\n\tif the second argument (resolved_path) is NULL.\n\nNew headers:\n\tar.h\n\tsearch.h\n\nChange-Id: Ib6c1e42fc186a6d597a6e5a9692b16acaa155804\n"
    },
    {
      "commit": "25b7a16a6ee73248192909862f03f95d2363ad14",
      "tree": "97d420779e6b79917ba5ac65b9bc182a8ceaa68d",
      "parents": [
        "b118b9c5cd6a99fd3368a01ee9de8849d869afc7",
        "c4cb87f367fc33b36c9988b4f42fc07876abccd1"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Feb 01 09:46:08 2012 -0800"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Feb 01 09:46:08 2012 -0800"
      },
      "message": "Merge c4cb87f3\n\nChange-Id: I4cc14eba43fde75a7702fdc7ad07d3d949e9c092\n"
    },
    {
      "commit": "70b1668a76d3b719ae690903ea790fda964a5458",
      "tree": "674232e6152fa67c0db8b07b0083bb3ac6c9bd8c",
      "parents": [
        "e80044455961005ac95e405c8d553f2418d8e50c"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Jan 30 17:17:58 2012 +0100"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@android.com",
        "time": "Tue Jan 31 20:28:23 2012 +0100"
      },
      "message": "remove obsolete SuperH support\n\nWe don\u0027t have a toolchain anymore, we don\u0027t have working original\nkernel headers, and nobody is maintaining this so there is really\nno point in keeping this here. Details of the patch:\n\n- removed code paths from Android.mk files related to the SuperH\n  architecture (\"sh\")\n\n- removed libc/arch-sh, linker/arch-sh, libc/kernel/arch-sh\n\n- simplified libc/SYSCALLS.TXT\n\n- simplified the scripts in libc/tools/ and libc/kernel/tools\n\nChange-Id: I26b0e1422bdc347489e4573e2fbec0e402f75560\n\nSigned-off-by: David \u0027Digit\u0027 Turner \u003cdigit@android.com\u003e\n"
    },
    {
      "commit": "68d03fdbd8eb4d0e40dcdfbfa5e6c6dd931b467a",
      "tree": "ef8b4301dea68af3d466bc4f679c732c5d40e7a3",
      "parents": [
        "6519c8124ee9f2b1ed341cc683b78cf26809678d",
        "7c0c3793722aea293c45921ef50e4adcdf9645ce"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jan 05 14:05:30 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 05 14:05:30 2012 -0800"
      },
      "message": "Merge \"implement pthread mutex deadlock detection\""
    },
    {
      "commit": "a5cb76bca00b1ce44a04687fb179809c12ea9cd3",
      "tree": "16c42ffde3fc4b588418501465d6d1c18702395c",
      "parents": [
        "f6aa779383f5f5e61969a2b4fdb8bf435c5194b1"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed Dec 14 18:23:40 2011 +0100"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed Dec 14 18:23:40 2011 +0100"
      },
      "message": "libc: x86: Use SSE2 or SSSE3 optimized routines when possible.\n\nThis patch uses the new hardware feature macros for x86 to define\nvarious compile-time macros used to make the C library use\nSSE2 and/or SSSE3 optimized memory functions for target CPUs\nthat support these features.\n\nNote that previously, we relied on the macros being defined by\nbuild/core/combo/TARGET_linux-x86.mk, but this is no longer the\ncase.\n\nChange-Id: Ieae5ff5284c0c839bc920953fb6b91d2f2633afc\n"
    },
    {
      "commit": "e2bb45a7c0c45116c51a3577d6118c74f6f8007f",
      "tree": "501f7f33ced9aa002a41920856128a90a2e64001",
      "parents": [
        "cb4d9c0e1d0861358cd5e023f90c8d04cbeea1cf",
        "f3087c6e86f54874538669d899d8a2ede59f7433"
      ],
      "author": {
        "name": "Bruce Beare",
        "email": "bruce.j.beare@intel.com",
        "time": "Mon Dec 12 15:39:04 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Dec 12 15:39:04 2011 -0800"
      },
      "message": "am f3087c6e: am af96d4da: x86: libc may use the gcc flags from TARGET_linux-x86.mk\n\n* commit \u0027f3087c6e86f54874538669d899d8a2ede59f7433\u0027:\n  x86: libc may use the gcc flags from TARGET_linux-x86.mk\n"
    },
    {
      "commit": "7c0c3793722aea293c45921ef50e4adcdf9645ce",
      "tree": "f8cf3c609929a34bbdf40d83396545f00d1fd6b5",
      "parents": [
        "022d303116f742cd337852d37547e2ea24d97a25"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias.agopian@gmail.com",
        "time": "Mon Sep 05 23:54:55 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Dec 09 14:38:57 2011 -0800"
      },
      "message": "implement pthread mutex deadlock detection\n\nthis works by building a directed graph of acquired\npthread mutexes and making sure there are no loops in\nthat graph.\n\nthis feature is enabled with:\n\n    setprop debug.libc.pthread 1\n\nwhen a potential deadlock is detected, a large warning is\noutput to the log with appropriate back traces.\n\ncurrently disabled at compile-time. set PTHREAD_DEBUG_ENABLED\u003d1\nto enable.\n\nChange-Id: I916eed2319599e8aaf8f229d3f18a8ddbec3aa8a\n"
    },
    {
      "commit": "af96d4dadc3f3d8466dbbeaf3a816e6871715fbc",
      "tree": "f5e3a6a34739c5889ea2f18e35f6b8ba6acbc747",
      "parents": [
        "7d03c9cbcedb1dc7e3a8210ac0001120558ec6df"
      ],
      "author": {
        "name": "Bruce Beare",
        "email": "bruce.j.beare@intel.com",
        "time": "Fri Dec 09 13:52:19 2011 -0800"
      },
      "committer": {
        "name": "Bruce Beare",
        "email": "bruce.j.beare@intel.com",
        "time": "Fri Dec 09 13:54:20 2011 -0800"
      },
      "message": "x86: libc may use the gcc flags from TARGET_linux-x86.mk\n\nChange-Id: Iaf4d864d4b6fe388bd3c2d7c4d7d6e42aebb0d35\nSigned-off-by: Bruce Beare \u003cbruce.j.beare@intel.com\u003e\n"
    },
    {
      "commit": "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": "30e30acf106166bf65ad781bb4a63eead1d2c3a6",
      "tree": "b0a12123fbfa78be81e8b9c9965e964f593606c0",
      "parents": [
        "6b577759b21ca160d72b1fab6454821b950a05e0",
        "6b6ebeca985fb3843b56b507ac4ac1be44080a9c"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed Jul 13 14:53:56 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jul 13 14:53:56 2011 -0700"
      },
      "message": "am 6b6ebeca: am 3a131026: resolved conflicts for merge of 50a83255 to gingerbread-plus-aosp\n\n* commit \u00276b6ebeca985fb3843b56b507ac4ac1be44080a9c\u0027:\n  enable support for large files (\u003e 2G)\n  Enable functional DSO object destruction\n  x86: Enable -fstack-protector\n  Update X86 Bionic CRT files for unwind/exceptions\n  bionic, libthread_db x86 fixes\n  Updated gcc 4.4.3 IA toolchain doesn\u0027t require the .ctors list\n  Remove an extra register move.\n  Replace __atomic_XXX with GCC __sync_XXX intrinsics.\n  move some typedefs to procfs.h required by gdbserver build\n  use consistent guards for off_t and size_t defines for IA\n  Simplify variable typing for IA builds\n  sigsetmask.c was not processing the \"mask\" argument.\n  Add defines for CAIF support\n  Remove extra/unneeded copy of fenv.h\n  Use proper variable typing\n  Update ATOM string routines to latest\n  Fix undefined reference to dl_iterate_phdr for x86\n  Fix missing NL\n  ptrace.c Fix source file format to unix from dos\n"
    },
    {
      "commit": "6b6ebeca985fb3843b56b507ac4ac1be44080a9c",
      "tree": "400a65efcc4271e056cd1f96b802440222da318d",
      "parents": [
        "f2ebd304c3c0822121e6a4d0f542a048a7fc3b20",
        "3a13102637c8be53edf28f96598ac11aaa3e14df"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Jul 11 13:25:01 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jul 11 13:25:01 2011 -0700"
      },
      "message": "am 3a131026: resolved conflicts for merge of 50a83255 to gingerbread-plus-aosp\n\n* commit \u00273a13102637c8be53edf28f96598ac11aaa3e14df\u0027:\n  enable support for large files (\u003e 2G)\n  Enable functional DSO object destruction\n  x86: Enable -fstack-protector\n  Update X86 Bionic CRT files for unwind/exceptions\n  bionic, libthread_db x86 fixes\n  Updated gcc 4.4.3 IA toolchain doesn\u0027t require the .ctors list\n  Remove an extra register move.\n  Replace __atomic_XXX with GCC __sync_XXX intrinsics.\n  move some typedefs to procfs.h required by gdbserver build\n  use consistent guards for off_t and size_t defines for IA\n  Simplify variable typing for IA builds\n  sigsetmask.c was not processing the \"mask\" argument.\n  Add defines for CAIF support\n  Remove extra/unneeded copy of fenv.h\n  Use proper variable typing\n  Update ATOM string routines to latest\n  Fix undefined reference to dl_iterate_phdr for x86\n  Fix missing NL\n  ptrace.c Fix source file format to unix from dos\n"
    },
    {
      "commit": "3a13102637c8be53edf28f96598ac11aaa3e14df",
      "tree": "a8e77af69edd9db40c53b31d1c36b5cae7a2b5c6",
      "parents": [
        "57aadbb096a118dd33f9f16c67bd18dbb6b92c4a",
        "50a83255d80f98b857c3f72dd2225d4bbc720ca3"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Jul 11 21:39:06 2011 +0200"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Jul 11 21:39:14 2011 +0200"
      },
      "message": "resolved conflicts for merge of 50a83255 to gingerbread-plus-aosp\n\nChange-Id: Idf1971120bbdd52676f95aa3aa69f62342dc012e\n"
    },
    {
      "commit": "afb0167ad915f3f43c3194ed787199187f1bb56f",
      "tree": "5943ca256308609bde2dce6265111977bda508c8",
      "parents": [
        "a0aec0bd3083280dcba0c3aaba39602425228e2a"
      ],
      "author": {
        "name": "Bruce Beare",
        "email": "bruce.j.beare@intel.com",
        "time": "Mon Jun 20 10:29:50 2011 -0700"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Thu Jul 07 22:51:43 2011 +0200"
      },
      "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": "a0aec0bd3083280dcba0c3aaba39602425228e2a",
      "tree": "8199c08d85ef8ac76ce4fb38b2d4131431eb43e1",
      "parents": [
        "3eb26578550127c5f1cd8443f74d18054a180a24"
      ],
      "author": {
        "name": "Bruce Beare",
        "email": "bruce.j.beare@intel.com",
        "time": "Tue May 03 21:04:40 2011 -0700"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Thu Jul 07 22:51:37 2011 +0200"
      },
      "message": "x86: Enable -fstack-protector\n\nChange-Id: Iff9e3a3ba0e2d0faa7c6d98154aa5be0cc8a6c50\nOrig-Change-Id: Ib69514c3afcb4c1f5e5f3f8cd91acfd145a0866c\nSigned-off-by: Bruce Beare \u003cbruce.j.beare@intel.com\u003e\n"
    },
    {
      "commit": "832a86eaba56dcf8066e4b96df12738a9dff7053",
      "tree": "3e59837e40c6315c14a6afab0af1bd8ec534b2d7",
      "parents": [
        "88bb394c0d2cb96a85acb43e25cacfe8235ac1af"
      ],
      "author": {
        "name": "Bruce Beare",
        "email": "bruce.j.beare@intel.com",
        "time": "Tue May 31 09:56:55 2011 -0700"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Thu Jul 07 22:46:15 2011 +0200"
      },
      "message": "Update ATOM string routines to latest\n\nOrig-Change-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": "88bb394c0d2cb96a85acb43e25cacfe8235ac1af",
      "tree": "303b4a765c80e051744dd351ce0f00182644ba6a",
      "parents": [
        "0bbcbf0d5782397319bb949910fd16f80ed2717f"
      ],
      "author": {
        "name": "Bruce Beare",
        "email": "brucex.j.beare@intel.com",
        "time": "Thu Jul 08 14:47:50 2010 -0700"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Thu Jul 07 22:46:15 2011 +0200"
      },
      "message": "Fix undefined reference to dl_iterate_phdr for x86\n\nOrig-Change-Id: I22410b27939e8f54da932d7a1104102550c4685f\nSigned-off-by: Bruce Beare \u003cbrucex.j.beare@intel.com\u003e\n"
    },
    {
      "commit": "681c4bd782369e0d42bd02d3ac38a8031270ad7e",
      "tree": "e2a6eb8ea379c07143343938504d9a01e75421b7",
      "parents": [
        "cb5529efd80bc9ae78a8ea5f16f062adda4ec368",
        "b3773e9cc84630fced2117bb57224f0e766c5a26"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Jul 06 13:00:03 2011 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Jul 06 13:00:05 2011 -0700"
      },
      "message": "Merge b3773e9c\n\nChange-Id: I5787d9ac5e745a08e1c891e9ce9efc4e7f97ace8\n"
    },
    {
      "commit": "b3773e9cc84630fced2117bb57224f0e766c5a26",
      "tree": "d95591c508bdb12628374e1204cc7ee70cb2a4f3",
      "parents": [
        "784515ad93c63ce9b7add4830946f30a2792b97d",
        "9c95cbf75094c15d251bb3d57a55ce47d7c6c2c8"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@android.com",
        "time": "Wed Jul 06 10:27:49 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jul 06 10:27:49 2011 -0700"
      },
      "message": "am 9c95cbf7: Merge \"Really fix the build.\"\n\n* commit \u00279c95cbf75094c15d251bb3d57a55ce47d7c6c2c8\u0027:\n  Really fix the build.\n"
    },
    {
      "commit": "c51871d4b22425b32ec40c060c39d6b6fa4406f6",
      "tree": "a6ab54ad614fc61af9377d9242c206dd3aaff2f6",
      "parents": [
        "01eb7f72434830bb14cec906d885d2b7ee40d53b"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@android.com",
        "time": "Wed Jul 06 19:02:15 2011 +0200"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@android.com",
        "time": "Wed Jul 06 19:02:15 2011 +0200"
      },
      "message": "Really fix the build.\n\nlibcutils/mspace.c includes libc/bionic/dlmalloc.c, we need to\ntake care of the fact that any internal C library function cannot\nbe used from it.\n\nChange-Id: I0bc81ae090b7ac2d464f26b97fc6b94a08cdad9c\n"
    },
    {
      "commit": "2d2dbd30243f4ffd1e0a10ade989e25d29f7f45c",
      "tree": "666ad9c5b6cf155bc1bf2d41d93f64f3e4a9b354",
      "parents": [
        "afc92c702307046f4cd212a65ec27f0c712a72cc"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Sat Jun 25 17:26:38 2011 +0200"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Sat Jun 25 17:26:38 2011 +0200"
      },
      "message": "x86: fix full_x86-eng build\n\nThe latest merge conflict resolution worked only for ARM, but not for x86\nBoth ARM and x86 builds have been tested with this fix.\n\nChange-Id: I4ec1f1b0ea32fa86e7e2515b221133473d6550a3\nNOTE: Care has been taken to not change the compiler flags for ARM builds.\n      In particular, when building crtbegin_so.so, the -fPIC flag is only\n      used for x86 (previous reports indicate that it breaks the ARM\n      build at runtime for obscure reasons).\n"
    },
    {
      "commit": "67cbb25865c09e59cc063643de5aedcc7fa0c922",
      "tree": "766ef092514137b6cd99c936fc5db73c73edc979",
      "parents": [
        "e4e7755de307e6402d701eb4f2b9fd50afd7b43d",
        "b489666086265eb756f11fd224137c7e3a03a707"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Fri Jun 24 18:00:04 2011 +0200"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Fri Jun 24 18:00:04 2011 +0200"
      },
      "message": "resolved conflicts for merge of b4896660 to master\n\nChange-Id: I40451873c006e5bbcbd17d3bddc1a44773ba16a0\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": "a903811819c06e4d6e9e27fcc9db3ab5459009bc",
      "tree": "5daa0f5b6b954f3a585834b975f89029dfaffd36",
      "parents": [
        "65fb884d28c26dc84d27bea6861b3a95a327db66"
      ],
      "author": {
        "name": "Martijn Coenen",
        "email": "maco@google.com",
        "time": "Tue Jun 07 17:19:12 2011 +0200"
      },
      "committer": {
        "name": "Martijn Coenen",
        "email": "maco@google.com",
        "time": "Tue Jun 07 17:19:12 2011 +0200"
      },
      "message": "Revert \"x86: Enable -fstack-protector\"\n\nThis reverts commit e0b4844a20ffd022a568abb4203b3f7c759c7ff5,\ncauses netd to crash.\n"
    },
    {
      "commit": "65fb884d28c26dc84d27bea6861b3a95a327db66",
      "tree": "37d78b4b6c57c5e7b13fa1f453c3472e57b729b7",
      "parents": [
        "1dae997ca4b67b40d2fe60ae65909403661db0af",
        "204d1f65dbfc6d5a14a90627d9d1efcfce8261ee"
      ],
      "author": {
        "name": "David Turner",
        "email": "digit@android.com",
        "time": "Mon Jun 06 12:57:08 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jun 06 12:57:08 2011 -0700"
      },
      "message": "am 204d1f65: am b2c7e0c1: Merge \"x86: Enable -fstack-protector\"\n\n* commit \u0027204d1f65dbfc6d5a14a90627d9d1efcfce8261ee\u0027:\n  x86: Enable -fstack-protector\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": "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": "b609bfd0487291eff01876d4a25f2c7c13d49d03",
      "tree": "f33c6e93779a39bd47179a7f1a85e91972d87f2d",
      "parents": [
        "bde9e2802dc17d2d7f8a8a00d9094593a425dff7",
        "a9e409a03530c79bc7ad8144d08e8921ebe0dd02"
      ],
      "author": {
        "name": "David Turner",
        "email": "digit@android.com",
        "time": "Tue May 17 04:51:45 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue May 17 04:51:45 2011 -0700"
      },
      "message": "am a9e409a0: am a7a9dddb: Merge \"bionic: Add ARM optimized strcmp()\"\n\n* commit \u0027a9e409a03530c79bc7ad8144d08e8921ebe0dd02\u0027:\n  bionic: Add ARM optimized strcmp()\n"
    },
    {
      "commit": "a9e409a03530c79bc7ad8144d08e8921ebe0dd02",
      "tree": "1a84390a90eac1aa1ba46c04044134e3f50e81d8",
      "parents": [
        "3f7a3228cdf1a48e379fb297be9114ecd71bff11",
        "a7a9dddb5dfe783d65fec4d3b0dee9f734345a29"
      ],
      "author": {
        "name": "David Turner",
        "email": "digit@android.com",
        "time": "Tue May 17 04:47:09 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue May 17 04:47:09 2011 -0700"
      },
      "message": "am a7a9dddb: Merge \"bionic: Add ARM optimized strcmp()\"\n\n* commit \u0027a7a9dddb5dfe783d65fec4d3b0dee9f734345a29\u0027:\n  bionic: Add ARM optimized strcmp()\n"
    },
    {
      "commit": "f50e9be5930a08fa825b0c23353c802e11369b14",
      "tree": "7d0c8e2dac5c6711b267850890e0f0ccea943bc6",
      "parents": [
        "3ef36b2115d0802e668e325b59af6ef14d999e71"
      ],
      "author": {
        "name": "Jim Huang",
        "email": "jim.huang@linaro.org",
        "time": "Wed Apr 20 15:35:04 2011 +0800"
      },
      "committer": {
        "name": "Jim Huang",
        "email": "jserv@0xlab.org",
        "time": "Wed Apr 20 15:39:43 2011 +0800"
      },
      "message": "bionic: Add ARM optimized strcmp()\n\nReference results of the experiments on TI OMAP3430 at 600 MHz\n\n$ bench_strcmp -N \"strcmp_1k\" -s 1k -I 200\n\n[original C code]\n             prc thr   usecs/call      samples   errors cnt/samp     size\nstrcmp_1k      1   1     10.38000          102        0    15000     1024\n\n[ARM optimized code]\n             prc thr   usecs/call      samples   errors cnt/samp     size\nstrcmp_1k      1   1      3.08840           88        0    15000     1024\n\nThe work was derived from ARM Ltd, contributed to newlib, and reworked\nfor Android by Linaro.\n\nChange-Id: Ib0d5755e1eb9adb07d80ef0252f57a5c4c57a425\nSigned-off-by: Jim Huang \u003cjserv@0xlab.org\u003e\n"
    },
    {
      "commit": "368070454b1349d1fcf29a5d1eb51c869fb538f6",
      "tree": "2a02f5fea4a81195142bc37993a30123f97a2339",
      "parents": [
        "aa54339415ef74183645d7556a5b0d59f1135689"
      ],
      "author": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Mon Mar 14 14:02:05 2011 -0700"
      },
      "committer": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Mon Mar 14 14:25:58 2011 -0700"
      },
      "message": "bionic: remove LOCAL_PRELINK_MODULE\n\nChange-Id: Iad65ae18446b20d2aace7b8fe19b1a032b616e9c\nSigned-off-by: Iliyan Malchev \u003cmalchev@google.com\u003e\n"
    },
    {
      "commit": "4ce737f5df6bda362b45ca2a9d72d0aad2d5a58f",
      "tree": "be509a811429de013b697c183219ccb8c3edafaa",
      "parents": [
        "5b987745668aa39278f7881d6b91caba1c3ec6cf"
      ],
      "author": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Fri Feb 04 14:45:57 2011 -0800"
      },
      "committer": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Fri Feb 04 14:49:49 2011 -0800"
      },
      "message": "Added _memmove_words\n\nAdded a memmove() variant for Dalvik\u0027s System.arraycopy()\nimplementation.  It guarantees 16-bit or 32-bit atomicity depending\non the alignment of the arguments.\n\nBug 3398352\n\nChange-Id: Ie7bd246305ef0ff8290513663327c5b81680368d\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": "72e64e08697cc2b3d66397c8b6d34965dd2a7338",
      "tree": "8b2e1e6d6954232282b576d0ea1abfc42cf9b758",
      "parents": [
        "c1974ee144156233c9257aed4bd84a482ec5ffcb"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Nov 24 13:10:49 2010 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Nov 24 13:14:50 2010 -0800"
      },
      "message": "Add support for pread64/pwrite64\n\n64-bit pread() and pwrite() is needed for ZipFileRO to be able to read\nludicrously large ZIP files just in case someone is crazy enough to do\nit.\n\nAlso fix a license header that was apparently mangled.\n\nChange-Id: I6819ef8b36e46b63b40749c95717b1ecf9307033\n"
    },
    {
      "commit": "9c8ea7fa3fcc26a0777011e0a84831c58847faed",
      "tree": "88b1d289913540482f5e3e61f0fbe4030b55cbda",
      "parents": [
        "0befb8b56d8b9ac27fa9f2542b0369935832d083",
        "24dc936346b4a31005ac28c4bd464320cca9320a"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Mon Nov 22 13:38:44 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Nov 22 13:38:44 2010 -0800"
      },
      "message": "am 24dc9363: resolved conflicts for merge of 1bc98ccb to gingerbread-plus-aosp\n\n* commit \u002724dc936346b4a31005ac28c4bd464320cca9320a\u0027:\n  bionic: Add ARM optimized strcpy()\n"
    },
    {
      "commit": "24dc936346b4a31005ac28c4bd464320cca9320a",
      "tree": "59110104507b3dcb829af8b124e8c036b339b2c2",
      "parents": [
        "9f1a7f933dbf3446d29cbbff959a29f0ab49b308",
        "1bc98ccb76c147c46bd666f05247eb11e2847d4b"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Mon Nov 22 13:34:59 2010 -0800"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Mon Nov 22 13:34:59 2010 -0800"
      },
      "message": "resolved conflicts for merge of 1bc98ccb to gingerbread-plus-aosp\n\nChange-Id: Ief9ec3d0472660e26864e082e03c26e09a043b9d\n"
    },
    {
      "commit": "73c04b32691cb344cb60289a646ded8fc551d09e",
      "tree": "681eb77b37ef319e35172026c87f4b275c2b7f74",
      "parents": [
        "ea0fe8563db2a5854d30b3c770c406356f55cfe8"
      ],
      "author": {
        "name": "Jim Huang",
        "email": "jserv@0xlab.org",
        "time": "Tue Aug 10 17:23:39 2010 +0800"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Mon Nov 22 13:01:32 2010 -0800"
      },
      "message": "bionic: Add ARM optimized strcpy()\n\nReference results of the experiments on Qualcomm MSM7x25 (524MHz):\n\n[original C code]\n             prc thr   usecs/call      samples   errors cnt/samp\nsize\nstrcpy_1k      1   1     14.56159           99        0     1000\n1024\n\n[ARM optimized code]\n             prc thr   usecs/call      samples   errors cnt/samp\nsize\nstrcpy_1k      1   1      3.46653           99        0     1000\n1024\n\nThe work was derived from ARM Ltd.\n\nChange-Id: I906ac53bb7a7285e14693c77d3ce8d4ed6f98bfd\n"
    },
    {
      "commit": "fa8fef9506a8d4cbfcbbdc9821c985038b698380",
      "tree": "cbd224bf51c7a7e7263dbc051eb89a61523069ea",
      "parents": [
        "209cf825932d5caf1e0985cfc75671785c528635",
        "f2c05baac40bceb754ac69a38b83250c3a5aaddd"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Mon Oct 25 18:00:00 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Oct 25 18:00:00 2010 -0700"
      },
      "message": "am f2c05baa: am 96c03c7d: Merge \"Remove duplicated _rand48 implementation. Use stdlib version instead\"\n\nMerge commit \u0027f2c05baac40bceb754ac69a38b83250c3a5aaddd\u0027\n\n* commit \u0027f2c05baac40bceb754ac69a38b83250c3a5aaddd\u0027:\n  Remove duplicated _rand48 implementation. Use stdlib version instead\n"
    },
    {
      "commit": "f2c05baac40bceb754ac69a38b83250c3a5aaddd",
      "tree": "e4f194e23613bc2945edf94d20d38e50f6f02ffc",
      "parents": [
        "f7ad13b0ce5ad2d2f0340c066b09eb8174877739",
        "96c03c7dcc8cad59f2b8f3e6fef6a77a43750756"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Mon Oct 25 17:32:13 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Oct 25 17:32:13 2010 -0700"
      },
      "message": "am 96c03c7d: Merge \"Remove duplicated _rand48 implementation. Use stdlib version instead\"\n\nMerge commit \u002796c03c7dcc8cad59f2b8f3e6fef6a77a43750756\u0027 into gingerbread-plus-aosp\n\n* commit \u002796c03c7dcc8cad59f2b8f3e6fef6a77a43750756\u0027:\n  Remove duplicated _rand48 implementation. Use stdlib version instead\n"
    },
    {
      "commit": "70478100d5967f528e6514a42f98a76bb85b7e28",
      "tree": "6e84c6ff7099ad5b5e21fb74e917fdcb05c9d49e",
      "parents": [
        "b2061a30da29ee531c16862a5be3566e3b860839"
      ],
      "author": {
        "name": "Jim Huang",
        "email": "jserv@0xlab.org",
        "time": "Mon Sep 27 22:42:28 2010 +0800"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Mon Oct 25 16:27:47 2010 -0700"
      },
      "message": "Remove duplicated _rand48 implementation. Use stdlib version instead\n\nOriginally, there are _rand48 (in libc/bionic/_rand48.c) and __rand48\n(in libc/stdlib/_rand48.c) implemented in bionic.  Besides the naming,\nthe functionality is identical.  This patch removes the duplicated\n_rand48.  Also, drand48 and erand48 are modified accordingly.\n\nChange-Id: Ie5761a0a97f45df8538222a77edacb7c3e0125d7\n"
    },
    {
      "commit": "2eeddec9cc027144951ad061ae5a494a0fc392be",
      "tree": "bf943296099b72879cb6d71c7072d9e39cdafb74",
      "parents": [
        "8d8034eae023b38581158d3811d34d99f46bea40",
        "82775ae0acf7cac647c057c80fbcc7f13d0554d3"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Sat Oct 16 09:43:33 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Oct 16 09:43:33 2010 -0700"
      },
      "message": "am 82775ae0: resolved conflicts for merge of 347db52a to gingerbread-plus-aosp\n\nMerge commit \u002782775ae0acf7cac647c057c80fbcc7f13d0554d3\u0027\n\n* commit \u002782775ae0acf7cac647c057c80fbcc7f13d0554d3\u0027:\n  Update ATOM string routines to latest\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"
    }
  ],
  "next": "319de1758cca4efcd18be773aba6c0b7e36dcbaf"
}
