)]}'
{
  "log": [
    {
      "commit": "2b473070126345e323d0694b87f88264cc9a77cc",
      "tree": "1f626a0ab6ef690d17c7c52004615147fd768dba",
      "parents": [
        "547eba0a63951d7db93c0542e1ecab891725b9a8"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 22 15:10:19 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 22 15:10:19 2013 -0800"
      },
      "message": "Our strcoll(3) is no different from NetBSD\u0027s, so take exactly theirs.\n\nChange-Id: I45251047202a229f9175735ecc23c0ebcda71e8d\n"
    },
    {
      "commit": "c51cd764a2d0897234762abd4dbd21420cb9f17d",
      "tree": "77a3efe1662c08da97eb9eff8df6e69b4a53fe66",
      "parents": [
        "85597e2b59af91be0607ed073b6574b934ed369d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 22 14:41:23 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 22 14:41:23 2013 -0800"
      },
      "message": "Avoid overflow in memccpy.\n\nJust take the upstream NetBSD code.\n\nBug: http://code.google.com/p/android/issues/detail?id\u003d43078\nChange-Id: Ibbbde9d00e8bc6a09c9503aab2b04b4e3d1f98b0\n"
    },
    {
      "commit": "c30396f5f225e0b5a83a35432e2d82a7063cfdb9",
      "tree": "84df04116350a6895e76c26490bbcf499a3e3099",
      "parents": [
        "8f9a1eb108f22fc2ce7283ef184d909ec0ca1152"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@android.com",
        "time": "Mon Oct 29 15:32:54 2012 +0100"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 29 07:44:27 2012 -0700"
      },
      "message": "libc: Fix alphasort() signature (and implementation).\n\nThe declaration for alphasort() in \u003cdirent.h\u003e used the deprecated:\n\n  int alphasort(const void*, const void*);\n\nwhile both Posix and GLibc use instead:\n\n  int alphasort(const struct dirent** a, const struct dirent** b);\n\nSee: http://pubs.opengroup.org/onlinepubs/9699919799/functions/alphasort.html\n\nThis patch does the following:\n\n- Update the declaration to match Posix/GLibc\n- Get rid of the upstream BSD code which isn\u0027t compatible with the new\n  signature.\n- Implement a new trivial alphasort() with the right signature, and\n  ensure that it uses strcoll() instead of strcmp().\n- Remove Bionic-specific #ifdef .. #else .. #endif block in\n  dirent_test.cpp which uses alphasort().\n\nEven through strcoll() currently uses strcmp(), this does the right\nthing in the case where we decide to update strcoll() to properly\nimplement locale-specific ordered comparison.\n\nChange-Id: I4fd45604d8a940aaf2eb0ecd7d73e2f11c9bca96\n"
    },
    {
      "commit": "063cfb2084ea4b12d3c85b2d2c44e888f0857eb4",
      "tree": "ec94389e76f6fd79d573c4a689b7c83c4711edd0",
      "parents": [
        "7193731ae6b8083bc7a5e5e468fb98b1dbcf3f3d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 25 20:55:23 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Oct 26 16:42:06 2012 -0700"
      },
      "message": "Clean up the implementation of the \u003cdirent.h\u003e functions.\n\nChange-Id: I3c647cc9588525afc41fee90ee468d58cd13503a\n"
    },
    {
      "commit": "ab44f52202878cdf2bf22457aeae33ec24089556",
      "tree": "2ae72963003e3ada4cbb19acd73475b4164f515a",
      "parents": [
        "e3dbe1e3820d6ab0370566055e9cdc593c5cce48"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 23 16:05:09 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 23 16:05:09 2012 -0700"
      },
      "message": "More upstream NetBSD upgrades.\n\nChange-Id: Idb781d37de3b05585271d7d258ecffd5ba87d0b8\n"
    },
    {
      "commit": "e8bcca3a2ca4a70156c72239d62bb68eeb2929fd",
      "tree": "810eacbe3195f2064483973cc55b67384a7c4c32",
      "parents": [
        "fb93e6a5b322a87e61de19421a72d6dfcc82b614"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 23 12:26:26 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 23 12:29:53 2012 -0700"
      },
      "message": "Upgrade more functions to the current upstream NetBSD copy.\n\nChange-Id: Ie0b3f8b3fccef28609eb210434413ebd51d6ef45\n"
    },
    {
      "commit": "31a1060a5a75d4f2aa3c3a5a7b948eb512d53387",
      "tree": "7b7445b27b4503c07d53c1fff9173b7dacf167b8",
      "parents": [
        "cd195eba1f9235b9b9d4dda70142d927b1b9802d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 01 14:14:21 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 01 14:14:21 2012 -0700"
      },
      "message": "Upgrade seed48 too.\n\nMissed this in 774c7f54ff375d71106283d42779b0cc5f238f87.\n\nChange-Id: Ic24fd67f003d0e2d192cfb08f96f63024ca817eb\n"
    },
    {
      "commit": "774c7f54ff375d71106283d42779b0cc5f238f87",
      "tree": "3dc911f915d8d120089ca5afd60bb84b6d51e71e",
      "parents": [
        "5b6346f6d5dca4022fe0044dd2807c19ac596788"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 01 13:11:03 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 01 13:53:41 2012 -0700"
      },
      "message": "Upgrade to the current NetBSD rand implementation.\n\nAlso add basic unit tests.\n\nChange-Id: I7fc7ef61d47c1e8fdf8b8eff67a635220c3afd56\n"
    },
    {
      "commit": "eac9eb462ed6f7fcfb791e7a08b4011fcca47829",
      "tree": "3b436a25d9ff22616ca22919ff9026e4426a9243",
      "parents": [
        "e4030e0bfc427e755477bbea69afe60308a62d91"
      ],
      "author": {
        "name": "Irina Tirdea",
        "email": "irina.tirdea@intel.com",
        "time": "Sat Sep 08 09:28:30 2012 +0300"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 27 11:38:57 2012 -0700"
      },
      "message": "Add getdelim(3) and getline(3) to bionic\n\nSome userspace programs (e.g. perf) need getline.\n\nChanges:\n() add getdelim.c, getline.c from NetBSD (http://netbsd.org/) under the\nNetBSD Foundation\u0027s (TNF) license (\"2 clause\" Berkeley-style license).\n() add stub for reentrant.h header that is needed by getdelim.c\n() add tests for getdelim(3) and getline(3).\n() update NOTICE file.\n\nChange-Id: I22ed82dd5904b9d7a3695535c04f502be3c27c5d\nSigned-off-by: Irina Tirdea \u003cirina.tirdea@intel.com\u003e\n"
    },
    {
      "commit": "ac184b21425a0681c51ef152f0567168b575da49",
      "tree": "08d0842acb148aa0ec9c01a455cefb28240b8fe6",
      "parents": [
        "8e630dacf61307e4681f04fc6b5ee593f30d91d0"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Sep 26 14:20:22 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Sep 26 14:20:22 2012 -0700"
      },
      "message": "Fix several compiler warnings.\n\nChange-Id: I55caa50a5937442734f4fcbdb4edf1c70f335bf8\n"
    },
    {
      "commit": "5e58ea07d47c175abf8285ff67e3e9bc0b3a9e8e",
      "tree": "c051dace0b3f96c377b92071e8d2923fb9449e89",
      "parents": [
        "e895e6deaab620f874b3e9f196eb6b67f58dc278"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Sep 12 13:21:25 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 13 16:54:57 2012 -0700"
      },
      "message": "libc: add ftw / nftw functions\n\nPlease see \"man 3 ftw\" for a description of the\nftw / nftw functions.\n\nThis code is taken directly from netbsd unmodified.\n\nChange-Id: Ia4879ac57212b424adf5281b5e92858e216d0f14\n"
    },
    {
      "commit": "b5f053b5a7deb084e7a052d527e0aa41339ae05c",
      "tree": "a75d6715f7c7c954d22440b8c21c59b01d87e83d",
      "parents": [
        "4a9b7c694a8312160d3cd953a8227c23a1624868"
      ],
      "author": {
        "name": "Irina Tirdea",
        "email": "irina.tirdea@intel.com",
        "time": "Sat Sep 08 09:17:54 2012 +0300"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 13 15:18:21 2012 -0700"
      },
      "message": "Make strerror(3) and strsignal(3) thread-safe, and add psignal(3) and psiginfo(3).\n\nChange-Id: I426109db25e907980d6cb3a7a695796e45783b78\n"
    },
    {
      "commit": "cc213f871bf4c5329eb5eb7a80a0ce9d4a880af8",
      "tree": "614352f0342e88315e758fbf63e35172578f260d",
      "parents": [
        "53493a9b26e9fb665de590abf3502af94eaf3f44"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 14 15:32:42 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 15 15:39:11 2012 -0700"
      },
      "message": "Switch to the current NetBSD regex implementation.\n\nChange-Id: If32b28dd85d6a7ab8957ab81d19fa4c0de9499d5\n"
    },
    {
      "commit": "409302f0f9fce73ea4c82bbfd439041cd7923d34",
      "tree": "bc23c82d6b9a68cfe2b114496399e1561d5db749",
      "parents": [
        "54655eaf92ca91bfe2fa293896059a181e27b6eb"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 13 17:02:11 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 13 17:41:49 2012 -0700"
      },
      "message": "Switch to upstream NetBSD tdelete/tfind/tsearch.\n\ntdestroy is a GNU extension, so that stays.\n\nChange-Id: Iedebaff25ea7e92b1ab1dd4440da12b67b99aa40\n"
    },
    {
      "commit": "3d2d448af1b16923f5a329b49bb8e658dbad8a06",
      "tree": "afbfdd1719af181d8bab2a52cabb938ae3a1f425",
      "parents": [
        "b66bc51423a1f3969d0e70e035126ac4c4898b50"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 13 16:38:29 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 13 16:38:29 2012 -0700"
      },
      "message": "Fix nice...\n\n...by switching to the NetBSD implementation.\n\nChange-Id: I562b27b237a24ded95804035cc322c7bff12ff59\n"
    },
    {
      "commit": "f8b3a920a895a53b207017249080087d562bd0d2",
      "tree": "ed13cbbfe8069cba7a30d206d503d4558ed28630",
      "parents": [
        "4ec9e343cf445c5032d9a782d2e92b1dba713e61"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 10 11:39:58 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 10 12:10:10 2012 -0700"
      },
      "message": "Revert \"Revert \"Switch to NetBSD\u0027s strxfrm(3).\"\"\n\nThis reverts commit 8793e7c7d21a0434d1b5e63364c88b2b125a3d29,\nand fixes the build by building upstream NetBSD source as a\nseparate library that\u0027s then swallowed whole into libc_common.\n\nChange-Id: I6c9317d8c48b5ccaf85a7b185bc07fb31176ff97\n"
    },
    {
      "commit": "8793e7c7d21a0434d1b5e63364c88b2b125a3d29",
      "tree": "a515a4be8d2881d734a6b1c2a2e4f1fdd0c43e1d",
      "parents": [
        "be1d78b0dc899a732c0e9d7515d3023e8004e368"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 10 11:36:17 2012 -0700"
      },
      "committer": {
        "name": "android code review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Aug 10 11:36:17 2012 -0700"
      },
      "message": "Revert \"Switch to NetBSD\u0027s strxfrm(3).\"\n\nThis reverts commit be1d78b0dc899a732c0e9d7515d3023e8004e368\n\nChange-Id: I11a95db474796f3da004f27652b081d5ba4ec9b4\n"
    },
    {
      "commit": "be1d78b0dc899a732c0e9d7515d3023e8004e368",
      "tree": "46bb803853eec1e06ee940a04335aa38032b33a3",
      "parents": [
        "0836a7ffb13890558fe568119b023007cce66373"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 10 11:03:02 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 10 11:03:02 2012 -0700"
      },
      "message": "Switch to NetBSD\u0027s strxfrm(3).\n\nThere were two bugs in our implementation. Intel found one, but another\nremainined, and tracking upstream is the way forward for functions where\nwe add no value.\n\nChange-Id: Ida9bac0293fb2c4cbc942b1e0515ee0477c6538b\n"
    }
  ]
}
