)]}'
{
  "log": [
    {
      "commit": "41b3179c9ef03ebb447cac7f5e8405dce399cb17",
      "tree": "b0fa19272b1a7bb1ca7fe17c35a7374b650913b6",
      "parents": [
        "0a91b11d286446fe7849a6f537b4a21a52f63399"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jan 28 10:36:31 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jan 28 10:36:31 2013 -0800"
      },
      "message": "Unit tests for formatting code, fix %%.\n\nAlso fix \u003csignal.h\u003e and \u003cstdio.h\u003e so they don\u0027t cause compiler warnings.\n\nChange-Id: Ib1a746bf01de22d47dbd964de0e6af80a7c96303\n"
    },
    {
      "commit": "3975cec694a0c9b42e3f7e671fcd678da92836c3",
      "tree": "bf92249d492ff0b9902d06950814e18be342a4b8",
      "parents": [
        "50e62e4051c14d7d2a5e07ebe66afd2a81693a26"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 29 17:25:23 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 29 17:25:23 2012 -0800"
      },
      "message": "Remove (near-)duplicate definitions of size_t and ssize_t.\n\nThe near duplicates upset fussier compilers that insist that\ntypedefs be exactly the same, but the fix isn\u0027t to make all\ncopies identical...\n\nChange-Id: Icfdace41726f36ec33c9ae919dbb5a54d3529cc9\n"
    },
    {
      "commit": "ce45fea03ddfd8d6d1900d6777a002dec98ea1e1",
      "tree": "faa21f4c8abfa6500b431ec98e56da7320ffa923",
      "parents": [
        "4e457759893a6a6ab4f84a5aea231d0a11c7bb13"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 22 16:10:27 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 22 16:10:27 2012 -0700"
      },
      "message": "Add missing BEGIN_DECLS/END_DECLS for FORTIFY_SOURCE stdio prototypes.\n\nChange-Id: I35ceb09fedf873c5e98e1e26efce5e4f00a17e74\n"
    },
    {
      "commit": "7d56ccbfaac2b702e4be0f71038efb7f251ef637",
      "tree": "cd684140bf457eee69547130bb109e264ebdc534",
      "parents": [
        "d3bf954e9ffbdee8d732ccb6ad6143dc31b605fc"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 01 17:56:58 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 01 17:56:58 2012 -0700"
      },
      "message": "Always take GCC\u0027s definition of NULL.\n\nThere\u0027s a (bad) definition of NULL in \u003clinux/stddef.h\u003e, and this\ndefinition of NULL, and the One True definition in the \u003cstddef.h\u003e provided\nby the compiler. This change at least kills one of the bad duplicates.\nKilling the \u003clinux/stddef.h\u003e one is harder, because it\u0027s in a generated\nfile.\n\nChange-Id: Iea4ccb12d6758199f312ea9cd753b84322d5c471\n"
    },
    {
      "commit": "0cc0d250fd3097e4c26b70cdeb5c47caac634069",
      "tree": "96aafbb8f67296aab27a805de9a6fc3536fac910",
      "parents": [
        "fe712e6caedccbbba24bda8429cb0b8cc6057ff1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 01 15:12:40 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 01 15:12:40 2012 -0700"
      },
      "message": "Remove useless #defines and incorrect claims from header files.\n\nThe various __need_* macros were write-only.\n\nChange-Id: Id3cca34188e0801fdf93a038b22f2817226ad9c2\n"
    },
    {
      "commit": "422b6ef92c1cca3cfd412621dc3db3b8609fa88c",
      "tree": "6108aeee437a77c0084ff045f6e3fc112733c4de",
      "parents": [
        "eac9eb462ed6f7fcfb791e7a08b4011fcca47829"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 28 10:15:52 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 28 10:15:52 2012 -0700"
      },
      "message": "Define ssize_t if necessary.\n\nChange-Id: I63801cc1f09be5e4ca20a6da7ec3366ba6441afd\n"
    },
    {
      "commit": "eac9eb462ed6f7fcfb791e7a08b4011fcca47829",
      "tree": "3b436a25d9ff22616ca22919ff9026e4426a9243",
      "parents": [
        "e4030e0bfc427e755477bbea69afe60308a62d91"
      ],
      "author": {
        "name": "Irina Tirdea",
        "email": "irina.tirdea@intel.com",
        "time": "Sat Sep 08 09:28:30 2012 +0300"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 27 11:38:57 2012 -0700"
      },
      "message": "Add getdelim(3) and getline(3) to bionic\n\nSome userspace programs (e.g. perf) need getline.\n\nChanges:\n() add getdelim.c, getline.c from NetBSD (http://netbsd.org/) under the\nNetBSD Foundation\u0027s (TNF) license (\"2 clause\" Berkeley-style license).\n() add stub for reentrant.h header that is needed by getdelim.c\n() add tests for getdelim(3) and getline(3).\n() update NOTICE file.\n\nChange-Id: I22ed82dd5904b9d7a3695535c04f502be3c27c5d\nSigned-off-by: Irina Tirdea \u003cirina.tirdea@intel.com\u003e\n"
    },
    {
      "commit": "829c089f83ddee37203b52bcb294867a9ae7bdbc",
      "tree": "95fb7297694601b1ff65ba0296cfff3a5ee66fd6",
      "parents": [
        "069c64cdf2d3da7b7ff6ea5d1041f982fb10ab22"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Aug 29 12:40:53 2012 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Aug 29 12:47:41 2012 -0700"
      },
      "message": "disable _FORTIFY_SOURCE under clang\n\nClang and _FORTIFY_SOURCE are just plain incompatible with\neach other.  First of all, clang doesn\u0027t understand the\n__attribute__((gnu_inline)) header. Second of all,\nClang doesn\u0027t have support for __builtin_va_arg_pack()\nand __builtin_va_arg_pack_len() (see\nhttp://clang.llvm.org/docs/UsersManual.html#c_unimpl_gcc)\n\nUntil we can resolve these issues, don\u0027t even try using\n_FORTIFY_SOURCE under clang.\n\nChange-Id: I81c2b8073bb3276fa9a4a6b93c427b641038356a\n"
    },
    {
      "commit": "9b6cc223a36835c4367a036d4cfeff14d25bc742",
      "tree": "8fcd143b253225860fbd817cdad02afac00f1be8",
      "parents": [
        "260bf8cfe00f83bc579dfe81c78b75bd9973f051"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Jul 13 14:46:36 2012 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Jul 13 14:49:33 2012 -0700"
      },
      "message": "FORTIFY_SOURCE: introduce __BIONIC_FORTIFY_UNKNOWN_SIZE macro\n\nReplace all occurances of \"(size_t) -1\" with a\n__BIONIC_FORTIFY_UNKNOWN_SIZE macro.\n\nChange-Id: I0b188f6cf31417d2dbef0e1bd759de3f9782873a\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": "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": "f39a3fe67d7f1faa21a39ea8e1f57a6596c8cadb",
      "tree": "4b348d687db7a7a27af9840571ccbb8ff8dc847a",
      "parents": [
        "1625c7a837d73b6729f97edb32c497d289c0220c"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Feb 09 10:15:45 2012 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Feb 09 10:15:45 2012 -0800"
      },
      "message": "Allow C++ to call fdprintf\n\nChange-Id: I1adb7b165ab9f62eaee4e7a9108e8b461350b347\n"
    },
    {
      "commit": "f582340a6a48588aa50da17e1620e8f91b146941",
      "tree": "d30c0ffb648b7a43ff469f89f05850f5008482ec",
      "parents": [
        "72f9a5c374bf559e9c69a62c1d95304f913ef6b2"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Sat Feb 12 07:13:44 2011 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Feb 14 09:32:56 2011 -0800"
      },
      "message": "Fix the handle locking in stdio\n\nFix the handle locking in stdio to use flockfile/funlockfile\ninternally when and where required.  Macros in \u003cstdio.h\u003e are updated\nto automatically call the underlying functions when the process is\nthreaded to obtain the necessary locking.  A private mutex is added\nto protect __sglue, the internal list of FILE handles, and another\nto protect the one-time initialization.  Some routines in libc that\nuse getc() change to use getc_unlocked() as they\u0027re either protected\nby their own lock or aren\u0027t thread-safe routines anyway.\n\nBased on OpenBSD change by guenther@openbsd.org\nhttp://www.mail-archive.com/source-changes@cvs.openbsd.org/msg01015.html\n\nBug: 3446659\nChange-Id: Ie82116e358c541718d6709ec45ca6796be5a007b\n"
    },
    {
      "commit": "bb5581ad6eec40041dab4e961149f7a8a3a83497",
      "tree": "5e8c1e583da643c37143adff205c6d794a0850c5",
      "parents": [
        "af00228b705b53165c132a22b30c2d6cbb9acd13"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Sat Oct 09 17:56:55 2010 +0200"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Sat Oct 09 17:56:55 2010 +0200"
      },
      "message": "libc: tag missing functions in system headers.\n\nThis matches recent changes in the NDK header.\nWe enclose missing functions in #if 0 .. #endif blocks\nwith a clear \"MISSING\" in comments in order to locate\nthem later.\n\nChange-Id: I87b3a62e777897e75c9243360fb0a82bcc53d9fb\n"
    },
    {
      "commit": "50ace4fec5e8cb5afcbc656a4556fa528adfd760",
      "tree": "04647e039a457f69ba48a8301bebdd605fda7fca",
      "parents": [
        "6a9b888d7c4b246f6f66360789c72b754ff85021"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed Jun 16 16:36:41 2010 -0700"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Jun 22 17:51:41 2010 -0700"
      },
      "message": "Remove compiler warnings when building Bionic.\n\nAlso add missing declarations to misc. functions.\nFix clearerr() implementation (previous was broken).\nHandle feature test macros like _POSIX_C_SOURCE properly.\n\nChange-Id: Icdc973a6b9d550a166fc2545f727ea837fe800c4\n"
    },
    {
      "commit": "fc10b24accd082fb33c8f92ff8b92481c22fe3dc",
      "tree": "edadb43992d3ff9334ff7e1f257f13073d25ebd6",
      "parents": [
        "8c59d96e243ba1a05d7d9ab7a14d1a00e20bad4a"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Jan 13 17:48:34 2010 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Jan 15 16:52:35 2010 -0800"
      },
      "message": "Add implementation of fdprintf, clearenv, and stubs for ttyname_r, *usershell\n\nChange-Id:\tI5fe7e8b6ee5edbb49e707c3b6737a58563781fa3\n"
    },
    {
      "commit": "c1202510b67f200b668d85ac0190db2b179b0c4d",
      "tree": "d21ef3298289e6418ffe505cd85bb3fb6e7066a1",
      "parents": [
        "00da948b09af535c389f791086cc8e08b3da67dc"
      ],
      "author": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Wed Nov 25 14:16:53 2009 -0800"
      },
      "committer": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Wed Nov 25 14:16:53 2009 -0800"
      },
      "message": "Added a comment.\n\nThe structs for stdin/stdout/stderr are formed with a static initializer\nthat needs to be updated if something in FILE is changed.\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": "e5cc1f386b167b9f7bfdebc7219e89aa9b71e4b2",
      "tree": "2cbd43daa6744ed80e833528f8cbfc0c485e5253",
      "parents": [
        "6d6c82c7a0a6b9a89f61b61c66f9b90d9c7177dc"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jan 15 16:12:07 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jan 15 16:12:07 2009 -0800"
      },
      "message": "auto import from //branches/cupcake/...@126645\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"
    }
  ]
}
