)]}'
{
  "log": [
    {
      "commit": "284c8f1bafd53777c262ee29f941644747eb4ad9",
      "tree": "9d923e60b2e04a083a2a719b054ea1db2a5a699c",
      "parents": [
        "aa0b5054c52e10a9e4b5d5dd9daa90d707164af0"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Mar 30 16:34:27 2017 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Mar 30 17:18:31 2017 -0700"
      },
      "message": "Revert \"isnan and isinf aren\u0027t functions.\"\n\nWhile this change is correct, GNU libstdc++ 4.9 isn\u0027t able to handle a\nstandard compliant C library. Its \u003ccmath\u003e will `#undef isnan` from\nmath.h and only adds the function overloads to the std namespace,\nmaking it impossible to use both \u003ccmath\u003e (which gets included by a\nlot of other standard headers) and ::isnan.\n\nWe\u0027re going to have to revert this until we can start turning down\nsupport for gnustl.\n\nThis reverts commit e76ee993ff30a639d24c7db6a080c14d1b1a10f2.\n\nBug: https://code.google.com/p/android/issues/detail?id\u003d271629\nTest: make checkbuild\nChange-Id: I394f50271430e78ab801d85c3ee4e87019eda6af\n"
    },
    {
      "commit": "e76ee993ff30a639d24c7db6a080c14d1b1a10f2",
      "tree": "b761aae9d6f050408146941680843fb6d0dbc5ed",
      "parents": [
        "3c838bbb4aca12936aa3d8e96f3b04af3803d0f4"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 02 14:02:49 2017 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 02 14:02:49 2017 -0800"
      },
      "message": "isnan and isinf aren\u0027t functions.\n\nisnan was a function in POSIX in 1997, but changed to a macro only in 2004\nto align with the C standard. isinf wasn\u0027t in POSIX until 2004, where it\nappeared as a macro only (but other C libraries already had it as a\nfunction).\n\nNow the C++ standard has added ::isnan and ::isinf functions with different\nsignatures from the historical ones, so we need to move our historical cruft\nout of the way.\n\nWe\u0027ll keep the implementations for backwards compatibility.\n\nBug: http://b/34724220\nTest: ran tests\nChange-Id: Id665f0344af6fe6ed245106e60231f4ef2027f41\n"
    },
    {
      "commit": "95fa061678400315ee757758bf5f9146176d47a0",
      "tree": "0b3428e9d7d274e79809471c1d7ae3896a10ff03",
      "parents": [
        "1d20532f5c5f8c1638735eb04586be82a7d0379c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Sep 28 12:29:52 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Sep 28 12:36:38 2016 -0700"
      },
      "message": "Rename __pure, __pure2, and __purefunc.\n\nThese names were pretty misleading (aka \"backwards\"), so switch to the\nsame obvious names glibc uses.\n\nTest: build.\nChange-Id: Ia98c9dbbccd0820386116562347654e84669034a\n"
    },
    {
      "commit": "31d7037f2ae06f767dfeb69486721b0ecaa7d668",
      "tree": "40bc6adcd2c33451d36526e944a8480428f01a08",
      "parents": [
        "0f81dd35485563a2d111f01a1c14ac3678192c12"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Sep 13 14:15:21 2016 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Sep 13 14:16:14 2016 -0700"
      },
      "message": "Expose some more function decls.\n\nTest: make checkbuild tests # for x86-eng this time\nBug: http://b/30465923\nChange-Id: I98c5a8d09463e85ac22b05035c87edab04eaa200\n"
    },
    {
      "commit": "cb0b14385b21ec6b7a6e12bc1a9bb6d68f8a839c",
      "tree": "254669c0c2e6569f9785f31639eb3302771fa8ff",
      "parents": [
        "69b26542de22a0eca05d3b9863d196f3edd7949c"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Sep 06 16:51:00 2016 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Sep 08 16:13:28 2016 -0700"
      },
      "message": "Provide fake definitions for libstdc++.\n\nlibstdc++ needs to be able to `using ::foo` these in the various C++\nwrapper headers for the C library. The NDK long ago added fake\ndefinitions. We need to keep the same.\n\nTest: make checkbuild\nBug: http://b/30465923\nChange-Id: Id513b72a59eafcc823080631e07b21290d5e3b24\n"
    },
    {
      "commit": "c1929e44524c7c9fa2cc4fe33a5fedfdca2445a5",
      "tree": "dccea086b9a64e4f02da994f8151e3e7bab781a7",
      "parents": [
        "cea5c8a6099cff4f3ceccb3309a522bb1cf377b4"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 12 16:18:03 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 12 16:25:40 2016 -0700"
      },
      "message": "Move some POSIX math functions out of _USE_GNU/_USE_BSD.\n\nThe signgam global and the j0/j1/jn and y0/y1/yn functions are POSIX.\n\nhttp://pubs.opengroup.org/onlinepubs/9699919799/basedefs/math.h.html\n\nChange-Id: I802997a2060a011a777c2b641f28c1d58dfe49ed\n"
    },
    {
      "commit": "9c8d711aa5ee3108a8e1e8959be9d0355ca0fa6a",
      "tree": "d860929c4008c8b28d5516c16e9b404bfd94fa5a",
      "parents": [
        "c713adeca1b840ea8f2fd94717e77316cb0a39c4"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jun 13 13:23:42 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jun 13 14:14:43 2016 -0700"
      },
      "message": "Don\u0027t expose all BSD extensions.\n\nJust expose the ones that bionic historically leaked.\n\nAlso, many of the M_* constants in \u003cmath.h\u003e are actually POSIX.\n\nChange-Id: I6275df84c5866b872b71f1c8ed14e2aada12b793\n"
    },
    {
      "commit": "3ba55f8022f3d5c5ca94a3df46fa658eda791987",
      "tree": "9e500c17531ea742e86de6848cc10ebca7ef28cb",
      "parents": [
        "93bae32c27f41e55e1cf9a6f5f8a05fbc1feaf1d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jun 08 18:11:23 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jun 09 17:40:19 2016 -0700"
      },
      "message": "Rationalize visibility.\n\nIf it\u0027s C or POSIX, it\u0027s in. If it\u0027s BSD or GNU, it\u0027s guarded by __USE_BSD\nor __USE_GNU.\n\nBug: https://code.google.com/p/android/issues/detail?id\u003d194631\nChange-Id: Ife51a21c2b37b060db56780d29c929805b199cb6\n"
    },
    {
      "commit": "46b44160e9e4c466be0faf1bb8d6ec70ecc83273",
      "tree": "80036c736b6315189745423724f1d69cb3b74682",
      "parents": [
        "6e9c1f61d8ea04d35d18709e373da355ca32e523"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri May 27 11:14:16 2016 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Jun 02 13:40:35 2016 -0700"
      },
      "message": "Update header versions for NDK platform fixes.\n\nBug: http://b/28178111\nChange-Id: Icd638673b409aa43a91490f77c6b4d79c9ea20d9\n"
    },
    {
      "commit": "d51bc71294e35fb2960288d28858683d9efe14e9",
      "tree": "6b71269f8e8b455b904b8538497d90ddb2e17a1d",
      "parents": [
        "34c599a8b0b04f66b065c4d84b809f74dd44382d"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Apr 29 16:36:01 2016 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Apr 29 16:39:50 2016 -0700"
      },
      "message": "Add platform specific version tags.\n\nSome functions were added at different times on different platforms.\nThis should hopefully get most of them.\n\nBug: http://b/28178111\nChange-Id: I85fdf92779a2f3277e9b537c6bfc7216790c607a\n"
    },
    {
      "commit": "14adff1cfa06a3d4d3281a9bf7848b556d84c20d",
      "tree": "ce1fb2867f69e49f57d0bbe8a9099b09beda0c19",
      "parents": [
        "5a3d5cac642f9e58b2c510eab23789fb4fc3a753"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Apr 29 12:00:55 2016 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Apr 29 16:39:50 2016 -0700"
      },
      "message": "Add versioning information to symbols.\n\nBug: http://b/28178111\nChange-Id: I46bf95accd819f4521afb1173d8badcc5e9df31c\n"
    },
    {
      "commit": "a588f905ab81bd9d0b644741e0847fba7dcb24bf",
      "tree": "14d1639941767fe3510a2a0630c09570fa4169cb",
      "parents": [
        "08794d43adedb30aef58f0c77646ed5eaf9395e3"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Apr 08 11:43:33 2016 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Apr 08 21:09:52 2016 +0000"
      },
      "message": "Remove fabs, fabsf, fabsl inlines from \u003cmath.h\u003e.\n\nThese inline definitions appear to be a workaround for a compiler bug\nthat either never existed, or has been resolved since then.\n\nBug: http://b/28067717\nChange-Id: Ic1cd0f26403f234a6ab1fa273a9dd23e7f9fee8f\n"
    },
    {
      "commit": "afe835d540000d2378e744b764d71406b410761d",
      "tree": "e7e2f42e0aa8f049fe431360a4b79b3ec3f8ae9a",
      "parents": [
        "2152a8ca3550ff0c9c998bfd4d6ab741758063ec"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Apr 02 08:36:33 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Apr 02 08:36:33 2016 -0700"
      },
      "message": "Move math headers in with the other headers.\n\nKeeping them separate is a pain for the NDK, and doesn\u0027t help the platform.\n\nChange-Id: I96b8beef307d4a956e9c0a899ad9315adc502582\n"
    },
    {
      "commit": "9ee6adb003eb5a9855ff6c47f9c150b415a11299",
      "tree": "d9c7c155a7847fa13c03e909af11895e3f52c3cd",
      "parents": [
        "470de8f4d7b8e2e4a926f645870ab0419706fa78"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 11 14:49:13 2016 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 11 15:03:25 2016 -0800"
      },
      "message": "Add missing \u003ccomplex.h\u003e functions.\n\nFreeBSD doesn\u0027t seem interested in having low-quality implementations of\nthese functions:\n\n  cacoshl, cacosl, casinhl, casinl, catanhl, catanl, ccoshl, ccosl, cexpl,\n  clog, clogf, clogl, cpow, cpowf, cpowl, csinhl, csinl, ctanhl, ctanl.\n\nAnd they still haven\u0027t got round to writing good implementations, so for\nnow let\u0027s just take the NetBSD ones so we have the full set.\n\nBug: http://b/27555792\nChange-Id: I6b72003cf749b1043f006377a01fffe5e1d659bc\n"
    },
    {
      "commit": "f9f4a432ee4f56b8cb24b2033d3b1068200a6d30",
      "tree": "b59b778c1ec5a698d983a4ddfb0b89610fb7fa7e",
      "parents": [
        "c868b4c35184683fe74ff8c8d780d021c2b07464"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 24 22:57:08 2015 +0000"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 24 16:05:48 2015 -0700"
      },
      "message": "Revert \"Revert \"Use compiler builtins for fabs.\"\"\n\nDon\u0027t enable the inlines when building libm itself. Otherwise clang gets\nupset by seeing both an inline and a non-inline definition.\n\nThis reverts commit c5deb0f883cbdca7e5ab75f92f82c31d21367f49.\n\nChange-Id: If7abdb351f5a5549d6a331b33af408e8fcfa9868\n"
    },
    {
      "commit": "c5deb0f883cbdca7e5ab75f92f82c31d21367f49",
      "tree": "e1336898a36e28000e765cd8d0584780b5ce6066",
      "parents": [
        "d76f16973a9d06765fb1f482239b9559f893ffd0"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 24 21:08:13 2015 +0000"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 24 21:08:13 2015 +0000"
      },
      "message": "Revert \"Use compiler builtins for fabs.\"\n\nUse of \"extern inline\" breaks clang build.\n\nThis reverts commit d76f16973a9d06765fb1f482239b9559f893ffd0.\n\nChange-Id: I995d0d38c3776f5c50b060f16770741c92a2acac\n"
    },
    {
      "commit": "d76f16973a9d06765fb1f482239b9559f893ffd0",
      "tree": "d26e425e5b261a623762761d2f43e9e0d20bf5aa",
      "parents": [
        "079fc833137d5067c0cd3dc5211e72019314dd80"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 21 11:04:23 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 24 13:32:40 2015 -0700"
      },
      "message": "Use compiler builtins for fabs.\n\nChange-Id: Id3bf761d6dfc187f218b5215c53d76bddc83d50b\n"
    },
    {
      "commit": "b662280aaff801ef936fbfab34dd1596acce945e",
      "tree": "84d65eda9175757baa37181b8abb5a48b34c0775",
      "parents": [
        "b4f2112fa99dab401cd65db4c524d95b1e97614e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 14 14:04:30 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 14 15:20:57 2015 -0700"
      },
      "message": "Use __builtin_* in \u003cmath.h\u003e.\n\nAlso remove cruft meant to support long-obsolete compilers. More\nbenchmarks.\n\nBug: http://b/23195789\nChange-Id: Ief538e41e77a77e8013b2f4f359584e8df2c47d8\n"
    },
    {
      "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"
    }
  ]
}
