)]}'
{
  "log": [
    {
      "commit": "58246b7067b4e1a0b3ce48ccd94331f6fd8fa7cc",
      "tree": "e5f86c8d5a99f7387f28f5b12c06392d381f9dc8",
      "parents": [
        "d50225ad20b4510892dc5f2306b64f04bab6e711"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Aug 22 19:50:51 2011 +0200"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Aug 22 19:53:10 2011 +0200"
      },
      "message": "libc: Add __aeabi_f2uiz to libgcc_compat.c\n\nThis patch ensure that __aeabi_f2uiz is embedded in our C library.\nThis is needed to avoid breaking certain applications when they are\nloaded in ICS. It is likely that the issue is due to mis-linked\nbinaries generated with the stand-alone toolchain (the problem\nshould not exist if you use ndk-build), but this fix is easier\nthan asking all app developers to fix their custom build system.\n\nIf you want more technical details, read the comments inside\nlibgcc_compat.c\n\nChange-Id: I59ac1fc781ecb70b90b5573c5a3c67560ca8f270\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": "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": "ae2d5ba31412c4f382ef405000baa866f35dd736",
      "tree": "54338fc3fa81d2ff665cf259570b7684c0453269",
      "parents": [
        "ec7e8cc9dddafc624cd28939c1a38ea336c89455"
      ],
      "author": {
        "name": "Ken Sumrall",
        "email": "ksumrall@android.com",
        "time": "Fri Mar 18 11:55:12 2011 -0700"
      },
      "committer": {
        "name": "Ken Sumrall",
        "email": "ksumrall@android.com",
        "time": "Thu Mar 24 18:18:48 2011 -0700"
      },
      "message": "Add support for the utimensat(2) syscall to bionic.\n\nThe kernel has supported this syscall for quite some time now,\nbut bionic did not.  Now that there is a need for it, let\u0027s\nadd it to bionic.\n\nChange-Id: Ifcef3e46f1438d79435b600c4e6063857ab16903\n"
    },
    {
      "commit": "3224c08bd77043338ad6e9ecacbd4c118205e873",
      "tree": "6f6df2236615246498645bdc1b40e33551222b07",
      "parents": [
        "0999f8dcf22cd2ca541314a348720aedcf02ae48",
        "fb723c87490b76d1d2fe521886f7cb6c96ed40b7"
      ],
      "author": {
        "name": "David Turner",
        "email": "digit@google.com",
        "time": "Fri Feb 18 15:22:27 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 18 15:22:27 2011 -0800"
      },
      "message": "Merge changes I8c481c89,I791406f8,I5f09cef8\n\n* changes:\n  libc: ARM: update syscalls with new script\n  libc: ARM: add size info to gensyscalls\n  Add function marks and size indications\n"
    },
    {
      "commit": "fb723c87490b76d1d2fe521886f7cb6c96ed40b7",
      "tree": "4e9b11c99efd159b26a0e7a7e3ddab250bc478bd",
      "parents": [
        "f540c03bff8bb15f1954df275629fd32dc87aaf5"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Feb 17 10:47:44 2011 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Feb 17 10:47:47 2011 -0800"
      },
      "message": "libc: ARM: update syscalls with new script\n\nUsed the new gensyscalls.py script to update the ARM syscalls with the\nBEGIN(x) and END(x) macros to give size information for the code of the\nsyscall. Useful for valgrind.\n\nChange-Id: I8c481c8928401ac110fd19b087f7d67e4db39326\n"
    },
    {
      "commit": "420878c6908cf9c2862888477ec3f424a06cf172",
      "tree": "8ed5e7674d62386ea6ec63821af4c53cc062fa19",
      "parents": [
        "3a3c1853aca502ec109e5e97423e9f721035915c"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Feb 16 11:55:58 2011 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Feb 17 09:07:25 2011 -0800"
      },
      "message": "Add function marks and size indications\n\nAdd a macro to annotate function end and start using both ENTRY and END\nfor each function. This allows valgrind (and presumably other debugging\ntools) to use the debug symbols to trace the functions.\n\nChange-Id: I5f09cef8e22fb356eb6f5cee952b031e567599b6\n"
    },
    {
      "commit": "0233509c16046766bea9af6c7053cc6ceecef7a2",
      "tree": "bb6af8b3dfb3c21923a6836b1bb1328be0a6fc7c",
      "parents": [
        "3a3c1853aca502ec109e5e97423e9f721035915c"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Feb 17 07:50:36 2011 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Feb 17 07:50:36 2011 -0800"
      },
      "message": "Amend previous commit with needed include\n\nChange-Id: Idae8daaf095d90513820e05f423144ffed4ba913\n"
    },
    {
      "commit": "3a3c1853aca502ec109e5e97423e9f721035915c",
      "tree": "695e9979089e19b00df1632235e6aae5d2749a15",
      "parents": [
        "0d06b423276208cfc44a67078bbb9dfe2926a0b6"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Feb 16 16:39:04 2011 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Feb 16 16:40:08 2011 -0800"
      },
      "message": "Use CLZ on ARMv5 and newer\n\nChange-Id: Ia5aa6974c0343ae43fbcb91304501213048e9ec0\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": "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": "482358fda727ceab18412d63098db524a46999e8",
      "tree": "9804bc4113ae1fa35c77802a3d130888a9156410",
      "parents": [
        "28ebb94c98609943a858f5d01d0760ca9f132149",
        "d29b8a51a5f95a3f38e5fb812231e12e5a66a865"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Oct 21 09:54:30 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Oct 21 09:54:30 2010 -0700"
      },
      "message": "am d29b8a51: am 5109146f: Merge \"Reconcile assembly-only macros in \u003cmachine/cpu-features.h\u003e\"\n\nMerge commit \u0027d29b8a51a5f95a3f38e5fb812231e12e5a66a865\u0027\n\n* commit \u0027d29b8a51a5f95a3f38e5fb812231e12e5a66a865\u0027:\n  Reconcile assembly-only macros in \u003cmachine/cpu-features.h\u003e\n"
    },
    {
      "commit": "d29b8a51a5f95a3f38e5fb812231e12e5a66a865",
      "tree": "54313e535097d76ec6ae250646e29347e4809da0",
      "parents": [
        "82775ae0acf7cac647c057c80fbcc7f13d0554d3",
        "5109146f954d8cca39d34689bff2762e15bc6933"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Oct 19 15:21:57 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Oct 19 15:21:57 2010 -0700"
      },
      "message": "am 5109146f: Merge \"Reconcile assembly-only macros in \u003cmachine/cpu-features.h\u003e\"\n\nMerge commit \u00275109146f954d8cca39d34689bff2762e15bc6933\u0027 into gingerbread-plus-aosp\n\n* commit \u00275109146f954d8cca39d34689bff2762e15bc6933\u0027:\n  Reconcile assembly-only macros in \u003cmachine/cpu-features.h\u003e\n"
    },
    {
      "commit": "76a34d6628c1b0815cdf6bc6c0a724f9eb1118d4",
      "tree": "84658fddeae9acb5e96d667253cd7039970ef4e2",
      "parents": [
        "dac542655c139692b8dce54ac9adcdd55df3edec"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Fri Oct 08 17:09:55 2010 -0700"
      },
      "committer": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Fri Oct 08 17:09:55 2010 -0700"
      },
      "message": "Remove duplicate item\n\nThis elimates the makefile warning at the beginning of each build:\nlibc_common_intermediates/arch-arm/syscalls/eventfd.o\u0027 given more than once in the same rule.\n\nChange-Id: I25cc0c373d55b5036dd17811a595c097fd6ca69a\n"
    },
    {
      "commit": "94e5c5ef3754fee833c527f12ddb18e639fe7cf2",
      "tree": "d3b5bb75e7400d69f796504b10ce0051bee1d3c3",
      "parents": [
        "3cf53d1a7814e1520df09d24b009c16f4f27db0d"
      ],
      "author": {
        "name": "Jim Huang",
        "email": "jserv@0xlab.org",
        "time": "Fri Oct 01 16:39:08 2010 +0800"
      },
      "committer": {
        "name": "Jim Huang",
        "email": "jserv@0xlab.org",
        "time": "Fri Oct 01 17:00:46 2010 +0800"
      },
      "message": "Reconcile assembly-only macros in \u003cmachine/cpu-features.h\u003e\n\nThe change explicitly isolates the assembly-only macros in header\n\u003cmachine/cpu-features.h\u003e in order to prevent mis-inclusion in C/C++\nsource files.\n\nChange-Id: I0258e87c5ac3fd24944fb227290ac3b9cac4bfba\n"
    },
    {
      "commit": "686af0b3a5978356be3b1a97187c765d63f11623",
      "tree": "f0fcad6936e22c50d5fadb314efc8b3388e6b0db",
      "parents": [
        "a511f245614d8e6c7700df624e13a41a084ad7e4",
        "defd162212de3789d2268a1f3339c2a6097fa825"
      ],
      "author": {
        "name": "repo sync",
        "email": "digit@google.com",
        "time": "Tue Sep 28 12:23:55 2010 +0200"
      },
      "committer": {
        "name": "repo sync",
        "email": "digit@google.com",
        "time": "Tue Sep 28 12:23:55 2010 +0200"
      },
      "message": "resolved conflicts for merge of defd1622 to gingerbread-plus-aosp\n\nConflicts:\n\tlibc/arch-arm/syscalls/eventfd.S\n\tlibc/include/sys/eventfd.h\n\tlibc/include/sys/linux-syscalls.h\n\nChange-Id: I02f6e9536aa5478322240c199ff4c2f4367922d0\n"
    },
    {
      "commit": "a511f245614d8e6c7700df624e13a41a084ad7e4",
      "tree": "ea2494e096f62afc3234c29f6b5107b08bb56987",
      "parents": [
        "052fbd88080c88b7f568612dcac7579092c2e3d9",
        "9973a564222b842eb7497fd6e659fe8c8c49e2b3"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Sep 28 00:22:25 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Sep 28 00:22:25 2010 -0700"
      },
      "message": "am 9973a564: libc: Add missing waitid() implementation.\n\nMerge commit \u00279973a564222b842eb7497fd6e659fe8c8c49e2b3\u0027 into gingerbread-plus-aosp\n\n* commit \u00279973a564222b842eb7497fd6e659fe8c8c49e2b3\u0027:\n  libc: Add missing waitid() implementation.\n"
    },
    {
      "commit": "defd162212de3789d2268a1f3339c2a6097fa825",
      "tree": "35242a10fe8453224718e9da6db3b44f58d8aa15",
      "parents": [
        "9973a564222b842eb7497fd6e659fe8c8c49e2b3"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Sun Sep 26 22:29:14 2010 +0200"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Sep 28 09:20:37 2010 +0200"
      },
      "message": "libc: add \u003csys/eventfd.h\u003e and corresponding implementations.\n\nChange-Id: Ide040884c456190226e580513099fdb8377e015b\n"
    },
    {
      "commit": "052fbd88080c88b7f568612dcac7579092c2e3d9",
      "tree": "820b5f544a242380a10edf7878d1b76ceb2192de",
      "parents": [
        "5b5212b457f7308f9d7d4011c02af71ef1cad9c4",
        "a3ae60d343661784e3f6f4566b276d8e6b8a06a7"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Sep 28 00:19:31 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Sep 28 00:19:31 2010 -0700"
      },
      "message": "am a3ae60d3: libc: Add missing fdatasync() implementation\n\nMerge commit \u0027a3ae60d343661784e3f6f4566b276d8e6b8a06a7\u0027 into gingerbread-plus-aosp\n\n* commit \u0027a3ae60d343661784e3f6f4566b276d8e6b8a06a7\u0027:\n  libc: Add missing fdatasync() implementation\n"
    },
    {
      "commit": "9973a564222b842eb7497fd6e659fe8c8c49e2b3",
      "tree": "e1a716e1850f15d9245b82affa0b0e7688b0c782",
      "parents": [
        "a3ae60d343661784e3f6f4566b276d8e6b8a06a7"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Sep 27 17:30:33 2010 +0200"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Sep 28 09:18:26 2010 +0200"
      },
      "message": "libc: Add missing waitid() implementation.\n\nChange-Id: I312ee608dbf9249e4886a10d45d13e3cda8a9042\n"
    },
    {
      "commit": "a3ae60d343661784e3f6f4566b276d8e6b8a06a7",
      "tree": "08c1d005960477585df8fd5e0a14b421f4767643",
      "parents": [
        "307aadb8473744c3d946add8b3e4947ada5481aa"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Sep 27 17:28:38 2010 +0200"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Sep 28 09:17:17 2010 +0200"
      },
      "message": "libc: Add missing fdatasync() implementation\n\nChange-Id: I04bb655d77e414021e1f2a973329167ad76ca1c4\n"
    },
    {
      "commit": "914528cdc90dced0c07055d4d986e68adc8da60c",
      "tree": "6739765fe1982a136211499d68b374667c8b4325",
      "parents": [
        "134f31e234128a90ee74d76f48ca12e1bfd080e7",
        "223ddfcfc4cb354641e70da31a60556248db5036"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Sep 28 00:13:48 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Sep 28 00:13:48 2010 -0700"
      },
      "message": "am 223ddfcf: Merge \"libc: Add missing pipe2() declaration and implementation.\" into gingerbread\n\nMerge commit \u0027223ddfcfc4cb354641e70da31a60556248db5036\u0027 into gingerbread-plus-aosp\n\n* commit \u0027223ddfcfc4cb354641e70da31a60556248db5036\u0027:\n  libc: Add missing pipe2() declaration and implementation.\n"
    },
    {
      "commit": "9aac38249b579282ae8eaa630de3deaf97c4edff",
      "tree": "ac5ce44da7390aa18e21f8a090135d0699302521",
      "parents": [
        "8120a8df848e6dec31ef5f00bc0b41ed95ce1310",
        "bd8d987b3c3aa6d9d00cede2cb091f00bdb42204"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Sep 28 00:13:43 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Sep 28 00:13:43 2010 -0700"
      },
      "message": "am bd8d987b: libc: remove C++ comments from public headers.\n\nMerge commit \u0027bd8d987b3c3aa6d9d00cede2cb091f00bdb42204\u0027 into gingerbread-plus-aosp\n\n* commit \u0027bd8d987b3c3aa6d9d00cede2cb091f00bdb42204\u0027:\n  libc: remove C++ comments from public headers.\n"
    },
    {
      "commit": "223ddfcfc4cb354641e70da31a60556248db5036",
      "tree": "a40fec6fc010dc108d5a4ed72add00eefd0bcca4",
      "parents": [
        "9df22a5a5fc57d511bfde3338806ec98d0cc334f",
        "275cd48511daabe4591caa49c3ad0df34a6889ff"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Sep 28 00:12:08 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 28 00:12:08 2010 -0700"
      },
      "message": "Merge \"libc: Add missing pipe2() declaration and implementation.\" into gingerbread"
    },
    {
      "commit": "8120a8df848e6dec31ef5f00bc0b41ed95ce1310",
      "tree": "7adeaa352bb2e6e7f40aeb6bc2d146a194afa766",
      "parents": [
        "6dbfddfe4e76790ee57ddc0a77b64a9457ec08fb",
        "3cf53d1a7814e1520df09d24b009c16f4f27db0d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Sep 27 11:39:39 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Sep 27 11:39:39 2010 -0700"
      },
      "message": "am 3cf53d1a: Fixes for the ARM-specific bswap_16, bswap_32, and bswap_64.\n\nMerge commit \u00273cf53d1a7814e1520df09d24b009c16f4f27db0d\u0027 into gingerbread-plus-aosp\n\n* commit \u00273cf53d1a7814e1520df09d24b009c16f4f27db0d\u0027:\n  Fixes for the ARM-specific bswap_16, bswap_32, and bswap_64.\n"
    },
    {
      "commit": "bd8d987b3c3aa6d9d00cede2cb091f00bdb42204",
      "tree": "cdc35d78d1da7fa4d2b5cd6212b559fb7722f87d",
      "parents": [
        "b9e49ad56e5776ace7c6eab2e997d5b7acb16792"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Sun Sep 26 23:00:36 2010 +0200"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Sep 27 17:35:26 2010 +0200"
      },
      "message": "libc: remove C++ comments from public headers.\n\nChange-Id: I4af84f912062cd2ff34711c25122fb323f20c032\n"
    },
    {
      "commit": "275cd48511daabe4591caa49c3ad0df34a6889ff",
      "tree": "7fa40917d92ff25cbfe6e4f4d4cbe01bd9af588e",
      "parents": [
        "b9e49ad56e5776ace7c6eab2e997d5b7acb16792"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Sep 27 17:33:08 2010 +0200"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Sep 27 17:33:08 2010 +0200"
      },
      "message": "libc: Add missing pipe2() declaration and implementation.\n\nChange-Id: Iacb914bd6ac5adc60c5671e6fef680ede21f9b0c\n"
    },
    {
      "commit": "3cf53d1a7814e1520df09d24b009c16f4f27db0d",
      "tree": "51c6980f9dae0ef1f3918c1f18f5215be3fc3fb6",
      "parents": [
        "312be567a03aaf851707a268807ee666b12f8c74"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 24 17:55:58 2010 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Sep 26 11:26:53 2010 -0700"
      },
      "message": "Fixes for the ARM-specific bswap_16, bswap_32, and bswap_64.\n\n1. Make the feature test work by excluding known-deficient processors, so\nwe don\u0027t have to maintain a complete list of all the processors that support\nREV and REV16.\n\n2. Don\u0027t abuse \u0027register\u0027 to get an effect similar to GCC\u0027s +l constraint,\nbut which was unnecessarily restrictive.\n\n3. Fix __swap64md so _x isn\u0027t clobbered, breaking 64-bit swaps.\n\n4. Make \u003cbyteswap.h\u003e (which declars bswap_16 and friends) use \u003cendian.h\u003e\nrather than \u003csys/endian.h\u003e, so we get the machine-dependent implementations.\n\nChange-Id: I6a38fad7a9fbe394aff141489617eb3883e1e944\n"
    },
    {
      "commit": "ef3644d110bcb44010672c0ad0bc7c96fd130c8f",
      "tree": "186954107b4c588c4dde5b57b632bf8c11a25486",
      "parents": [
        "6bf08d131f4109088b7fa1e53196513636c49e9b",
        "312be567a03aaf851707a268807ee666b12f8c74"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Fri Sep 10 16:37:38 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Sep 10 16:37:38 2010 -0700"
      },
      "message": "am 312be567: Merge \"Use ARMv6 instruction for handling byte order\"\n\nMerge commit \u0027312be567a03aaf851707a268807ee666b12f8c74\u0027 into gingerbread-plus-aosp\n\n* commit \u0027312be567a03aaf851707a268807ee666b12f8c74\u0027:\n  Use ARMv6 instruction for handling byte order\n"
    },
    {
      "commit": "312be567a03aaf851707a268807ee666b12f8c74",
      "tree": "cb3e3ae3cc13412ba70083d852cd9d42a2d46ffd",
      "parents": [
        "3558834c565bbfe96dfcf233373c3814b4655347",
        "aa35095517b78b3d2e8ee282cab93ef058479fcf"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Fri Sep 10 16:02:59 2010 -0700"
      },
      "committer": {
        "name": "Android Code Review",
        "email": "code-review@android.com",
        "time": "Fri Sep 10 16:02:59 2010 -0700"
      },
      "message": "Merge \"Use ARMv6 instruction for handling byte order\""
    },
    {
      "commit": "d7b156d2a38e58ab1e5f9e6a4b420588aeb78b46",
      "tree": "82718a47675d9de458ac38d7481589d5230923ac",
      "parents": [
        "9579ee380c06f1ac6ca85c78d5172c82f10555d0",
        "3a1bbee36b773862e88c6f1895b607c0cd81b499"
      ],
      "author": {
        "name": "Keith Deacon",
        "email": "kdeacon@ti.com",
        "time": "Wed Sep 08 03:06:26 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Sep 08 03:06:26 2010 -0700"
      },
      "message": "am 3a1bbee3: Add eventfd system call support\n\nMerge commit \u00273a1bbee36b773862e88c6f1895b607c0cd81b499\u0027 into gingerbread-plus-aosp\n\n* commit \u00273a1bbee36b773862e88c6f1895b607c0cd81b499\u0027:\n  Add eventfd system call support\n"
    },
    {
      "commit": "3a1bbee36b773862e88c6f1895b607c0cd81b499",
      "tree": "e41cd69c2dbf3370e4060988e6299b657ff0b632",
      "parents": [
        "a1727092595a65e4dd9d9a6bae3778ad8c31d77f"
      ],
      "author": {
        "name": "Keith Deacon",
        "email": "kdeacon@ti.com",
        "time": "Tue Aug 31 16:16:01 2010 -0500"
      },
      "committer": {
        "name": "Keith Deacon",
        "email": "kdeacon@ti.com",
        "time": "Tue Aug 31 16:16:01 2010 -0500"
      },
      "message": "Add eventfd system call support\n"
    },
    {
      "commit": "aa35095517b78b3d2e8ee282cab93ef058479fcf",
      "tree": "ba545c690581f3b3e1d8fcb9e6014e3e3893eead",
      "parents": [
        "a1727092595a65e4dd9d9a6bae3778ad8c31d77f"
      ],
      "author": {
        "name": "Jim Huang",
        "email": "jserv@0xlab.org",
        "time": "Tue Aug 31 14:51:44 2010 +0800"
      },
      "committer": {
        "name": "Jim Huang",
        "email": "jserv@0xlab.org",
        "time": "Tue Aug 31 14:51:44 2010 +0800"
      },
      "message": "Use ARMv6 instruction for handling byte order\n\nARMv6 ISA has several instructions to handle data in different byte order.\nFor endian conversion (byte swapping) of single data words, it might be a\ngood idea to use the REV/REV16 instruction simply.\n\nChange-Id: Ic4a5ed6254e082763e54aa70d428f59a0088636e\n"
    },
    {
      "commit": "a1727092595a65e4dd9d9a6bae3778ad8c31d77f",
      "tree": "0d6c090d407e9975a8c6682615bc17a50caa05e9",
      "parents": [
        "4f086aeb4aa06e13079b7fec71a8178ceeacf318"
      ],
      "author": {
        "name": "Jim Huang",
        "email": "jserv@0xlab.org",
        "time": "Mon Aug 09 05:35:11 2010 +0800"
      },
      "committer": {
        "name": "Jim Huang",
        "email": "jserv@0xlab.org",
        "time": "Mon Aug 09 05:35:11 2010 +0800"
      },
      "message": "bionic: Rename _ARM_HAVE_LDREX_STREX to __ARM_HAVE_LDREX_STREX for consistency\n\nThe patch follows the naming manner in existing macros with prefix\n__ARM_HAVE.\n\nChange-Id: I6763ce2bf3ee85fd1da112c719543061d8d19bf4\n"
    },
    {
      "commit": "18c5bcc66a9a7b2178dcdcf04a0716958798ab81",
      "tree": "b53f6b74051e06eb57dc11fe512c48c0cffd44d4",
      "parents": [
        "7ed132a1ae6e00593918090a964f5d5b09d77f84"
      ],
      "author": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Thu Jul 29 19:12:04 2010 -0700"
      },
      "committer": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Thu Jul 29 19:12:04 2010 -0700"
      },
      "message": "Revert \"Set SA_RESTORER in sigaction()\"\n\nThis reverts commit e4fa46e75cd0d433b5c6c064720ed7e195cba7c8.\n"
    },
    {
      "commit": "ab8b54101eed0a4b92ebf8fa6994cd1b4f22d8f4",
      "tree": "938dc20fe75d7fcedb7c11c7c44f68aa783463e7",
      "parents": [
        "d466780c7cedb41edcf13f28ad900556c6aaa5b2"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Thu Jul 08 16:52:27 2010 -0700"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Thu Jul 08 16:52:27 2010 -0700"
      },
      "message": "libc: fix fstatfs() implementation.\n\nThe syscall expects the size of the buffer as the second argument.\n\nChange-Id: I99ede2fec7fcd385ca03ff022c2cffa4297bea8d\n"
    },
    {
      "commit": "3b43f87d2949a340e2c19cb735af7727157d8274",
      "tree": "ee57622555c0a91461f86ba7201863665380f0c3",
      "parents": [
        "e8f79c1f5de7ecaf1249ee36813abd2558cacf08"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@android.com",
        "time": "Thu Jul 01 23:09:28 2010 -0700"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@android.com",
        "time": "Thu Jul 01 23:09:28 2010 -0700"
      },
      "message": "Allow dlclose() to properly call static C++ destructors.\n\nWith this patch _and_ an upcoming build/ patch, the destruction\nof static C++ objects contained in shared libraries will happen\nproperly when dlclose() is called.\n\nNote that this change introduces crtbegin_so.S and crtend_so.S which\nare currently ignored by the build system.\n\n+ move definition of __dso_handle to the right place\n(before that, all shared libraries used the __dso_handle\nglobal variable from the C library).\n\nNote that we keep a \u0027weak\u0027 __dso_handle in aeabi.c to avoid\nbreaking the build until the next patch to build/core/combo/\nappears. We will be able to remove that later.\n\n+ move bionic/aeabi.c to arch-arm/bionic/ (its proper location)\n\nNOTE: The NDK will need to be modified to enable this feature in\n         the shared libraries that are generated through it.\n\nChange-Id: I99cd801375bbaef0581175893d1aa0943211b9bc\n"
    },
    {
      "commit": "6a9b888d7c4b246f6f66360789c72b754ff85021",
      "tree": "d27e4487c13f200d4cfe193f950e25a01efa7743",
      "parents": [
        "6a09cfd9f916e3a60de707ff0806cdeb143d77a4"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Fri Jun 18 14:47:22 2010 -0700"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Fri Jun 18 16:07:10 2010 -0700"
      },
      "message": "Allow static C++ destructors to be properly called on dlclose().\n\nWith this patch, _and_ an upcoming build/ patch, the destruction\nof static C++ objects contained in shared libraries will happen\nproperly when dlclose() is called.\n\nNote that this change introduces crtbegin_so.S and crtend_so.S which\nare currently ignored by the build system.\n\n+ move definition of __dso_handle to the right place\n  (before that, all shared libraries used the __dso_handle\n   global variable from the C library).\n\n  Note that we keep a \u0027weak\u0027 __dso_handle in aeabi.c to avoid\n  breaking the build until the next patch to build/core/combo/\n  appears. We will be able to remove that later.\n\n+ move bionic/aeabi.c to arch-arm/bionic/ (its proper location)\n\nChange-Id: Ie771aa204e3acbdf02fd30ebd4150373a1398f39\nNOTE: The NDK will need to be modified to enable this feature in\n      the shared libraries that are generated through it.\n"
    },
    {
      "commit": "b8e6c50cfa2d4c4b73e071d0e836a2667db010b1",
      "tree": "f9226eca1f1bce43e0e483a2a4713af2f414911f",
      "parents": [
        "aa4b1d042927872224e4bf5d22e4db5367e389fa"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Thu Mar 25 09:54:33 2010 -0700"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed Jun 09 13:18:29 2010 -0700"
      },
      "message": "Fix setjmp()/longjmp() to save FP registers on ARMv7. - DO NOT MERGE\n\nChange-Id: I3a0c2c05e295ac05ed51a531dabda668be204ca0\n"
    },
    {
      "commit": "aa4b1d042927872224e4bf5d22e4db5367e389fa",
      "tree": "de40a80b8f9d1d2dd6a75b45901927378a1aed45",
      "parents": [
        "6304d8b21891fd0cb7b5a4c25159a3d3b1709d62"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Thu May 20 10:55:45 2010 -0700"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed Jun 09 13:12:15 2010 -0700"
      },
      "message": "Add missing sysinfo() implementation (already declared in \u003csys/sysinfo.h\u003e) - DO NOT MERGE\n\nChange-Id: Iac4eb5911ffe4a7ab72b84df44e907685ac816af\n"
    },
    {
      "commit": "fcd00ebbdf3e7f4e1e7782a65ae10fb0fc03a1aa",
      "tree": "859e86f36d6bf63ee284c65fff114bbbfdeff38f",
      "parents": [
        "4fdbadde921ec17b4ff9e97fbd41096903b21772"
      ],
      "author": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Fri May 28 13:31:45 2010 -0700"
      },
      "committer": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Fri May 28 16:12:01 2010 -0700"
      },
      "message": "Atomic/SMP update, part 3.\n\nUpdate ARM atomic ops to use LDREX/STREX.  Stripped out #if 0 chunk.\n\nInsert explicit memory barriers in pthread and semaphore code.\n\nFor bug 2721865.\n\nChange-Id: I0f153b797753a655702d8be41679273d1d5d6ae7\n"
    },
    {
      "commit": "4fdbadde921ec17b4ff9e97fbd41096903b21772",
      "tree": "988de23c6495657f28fde4703ce656eb806e23cf",
      "parents": [
        "8a1d2cf1422e35257c160ac5bb12dd3ee481c433"
      ],
      "author": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Wed May 19 22:38:07 2010 -0700"
      },
      "committer": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Thu May 20 15:59:32 2010 -0700"
      },
      "message": "Atomic/SMP update.\n\nAdded an underscore to _ARM_HAVE_LDREX_STREX to make it match the others.\n\nAdded __ARM_HAVE_DMB and __ARM_HAVE_LDREXD when appropriate.\n\nFixed some typos.\n\nChange-Id: I2f55febcff4aeb7de572a514fb2cd2f820dca27c\n"
    },
    {
      "commit": "4aef0ae660e81ca151a04ce0ddaf956275c70116",
      "tree": "5dff7d6f26806adcff6de018bbb1f89c8c662547",
      "parents": [
        "f4394458301909a83b7ee7f3b436c038b7235ea8",
        "e4fa46e75cd0d433b5c6c064720ed7e195cba7c8"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu May 13 14:31:02 2010 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu May 13 14:31:02 2010 -0700"
      },
      "message": "merge from open-source master\n\nChange-Id: I2be62bce462ee53fe9519f433523bd7a44a73d40\n"
    },
    {
      "commit": "e4fa46e75cd0d433b5c6c064720ed7e195cba7c8",
      "tree": "88ab07e29e66cff45b3588718fa778c8218c4b6e",
      "parents": [
        "c3581dc78a51180d3550d0d04596657cb2db852c"
      ],
      "author": {
        "name": "Matt Fischer",
        "email": "matt.fischer@garmin.com",
        "time": "Mon Jan 11 10:02:06 2010 +0800"
      },
      "committer": {
        "name": "Garmin Android technology group",
        "email": "android@garmin.com",
        "time": "Wed May 12 14:18:36 2010 -0500"
      },
      "message": "Set SA_RESTORER in sigaction()\n\nGDB looks for specific opcode sequences when trying to recognize a stack\nframe as a signal trampoline.  The sequences it looks for happen to be those\ncreated when SA_RESTORER is set, since glibc always sets a restorer.  This\npatch does the same here, so that the trampolines can be correctly identified.\n\nChange-Id: I0ac574a68818cb24d939c3527f3aaeb04b853d04\n"
    },
    {
      "commit": "88f06cd84a70f8a5212cb03272ec2c7cf0017afa",
      "tree": "4ff0a88177cd5fb2ca9c0e6df9a331cea7ecad1c",
      "parents": [
        "ee7b077abf1d99503b986489ad93374a057cb354"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Thu Mar 18 17:13:41 2010 -0700"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Thu Mar 18 17:13:41 2010 -0700"
      },
      "message": "Use private futexes for pthread_mutex_t.\n\nThis does not change the implementation of conditional variables\nsince we\u0027re waiting for other system components to properly use\npthread_condattr_init/setpshared before that.\n\nAlso remove an obsolete x86 source file.\n\nChange-Id: Ia3e3fbac35b87a534fb04d4381c3c66b975bc8f7\n"
    },
    {
      "commit": "8641833b62e3b319796dc80ea16eb1592c05edf6",
      "tree": "f0b9b778513da0e049ce1b4c706ae5000848d7c1",
      "parents": [
        "ba9c6f0989ae94778ba2b9f597adc827c9dc81e8"
      ],
      "author": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Thu Mar 11 14:47:47 2010 -0800"
      },
      "committer": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Thu Mar 11 14:47:47 2010 -0800"
      },
      "message": "Revert \"bionic: pthread: use private futexes by default for mutexes and condvars\"\n\nThis reverts commit ba9c6f0989ae94778ba2b9f597adc827c9dc81e8.\n"
    },
    {
      "commit": "ba9c6f0989ae94778ba2b9f597adc827c9dc81e8",
      "tree": "2376f2a87f6ac304bd93beca7c8139b890a6227f",
      "parents": [
        "1cfbda826ce66e9bd1507a31b7e6df62e0dbcc6e"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed Mar 10 16:44:08 2010 -0800"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Thu Mar 11 11:48:38 2010 -0800"
      },
      "message": "bionic: pthread: use private futexes by default for mutexes and condvars\n\nPrivate futexes are a recent kernel addition: faster futexes that cannot be\nshared between processes. This patch uses them by default, unless the PROCESS_SHARED\nattribute flag is used when creating a mutex and/or conditional variable.\n\nAlso introduces pthread_condattr_init/destroy/setpshared/getpshared.\n\nChange-Id: I3a0e2116f467072b046524cb5babc00e41057a53\n"
    },
    {
      "commit": "ecede4022283650ee4c4ed117a792d6db0b929fd",
      "tree": "20082d00d0ec7d9c6e02327ddcf91ab81b702465",
      "parents": [
        "d7ed1ae98249af8a58ce97784a29f048d77789a9"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Mar 09 16:23:51 2010 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Mar 09 16:23:51 2010 -0800"
      },
      "message": "Only use NEON memcpy if __ARM_NEON__ is defined\n\nChange-Id: I32e6b9385d46efeec15dee8e395a82eef24ba3ea\n"
    },
    {
      "commit": "9f6915631b918a56e0e6be958fb14d274cbab322",
      "tree": "5d3b311f885dd053f4b816f69e8961ee21c37938",
      "parents": [
        "bd9a90c443ee4582d2be1a68c6f3a2928d130ce4"
      ],
      "author": {
        "name": "Mike Chan",
        "email": "mike@android.com",
        "time": "Tue Mar 02 10:55:58 2010 -0800"
      },
      "committer": {
        "name": "Mike Chan",
        "email": "mike@android.com",
        "time": "Tue Mar 02 18:18:04 2010 -0800"
      },
      "message": "bonic: libc: cpuacct support for setuid functions\n\nAny of the setuid functions now updates /acct/uid/ with its own tid\nbefore changing users. This is so we can properly account for cpu time\nper uid.\n\nChange-Id: I34186cf4d5228cac8439e582a9e26c01ef3011e4\nSigned-off-by: Mike Chan \u003cmike@android.com\u003e\n"
    },
    {
      "commit": "eb9d5ed3477ef8cd9ccfa424ea585541ea3af84a",
      "tree": "57860bc44d54d743b05f8a7680267170af3f3069",
      "parents": [
        "8f8b5310d2c3fe8782377bd66b65ed14dc6511a4"
      ],
      "author": {
        "name": "Andrei Popescu",
        "email": "andreip@google.com",
        "time": "Thu Feb 25 13:27:46 2010 +0000"
      },
      "committer": {
        "name": "Andrei Popescu",
        "email": "andreip@google.com",
        "time": "Tue Mar 02 11:43:24 2010 +0000"
      },
      "message": "add sigaltstack syscall\n"
    },
    {
      "commit": "75c5e25ae3615c34f4bcc7dcbe9b29e548e26b9c",
      "tree": "a5e9210444c3974d51c8e24d2ad0b6c256c0cbf6",
      "parents": [
        "b55462328f7f7468bb8c0cb44ad1069af30415a3"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Tue Feb 23 15:55:29 2010 -0800"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Tue Feb 23 15:55:29 2010 -0800"
      },
      "message": "bionic: syscalls: Add ioprio_set/ioprio_get syscall wrappers\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "97cf7f3394780d524038fc083e2c134031b54728",
      "tree": "40b61956bbe4d28babe839c3be40e9f114810e5f",
      "parents": [
        "1a2917ca954f575cc9698c99e54bd93087793c8f"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Fri Jan 22 18:59:05 2010 -0800"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Jan 25 11:18:30 2010 -0800"
      },
      "message": "Implement clone() C library function properly.\n\nOnly provide an implementation for ARM at the moment, since\nit requires specific assembly fragments (the standard syscall\nstubs cannot be used because the child returns in a different\nstack).\n"
    },
    {
      "commit": "d548a265ca0d998241443504afdcdc12e1507811",
      "tree": "e9f5413f93bcdba6847848ed98e5594b9ce5e0c1",
      "parents": [
        "ff3c8dfced4205eff7eed3902ddf7076c22763e3"
      ],
      "author": {
        "name": "Doug Kwan",
        "email": "dougkwan@google.com",
        "time": "Thu Dec 03 16:26:04 2009 -0800"
      },
      "committer": {
        "name": "Doug Kwan",
        "email": "dougkwan@google.com",
        "time": "Thu Dec 03 16:26:04 2009 -0800"
      },
      "message": "Add missing symbol type directives.\n"
    },
    {
      "commit": "ecac54db21256952b4b4a9c6f17604ec31743183",
      "tree": "4b1142d9fa5d9c2e557e11d045381f3d60b4e8ba",
      "parents": [
        "9e78de3e3c90ec3c2970431d8eae7378fdc0dac6",
        "3ba822cc3f0a252db73cf63cb8390e46fc0ceb0a"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Oct 29 19:53:39 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Oct 29 19:53:39 2009 -0700"
      },
      "message": "am 3ba822cc: am 199f9d92: Improve memcpy performance from 290 MiB/s to 340 MiB/s (17% improvment)\n\nMerge commit \u00273ba822cc3f0a252db73cf63cb8390e46fc0ceb0a\u0027 into eclair-mr2-plus-aosp\n\n* commit \u00273ba822cc3f0a252db73cf63cb8390e46fc0ceb0a\u0027:\n  Improve memcpy performance from 290 MiB/s to 340 MiB/s (17% improvment)\n"
    },
    {
      "commit": "47c5e30b61bad28731e4acff2d690a4207801f27",
      "tree": "c39bb4518e07e74555b2436f0706a41a43ba4939",
      "parents": [
        "53b32f8b7ef0ae319cc048ce1f0a81a4be8bce64",
        "199f9d923804d74e021dd80e48ec75c0a96dba77"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Oct 29 02:44:15 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Oct 29 02:44:15 2009 -0700"
      },
      "message": "am 199f9d92: Improve memcpy performance from 290 MiB/s to 340 MiB/s (17% improvment)\n\nMerge commit \u0027199f9d923804d74e021dd80e48ec75c0a96dba77\u0027 into eclair-plus-aosp\n\n* commit \u0027199f9d923804d74e021dd80e48ec75c0a96dba77\u0027:\n  Improve memcpy performance from 290 MiB/s to 340 MiB/s (17% improvment)\n"
    },
    {
      "commit": "199f9d923804d74e021dd80e48ec75c0a96dba77",
      "tree": "3a00bb9e267cf952d7d1140ff9a39ca07ee6c994",
      "parents": [
        "763ac28357f604e0e4196e0a7ad5b0f5cdcf274a"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Oct 28 02:54:37 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Oct 28 03:17:02 2009 -0700"
      },
      "message": "Improve memcpy performance from 290 MiB/s to 340 MiB/s (17% improvment)\n\nuse 64 bytes cache lines, reduce the main loop to 64-bytes instead of\n128 bytes and adjust the prefetch distance to the optimal value.\n"
    },
    {
      "commit": "581f43056b594429b3df4678d87989c93d8f81d2",
      "tree": "785bf3a7c78b3b4d1474505abf2eaab5961c533f",
      "parents": [
        "b3cfdb6220b9ce8ec6d25984ef086fa06f157236",
        "76ef331cd6967ca8f5af779d25c8b634f8cdd2b6"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Oct 19 17:19:37 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Oct 19 17:19:37 2009 -0700"
      },
      "message": "am 76ef331c: am 7e7d6c48: use local symbols in memset so it doesn\\\u0027t screw up profiling\n\nMerge commit \u002776ef331cd6967ca8f5af779d25c8b634f8cdd2b6\u0027 into eclair-mr2-plus-aosp\n\n* commit \u002776ef331cd6967ca8f5af779d25c8b634f8cdd2b6\u0027:\n  use local symbols in memset so it doesn\u0027t screw up profiling\n"
    },
    {
      "commit": "214dec2811ef893984ce5bceceb28a47d701fa9f",
      "tree": "e1e3da3c55ee13cafd9536c5ada67dc4145ece9f",
      "parents": [
        "cd230988286eb6aa395e051345052773f1943294",
        "7e7d6c48a064af82f0ec39f47b9eb803a6e1df4c"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Oct 19 17:09:51 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Oct 19 17:09:51 2009 -0700"
      },
      "message": "am 7e7d6c48: use local symbols in memset so it doesn\\\u0027t screw up profiling\n\nMerge commit \u00277e7d6c48a064af82f0ec39f47b9eb803a6e1df4c\u0027 into eclair-plus-aosp\n\n* commit \u00277e7d6c48a064af82f0ec39f47b9eb803a6e1df4c\u0027:\n  use local symbols in memset so it doesn\u0027t screw up profiling\n"
    },
    {
      "commit": "7e7d6c48a064af82f0ec39f47b9eb803a6e1df4c",
      "tree": "08bb1fdfb2b20de55936bec7bd3844cef997e955",
      "parents": [
        "ff7b46b87c4d85881d88c2105a94be6c6accb628"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Oct 19 16:34:38 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Oct 19 16:34:38 2009 -0700"
      },
      "message": "use local symbols in memset so it doesn\u0027t screw up profiling\n"
    },
    {
      "commit": "1f2a381e844abfb364af7cfc48d8a2cb1e194637",
      "tree": "dc4ff7668a6e055688c82b13e8bbc39a9a21f9f4",
      "parents": [
        "5be45ce0cf81a3904c697a77fa3e73bf85aead8b",
        "fdc5c1f56f9d21034badb8e4b092c47098f19613"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed Oct 07 11:48:11 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Oct 07 11:48:11 2009 -0700"
      },
      "message": "am fdc5c1f5: Re-enable ARMv7 memcpy implementation.\n\nMerge commit \u0027fdc5c1f56f9d21034badb8e4b092c47098f19613\u0027 into eclair-plus-aosp\n\n* commit \u0027fdc5c1f56f9d21034badb8e4b092c47098f19613\u0027:\n  Re-enable ARMv7 memcpy implementation.\n"
    },
    {
      "commit": "5be45ce0cf81a3904c697a77fa3e73bf85aead8b",
      "tree": "0d88deb6de28ed99750991a765d763c86654e821",
      "parents": [
        "44e55ba8ebd059206bedefba18708af4774db671",
        "1e40783d9ad29c88a4d547774e05080fc4327a2e"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed Oct 07 11:42:33 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Oct 07 11:42:33 2009 -0700"
      },
      "message": "am 1e40783d: Fix armv7-user builds by disabling the ARMv7-optimized memcpy.\n\nMerge commit \u00271e40783d9ad29c88a4d547774e05080fc4327a2e\u0027 into eclair-plus-aosp\n\n* commit \u00271e40783d9ad29c88a4d547774e05080fc4327a2e\u0027:\n  Fix armv7-user builds by disabling the ARMv7-optimized memcpy.\n"
    },
    {
      "commit": "fdc5c1f56f9d21034badb8e4b092c47098f19613",
      "tree": "e46fc6ca820662d33e1dd48ff8fd65a84eac7e83",
      "parents": [
        "1e40783d9ad29c88a4d547774e05080fc4327a2e"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Oct 05 14:11:55 2009 -0700"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Oct 05 14:25:10 2009 -0700"
      },
      "message": "Re-enable ARMv7 memcpy implementation.\n\nDo not submit this patch before the one that modifies the Android emulator to\nwork-around a weird ARMv7 emulation issue. This is done to temporarily re-allow\nthe -user builds needed for QA.\n"
    },
    {
      "commit": "1e40783d9ad29c88a4d547774e05080fc4327a2e",
      "tree": "d73c841ff9743e0f78ecd410794998eba693d9db",
      "parents": [
        "fe46030cdd97f9cf810630541df367dd2b85cae9"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Fri Oct 02 19:13:27 2009 -0700"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Fri Oct 02 19:13:27 2009 -0700"
      },
      "message": "Fix armv7-user builds by disabling the ARMv7-optimized memcpy.\n\nThis is required to work-around some corny bugs in ARMv7 emulation.\n\nThe emulation itself is required to run the dex pre-optimization pass\nfor -user builds.\n"
    },
    {
      "commit": "0893d4918742db3b4bd8ef82c4f3008b60de9e2a",
      "tree": "d27f4a2ed629c14bb2e9ec74aeda6cf766e7b9a0",
      "parents": [
        "2d77d4dbd690e2d85b9795e670c3b94f8233e962",
        "7a9e06fa7e4e533074cde314f25dff3024f34a5d"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Sep 29 15:13:15 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Sep 29 15:13:15 2009 -0700"
      },
      "message": "am 7a9e06fa: Merge change I2a7ad975 into eclair\n\nMerge commit \u00277a9e06fa7e4e533074cde314f25dff3024f34a5d\u0027 into eclair-plus-aosp\n\n* commit \u00277a9e06fa7e4e533074cde314f25dff3024f34a5d\u0027:\n  Fix ABI breakage in libc.so and libm.so between 1.6 and Eclair.\n"
    },
    {
      "commit": "7a9e06fa7e4e533074cde314f25dff3024f34a5d",
      "tree": "415721b383792ec3ea8c45a12f6a924ba504b80a",
      "parents": [
        "ee223d02d96815c989b62043ff1237b1cd4e14b0",
        "2a7ad97539313c82e13d36c9c75cefb2982a87d8"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 29 18:04:51 2009 -0400"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 29 18:04:51 2009 -0400"
      },
      "message": "Merge change I2a7ad975 into eclair\n\n* changes:\n  Fix ABI breakage in libc.so and libm.so between 1.6 and Eclair.\n"
    },
    {
      "commit": "2a7ad97539313c82e13d36c9c75cefb2982a87d8",
      "tree": "273eed8deddcc38c67b86e4a9dc90d966444fefa",
      "parents": [
        "33acbf0719c4f3db059bc9e1f52cf554a5d0295f"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Sep 29 14:43:38 2009 -0700"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Sep 29 14:43:38 2009 -0700"
      },
      "message": "Fix ABI breakage in libc.so and libm.so between 1.6 and Eclair.\n\nFor a detailed description of the problem and why this fix is\nneeded, plrease read the comments in libgcc_compat.c\n"
    },
    {
      "commit": "2d77d4dbd690e2d85b9795e670c3b94f8233e962",
      "tree": "f6b1eee82b26ae72026b51c421ef0dd2316eae75",
      "parents": [
        "468fc8c53310b66455f88d47d11775b5995378c5",
        "ee223d02d96815c989b62043ff1237b1cd4e14b0"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Sep 29 13:31:57 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Sep 29 13:31:57 2009 -0700"
      },
      "message": "am ee223d02: NEON optimized memcpy.\n\nMerge commit \u0027ee223d02d96815c989b62043ff1237b1cd4e14b0\u0027 into eclair-plus-aosp\n\n* commit \u0027ee223d02d96815c989b62043ff1237b1cd4e14b0\u0027:\n  NEON optimized memcpy.\n"
    },
    {
      "commit": "ee223d02d96815c989b62043ff1237b1cd4e14b0",
      "tree": "b60fc608c7c0d87da2dfb3015faa3da62fe09335",
      "parents": [
        "33acbf0719c4f3db059bc9e1f52cf554a5d0295f"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sun Sep 27 17:46:43 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Sep 28 19:08:18 2009 -0700"
      },
      "message": "NEON optimized memcpy.\n\n372 MB/s for large transfers, 440 MB/s for smaller ones down to 1KB. 130 MB/s for very small transfers ( \u003c 32 bytes )\nPerformance is similar with non-congruent buffers.\n"
    },
    {
      "commit": "dfa87a200fd3f99e2a8790f2efc12528fba8e756",
      "tree": "96b9e2023148b0377f81cbd57f8f9c3e1c594912",
      "parents": [
        "7e5e9f42706da2f487645a522e907b38fc387910",
        "f355096a64b74c8e869527de55f7e908873e3128"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Sun Sep 27 07:19:59 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sun Sep 27 07:19:59 2009 -0700"
      },
      "message": "am f355096a: Remove NEON optimizations for memcpy\n\nMerge commit \u0027f355096a64b74c8e869527de55f7e908873e3128\u0027 into eclair-plus-aosp\n\n* commit \u0027f355096a64b74c8e869527de55f7e908873e3128\u0027:\n  Remove NEON optimizations for memcpy\n"
    },
    {
      "commit": "f355096a64b74c8e869527de55f7e908873e3128",
      "tree": "914ca013c2b4979b97c639c301a70c41a4785a4a",
      "parents": [
        "bc10cd2900cdb7fed077163b6a33e0f8572b2b19"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Sun Sep 27 07:08:46 2009 -0700"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Sun Sep 27 07:08:46 2009 -0700"
      },
      "message": "Remove NEON optimizations for memcpy\n"
    },
    {
      "commit": "4a05d12cf52a9a40759f11f28543bd75715c8f00",
      "tree": "2d0beafae4775320beea102649b491b05fa50f8e",
      "parents": [
        "916edf2a3fc60e08a5f29cd322d9f2a04d15cb49"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Fri Sep 18 13:35:05 2009 -0700"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Sep 22 10:03:59 2009 -0700"
      },
      "message": "Fix TLS access for ARMv6 and beyond.\n\nFor performance reasons, we don\u0027t call the kernel helper. Instead, we directly\naccess the TLS register on ARMv6 and higher. For ARMv5TE, keep using the hard-coded\naddress populated by the kernel on each task switch.\n\nNOTE: Since we don\u0027t call the kernel helper, this must precisely match your\n      kernel configuration. This is controlled by setting the ARCH_ARM_HAVE_TLS_REGISTER\n      variable to \u0027true\u0027 in your board configuration file.\n"
    },
    {
      "commit": "b8a18d059b8bde9a04e5778a0074a54413328472",
      "tree": "809bf4ad3a8790fa09859f480aa7bc217a199eaf",
      "parents": [
        "cdeb4c8afa2fb7b92cce3b32a9d2f3c05ad759ba",
        "bd192b470b69e00e9313680b70c5572a609e535d"
      ],
      "author": {
        "name": "Ben Cheng",
        "email": "bccheng@google.com",
        "time": "Tue Sep 15 14:51:10 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Sep 15 14:51:10 2009 -0700"
      },
      "message": "am bd192b47: Add stack unwinding directives to assembly leaf functions.\n\nMerge commit \u0027bd192b470b69e00e9313680b70c5572a609e535d\u0027 into eclair-plus-aosp\n\n* commit \u0027bd192b470b69e00e9313680b70c5572a609e535d\u0027:\n  Add stack unwinding directives to assembly leaf functions.\n"
    },
    {
      "commit": "bd192b470b69e00e9313680b70c5572a609e535d",
      "tree": "61d3575f3195acab886e3fe74388ff45b76fb539",
      "parents": [
        "824201294b5f3c3ad6ca9d9751d96f78142c5409"
      ],
      "author": {
        "name": "Ben Cheng",
        "email": "bccheng@google.com",
        "time": "Tue Sep 15 13:41:14 2009 -0700"
      },
      "committer": {
        "name": "Ben Cheng",
        "email": "bccheng@google.com",
        "time": "Tue Sep 15 13:41:14 2009 -0700"
      },
      "message": "Add stack unwinding directives to assembly leaf functions.\n\nSo that the real culprit of native crashes can surface in the stack trace.\n"
    },
    {
      "commit": "cdeb4c8afa2fb7b92cce3b32a9d2f3c05ad759ba",
      "tree": "c92b4205ab7379cf157a88b8e9709794e70119fd",
      "parents": [
        "664dac1e959dda5f017571d52ab4a34891800927",
        "76ec6891e2bc18c9e12cd2f567358bb817b24cff"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Sep 15 07:51:39 2009 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Sep 15 07:51:39 2009 -0700"
      },
      "message": "merge from open-source master\n"
    },
    {
      "commit": "76ec6891e2bc18c9e12cd2f567358bb817b24cff",
      "tree": "4623c956fcb7404faeb72a347620ce65406276a0",
      "parents": [
        "a90528ad3420c571987f2124955646dae88007b6"
      ],
      "author": {
        "name": "vinay harugop",
        "email": "vinay.harugop@stericsson.com",
        "time": "Wed Sep 09 20:53:39 2009 +0530"
      },
      "committer": {
        "name": "vinay harugop",
        "email": "vinay.harugop@stericsson.com",
        "time": "Wed Sep 09 21:01:46 2009 +0530"
      },
      "message": "ARM architecture reference manuals for ARMv6 \u0026 ARMv7 state that the use of \u0027swp\u0027 instruction is deprecated\nARMv6 onwards. These architectures provide the load-linked, store-conditional pair of ldrex/strex whose use\nis recommended in place of \u0027swp\u0027. Also, the description of the \u0027swp\u0027 instruction in the ARMv6 reference\nmanual states that the swap operation does not include any memory barrier guarantees.This fix attempts to\naddress these issues by providing an atomic swap implementation using ldrex/strex under _ARM_HAVE_LDREX_STREX\nmacro.  This Fix is verified on ST Ericsson\u0027s U8500 platform and Submitted on behalf of a third-party:\nSurinder-pal SINGH from STMicroelectronics.\n"
    },
    {
      "commit": "1bbc56cd227546cb155bb47721cdb717780a3400",
      "tree": "d8fa2782b57382a9f94eb4cd51113c842d67eab7",
      "parents": [
        "898cc98f3d6536f7ae1b38340537edecf9a529f2"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed Aug 26 21:50:42 2009 +0200"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed Sep 02 23:21:52 2009 +0200"
      },
      "message": "Neon-optimized versions of memcpy.\n\nThis optimization come from the external 0xdroid repository.\nOriginal patch can be found here:\n\nhttp://gitorious.org/0xdroid/bionic/commit/ebafe41c2c02f8c09a3c1d7746047083df180ac5\n"
    },
    {
      "commit": "3a654b1e04d4275ae315cfe1b196998acf10052c",
      "tree": "79ce08ac573c6c5bd7d7a65f7fdc24237c00452a",
      "parents": [
        "03eabfe65e1e2c36f4d26c78a730fa19a3bdada3"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed Jun 03 19:32:37 2009 +0200"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed Jun 03 19:32:37 2009 +0200"
      },
      "message": "Revert \"Fix the C library initialization to avoid calling static C++ constructors twice.\"\n\nThis reverts commit 03eabfe65e1e2c36f4d26c78a730fa19a3bdada3.\n"
    },
    {
      "commit": "03eabfe65e1e2c36f4d26c78a730fa19a3bdada3",
      "tree": "b965ea27e54b0833639227c619f6e35647c92510",
      "parents": [
        "0353195f344666256dba474a15c9ba22cf0cccc9"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Thu May 28 15:54:03 2009 +0200"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Jun 02 23:27:44 2009 +0200"
      },
      "message": "Fix the C library initialization to avoid calling static C++ constructors twice.\n\nThe problem was due to the fact that, in the case of dynamic executables,\nthe dynamic linker calls the DT_PREINIT_ARRAY, DT_INIT and DT_INIT_ARRAY\nconstructors when loading shared libraries and dynamic executables,\n*before* calling the executable\u0027s entry point (i.e. arch-$ARCH/bionic/crtbegin_dynamic.c)\nwhich in turns call __libc_init() in libc.so, as defined by bionic/libc_init_dynamic.c\n\nThe latter did call these constructors array again, mistakenly.\n\nThe patch also updates the documentation of many related functions.\n\nAlso adds a new section to linker/README.TXT explaining restrictions on\nC library usage.\n\nThe patch has been tested on a Dream for stability issues with\nproprietary blobs:\n\n- H264 decoding works\n- Camera + Video recording works\n- GPS works\n- Sensors work\n\nThe tests in system/extra/tests/bionic/libc/common/test_static_cpp_mutex.cpp has been\nrun and shows the static C++ constructor being called only once.\n"
    },
    {
      "commit": "1dc9e472e19acfe6dc7f41e429236e7eef7ceda1",
      "tree": "3be0c520fae17689bbf5584e1136fb820caef26f",
      "parents": [
        "1767f908af327fa388b1c66883760ad851267013"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 19:28:35 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 19:28:35 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@135843\n"
    },
    {
      "commit": "1767f908af327fa388b1c66883760ad851267013",
      "tree": "4b825dc642cb6eb9a060e54bf8d69288fbee4904",
      "parents": [
        "a799b53f10e5a6fd51fef4436cfb7ec99836a516"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 18:28:13 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 18:28:13 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@135843\n"
    },
    {
      "commit": "6f04a0f4c72acff80dad04828cb69ef67fa609d1",
      "tree": "915db7d93cb742f72b5d3819e69f48cb29c40a15",
      "parents": [
        "2489551343aa89fc539f369f7689c941b78c08d1"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Feb 19 10:57:29 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Feb 19 10:57:29 2009 -0800"
      },
      "message": "auto import from //branches/cupcake/...@132276\n"
    },
    {
      "commit": "6d6c82c7a0a6b9a89f61b61c66f9b90d9c7177dc",
      "tree": "8de86895228b63728c3a134c8b1fcab003db467d",
      "parents": [
        "4e468ed2eb86a2406e14f1eca82072ee501d05fd"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Jan 09 17:50:54 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Jan 09 17:50:54 2009 -0800"
      },
      "message": "auto import from //branches/cupcake/...@125939\n"
    },
    {
      "commit": "4e468ed2eb86a2406e14f1eca82072ee501d05fd",
      "tree": "4e05b3c66eef86531e464521a3bf96a1864d4bf5",
      "parents": [
        "a27d2baa0c1a2ec70f47ea9199b1dd6762c8a349"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Dec 17 18:03:48 2008 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Dec 17 18:03:48 2008 -0800"
      },
      "message": "Code drop from //branches/cupcake/...@124589\n"
    },
    {
      "commit": "a27d2baa0c1a2ec70f47ea9199b1dd6762c8a349",
      "tree": "defd1cc07d16ad2f3b21154114e092d11c94c5bb",
      "parents": [],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Oct 21 07:00:00 2008 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Oct 21 07:00:00 2008 -0700"
      },
      "message": "Initial Contribution\n"
    }
  ]
}
