)]}'
{
  "log": [
    {
      "commit": "4cae5c374e6432f5fb4e7ec6d7e09228c3426e27",
      "tree": "f7d91a9985e5ab095311a1f319025d6d0a321179",
      "parents": [
        "6c716a155df1c25ddc8e48f8bf29163b9a58441c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jul 10 11:51:00 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jul 10 11:51:00 2017 -0700"
      },
      "message": "The future passed part of \u003cstdlib.h\u003e by...\n\nBug: N/A\nTest: builds\nChange-Id: Ibac3c1abd82838dccd360cb70decb7083401c28e\n"
    },
    {
      "commit": "2e8e5e60b6ecbcfe2110242e41b9ec5340b11cf5",
      "tree": "8810a00e508e0dd698d23f513432fff2e513e87e",
      "parents": [
        "ee1c45f88f5fcd1b1d43c325e0de366cc3d0ce36"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Apr 20 12:58:31 2017 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Apr 20 16:57:25 2017 -0700"
      },
      "message": "DO NOT MERGE: The future is now.\n\n__INTRODUCED_IN_FUTURE -\u003e __INTRODUCED_IN(26)\n\nBug: http://b/37437368\nTest: treehugger\nChange-Id: I601a23da83b65a0cd582cc840ed3856a9031b673\n(cherry picked from commit cb302f932a3532f1484e1e70894e9b1199384283)\n"
    },
    {
      "commit": "5c15b8cf43b21528dec09a98ce34b2753e696ba3",
      "tree": "de39eb2dad33ef21de00534f38e311415ac73112",
      "parents": [
        "40854235256c3f51f9ea866f5f8ef03240c00123"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Feb 21 15:54:58 2017 -0800"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Feb 21 15:56:37 2017 -0800"
      },
      "message": "Fix pre-L MB_CUR_MAX.\n\nThe default locale is POSIX, not C.UTF-8. POSIX explicitly states\nthat MB_CUR_MAX is 1 for the POSIX locale:\n\nhttp://pubs.opengroup.org/onlinepubs/9699919799/basedefs/stdlib.h.html\n\nTest: Made change in the NDK, built libc++ against it, ran NDK libc++\n      tests.\nBug: None\n\nChange-Id: Ic2f6f96aa4a7f20d619030f41323831d01002715\n"
    },
    {
      "commit": "7cc779f15c524e1622f7d5b1c7e82e6ffc6677fd",
      "tree": "0f995c0878649447ef160e727505ae81495dcdde",
      "parents": [
        "2bfb8c9180603bac97dca2d8e359f71bb11f7126"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Thu Feb 09 00:00:31 2017 -0800"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Thu Feb 09 15:49:32 2017 -0800"
      },
      "message": "libc: add clang FORTIFY support\n\nThis patch adds clang-style FORTIFY to Bionic. For more information on\nFORTIFY, please see https://goo.gl/8HS2dW . This implementation works\nfor versions of clang that don\u0027t support diagnose_if, so please see the\n\"without diagnose_if\" sections. We plan to swap to a diagnose_if-based\nFORTIFY later this year (since it doesn\u0027t really add any features; it\njust simplifies the implementation a lot, and it gives us much prettier\ndiagnostics)\n\nBug: 32073964\nTest: Builds on angler, bullhead, marlin, sailfish. Bionic CTS tests\npass on Angler and Bullhead.\n\nChange-Id: I607aecbeee81529709b1eee7bef5b0836151eb2b\n"
    },
    {
      "commit": "5bc78c8bcd0c1e634c04029309ede3ec05f2d424",
      "tree": "ba41f009cdf5fb27c766b4efe05c4cbb566d2a85",
      "parents": [
        "8945d5e43a25737f3f888a90742cc918b1124a05"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 16 11:35:43 2016 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 16 16:55:42 2016 -0800"
      },
      "message": "Add and use constants for the Android API levels.\n\nTest: bionic tests still pass\nChange-Id: If1b619cfc9db1d3f5d91f14f2ace71058dca0c4a\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": "6cd9fb080caca2d0d8fcb8f400c1ec466e7b2466",
      "tree": "100dbbffe89a02329ac0effd96ea3c322a2b9a77",
      "parents": [
        "01733796100d63baf0b27f647fed98894e05a29a"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Sep 23 14:06:05 2016 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Sep 23 14:34:03 2016 -0700"
      },
      "message": "Fix warnings (and errors) in static inline headers.\n\nBug: http://b/31676510\nChange-Id: Idcbc544e498f7e6bbe99c2bf7dc557a5681e96c4\nTest: preupload hook\n"
    },
    {
      "commit": "3103f6d39e4ae309a9374ee38f414400c889c558",
      "tree": "e67c7868d7bcc5b0f76fc060f8ac7724b6865677",
      "parents": [
        "904460f749b5a90ca25228a6a3fa0c9ef413a961"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed Sep 21 01:42:19 2016 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Sep 22 00:44:37 2016 -0700"
      },
      "message": "Add strtof_l and strtod_l.\n\nlibc++ needs these now. Add shims to match the others.\n\nTest: make checkbuild tests\nBug: http://b/31639993\nChange-Id: Ifec6c32099145d8d3d1a5639a4809e5e9f553c33\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": "b6a4a4c0cc76004459f87cecb260d202b5ba5512",
      "tree": "7b8e17a2ed737c178caa4c418917ab57f2afb8f9",
      "parents": [
        "f9128bc7d4fff2f50705d92c4fd06e998b63f442"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Tue Jul 26 16:34:40 2016 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Tue Aug 02 14:32:42 2016 -0700"
      },
      "message": "Add version information for legacy inlines.\n\nBug: http://b/30170081\nChange-Id: Ib5962ea3037dd692a98b6691d263871549aac8af\n"
    },
    {
      "commit": "3b2096a9d6edd74622b94cacc76b77100f919b84",
      "tree": "1e5db3202e110172e7db1ced6d87cf8ceca7ed0b",
      "parents": [
        "7101c48f20f2f19dd1d314d23251fb52995a0870"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jul 22 18:57:12 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jul 22 18:57:12 2016 -0700"
      },
      "message": "Remove unnecessary \u0027extern\u0027s.\n\nChange-Id: Iba2b3fb6ff88e504f1657b915120ae43d58a1e03\n"
    },
    {
      "commit": "8778d64d5c78a42d5389767adcf232bfe323e0f8",
      "tree": "15a50d1c7c9f60256f6ad2df007fc74999063b47",
      "parents": [
        "12ba7e51d9c4f6d8c1fa5627f638b291520a7025"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Jul 22 15:26:36 2016 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Jul 22 15:52:55 2016 -0700"
      },
      "message": "Remove __BIONIC_LEGACY_INLINE.\n\nDon\u0027t use the same declaration to declare both static and non-static\nfunctions, to make life easier for versioner.\n\n(Also, remove __BIONIC_LEGACY_INLINE from two functions in termios.h\nthat weren\u0027t actually legacy inlines.)\n\nBug: http://b/30170081\nChange-Id: Ibb73377d77a2b4cee016289b7c46a01452e45fae\n"
    },
    {
      "commit": "f47514dd997d33deafaba85e34e2c95fd514d056",
      "tree": "65f43a89ecf3e69866313efad1ba1716db706386",
      "parents": [
        "20de9ef5bdeb4d338206c0203560e5d4aa6334c5"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 19 13:56:46 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 19 13:56:46 2016 -0700"
      },
      "message": "Remove __LIBC_ABI_PUBLIC__.\n\nWe have much better control over visibility now, so we don\u0027t need to\npollute the headers with cruft.\n\nBug: http://b/24767418\nChange-Id: I349f4c3bc30102477375ad9f80926e560c7c1d8b\n"
    },
    {
      "commit": "95fa26e5901e548d2c3650953bd2d5f92c9e9d2d",
      "tree": "80747b308aa2ab57bc55298b5d4615ff4bafd6bb",
      "parents": [
        "2ed5852759a3326752e975fab57b1c96e1be74b5"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Jun 10 16:33:05 2016 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Jun 10 17:50:14 2016 -0700"
      },
      "message": "Update symbol versions.\n\nBug: http://b/28178111\nChange-Id: I8e9fb919d96693dd320962775e991caf5aeb0107\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": "34c599a8b0b04f66b065c4d84b809f74dd44382d",
      "tree": "3f7e5541c600bb4f6f3f733f68d6ae697076ca86",
      "parents": [
        "14adff1cfa06a3d4d3281a9bf7848b556d84c20d"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Apr 29 13:45:25 2016 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Apr 29 16:39:50 2016 -0700"
      },
      "message": "Add __INTRODUCED_IN_FUTURE for unreleased APIs.\n\nFuture API levels aren\u0027t known (e.g. 25 could be a maintenance release\nof N that doesn\u0027t contain any bionic updates), so use a placeholder\nmacro that we can find and replace with the actual API level before each\nrelease.\n\nBug: http://b/28178111\nChange-Id: I667fe53ea1ac49b64135170fc30d5dbe9df94e29\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": "6f6f9058fa7ba3cc9d53bd93e46c254ef8e8cd96",
      "tree": "572c806c787d2c3a1626a9d97b37de78072f3485",
      "parents": [
        "671e6b20eabd0a1ab973f77dff272a00a4096ee7"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Apr 28 14:54:52 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Apr 28 16:41:29 2016 -0700"
      },
      "message": "Implement mblen(3).\n\nChange-Id: I65948ea5b9ecd63f966ba767ad6db4a2effc4700\n"
    },
    {
      "commit": "29226f39ae027e4252f9bf11906eb4eaa5fb6824",
      "tree": "97cdbf287632aacf0648fac3a2475db0a1fb4887",
      "parents": [
        "c194fd30c6fa3537d918939dd0a762786f21d764"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Tue Apr 26 14:42:55 2016 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Apr 27 16:50:54 2016 -0700"
      },
      "message": "Tag unavailable functions with macro.\n\nAdd an __UNAVAILABLE macro, and use it for several functions which lack\nimplementations, but need to have visible declarations to be reexported\nin the C++ standard library.\n\nBug: http://b/28178111\nChange-Id: Ia4ae0207bbfcb7baa61821f0ef946257b019c0db\n"
    },
    {
      "commit": "b8e1b705d187886decb5970f791358f928f93d75",
      "tree": "28f12472ef5f3119340975edc1010c52452b084c",
      "parents": [
        "99739d4280e11f3a63d23059349a0cf98c41f5c4"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Apr 13 17:18:20 2016 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Apr 15 13:06:08 2016 -0700"
      },
      "message": "Make the legacy inline headers compile standalone.\n\nIt\u0027s useful to have the legacy inlines compile by themselves, both to\nmake header unification easier, and to ensure that the inline versions\nmatch the regular declarations. Notably, this wasn\u0027t true for\nsigismember, which took a const sigset_t* in the regular header, and\nsigset_t* in the inline version.\n\nBug: http://b/28178111\nChange-Id: Id8a3b7dcb1bfa61eed93c9fb50d3192744f8bef5\n"
    },
    {
      "commit": "df143f8576afb0446794d4ccb1fb02aed196c82a",
      "tree": "098728b018b7869bd8952e3e39894df3280808bc",
      "parents": [
        "2678c90f7d98a962badfe4bb736a26fb21485c7e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 04 17:34:04 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 04 17:34:04 2016 -0700"
      },
      "message": "Add POSIX getsubopt(3).\n\nBug: http://b/27952303\nChange-Id: I8a816477545dadcbd5c055714e76263574446b6f\n"
    },
    {
      "commit": "a6435a186d3b0e1ec4c17f7f5e8ba2bb198faeb2",
      "tree": "ff0e3ec2f91a57cccb8510e56a4b3251cb1e5419",
      "parents": [
        "ba9c17053456aed4452a349cf45c5960d9231f25"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Aug 06 14:32:25 2015 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Sep 04 13:02:03 2015 -0700"
      },
      "message": "Use attribute availability.\n\nBug: http://b/21952040\nChange-Id: I3998d88bc6076d60ae5cf7efd112817f80f17971\n"
    },
    {
      "commit": "3244d9f07fda946d62afdfa61ed5a876d380d0ff",
      "tree": "c7f124de4880d6a79e89373b2ee97fa190a71e10",
      "parents": [
        "af7538b49625f1c1c82e984610f26729a18d56bf"
      ],
      "author": {
        "name": "Daniel Micay",
        "email": "danielmicay@gmail.com",
        "time": "Sat Apr 18 13:04:19 2015 -0400"
      },
      "committer": {
        "name": "Daniel Micay",
        "email": "danielmicay@gmail.com",
        "time": "Mon Apr 20 17:31:24 2015 -0400"
      },
      "message": "add a fortified implementation of realpath\n\nChange-Id: Icc59eacd1684f7cddd83d7a2b57dad0c7ada5eb7\n"
    },
    {
      "commit": "9b4f77f5cfc45a377b7de7195341a7769a722b74",
      "tree": "41c892013dbfcde3a5a52b7c2a3aa06341cc3573",
      "parents": [
        "913fcb274f353348a353aaabbe872b3b5924a6e7"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Mon Feb 23 16:42:07 2015 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Wed Feb 25 15:42:01 2015 -0800"
      },
      "message": "Make tempnam/mktemp deprecated.\n\nBug: 19340053\nChange-Id: Ib02c65814ef97cd1758fd8142b73736cc8bc1700\n"
    },
    {
      "commit": "784de4e50a1161d78757402c149d85368bd49c29",
      "tree": "b845b7e6adc69d65e8b96e31fd25c1cf98d56493",
      "parents": [
        "4645c4f62df49d1ece5aabb7c9fa44ca34d30272"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Feb 17 23:54:40 2015 +0000"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Feb 17 23:54:40 2015 +0000"
      },
      "message": "Revert \"Move use of __warnattr to __deprecated.\"\n\nThis reverts commit 4645c4f62df49d1ece5aabb7c9fa44ca34d30272.\n\nChange-Id: I6c1062d54a4e2c4f41ce7a403e4e7840e6339146\n"
    },
    {
      "commit": "4645c4f62df49d1ece5aabb7c9fa44ca34d30272",
      "tree": "49f40a240870fdbd7f481215b82217c95a5b9536",
      "parents": [
        "fb48c68221afb1f9e7c63a15a20cca0857d1b9f9"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Feb 17 12:39:39 2015 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Feb 17 14:14:45 2015 -0800"
      },
      "message": "Move use of __warnattr to __deprecated.\n\nclang don\u0027t support warning attribute. Replacing warning attriubte with\ndeprecated attribute can achieve the same behavior whether compiled by\ngcc or clang.\n\nBug: 19340053\nChange-Id: I064432b81cf55212458edbc749eb72dc15a810fb\n"
    },
    {
      "commit": "94335cc8e2f32638d9e38741ddabfd19a38e0840",
      "tree": "02269c699fdbd5ee653ecebe86da298e2c68df92",
      "parents": [
        "542b94d9bf7eb3838b0582c02d7a1bf2e270af5a",
        "466dbe444446da0a8729ae9ac7294f54276e29d7"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Jan 30 17:18:48 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 30 17:18:49 2015 +0000"
      },
      "message": "Merge \"Put back inline definitions if using an old API.\""
    },
    {
      "commit": "466dbe444446da0a8729ae9ac7294f54276e29d7",
      "tree": "6930e91366bb16c0b12197dbf9efd18b458d2eaf",
      "parents": [
        "3780aba6352affc7d2dcdad0737cb4254448fcae"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed Jan 28 18:16:08 2015 -0800"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Jan 29 17:30:40 2015 -0800"
      },
      "message": "Put back inline definitions if using an old API.\n\nAll these inlines were turned in to out of line definitions in L.\nThis brings us a step closer to being able to just use the current\nbionic headers for the NDK, rather than having many old versions of\nthem.\n\nChange-Id: Ie010bc727d78d3742abc577c70f6578db2e68625\n"
    },
    {
      "commit": "6ac4dd8ba940ec413ce4d45da838534f7cde752a",
      "tree": "9a884bf300e9c966069114fc27477355c6bf6a25",
      "parents": [
        "3780aba6352affc7d2dcdad0737cb4254448fcae"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Jan 29 10:52:53 2015 -0800"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Jan 29 11:41:59 2015 -0800"
      },
      "message": "Add primitive CPPLINT.cfg.\n\nWe\u0027ll add more things to this as we discover other warnings we don\u0027t\ncare about.\n\nChange-Id: I408f688827cab0f74e055d8f1778069163663f0b\n"
    },
    {
      "commit": "76f8916b904db14facf811ae44e1265261349702",
      "tree": "cf49d5313eb0e5a05463dbe519de48d4fddf84a9",
      "parents": [
        "419ed122aa21cf04334f21baab135ac4f9f49840"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jan 26 13:34:58 2015 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jan 26 14:28:41 2015 -0800"
      },
      "message": "Clean up \u003cstdlib.h\u003e slightly.\n\nInterestingly, this mostly involves cleaning up our implementation of\nvarious \u003cstring.h\u003e functions.\n\nChange-Id: Ifaef49b5cb997134f7bc0cc31bdac844bdb9e089\n"
    },
    {
      "commit": "c5dc02a91e8a8460807d7d18ea9775a7b8fa446c",
      "tree": "75f3539f6046d51cf192be01f31590bd620da35b",
      "parents": [
        "62d20fb21948d7a31d453ec08ed5abc02d3dd1d3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Jan 24 15:22:57 2015 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Jan 24 15:22:57 2015 -0800"
      },
      "message": "Reduce \u003cstdlib.h\u003e namespace pollution.\n\n\u003cstdlib.h\u003e shouldn\u0027t drag in all of \u003cstring.h\u003e.\n\nChange-Id: I949172f7ff17e329e411e5054e50f79c13775444\n"
    },
    {
      "commit": "a381fe8ebcd196614a00f4dca3539e0860ef9e84",
      "tree": "3554d98520ded579dcc9ad2e5e4f36e23f3f7b5f",
      "parents": [
        "3592743f7191c69ae1fd2d7e01222bd380d93d3e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Dec 09 20:30:23 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Dec 09 20:30:23 2014 -0800"
      },
      "message": "Fix ptsname(3) and ttyname(3) to use TLS.\n\nBe safe by default.\n\nChange-Id: I6c4a3f1fd4eee3a651b3162ce95b7e873de57521\n"
    },
    {
      "commit": "274afe8f0eab4139c94d5f8b1ee3d267f449ef42",
      "tree": "9424b40a8247c264e489358ce007b3ff4176d868",
      "parents": [
        "39ba30354a3890dd653ab55819d38eed3855edaa"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 06 12:40:08 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 06 14:14:37 2014 -0800"
      },
      "message": "Add POSIX lcong48.\n\nChange-Id: I821046816661d77275cb02c8c99d526bb41afb9c\n"
    },
    {
      "commit": "a39f939e0d1a11290411430d9085ab578d471247",
      "tree": "8fa9d48ec7269271564e04d0f82b2e52554f1d21",
      "parents": [
        "13dcb88b0f8ce238456059fdc0b6c946caed1e3a"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Oct 28 12:04:02 2014 -0700"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Oct 28 13:44:48 2014 -0700"
      },
      "message": "change unsigned int to uint32_t for api arc4random/arc4random_uniform\n\nBug: 17894480\nChange-Id: Ia4b5a7cd2b2c6002ed70955f86f7780d26d15e26\n"
    },
    {
      "commit": "fc5a93f7a2ea2be740f2c909e8a6a192fa65adc8",
      "tree": "9c9f2068825c2f4ece4944373efb3ebb84109ace",
      "parents": [
        "ebf37e38861e376ae47c72d45ab8de6703dd18f0",
        "3c5037f1b3b747e79d17a5f717d9f9c365132d33"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed Sep 24 16:00:06 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 24 16:00:07 2014 +0000"
      },
      "message": "Merge \"Fix incorrect parameter types for locale funcs.\""
    },
    {
      "commit": "31165edf5733dae8fbe79551b18cbc0e56c8d808",
      "tree": "e7ed184d94540342f16514a84e02c1f8d38882db",
      "parents": [
        "87b6906f6e0c17b2541535be8e054324cc2fef4a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Sep 23 17:34:29 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Sep 23 18:21:52 2014 -0700"
      },
      "message": "CLOEXEC support in fdopen, freopen, and mkostemp/mkostemps.\n\nChange-Id: I74ea88e0d4973d6ab3c57da7d8bb643c31592b14\n"
    },
    {
      "commit": "3c5037f1b3b747e79d17a5f717d9f9c365132d33",
      "tree": "73805e82ebef155bd7ffb45cf826f9624c47799b",
      "parents": [
        "87b6906f6e0c17b2541535be8e054324cc2fef4a"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Sep 23 15:32:24 2014 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Sep 23 15:32:24 2014 -0700"
      },
      "message": "Fix incorrect parameter types for locale funcs.\n\nstrtoll(3), strtoull(3), wcstoll(3), and wcstoull(3) all take an _int_\nas a base, not a size_t. This is an ABI compatibility issue.\n\nBug: 17628622\nChange-Id: I17f8eead34ce2112005899fc30162067573023ec\n"
    },
    {
      "commit": "224ff048efc782bd60047a3ae53eb66941f73125",
      "tree": "7c148e8f2e8095a98fa9cc24e710edc3ccf5d008",
      "parents": [
        "9a74e4c15c17b9126ad348d865002880fc36bd12"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Aug 14 13:56:51 2014 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Aug 14 13:56:51 2014 -0700"
      },
      "message": "Change name of MB_CUR_MAX implementation function.\n\nGlibc calls theirs __ctype_get_mb_cur_max. Make ours match to cut down\non differences between bionic and glibc.\n\nBug: 11156955\nChange-Id: Ib7231f01aa9676dff30aea0af25d597bfe07bc73\n"
    },
    {
      "commit": "9d2a05a6dda800d0f1fcb1d9ffe12bc3b82c0f73",
      "tree": "df2a38f3d1df1de8eff3d7cb7b4b7ef49365d94e",
      "parents": [
        "bb91a1b845f7c8b3b09d07fe467aa32d2aeddc4f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jul 28 16:16:38 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 06 13:20:41 2014 -0700"
      },
      "message": "Revert \"Add a hack to \u003cstdlib.h\u003e until we can fix libvpx.\"\n\nThis reverts commit 3fb5097a7eec40404760c304b36c8b657b374cab.\nlibvpx is now fixed.\n\n(cherry-pick of 2be1be47aa9b63568fe6ce1e0a4029b37d90764d.)\n\nBug: 15598056\nChange-Id: Icca974e667f92206505f484bd291726eb0150f68\n"
    },
    {
      "commit": "1aec7c1a35b2d03038b194967d5ebdc8e2c24b80",
      "tree": "977211860df02be4f4c0843cf231ec6c3da88ee6",
      "parents": [
        "0f7ed163cf6c1fe6d71a1d7e5fb6d0989213be85"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed Jul 30 10:53:48 2014 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed Jul 30 17:09:46 2014 -0700"
      },
      "message": "Proper MB_CUR_MAX.\n\nPreviously this was hard coded to 4. This is only the case for UTF-8\nlocales.\n\nAs a side effect, this properly reports C.UTF-8 as the default locale\ninstead of C.\n\nChange-Id: I7c73cc8fe6ffac61d211cd5f75287e36de06f4fc\n"
    },
    {
      "commit": "f4c1a36a4500bc7f12e3065be3da4e8669ee011d",
      "tree": "22654356b6c7febe5ad131e6bd4f9f13c3818d21",
      "parents": [
        "2b591b37420b4186bda7fa823b9058d4b19565f6"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 29 16:43:55 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 29 16:57:47 2014 -0700"
      },
      "message": "Remove declarations for things that don\u0027t exist.\n\nThe \u003cgrp.h\u003e ones prevent gdb from building out of the box.\n\nChange-Id: I0efbffad2215cfcd75b4d442dfc972444b51d97c\n"
    },
    {
      "commit": "4916706cfe590eb06c9b5bd4bd402ce056034d51",
      "tree": "75e0434f53123a7f34ffb405b84899bbacc80b38",
      "parents": [
        "50a9630cc26cbc1e38e3ddc589f04fa5cd91697b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jul 25 17:24:00 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jul 25 19:55:23 2014 -0700"
      },
      "message": "Fix linkage of grantpt(3).\n\nAlso clean up the implementation of all the pty functions, add tests,\nand fix the stub implementations of ttyname(3) and ttyname_r(3).\n\nBug: https://code.google.com/p/android/issues/detail?id\u003d58888\nChange-Id: I0fb36438cd1abf8d4e87c29415f03db9ba13c3c2\n"
    },
    {
      "commit": "dfb5ce42bcc5a275af49211c0bbe64c5ec3d2668",
      "tree": "4ff3d2f96f0c5e00edac99cd86119f2ecc5cfa73",
      "parents": [
        "76df69d1f5cbbc8a2c1e899bc1ad5ada8b083e1e"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed Jul 09 22:51:34 2014 +0000"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Jul 11 16:21:31 2014 +0000"
      },
      "message": "Revert \"Revert \"Add locale aware APIs.\"\"\n\nThis reverts commit 063e20c26943ec82ef1d53a544545e79054e93d3.\n\nChange-Id: Ib8c9004efefe75a5346b3af50dfe37952d91eb21\n"
    },
    {
      "commit": "063e20c26943ec82ef1d53a544545e79054e93d3",
      "tree": "486076b9e0dd6439cea5f0108ecf6154df6e4aab",
      "parents": [
        "e087eac404b0e30de427392065e2750acf92bd4a"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed Jul 09 22:50:43 2014 +0000"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed Jul 09 22:50:43 2014 +0000"
      },
      "message": "Revert \"Add locale aware APIs.\"\n\nAccidentally verified against a dirty tree. Needs the companion change to libc++ to land upstream before I can submit this.\n\nThis reverts commit e087eac404b0e30de427392065e2750acf92bd4a.\n\nChange-Id: I317ecd0923114f415eaad7603002f77feffb5e3f\n"
    },
    {
      "commit": "e087eac404b0e30de427392065e2750acf92bd4a",
      "tree": "c547e35ffc82ee9afd441d2e3739a87de73103fd",
      "parents": [
        "6cdd0cfd2f279dfb20b9f7cccc963eb9ee91c666"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed Jul 09 10:09:04 2014 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed Jul 09 15:41:53 2014 -0700"
      },
      "message": "Add locale aware APIs.\n\nSince we only support the C locale, we can just forward all of these to\ntheir non-locale equivalents for correct behavior.\n\nChange-Id: Ib7be71b7f636309c0cc3be1096a4c1f693f04fbb\n"
    },
    {
      "commit": "0468feb28696751efcddada8de69a622afffdba8",
      "tree": "9d91e7e644011100dafa93d0d1c706e631c81a11",
      "parents": [
        "fb0a3622f79bb0a31dd4d0e2f9cea990075ef129"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jun 20 22:49:20 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jun 24 14:13:48 2014 -0700"
      },
      "message": "Sync to current upstream arc4random.\n\nThis is actually revision 1.33, which is no longer the latest, but it\u0027s\nas close to head as we can currently reasonably get. I\u0027ve also switched\nto the OpenBSD getentropy_linux.c implementation of getentropy, lightly\nmodified to try to report an error on failure.\n\nBug: 14499627\nChange-Id: Ia7c561184b1f366c9bf66f248aa60f0d53535fcb\n"
    },
    {
      "commit": "e61919ad11fc0ca6749ee4d6855bc8b2c316a8f9",
      "tree": "729a98533b9d101d029556ca290d9524bd4b416e",
      "parents": [
        "ae3c6af3e536cd8bdf6f2cf1495b5d7463feb1a5"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jun 12 20:07:47 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jun 12 20:07:47 2014 -0700"
      },
      "message": "Fix x86-64 libvpx build.\n\nThis is now fixed upstream, but we need to wait for it to come back down\nvia chromium...\n\nBug: 15598056\nChange-Id: I08f1be4296c391cfc1616a5ff0815be14071594a\n"
    },
    {
      "commit": "3fb5097a7eec40404760c304b36c8b657b374cab",
      "tree": "ab02516c771039cddd1e8e991f8814887d4378d7",
      "parents": [
        "346fa721ca20e481a624930425d823d452e11dfe"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jun 12 17:50:52 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jun 12 17:50:52 2014 -0700"
      },
      "message": "Add a hack to \u003cstdlib.h\u003e until we can fix libvpx.\n\nlibvpx should probably change its assembler to refer to lrand48 directly,\nbecause that will work on old and new versions of Android. This keeps things\nbuilding until that happens.\n\nBug: 15598056\nChange-Id: I4a1f59e710a083b9f9a707ceeb9ca0a28141a954\n"
    },
    {
      "commit": "a0beeeabbc8735bc830544cbbb1d920122b8d958",
      "tree": "472a5720b949ff3f5a1e3b37cd273f981d286f28",
      "parents": [
        "d242aff47dc4eaa5081dc7af821308d353cd1090"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jun 12 11:48:04 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jun 12 14:37:31 2014 -0700"
      },
      "message": "Get the full set of PRNG functions in \u003cstdlib.h\u003e\n\nBug: https://code.google.com/p/android/issues/detail?id\u003d58888\nChange-Id: I435250bdae302e8bd7e29977d0fde7b9afbfca5e\n"
    },
    {
      "commit": "b27a840f4b520bfa095db99b0a2e5205634b0003",
      "tree": "c27682ed0b5e301cbe0aa49dfd6ada3e1bef9eae",
      "parents": [
        "0ada9388e74693d990bdbb4af92c33bae8b34d4b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jun 10 20:47:49 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jun 11 16:32:10 2014 -0700"
      },
      "message": "Add __pure2 to a few more functions, most notably gettid and pthread_self.\n\nChange-Id: I7eee9f26f45130038af09d8285782b07f70a996f\n"
    },
    {
      "commit": "69f05d291d848de654c72e5278de8ca06fbf5d2f",
      "tree": "f43847693b03d7978e7234577f2d6d843f3ec356",
      "parents": [
        "8aabecf35c71a8255db259cba01005eea10485cf"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jun 05 20:10:09 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jun 05 23:19:15 2014 -0700"
      },
      "message": "Fix the printf family for non-ASCII.\n\nThe bug here turned out to be that we hadn\u0027t increased the constant\ncorresponding to the maximum number of bytes in a character to match\nour new implementation, so any character requiring more than a byte\nin UTF-8 would break our printf family.\n\nBug: 15439554\nChange-Id: I693e5e6eb11c640b5886e848502908ec5fff53b1\n"
    },
    {
      "commit": "b8425c549a0bfe08b01b5906b95603d8523c1b16",
      "tree": "2efb8b0f66e170dff1cb9ff3a90001cc49ff9291",
      "parents": [
        "85e780d0557643a81c4a33b3bc5d3806ef9d78e3"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Apr 29 17:49:06 2014 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Apr 29 19:17:00 2014 -0700"
      },
      "message": "Adds quick_exit(3) and at_quick_exit(3) from freebsd\n\nChange-Id: I4fe88abd8f7b8aa45e58aeb2529d59a8d555d338\n"
    },
    {
      "commit": "58d9e280d459225aa8dc4533e883182b08215f7d",
      "tree": "2c2771dfb1bf95012d13688f8f9142652ba0f9f8",
      "parents": [
        "635edbdf93a127da7db77d9cd174615734b4fb85"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 22 17:41:00 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 22 17:41:00 2014 -0700"
      },
      "message": "Switch to the upstream OpenBSD getenv/putenv/setenv implementation.\n\nThis fixes all the bugs found by the new tests.\n\nChange-Id: Id5a5f9f39a0620208bafa053f871a044725b4795\n"
    },
    {
      "commit": "cce36c187896fb0d4bd36519c4b2e90c502137dc",
      "tree": "491e29d325600481b16a5712b88839f460c9ef14",
      "parents": [
        "c5eea6d386c23bde6f0400a8959ed21081d8365b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 22 12:32:49 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 22 12:32:49 2014 -0700"
      },
      "message": "Use -fvisibility\u003dhidden to build libc_gdtoa.\n\nBug: 12177745\nChange-Id: Ia4ac71e1a3a237e764c809cc591622f8952ed642\n"
    },
    {
      "commit": "9f525644df99cb2f7f81a23ca23840f0a8f82275",
      "tree": "edfe771f84024370aba4988e016534e5c535984e",
      "parents": [
        "ac70d2e1fe71f98232942237c2b463ea3adbf662"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 08 17:14:01 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 08 17:16:13 2014 -0700"
      },
      "message": "Implement _Exit(3).\n\nChange-Id: Ida6ac844cc87d38c9645b197dd8188bb73e27dbe\n"
    },
    {
      "commit": "77e944fd46728075fe632bcb5211da9daf5b7e68",
      "tree": "078c4ed4dcd4a8d857aa948de76dec223c588e0d",
      "parents": [
        "dc5fcf3620bfc221954b3d42f459bfdcf8f48216"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 04 17:34:51 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 07 14:29:28 2014 -0700"
      },
      "message": "Implement wctomb(3) for ltrace.\n\nThis is an implementation in the style of the rest: char \u003d\u003d byte.\n\nWe might want to come back and implement UTF-8, but this is enough for ltrace.\n\nBug: 13747066\nChange-Id: Ib2b63609c9014fdef9a8491e067467c4fc5ae3cc\n"
    },
    {
      "commit": "5a8173860d65182af022be88fed0c5d8d5dcb69d",
      "tree": "907e7263b278203193247ef582a4e1a8b263e21e",
      "parents": [
        "56e1eebd39be4830f309603b38e4b1118c544fb3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Mar 12 16:12:57 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Mar 12 16:12:57 2014 -0700"
      },
      "message": "Ensure we always have symbols for atof, strtof, strtold.\n\nWe\u0027ll need a better implementation of strtold for LP64, but all our\nlong double functions are currently broken for LP64 anyway so this\nisn\u0027t a regression.\n\nChange-Id: I2bdebac11245d31521d5fa09a16331c03dc4339c\n"
    },
    {
      "commit": "692207eb457f9b4bf6cb4301d710d19b6e85c902",
      "tree": "4a915e398d7e0819d7ee5d0a424f4a7689c0eab9",
      "parents": [
        "d51db86aafb988aea04355f2b6a6c925d67e5976"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 28 16:23:27 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 28 16:23:27 2014 -0800"
      },
      "message": "Add getprogname/setprogname for BSD compatibility.\n\nThis is one less change we have to make when porting BSD code.\n\nBug: https://code.google.com/p/android/issues/detail?id\u003d34898\nChange-Id: If9b1a8d16996c7a19abcce8d3a456afc3e105a41\n"
    },
    {
      "commit": "fe317a3775e16d466bb884a8e054fd77f7087bb3",
      "tree": "c26e2b737d6741add069324fc0dc8a2ad31cd731",
      "parents": [
        "da030de702b756077fec536ed139e7ea38b51022"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Feb 21 15:11:03 2014 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Feb 24 20:19:19 2014 +0000"
      },
      "message": "Added mkstemp64\n\nBug: 13076637\nChange-Id: I41bf28ab3e6c7325470781e9323eeec023483df5\n"
    },
    {
      "commit": "c13fb75ceabb47f8292be206db80b93889fccf66",
      "tree": "6aca1af2e53339d0c6f04abf3fa9fa696d9268c9",
      "parents": [
        "f293b15728031432317791fb4a17a423545d37b3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Dec 17 20:43:30 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Dec 17 20:43:30 2013 -0800"
      },
      "message": "Move bionic over to GCC\u0027s \u0027warning\u0027 attribute.\n\nThis is a better solution than the old __warn_references because it\u0027s\na compile-time rather than link-time warning, it doesn\u0027t rely on something\nthat doesn\u0027t appear to be supported by gold (which is why you only used\nto see these warnings on mips builds), and the errors refer to the exact\ncall site(s) rather than just telling you which object file contains a\nreference to the bad function.\n\nThis is primarily so we can build bionic for aarch64; building libc.so\ncaused these warnings to fire (because link time is the wrong time) and\nwarnings are errors.\n\nChange-Id: I5df9281b2a9d98b164a9b11807ea9472c6faa9e3\n"
    },
    {
      "commit": "aec2ffbc5a7b45368ceab3663265fbb659968fe7",
      "tree": "07719cc7acdb80e3682b9d815b6479524faf8c7b",
      "parents": [
        "ee48fed51894f3db324e957058ed2ddcf23dddc7"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 12 12:07:05 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 12 12:07:05 2013 -0700"
      },
      "message": "Fix our missing abs/labs/llabs/imaxabs (and imaxdiv) symbols.\n\nChange-Id: I94c411c22634e43184445c82e7388e51fc46a8cc\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": "70f6901c3dbe6f09c7fc3ebdb18f715915635d70",
      "tree": "eb9e00e1e5e9c7a0c36d04cd17478945dce60d97",
      "parents": [
        "8df49ad2467ec2d48f94a925162185c34bf6e68b"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Jun 14 13:48:18 2012 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Jun 14 13:57:43 2012 -0700"
      },
      "message": "libc: make atoi, atol, and atoll pure functions\n\nChange-Id: Ib831c079c865929b6c91d42f35e117f2e974808f\n"
    },
    {
      "commit": "85aad909560508410101c18c6ecc6633df39c596",
      "tree": "1da341473c2090fa35afc5d22351603bd49ac79c",
      "parents": [
        "a5cb76bca00b1ce44a04687fb179809c12ea9cd3"
      ],
      "author": {
        "name": "Ken Sumrall",
        "email": "ksumrall@android.com",
        "time": "Wed Dec 14 20:50:01 2011 -0800"
      },
      "committer": {
        "name": "Ken Sumrall",
        "email": "ksumrall@android.com",
        "time": "Wed Dec 14 20:55:43 2011 -0800"
      },
      "message": "Add the posix_memalign(3) function to bionic\n\nThe posix_memalign(3) function is very similar to the traditional\nmemalign(3) function, but with better error reporting and a guarantee\nthat the memory it allocates can be freed.  In bionic, memalign(3)\nallocated memory can be freed, so posix_memalign(3) is just a wrapper\naround memalign(3).\n\nChange-Id: I62ee908aa5ba6b887d8446a00d8298d080a6a299\n"
    },
    {
      "commit": "ad1ff2fb268034074488f0b4b30b5311008b8617",
      "tree": "2645ee8b241dda6bf40d8e866186aca28c66276d",
      "parents": [
        "72e64e08697cc2b3d66397c8b6d34965dd2a7338"
      ],
      "author": {
        "name": "tedbo",
        "email": "tedbo@google.com",
        "time": "Tue Nov 30 12:45:02 2010 -0800"
      },
      "committer": {
        "name": "tedbo",
        "email": "tedbo@google.com",
        "time": "Tue Nov 30 12:45:02 2010 -0800"
      },
      "message": "Add mkdtemp() prototype to stdlib.h.\n\nThe mkdtemp() function is implemented in libc/stdio/mktemp.c but not\nexposed in stdlib.h. This change adds the prototype to stdlib.h.\n\nChange-Id: I5a98650c665d2e45b2cf6ed3382742f7bdc7c88a\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": "506b13d910a1a603b29fbc5a9ba41ba4c533b14c",
      "tree": "b59be2855b5ebc4129d5c9e02dc1df4b9789c73d",
      "parents": [
        "b8e6c50cfa2d4c4b73e071d0e836a2667db010b1"
      ],
      "author": {
        "name": "Jing Yu",
        "email": "jingyu@google.com",
        "time": "Thu May 20 20:25:48 2010 -0700"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed Jun 09 13:24:22 2010 -0700"
      },
      "message": "Remove a gcc-4.5 compilation warning:\nbionic/libc/include/../include/stdlib.h: In function \u0027int grantpt(int)\u0027:\nbionic/libc/include/../include/stdlib.h:138:23: warning: parameter \u0027__fd\u0027 set but not used [-Wunused-but-set-parameter]\n\nBy adding __attribute((unused)) to __fd, the warning is gone, and this\nattribute is compatible with gcc-4.4.0, gcc-4.3.1 gcc-4.2.1.\nThere is no any side effect.\n\nChange-Id: I385f0f4da1013ffd1499e391eac9123aafe1f7a5\n"
    },
    {
      "commit": "6458c49c96fd2069a82fa6bb48283b4397087a25",
      "tree": "68fcbb5f16ce4bb500f065129c2cf5297cb59e6f",
      "parents": [
        "0b5db51ea6d9c0b877d2ce26440d963760c38dfe"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jan 12 12:58:12 2010 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jan 12 12:58:12 2010 -0800"
      },
      "message": "Fix ptsname_r(3) return type to match glibc\n\nThe gHardy man pages specify the return type of ptsname_r to be char*, but the\nreturn value to be 0 on success, negative on error and the gHardy stdlib.h\ndefines extern int ptsname_r(...).\n\nBusybox telnetd fails to run successfully without this change.\n"
    },
    {
      "commit": "5f53a18204ec991f5a77872806eeaa185936aa8c",
      "tree": "72403af0ef4438c5d8974622bb9b98602879a7d8",
      "parents": [
        "754c178ae551aedcbbfd3bfd1c1c3b710d9ad989"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Dec 03 16:14:40 2009 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Dec 03 16:14:40 2009 -0800"
      },
      "message": "Revert \"Add qsort_r() implementation to the C library.\"\n\nThis reverts commit 754c178ae551aedcbbfd3bfd1c1c3b710d9ad989.\n\nTurns out we don\u0027t need it afterall (needed a stable sort anyways).\nSo, we\u0027ll make that change in the dev branch instead.\n"
    },
    {
      "commit": "754c178ae551aedcbbfd3bfd1c1c3b710d9ad989",
      "tree": "8dc0298a0c8bcbd93b92668e7b888a608e26d229",
      "parents": [
        "e1e684920f3bea04f7cccee9f2d7ecd8b9a1ba47"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed Dec 02 17:38:41 2009 -0800"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Thu Dec 03 11:40:15 2009 -0800"
      },
      "message": "Add qsort_r() implementation to the C library.\n\nNOTE: This replaces qsort.c with the FreeBSD version. While\n      the patch changes the source, it should not alter the\n      implementation that should use the exact same algorithm.\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": "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"
    }
  ]
}
