)]}'
{
  "log": [
    {
      "commit": "32dbc03c73dc1f9d1fcd072086d894a9eb25aecd",
      "tree": "cd9ba7f5de95b4435c6eb99695ba15246806d9de",
      "parents": [
        "fe43c768ec803a1febde0424bb5e69c343dd7ae9"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 15 15:43:13 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 15 15:43:13 2012 -0700"
      },
      "message": "Regenerate all NOTICE files with the latest version of the script.\n\nThis sorts every entry, so we should have more stability and fewer\nmerge conflicts in future.\n\nChange-Id: Ifc5347dc53352da22c82d41ca59b483966fcfc6b\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": "387d4b7de9af2afd0c37a895ff9d012eb1f66156",
      "tree": "a515a4be8d2881d734a6b1c2a2e4f1fdd0c43e1d",
      "parents": [
        "709bb0f79ced522e5fb145182472ee4063b85368"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 09 15:17:46 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 09 16:05:31 2012 -0700"
      },
      "message": "Auto-generate a complete NOTICE file.\n\nRemove the hand-collated ones, and switch to a script that pulls the\ncopyright headers out of every file and collects the unique ones.\n\nChange-Id: Ied3b98b3f56241df97166c410ff81de4e0157c9d\n"
    },
    {
      "commit": "52d6233296ec84eb5b58fcbf7bc9da4b96a943aa",
      "tree": "b0186ce62c2aedc309501f0bfc641a291d91d3e6",
      "parents": [
        "a7916509a3446afd0e863b03e4204cee73e81555"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jul 27 17:40:29 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jul 27 17:43:38 2012 -0700"
      },
      "message": "Report errors to the log, not just stderr.\n\nIn particular this affects assert(3) and __cxa_pure_virtual, both of\nwhich have managed to confuse people this week by apparently aborting\nwithout reason. (Because stderr goes nowhere, normally.)\n\nBug: 6852995\nBug: 6840813\nChange-Id: I7f5d17d5ddda439e217b7932096702dc013b9142\n"
    },
    {
      "commit": "762a4fe2eed6a36b14d3b378c2974ad355d97d54",
      "tree": "a430b718a10128db36185033de5d2c30f87a6ff5",
      "parents": [
        "f848321c4feb0a8b194a2148c3a9d6d65280f924",
        "35d592cc5ac72b851bc2bfb66b159cd62c68a634"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 16 14:40:26 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 16 14:40:26 2012 -0700"
      },
      "message": "resolved conflicts for merge of 35d592cc to master\n\nChange-Id: I8184302daf61814d26c837f9920b4e68d96d7f65\n"
    },
    {
      "commit": "ee18fb4aacc9b67b397a0b000dda6e350ad5b3f0",
      "tree": "1b0359779dc381a7f2cf91220c5318ba2e4b87b9",
      "parents": [
        "6bc18fa58849a4307cf6ddcfd526d9258e8175fc"
      ],
      "author": {
        "name": "Fengwei Yin",
        "email": "fengwei.yin@intel.com",
        "time": "Wed Mar 28 17:25:17 2012 +0800"
      },
      "committer": {
        "name": "Jack Ren",
        "email": "jack.ren@intel.com",
        "time": "Mon Apr 16 14:20:30 2012 +0800"
      },
      "message": "libstdc++: Fix x86 thread-safe one-time-construction implementation.\n\nThe root of the problem is that the existing implementation is based on the\nARM C++ ABI, which mandates a different guard variable layout than the\nItanium/x86 C++ one.\n\nThis patch modifies the implementation in a way that satisfies both ABIs (and\ndoesn\u0027t require changing the toolchains).\n\nChange-Id: I885e9adc7f088b9c0a78355bd752f1e6aeec9f07\nSigned-off-by: Fengwei Yin \u003cfengwei.yin@intel.com\u003e\nSigned-off-by: Jack Ren \u003cjack.ren@intel.com\u003e\nSigned-off-by: Bruce Beare \u003cbruce.j.beare@intel.com\u003e\n"
    },
    {
      "commit": "e31bfae2baa96742f998155ee26e56c826a8ce3a",
      "tree": "b12cfb44ad035c26278f42fa9b19095e90b79e95",
      "parents": [
        "8180b08fb2f27052f9df2ae4787bb5bf409f13e0"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@android.com",
        "time": "Tue Nov 15 15:47:02 2011 +0100"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed Nov 16 16:28:10 2011 +0100"
      },
      "message": "bionic: Do not use \u003csys/atomics.h\u003e for platform code.\n\nWe\u0027re going to modify the __atomic_xxx implementation to provide\nfull memory barriers, to avoid problems for NDK machine code that\nlink to these functions.\n\nFirst step is to remove their usage from our platform code.\nWe now use inlined versions of the same functions for a slight\nperformance boost.\n\n+ remove obsolete atomics_x86.c (was never compiled)\n\nNOTE: This improvement was benchmarked on various devices.\n      Comparing a pthread mutex lock + atomic increment + unlock\n      we get:\n\n  - ARMv7 emulator, running on a 2.4 GHz Xeon:\n       before: 396 ns    after: 288 ns\n\n  - x86 emulator in KVM mode on same machine:\n       before: 27 ns     after: 27 ns\n\n  - Google Nexus S, in ARMv7 mode (single-core):\n       before: 82 ns     after: 76 ns\n\n  - Motorola Xoom, in ARMv7 mode (multi-core):\n       before: 121 ns    after: 120 ns\n\nThe code has also been rebuilt in ARMv5TE mode for correctness.\n\nChange-Id: Ic1dc72b173d59b2e7af901dd70d6a72fb2f64b17\n"
    },
    {
      "commit": "7c72513bfa2a10f48e3205e7d8bf66f6ee1a7082",
      "tree": "cb3a3a0498560224a923bbf912b90062cc3bdd09",
      "parents": [
        "b127b1f208e67d74a7ee94ad2bd0ffb2fed3af6b"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@android.com",
        "time": "Tue Jun 14 21:58:55 2011 +0200"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@android.com",
        "time": "Tue Jun 14 21:58:55 2011 +0200"
      },
      "message": "libstdc++: make operator new call abort on failure.\n\nThis change ensures that operator new will call abort() in case\nof memory allocation failure. Note that due to our usage of memory\novercommit, this can only happen under very rare circumstances\n(i.e. trying to allocate memory larger than the larger free range\nof virtual address space, or when memory is corrutped in various\nways).\n\nChange-Id: I128b8bf626216e899c22a00f24492cd148a1fc94\n"
    },
    {
      "commit": "1aa6708cc2b7792a647ada960a66a1e0146fb209",
      "tree": "5508a8b1b3137bc9ef874959c99476aca60db4d5",
      "parents": [
        "b8d2233e8abc30f33be7d7acc7f3ef6e6aabebac"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Oct 11 15:27:39 2010 +0200"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Oct 11 15:27:39 2010 +0200"
      },
      "message": "Fix the build. Oops.\n\n(We remove the declaration for on_exit() from the C library headers,\nso do the same for the C++ \u003ccstdlib\u003e)\n\nChange-Id: I31a21d5643068cd160724908dd8156863a44d95a\n"
    },
    {
      "commit": "d466780c7cedb41edcf13f28ad900556c6aaa5b2",
      "tree": "cbbc780df9598adb5788824075f2519c54f22fff",
      "parents": [
        "519763265ec0b634bd9c264a0aca034882458ecc"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Fri Jun 11 13:18:41 2010 -0700"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed Jul 07 14:18:20 2010 -0700"
      },
      "message": "Add missing SMP barriers to libstdc++\n\nChange-Id: I20a8dcd2e3316ac60237e800c682cacc8e59e187\n"
    },
    {
      "commit": "0621a279adfb981ea1f0564e7fc8280cda78e043",
      "tree": "9763ca0fde6d2ece1ba2e19a3146a9c9f905b195",
      "parents": [
        "fa5755ae980b6f4ac5df37b263ba20f472db31ca"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Fri Jun 25 16:53:37 2010 -0700"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Fri Jun 25 16:53:37 2010 -0700"
      },
      "message": "libstdc++: use extern \"C++\" in all our C++ system headers.\n\nThis is needed to build an independent toolchain with g++ that doesn\u0027t think\nthat all these headers are in C.\n\nChange-Id: Ie9a8ccfcab7780d6a4e5722777d61c2b1b312001\n"
    },
    {
      "commit": "8f92500fa93d174d077af28d8af3e3cb732e0aff",
      "tree": "8dbb819efaf6b071dab7467dd23d8db15aa59ec6",
      "parents": [
        "95604529ec25fe7923ba88312c590f38aa5e3d9e"
      ],
      "author": {
        "name": "André Goddard Rosa",
        "email": "andre.goddard@gmail.com",
        "time": "Sat Jan 30 22:26:30 2010 -0200"
      },
      "committer": {
        "name": "André Goddard Rosa",
        "email": "andre.goddard@gmail.com",
        "time": "Sat Jan 30 22:26:30 2010 -0200"
      },
      "message": "optimize delete/delete[] operators by removing unneeded branch\n\nRemove redundant not NULL check already done in free().\n\nSigned-off-by: André Goddard Rosa \u003candre.goddard@gmail.com\u003e\n"
    },
    {
      "commit": "194d3fa048cf909ca592dd56fa538dc9cd3f5ddb",
      "tree": "3a00bb9e267cf952d7d1140ff9a39ca07ee6c994",
      "parents": [
        "fde8642fc43bdd224e43e5ee9583a49a758fb03c"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Nov 12 18:45:14 2009 -0800"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Nov 12 18:45:14 2009 -0800"
      },
      "message": "eclair snapshot\n"
    },
    {
      "commit": "348065586a2e6154d6cff36afa6e00af6bbc5918",
      "tree": "20ad478d6e6cd40db0625fc2b31403aabc9d791e",
      "parents": [
        "db4616b2d3234a1916cafb48e65c50cf302afcde"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Fri Jul 10 12:23:09 2009 +0200"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Fri Jul 10 18:40:55 2009 +0200"
      },
      "message": "Add new C++ headers \u003ccerrno\u003e and \u003ccfloat\u003e\n\nAlso add std::malloc/realloc/calloc/free to \u003ccstdlib\u003e\nRename \u003ccwchar_is_not_supported\u003e to \u003ccwchar\u003e\n"
    },
    {
      "commit": "8169573c8744ee3a484ea74bd5e06a8a4f708e37",
      "tree": "bb3a8c126cedbdd584a96faeb50e8ea19b9f3ba8",
      "parents": [
        "d386afcc41e92c96778d9b1a498199f48fa2d4aa"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon May 18 23:23:32 2009 +0200"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon May 18 23:34:13 2009 +0200"
      },
      "message": "Add \u003ccmath\u003e standard C++ header.\nThis is needed for upcoming STLport experimentation.\n"
    },
    {
      "commit": "89b62a18a00f89b0b5f215a1f461aa432421fb63",
      "tree": "84ee971b987d2208048c41fb7e5eafa5364c25cd",
      "parents": [
        "00a18f62a7c97299cea017578ec7ec179215492b"
      ],
      "author": {
        "name": "Niko Catania",
        "email": "",
        "time": "Fri Apr 10 10:51:53 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Apr 10 10:51:53 2009 -0700"
      },
      "message": "AI 145714: Added cstring wrapper around string.h.\n  In new, include cstddef which declares std::size_t.\n  BUG\u003d1601432\n\nAutomated import of CL 145714\n"
    },
    {
      "commit": "00a18f62a7c97299cea017578ec7ec179215492b",
      "tree": "fbe60e1001658ca6848940d460664a56f8949865",
      "parents": [
        "88f8a4ab8534cb21280f8aa0bf557f81ba4e31fa"
      ],
      "author": {
        "name": "Niko Catania",
        "email": "",
        "time": "Wed Apr 08 09:01:36 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Apr 08 09:01:36 2009 -0700"
      },
      "message": "AI 145059: (Almost) final set of wrapper around the C headers for stdc++ and their tests.\n  The only one left is cstring.\n  * bionic/libstdc++/include/cstdlib:\n  * bionic/libstdc++/include/cstdio:\n  * bionic/libstdc++/include/cstdint:\n  * bionic/libstdc++/include/csignal:\n  * bionic/libstdc++/include/csetjmp:\n  Added header file.\n  Checks the bionic headers file were picked up instead of the host ones.\n  Added test for new header files\n  * system/extras/tests/bionic/libstdc++/Android.mk:\n  Added tests for the new header files.\n  EXTRA_CFLAGS: include the bionic header files.\n  BUG\u003d1601432\n\nAutomated import of CL 145059\n"
    },
    {
      "commit": "88f8a4ab8534cb21280f8aa0bf557f81ba4e31fa",
      "tree": "bfc1a22ade4bb5469f0bf80ff69dce20f4c36799",
      "parents": [
        "416ceb861c4daf1bc36809e007ae245814794bd0"
      ],
      "author": {
        "name": "Niko Catania",
        "email": "",
        "time": "Thu Apr 02 09:31:46 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Apr 02 09:31:46 2009 -0700"
      },
      "message": "AI 144236: Added new C to stdc++ header files: cassert, cctype, climits, ctime.\n  QA Impact:None\n  BUG\u003d1601432\n\nAutomated import of CL 144236\n"
    },
    {
      "commit": "416ceb861c4daf1bc36809e007ae245814794bd0",
      "tree": "1e94a93cd2f438fa39283754454b950bc248b688",
      "parents": [
        "a43b482c5415c0bdeb3ac47441e966ee1f071365"
      ],
      "author": {
        "name": "Niko Catania",
        "email": "",
        "time": "Mon Mar 30 12:50:56 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Mar 30 12:50:56 2009 -0700"
      },
      "message": "AI 143504: Completed cstddef to be non empty and similar to the gnu stl implementation.\n  Even if we don\u0027t want to have a bloated stl implementation, having empty\n  files around is probably not very good either.\n  Added a test to make sure the header file compiles on host and kila-eng.\n  QA Impact: In system/extras/test/bionic/libstdc++ build the tests using:\n  mm BIONIC_TESTS\u003d1\n  to build the host and target tests.\n  BUG\u003d1601432\n\nAutomated import of CL 143504\n"
    },
    {
      "commit": "1dc9e472e19acfe6dc7f41e429236e7eef7ceda1",
      "tree": "3be0c520fae17689bbf5584e1136fb820caef26f",
      "parents": [
        "1767f908af327fa388b1c66883760ad851267013"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 19:28:35 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 19:28:35 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@135843\n"
    },
    {
      "commit": "1767f908af327fa388b1c66883760ad851267013",
      "tree": "4b825dc642cb6eb9a060e54bf8d69288fbee4904",
      "parents": [
        "a799b53f10e5a6fd51fef4436cfb7ec99836a516"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 18:28:13 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 18:28:13 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@135843\n"
    },
    {
      "commit": "4e468ed2eb86a2406e14f1eca82072ee501d05fd",
      "tree": "4e05b3c66eef86531e464521a3bf96a1864d4bf5",
      "parents": [
        "a27d2baa0c1a2ec70f47ea9199b1dd6762c8a349"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Dec 17 18:03:48 2008 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Dec 17 18:03:48 2008 -0800"
      },
      "message": "Code drop from //branches/cupcake/...@124589\n"
    },
    {
      "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"
    }
  ]
}
