)]}'
{
  "log": [
    {
      "commit": "755318548d787c7ca36901be064c69efba41c6cf",
      "tree": "867528fdfccf3f665a2a7cbea7c35f02d8333583",
      "parents": [
        "82e71085c23d11030e9950d8d08e30ef249fd73b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 18 11:23:58 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 18 11:23:58 2014 -0700"
      },
      "message": "Fix lgamma_r/lgammaf_r/lgammal_r for -0.\n\nUpstream has implemented lgammal/lgammal_r for ld128, and fixed the\nsign problem we reported with all the lgamma*_r functions and -0.\n\nBug: 17471883\nChange-Id: Ibb175d9cab67efae75f1010796fd44c9ba6ce4fc\n"
    },
    {
      "commit": "e0c56efddf55ad40cb35b2c22e1dd9b4b50df159",
      "tree": "0e4bed3e5dda4ad2dcf94560c09fe40457e4843a",
      "parents": [
        "83b637fa28e072aa73691b5ddc588293f06cb54b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 29 15:54:11 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 29 15:54:11 2014 -0700"
      },
      "message": "Use __GNUC_PREREQ rather than __GNUC_PREREQ__ to match glibc.\n\nBug: 16874785\nChange-Id: I8512f8be3fd149d8720c5c3b4657bedd5ce2b1d1\n"
    },
    {
      "commit": "f4c948a9e9b616c4f133f9495dacb105e51b3e49",
      "tree": "47e300fdbb36f28ab843468ad484a8d8a74a06e9",
      "parents": [
        "17f83c93cbbde3e38a03182931f40b7390061a7d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 19 11:16:41 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 19 11:18:20 2014 -0700"
      },
      "message": "Move the meat of \u003cfeatures.h\u003e into \u003csys/cdefs.h\u003e.\n\nThis way it\u0027s a lot harder for us to screw up (since we should always\nbe including \u003csys/cdefs.h\u003e anyway).\n\nBug: 14659579\nChange-Id: I23070fff3296b0d1c683bb5e3a6e214146327d53\n"
    },
    {
      "commit": "5f5cc45cf0e027f6ca503dc229a4890fc7164b66",
      "tree": "36bebf629f486d24d8287e7a735662b0269044a6",
      "parents": [
        "205cc41556d44b104a21bc6839b7ea44f72df9ba"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 18 16:04:03 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 18 16:04:03 2014 -0700"
      },
      "message": "Fix \u003cfeatures.h\u003e (_BSD_SOURCE and _GNU_SOURCE).\n\n\u003cfeatures.h\u003e is supposed to take user-settable stuff like _GNU_SOURCE\nand _BSD_SOURCE and turn them into __USE_GNU and __USE_BSD for use in\nthe C library headers. Instead, bionic used to unconditionally define\n_BSD_SOURCE and _GNU_SOURCE, and then test _GNU_SOURCE in the header\nfiles (which makes no sense whatsoever).\n\nBug: 14659579\nChange-Id: Ice4cf21a364ea2e559071dc8329e995277d5b987\n"
    },
    {
      "commit": "de9ac710534626e6796ea885f8480fc4cfd64158",
      "tree": "8c2a2b5a20da5fd47de17b941fe5dc71672628e6",
      "parents": [
        "94a9ba2b4a4d8be7e3520e34bfc7bd47ff7af0ce"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon May 19 16:58:52 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon May 19 16:58:52 2014 -0700"
      },
      "message": "Use -fvisibility\u003dhidden to build libm.\n\nBug: 11156955\nChange-Id: I77b7772a44313a1eb3970f5d2c8e2af63690efa4\n"
    },
    {
      "commit": "b4f2f28054bf89b1367a99f67a9e9b569e4fda06",
      "tree": "90b73423589c9c053181d596bc08aefd941dba24",
      "parents": [
        "170daa042cb0ef3e5d7839f79d052a683b3c670f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 08 21:19:12 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 08 21:19:12 2014 -0700"
      },
      "message": "Declare sincos/sincosf/sincosl in \u003cmath.h\u003e.\n\nChange-Id: If7b98f98c7ab4d3d77d310be082bff64512d51a8\n"
    },
    {
      "commit": "9a5a3e8e74e2c6d7850ab29711189acf0f7378a2",
      "tree": "54310a7a9d342c88ce8f8073b6b90e675641af19",
      "parents": [
        "185dd72a2c487502717903065e46d14039f17826"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon May 05 20:28:28 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon May 05 21:19:47 2014 -0700"
      },
      "message": "Fix \u003cmath.h\u003e to quieten most of our warnings.\n\nI\u0027ve reported the wcsftime bug upstream, but we really just want to use -D\nto ensure the buggy code isn\u0027t built. (I\u0027ve also brought our strftime a bit\ncloser to upstream now we have the right define.)\n\nI don\u0027t think upstream is likely to fix all their sign-compare and\nuninitialized warnings, so let\u0027s just silence them.\n\nAs for libm, again upstream isn\u0027t likely to fix all their warnings, and\nsilencing those made the ones that were our fault stand out. I\u0027ve fixed\nour \u003cmath.h\u003e to fix the warnings caused by our lack of definitions for\nthe non-imprecise long-double functions. I checked the C99 standard, and\nall these functions are there.\n\nChange-Id: Iee8e1182c1db375058fb2c451eceb212bab47a37\n"
    },
    {
      "commit": "9f87a0b285128542a221f2b69d3b959a4e33c054",
      "tree": "6854c64ecb95a5d048e7880b6493f7448a402ccc",
      "parents": [
        "e163a3986aa7d1c67fe3274eb9204812be0a6245"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 07 14:55:58 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 07 14:55:58 2014 -0800"
      },
      "message": "Remove \u003csys/_types.h\u003e.\n\nBug: 12213562\nChange-Id: I0d10664f9da60739bdbad0408be0dd61eea3c1fe\n"
    },
    {
      "commit": "a0ee07829a9ba7e99ef68e8c12551301cc797f0f",
      "tree": "fefc432ee572779579a16d2868d4181a33399281",
      "parents": [
        "a990cf5b3392c5aef767aee1e67b4d7ef651afc6"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 30 19:06:37 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 01 14:51:19 2013 -0800"
      },
      "message": "Upgrade libm.\n\nThis brings us up to date with FreeBSD HEAD, fixes various bugs, unifies\nthe set of functions we support on ARM, MIPS, and x86, fixes \"long double\",\nadds ISO C99 support, and adds basic unit tests.\n\nIt turns out that our \"long double\" functions have always been broken\nfor non-normal numbers. This patch fixes that by not using the upstream\nimplementations and just forwarding to the regular \"double\" implementation\ninstead (since \"long double\" on Android is just \"double\" anyway, which is\nwhat BSD doesn\u0027t support).\n\nAll the tests pass on ARM, MIPS, and x86, plus glibc on x86-64.\n\nBug: 3169850\nBug: 8012787\nBug: https://code.google.com/p/android/issues/detail?id\u003d6697\nChange-Id: If0c343030959c24bfc50d4d21c9530052c581837\n"
    },
    {
      "commit": "8e2ff164cc327aad8666333a1d75f86291858da0",
      "tree": "b67bcbef578a2ae2ab588e611296e9f2e14e208c",
      "parents": [
        "b67c1bacd0fc27c26cc3ec19bd2c9ded19cecd08"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Jan 25 17:05:50 2011 +0100"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Jan 25 17:07:26 2011 +0100"
      },
      "message": "libm: Add nanf() and tgammaf() implementations.\n\nRequested by b/3370708 to export these through RenderScript.\n\nChange-Id: I1ae69f87a1ad4765b2dee8e4a6f2f3a6eb7c5ad4\n"
    },
    {
      "commit": "9946750609c858dad0150da55645c4331392cf0d",
      "tree": "4b4c781867bbd8bc472e129916efb4566b3538df",
      "parents": [
        "d5578fb652bd41bb978ae3b7727e4fde639b728f"
      ],
      "author": {
        "name": "Jing Yu",
        "email": "jingyu@google.com",
        "time": "Thu Jun 03 14:05:51 2010 -0700"
      },
      "committer": {
        "name": "Jing Yu",
        "email": "jingyu@google.com",
        "time": "Thu Jun 03 14:13:53 2010 -0700"
      },
      "message": "Add sincosl() function to bionic. So that sincos optimization can\nbe enabled.\n\nChange-Id: I19671a407dc96a92417c719da938ee0c1669bfb8\n"
    },
    {
      "commit": "ddd235bd9c264f08dee7887e210d61ca2351cf86",
      "tree": "2e734467ff6973ed6a8f878c5b72e27845f557a3",
      "parents": [
        "204e82d0af26ab08e3bf8f82e676edcc7b992931"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed May 19 11:39:16 2010 -0700"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed May 19 11:39:16 2010 -0700"
      },
      "message": "Add sincos() and sincosf() implementation.\n\nThis is a GLibc-compatibility patch required to simplify our\nupcoming toolchain work/porting.\n\nChange-Id: I615a20a449763f86b6e2b0e4f5ab43fb029ceb6d\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": "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"
    }
  ]
}
