)]}'
{
  "log": [
    {
      "commit": "345b49a7c07fde18e9397ffba9079ff81a4c3d74",
      "tree": "0061272e683e9a49d71eb92a8db7280d64da0e7a",
      "parents": [
        "c5eea6d386c23bde6f0400a8959ed21081d8365b"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Apr 22 10:42:12 2014 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Apr 22 10:42:12 2014 -0700"
      },
      "message": "Build 32/64 bit versions of tests/benchmarks.\n\nChange-Id: I4d146377aac6573a214dfaa5cab5cce8b10538b4\n"
    },
    {
      "commit": "c5eea6d386c23bde6f0400a8959ed21081d8365b",
      "tree": "8bdbc55c56386be1ca5a6c650400db3c2506aa26",
      "parents": [
        "4ff967f3301087ea6ccaa17cfb1f04a034448a68",
        "83c07b5e50207458445262ed10b79aa6b2d2d0ce"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 22 17:00:33 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 22 17:00:33 2014 +0000"
      },
      "message": "Merge \"Fix WCHAR_MAX, WCHAR_MIN, WINT_MAX, and WINT_MIN.\""
    },
    {
      "commit": "b1bfa7956c56c28b8c914e6606df191e094e7b42",
      "tree": "76b66597ba3df6dd7b282cd8919f76d7d9fc73b0",
      "parents": [
        "c363e5dd0a15aac9036b453f655a3a0ae5cd32cd",
        "183ad9df536ab04ef35a397a1f4724e4e401d11f"
      ],
      "author": {
        "name": "Torne (Richard Coles)",
        "email": "torne@google.com",
        "time": "Tue Apr 22 10:39:49 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 22 10:39:49 2014 +0000"
      },
      "message": "Merge \"Allow sharing the RELRO section via a file.\""
    },
    {
      "commit": "c363e5dd0a15aac9036b453f655a3a0ae5cd32cd",
      "tree": "385627eccdd2c853f1f571902d27a55ebfb23675",
      "parents": [
        "16f6429c38c24236418cf127a4c11c5d8a2fd47b",
        "12bbb9164578b6512b8b07a3fb093858244b7c7b"
      ],
      "author": {
        "name": "Torne (Richard Coles)",
        "email": "torne@google.com",
        "time": "Tue Apr 22 10:33:33 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 22 10:33:34 2014 +0000"
      },
      "message": "Merge \"Support loading libraries to a reserved address.\""
    },
    {
      "commit": "83c07b5e50207458445262ed10b79aa6b2d2d0ce",
      "tree": "9540e1a621a0089c664a23210367f5e3e3393d24",
      "parents": [
        "f3489807af6d48f208bc796d3c9b0d83a4fd5374"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 21 18:09:46 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 21 18:09:46 2014 -0700"
      },
      "message": "Fix WCHAR_MAX, WCHAR_MIN, WINT_MAX, and WINT_MIN.\n\nGCC tells us everything we need to know. clang does its usual half-assed job.\n\nChange-Id: Id4d664529b10345274602768cd564d3df717e931\n"
    },
    {
      "commit": "1b836ee6f8e5c0f61d67c1f014819a066366ab6f",
      "tree": "95b0a2f8862ab866a65b78d7da9fe411011b79c8",
      "parents": [
        "b88da06580a22d9a1ee5a1c573c49e89207bc71b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 18 13:32:33 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 18 13:32:33 2014 -0700"
      },
      "message": "Fix a wchar.wcstombs_wcrtombs test failure.\n\nLooks like I screwed up a last-minute refactor and didn\u0027t re-run the tests.\n\nChange-Id: I90a710ae66a313a9812859650aa0b4e8c6bc57f9\n"
    },
    {
      "commit": "b88da06580a22d9a1ee5a1c573c49e89207bc71b",
      "tree": "5aa36c7c16cac9672a85a4b071703ee8952fe09e",
      "parents": [
        "9e94ea5c112a26af5cfc778983e4d5ca692947c0",
        "0549371bd74ba7c7a5a16c2a7d6cc17dbe0e6f97"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 18 18:19:23 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 18 18:19:23 2014 +0000"
      },
      "message": "Merge \"Upgrade to current vfprintf.\""
    },
    {
      "commit": "f3c73901cb5ca4de2651151cf2c65b31a729466e",
      "tree": "0a5f3ba73342782ee188f914c8f60f337c2af7d6",
      "parents": [
        "0e351e4011bc98cacc3e37292bfb0e86c3a3bb5b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 18 10:29:16 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 18 10:29:16 2014 -0700"
      },
      "message": "Upgrade our \u003cctype.h\u003e implementation to OpenBSD head.\n\nAdding the perfunctory \u003cctype.h\u003e tests showed that we\u0027d accidentally\ndropped several symbols. This puts everything back in its proper place\nand switches us to upstream head at the same time.\n\nChange-Id: Ib527ad280c9baded81e667fa598698526d93e66f\n"
    },
    {
      "commit": "0549371bd74ba7c7a5a16c2a7d6cc17dbe0e6f97",
      "tree": "abc888f1515ccb74452a81472af0630a40c2d0b3",
      "parents": [
        "8da69a25b7840db23846d4bb303ef84a1775c1e1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Apr 17 17:30:03 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Apr 17 17:30:03 2014 -0700"
      },
      "message": "Upgrade to current vfprintf.\n\nThis gets us various bug fixes and missing C99 functionality.\n\nBug: https://code.google.com/p/android/issues/detail?id\u003d64886\nChange-Id: Ie9f8ac569e9b5eec1e4a1faacfe2c21662eaf895\n"
    },
    {
      "commit": "183ad9df536ab04ef35a397a1f4724e4e401d11f",
      "tree": "65c76a120390c1350ff1d38b725b54cabd91c06b",
      "parents": [
        "12bbb9164578b6512b8b07a3fb093858244b7c7b"
      ],
      "author": {
        "name": "Torne (Richard Coles)",
        "email": "torne@google.com",
        "time": "Thu Feb 27 13:18:00 2014 +0000"
      },
      "committer": {
        "name": "Torne (Richard Coles)",
        "email": "torne@google.com",
        "time": "Thu Apr 17 14:30:46 2014 +0100"
      },
      "message": "Allow sharing the RELRO section via a file.\n\nAdd flags and a file descriptor to android_dlopen_ext() to allow writing\nthe RELRO section of the loaded library to a file after relocation\nprocessing, and to allow mapping identical pages from the file over the\ntop of relocated memory in another process. Explicitly comparing the\npages is required in case a page contains a reference to a symbol\ndefined in another library loaded at a random base address.\n\nBug: 13005501\nChange-Id: Ibb5b2d384edfaa5acf3e97a5f8b6115c10497a1e\n"
    },
    {
      "commit": "12bbb9164578b6512b8b07a3fb093858244b7c7b",
      "tree": "2a32dc3fe2902444aed43647f0ab1d2612507296",
      "parents": [
        "012cb4583a5f8564059142bb1900ea3a31e7cfa9"
      ],
      "author": {
        "name": "Torne (Richard Coles)",
        "email": "torne@google.com",
        "time": "Thu Feb 06 14:34:21 2014 +0000"
      },
      "committer": {
        "name": "Torne (Richard Coles)",
        "email": "torne@google.com",
        "time": "Thu Apr 17 14:22:17 2014 +0100"
      },
      "message": "Support loading libraries to a reserved address.\n\nAdd flags and parameters to android_dlopen_ext() to allow loading a\nlibrary at an already-reserved fixed address. If the library to be\nloaded will not fit within the space reserved, then the linker will\neither fail, or allocate its own address space as usual, according to\nwhich flag has been specified. This behaviour only applies to the\nspecific library requested; any other libraries loaded as dependencies\nwill be loaded in the normal fashion.\n\nThere is a new gtest included to cover the functionality added.\n\nBug: 13005501\nChange-Id: I5d1810375b20fc51ba6a9b3191a25f9792c687f1\n"
    },
    {
      "commit": "4bd97cee28dd815fff54fc97560be60d566c1fa5",
      "tree": "f337de53e57aee78ad4e574c652fdeee679630b6",
      "parents": [
        "26c2bb84dd5cbd9ab43a5f0ebc2635bc3b64be3d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Apr 10 17:48:14 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 16 15:15:52 2014 -0700"
      },
      "message": "Switch to gdtoa.\n\nThis gives us a real strtold for LP64 and fixes various LP64\nbugs.\n\nBug: 13563801\nChange-Id: I277858d718ee746e136b6b6308a495ba50dfa488\n"
    },
    {
      "commit": "26c2bb84dd5cbd9ab43a5f0ebc2635bc3b64be3d",
      "tree": "395908c46cd0501bf91dcfc6170831c2e89ba459",
      "parents": [
        "073ea10156d62087a67a066527c92a1dbb92d650",
        "b760164dd67929789a4732ed3f5df56a4b66c3ae"
      ],
      "author": {
        "name": "Ben Cheng",
        "email": "bccheng@google.com",
        "time": "Tue Apr 15 22:37:28 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 15 22:37:29 2014 +0000"
      },
      "message": "Merge \"Fix signed vs unsigned comparison.\""
    },
    {
      "commit": "b760164dd67929789a4732ed3f5df56a4b66c3ae",
      "tree": "2e7c2cce617951caaf213eb98969811cf465c569",
      "parents": [
        "a0b3232161f6ad60be1a3c4d97044ac2bb14808c"
      ],
      "author": {
        "name": "Ben Cheng",
        "email": "bccheng@google.com",
        "time": "Tue Apr 15 15:29:32 2014 -0700"
      },
      "committer": {
        "name": "Ben Cheng",
        "email": "bccheng@google.com",
        "time": "Tue Apr 15 15:29:32 2014 -0700"
      },
      "message": "Fix signed vs unsigned comparison.\n\nOtherwise GCC 4.9 complains.\n\nChange-Id: I7cd3c5e8c78fda709130ca88a85fa1512e6fc024\n"
    },
    {
      "commit": "02c78a386739a8a2b3007efeb00a9ca04132100a",
      "tree": "6679bef40da8b7fbe6b3c5a479eb5c2e4e035708",
      "parents": [
        "055890686636faddbb6d5d407c67f5dcc53ac865"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 11 17:02:20 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 14 14:35:47 2014 -0700"
      },
      "message": "Reimplement isinf/isnan/fpclassify.\n\nAlso move isinf and isnan into libc like everyone else.\n\nAlso move fpclassify to libc like the BSDs (but unlike glibc). We need\nthis to be able to upgrade our float/double/long double parsing to gdtoa.\n\nAlso add some missing aliases. We now have all of:\n\n  isnan, __isnan, isnanf, __isnanf, isnanl, __isnanl,\n  isinf, __isinf, isinff, __isinff, isinfl, __isinfl,\n  __fpclassify, __fpclassifyd, __fpclassifyf, __fpclassifyl.\n\nBug: 13469877\nChange-Id: I407ffbac06c765a6c5fffda8106c37d7db04f27d\n"
    },
    {
      "commit": "7823f320b144bc95a34389e7ab709c9e4d3073e1",
      "tree": "1eb9aca80fec80533bc236efed3a711a4ae75cd1",
      "parents": [
        "28417eb9b58ca666355f93e82dcad0df0d3466ce"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 14 12:11:28 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 14 12:11:28 2014 -0700"
      },
      "message": "Extra tests for printf of NaN and Inf.\n\nChange-Id: I61fc655d9777a03aabf38f6ebd047fe275386f05\n"
    },
    {
      "commit": "6455ac73da3f8b4ff6aae2acb0442429c8921788",
      "tree": "a9df645bad6e563eea9aa0d4847dca850b05590d",
      "parents": [
        "b64868a50715cfdb5c71d97144ba00acf78e2a76"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Apr 10 16:22:23 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Apr 10 20:44:27 2014 -0700"
      },
      "message": "Improve the \u003csstream\u003e test.\n\nIt looks like libcxx\u0027s testing is crap too, and this turned up\nanother bug in stlport.\n\nChange-Id: I98c93dceaa8225c3cc280166d4bb74adaf94a324\n"
    },
    {
      "commit": "8c42606ae10b59318c9a4ea83854049bab5b9328",
      "tree": "acce4aed7ffff7fbdc337249e79da85e8fd39aec",
      "parents": [
        "4e364d972433bda04614b56bc422ca88bf406c00"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Apr 10 11:34:14 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Apr 10 11:34:14 2014 -0700"
      },
      "message": "Add a test for external/stlport a6df82320fcb8f26af0d067c7768fedbaeb9ad88.\n\nChange-Id: If4df9f5df41ae5453a3dff6bb032b419819f8703\n"
    },
    {
      "commit": "b52a4ab4e281c7adae35b3d7ae8d99b5753b870d",
      "tree": "29c9202d49c1b1458cc99e2ad72527fd7b83084d",
      "parents": [
        "e62355057ca703eeca22d54a8a0f5b69ca58487c",
        "c4936e20a3a8772cc393423037be36091e68acc2"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 09 04:13:43 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 09 04:13:43 2014 +0000"
      },
      "message": "Merge \"Flesh out \u003clocale.h\u003e.\""
    },
    {
      "commit": "764a99361130dceda62bbc4f8780bbf395dbc424",
      "tree": "1764161705276ce49a6e1646bc6bf651e8713914",
      "parents": [
        "7f38a3c9bef9c6efc30a6b60873bbdeea04a18f0"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 08 19:44:36 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 08 19:44:36 2014 -0700"
      },
      "message": "Fix build: include what you use.\n\nChange-Id: I12b2d5e434ad3ed38d4451bd470673781e6ca8fe\n"
    },
    {
      "commit": "c4936e20a3a8772cc393423037be36091e68acc2",
      "tree": "17df342ad605fcb25812936a34d68e3f225b387e",
      "parents": [
        "ac70d2e1fe71f98232942237c2b463ea3adbf662"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 08 17:05:05 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 08 19:37:38 2014 -0700"
      },
      "message": "Flesh out \u003clocale.h\u003e.\n\nThis is a trivial implementation that only supports the C/POSIX locale.\n\nChange-Id: Ib11cea4249e1862aca96a8b94d58ea9a418cbe75\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": "5363a45f2b6d4eeb054710d0886bbadea8a15273",
      "tree": "907bc848885d648d631a41c768ca60b7f69bbcdf",
      "parents": [
        "5acd2d40052c55255a346167e504afb884eeb3af"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 08 14:34:12 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 08 14:34:12 2014 -0700"
      },
      "message": "Clean up localeconv(3).\n\nThe OpenBSD doesn\u0027t support C99, and the extent to which we support\nlocales is trivial, so just do it ourselves.\n\nChange-Id: If0a06e627ecc593f7b8ea3e9389365782e49b00e\n"
    },
    {
      "commit": "48501af98f3cdf0115a469ee8d773cf74c42958d",
      "tree": "b26893fa81d808c0f93bf8fdf966e3210948b8c2",
      "parents": [
        "0b0387c965894e235b72fa965191bf346270135d"
      ],
      "author": {
        "name": "Serban Constantinescu",
        "email": "serban.constantinescu@arm.com",
        "time": "Fri Mar 14 13:16:25 2014 +0000"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 08 12:19:23 2014 -0700"
      },
      "message": "AArch64: Fix flock64 for LP64.\n\nOn LP64 systems F_GETLK64, F_SETLK64 and F_SETLKW64 definitions should\nmap onto the F_GETLK, F_SETLK and F_SETLKW definitions, respectively.\nLP64 also doesn\u0027t have a struct flock64.\n\nChange-Id: Ibdfed9645d9e946999acd6efa8b96ea6238ed5bf\nSigned-off-by: Marcus Oakland \u003cmarcus.oakland@arm.com\u003e\nSigned-off-by: Serban Constantinescu \u003cserban.constantinescu@arm.com\u003e\n"
    },
    {
      "commit": "41059d764f347baa28b8da653a88c772daa9b738",
      "tree": "f8c851b6d89e2c96a6b2abbddae691574c278ed3",
      "parents": [
        "b9bb48bf289eec9053c6d7cc77ebbde2b4356c4b",
        "950a58e24d1019eb9d814dbb16f111a6b61e3f23"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Apr 08 01:21:06 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 08 01:21:07 2014 +0000"
      },
      "message": "Merge \"Add stpcpy/stpncpy.\""
    },
    {
      "commit": "b9bb48bf289eec9053c6d7cc77ebbde2b4356c4b",
      "tree": "1914667741e7d1aaf419eb5fb699e152e501b038",
      "parents": [
        "26c31a75a5bd9a549cefc0424b7cac9e35816711",
        "edd7c2ec256548702d275b3023f54bd91b4dcfc4"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 07 23:44:50 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Apr 07 23:44:50 2014 +0000"
      },
      "message": "Merge \"Fix the printf issue for 64 bits. The following case:\""
    },
    {
      "commit": "950a58e24d1019eb9d814dbb16f111a6b61e3f23",
      "tree": "5a91099e0ce1b9d552e7210fb914ba8d4d5ddb10",
      "parents": [
        "5f149f1bdef31d198c0e84fd8c904204d263e825"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Apr 04 14:38:18 2014 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Apr 07 16:41:53 2014 -0700"
      },
      "message": "Add stpcpy/stpncpy.\n\nAdd tests for the above.\n\nAdd the fortify implementations of __stpcpy_chk and __stpncpy_chk.\n\nModify the strncpy test to cover more cases and use this template for\nstpncpy.\n\nAdd all of the fortify test cases.\n\nBug: 13746695\nChange-Id: I8c0f0d4991a878b8e8734fff12c8b73b07fdd344\n"
    },
    {
      "commit": "efbdb53f84f4e1faf38f3c1a4cb60a83b9885ef4",
      "tree": "ce1cefce8be4e92dec242f1a06672b1dfbf566d7",
      "parents": [
        "5f149f1bdef31d198c0e84fd8c904204d263e825"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 07 15:17:19 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 07 15:17:19 2014 -0700"
      },
      "message": "Remove a non-standard turd: strtotimeval.\n\nChange-Id: I1b1e40746cb573e3fb73a5276969b40c5da36d15\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": "eb554998d774c670a169bde1792619789f2f7058",
      "tree": "cc3e522a8a063431714d9d4db23d0452d583e7ad",
      "parents": [
        "e2a0f15c08827ee854f3bffdf78d2f4db49d4fe5",
        "d8d6feed3add3965f481dcdd6e1bb259a46f21c2"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Apr 03 09:00:34 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 03 09:00:34 2014 +0000"
      },
      "message": "Merge \"Fix modf* tests\""
    },
    {
      "commit": "d8d6feed3add3965f481dcdd6e1bb259a46f21c2",
      "tree": "14361f2be3d0195e28ce8cc50ad08f71e95f772e",
      "parents": [
        "b7afa9df2552c6a6889a43c6a1722e1ce46f1969"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Apr 01 16:45:53 2014 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Apr 02 21:54:39 2014 +0100"
      },
      "message": "Fix modf* tests\n\nUse a value that can be exactly represented.\n\nChange-Id: Idf3b1db5e6042fb49c1f591f25f9eee656659ece\n"
    },
    {
      "commit": "edd7c2ec256548702d275b3023f54bd91b4dcfc4",
      "tree": "185b4c42aa947850753ef8caa171dc2e6ecd1b2e",
      "parents": [
        "9c9ef0db91c816ca81a22a94c3ddd896a0f0f1bc"
      ],
      "author": {
        "name": "Alexander Ivchenko",
        "email": "alexander.ivchenko@intel.com",
        "time": "Tue Apr 01 17:01:39 2014 +0400"
      },
      "committer": {
        "name": "Alexander Ivchenko",
        "email": "alexander.ivchenko@intel.com",
        "time": "Wed Apr 02 18:30:55 2014 +0400"
      },
      "message": "Fix the printf issue for 64 bits. The following case:\n\nprintf(\"%1$s %1$s\\n\", \"test\");\n\nwould print garbage instead of the second \"test\". The problem is __find_arguments\nand the patch is a backport of two patches from OpenBSD that fix the issue:\n\nAuthor: tedu \u003ctedu@cvs.openbsd.org\u003e\nDate:   Sat Apr 29 23:00:24 2006 +0000\n\n    check mmap for failure.  the helper functions using it return -1, but\n    callers do not yet check since printf() for example is not documented\n    to return an error.\n    some formatting cleanups.\n    mostly ok deraadt millert\n\nAuthor: millert \u003cmillert@cvs.openbsd.org\u003e\nDate:   Fri May 16 14:28:54 2008 +0000\n\n    C99 says that for each va_copy() there must be a matching va_end().\n    Replace the non-portable hackery in __find_arguments() with a union.\n    From FreeBSD.\n\nChange-Id: I6ea392ce6fcf4a319ae6a67ec58cc52fe7cbe534\nSigned-off-by: Alexander Ivchenko \u003calexander.ivchenko@intel.com\u003e\n"
    },
    {
      "commit": "9c9ef0db91c816ca81a22a94c3ddd896a0f0f1bc",
      "tree": "8bfcbc5b225a6e3f16d77b863dd5cf60865a797b",
      "parents": [
        "1653ad5e08ba4cabfd4d81237e13a4952fac6194",
        "b7afa9df2552c6a6889a43c6a1722e1ce46f1969"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Apr 02 10:17:10 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 02 10:17:11 2014 +0000"
      },
      "message": "Merge \"Changed long double literal suffix from \u0027l\u0027 to \u0027L\u0027.\""
    },
    {
      "commit": "1021c05f1bef70d78cddff41b151787b8195cac9",
      "tree": "a4170f35a0e3ac09cace91e7f4020e070fa0ffb2",
      "parents": [
        "f1bfc8781e17fb851de23dce4332c0cb5ccb8749"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Apr 01 17:33:41 2014 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Apr 01 17:42:31 2014 -0700"
      },
      "message": "Include sys/types.h and sys/wait.h for waitpid\n\n(cherry picked from commit 8b2c6d44cac206b61dffd965863336e6f803fc66)\n\nChange-Id: Ice1f6d956c11aaefd3d846c12121f08613a94446\n"
    },
    {
      "commit": "e3bb025b3d963e4aa412ab3eee35ca2187eb0eca",
      "tree": "8d6b00f5a66fa37326915f4d312a018d3f486233",
      "parents": [
        "796249a4ce48ed5eb946170f32541e3edf83b601"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Mar 31 22:51:27 2014 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Apr 01 14:46:09 2014 -0700"
      },
      "message": "Fix transient failure in select_smoke test.\n\nMake sure there is a delay before the file descriptor is written so that\nthe select/pselect calls do not return immediately.\n\nChange-Id: If9e481b0e2cfae7ef7abd9cba8fff84078e203d3\n"
    },
    {
      "commit": "b7afa9df2552c6a6889a43c6a1722e1ce46f1969",
      "tree": "4e3a980860bbe66374939bfa5a8b644c2a2d3d8c",
      "parents": [
        "b732b71dc10158a4c1d8ee2235d357f8694030ba"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Apr 01 16:41:12 2014 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Apr 01 16:49:14 2014 +0100"
      },
      "message": "Changed long double literal suffix from \u0027l\u0027 to \u0027L\u0027.\n\nChange-Id: Id569f2d335b0930704d12ad7f388cb98b65f3ab7\n"
    },
    {
      "commit": "108f6dc3168fa492a7ba906466ac65749f5fbda5",
      "tree": "e7e68e62f45b3475b707df32107f9f6d41d41545",
      "parents": [
        "aad59fafeaa1f46e1744864167e6407b5a5ae55e"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Mar 31 13:30:22 2014 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Mar 31 22:43:38 2014 -0700"
      },
      "message": "Move accept4 tests into sys_socket_test.cpp.\n\nIn addition, create basic recvmmsg, sendmmsg tests.\n\nChange-Id: Ie9f4954446d98b5eb5e553d3c616c1ee67c3cb66\n"
    },
    {
      "commit": "9cea3775056d0a8d04d49c3983440b89d82a462b",
      "tree": "7efc58da446fa759651030322662f6f853cf8020",
      "parents": [
        "557942ac58f08675473460b1802b43473c467172"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Mar 31 11:23:39 2014 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Mar 31 11:23:39 2014 -0700"
      },
      "message": "Small accept4 fixes.\n\nPut the accept4 test in the sorted order, and put the accept4 define in\nsorted order.\n\nAlso add the missing SYS_RECVMMSG and SYS_SENDMMSG defines.\n\nChange-Id: Iba55354975e0d5027dbee53f6de752c2df719493\n"
    },
    {
      "commit": "557942ac58f08675473460b1802b43473c467172",
      "tree": "08829e12222eff7bd581bc9e4505da961abd4934",
      "parents": [
        "d8fe15fdb6581b6920a4be75731337edbac64b11",
        "c8564f2df2a85a753e25bf48b4eefbf8379fe31a"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Mar 31 10:54:14 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 31 10:54:15 2014 +0000"
      },
      "message": "Merge \"Fix math tests.\""
    },
    {
      "commit": "50282f72bb9be6b49212a3978faec70786e9f97f",
      "tree": "fd30ad0ee980643c3f3ae923fa6d17921d15f747",
      "parents": [
        "a58b3f78e14500e7b10fc845ef0a6a8309664663"
      ],
      "author": {
        "name": "Pavel Chupin",
        "email": "pavel.v.chupin@intel.com",
        "time": "Tue Mar 25 13:43:04 2014 +0400"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Mar 28 11:15:03 2014 +0000"
      },
      "message": "Add lconv declaration and localeconv(3)\n\nlconv is taken from ndk/sources/android/support/include/locale.h and\nmatches\nbsd/glibc upstream.\nKeep old declaration for 32-bits for compatibility.\nlocaleconv.c and deps are taken from openbsd upstream.\nChanged strtod.c accordingly.\n\nChange-Id: I9fcc4d15f5674d192950d80edf26f36006cd31b4\nSigned-off-by: Pavel Chupin \u003cpavel.v.chupin@intel.com\u003e\n"
    },
    {
      "commit": "c8564f2df2a85a753e25bf48b4eefbf8379fe31a",
      "tree": "b0b1e6a7057b6bd1ddeb166d25a06438fa80b775",
      "parents": [
        "a58b3f78e14500e7b10fc845ef0a6a8309664663"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Mar 27 13:41:06 2014 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Mar 28 11:10:01 2014 +0000"
      },
      "message": "Fix math tests.\n\nBug: 13657654\nChange-Id: I39b2f13b5b3d3e6897618ac3aed49a0a08458dd0\n"
    },
    {
      "commit": "a58b3f78e14500e7b10fc845ef0a6a8309664663",
      "tree": "9b939c2d85d7d2d2a1ea5f88612be322c6218add",
      "parents": [
        "cd3303fa384c86f9e7dfab52cce33bd986fdd565",
        "2f3ba8844ab8ed6be02485c79c1e974a6513b492"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Mar 27 18:15:15 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 27 18:15:15 2014 +0000"
      },
      "message": "Merge \"Add accept4 unit test to bionic.\""
    },
    {
      "commit": "2f3ba8844ab8ed6be02485c79c1e974a6513b492",
      "tree": "fa9a5cb69fbfb66ca33dbc9dc8c0dc757802f98a",
      "parents": [
        "bc475bc8d1d202baa48f6c9829fe1cced9122332"
      ],
      "author": {
        "name": "Andrei Emeltchenko",
        "email": "andrei.emeltchenko@intel.com",
        "time": "Tue Feb 18 10:22:58 2014 +0200"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Mar 27 11:08:49 2014 -0700"
      },
      "message": "Add accept4 unit test to bionic.\n\nChange-Id: I1cce5fb8dab16f03164fdd288f35a814d7c49c6a\n"
    },
    {
      "commit": "4bfaf462f0c864473faaca63cc4ba9e1a1b103a8",
      "tree": "c8514bbb56f1b835c2043367fc7df6b7eb3dd278",
      "parents": [
        "ecbf00bda2fcee65e4e6385772022529ffeeed91"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Mar 26 14:21:11 2014 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Mar 26 17:57:48 2014 +0000"
      },
      "message": "Added strtotimeval tests.\n\nChange-Id: I3dfd3647a8494490a2d549bdb915968063a7fb99\n"
    },
    {
      "commit": "133bd09334cb28b45cca1ca0e5b4e22a9e5b68e5",
      "tree": "3bd86df9a54803d76a5a180eb93a209fbe9d271d",
      "parents": [
        "989a80b75014eff71600a6a4e1445e710c2f94b4"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Mar 24 16:45:18 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Mar 24 16:53:22 2014 -0700"
      },
      "message": "Add include of float.h for LDBL_MIN_EXP and LDBL_MANT_DIG\n\n(cherry picked from commit 1711c6ea3a0d891da665325c75738a68bd7d501f)\n\nChange-Id: Ia64676b2b904f042fec678003e3f2cd5bd82b510\n"
    },
    {
      "commit": "989a80b75014eff71600a6a4e1445e710c2f94b4",
      "tree": "432b1fe061fb09db93b402159dae3868cc064344",
      "parents": [
        "9e8a8dc18cb3162858feef2d4baaf3fa357aa3d2",
        "4d77c1151c40010d137e4a2fa8629bff4bea72b0"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Mar 24 12:13:24 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 24 12:13:24 2014 +0000"
      },
      "message": "Merge \"Fix LP64 libm for 128-bit long doubles\""
    },
    {
      "commit": "4d77c1151c40010d137e4a2fa8629bff4bea72b0",
      "tree": "ba8f9dcf0b45afd26dff4e92a037295a6f78e19d",
      "parents": [
        "849e162d3bedc5ca61bdf15486268b253b9f4e93"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Mar 14 17:56:46 2014 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Mar 24 11:48:42 2014 +0000"
      },
      "message": "Fix LP64 libm for 128-bit long doubles\n\n* reworked amd64/_fpmath.h and arm64/_fpmath.h to support 128-bit long\ndoubles.\n* improved tests to cover long double cases\n* made modfl an alias for LP32\n\nTests pass on x86, x86_64, arm, arm64 and mips.\n\nBug: 12921273\n\nChange-Id: Ibe39acde57972447a8950fa45b1e702acc68ebeb\n"
    },
    {
      "commit": "753ad778bc1c3aecc4cd82b8387a7dc8a9b44d34",
      "tree": "6eedabf25b6c892f6eb95b847e3100c8245dcacf",
      "parents": [
        "2cc58603d5fd68ec582984318fb3c5f8865a186f"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Mar 20 20:47:45 2014 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Mar 20 20:47:45 2014 -0700"
      },
      "message": "Fix deadlock in timer_delete.\n\nIf the callback function for a timer did a timer_delete, the function\nwould never return. The problem was that the timer_delete function would try\nto wait until the timer thread has finished. Waiting for yourself to finish\ndoesn\u0027t work very well.\n\nBug: 13397340\nChange-Id: Ica123a5bafbc8660c8a4a909e5c2dead55ca429d\n"
    },
    {
      "commit": "722706672617d009279a8485b895bd3389de0396",
      "tree": "705bd0f3e8bb73a50cf0a52ffabc0d5889d43748",
      "parents": [
        "849e162d3bedc5ca61bdf15486268b253b9f4e93"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Mar 19 17:45:08 2014 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Mar 19 18:23:36 2014 +0000"
      },
      "message": "Added a test flag to bionic run-test targets.\n\nIt makes it much easier to pass arguments to the tests.\n\nChange-Id: Ia91eba4868627a3cea3f8d2c26ba01af4e860b12\n"
    },
    {
      "commit": "f171b34cf045115b82ccb89b57feb56d3cad472b",
      "tree": "60d746b63387b151f00dfd3272773f2701e93929",
      "parents": [
        "f212bbf666b77777063a3a94a672bcae80b15253"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Mar 17 16:40:26 2014 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Mar 17 16:40:26 2014 -0700"
      },
      "message": "Use the float/double assert macros.\n\nThe normal ASSERT_EQ macros don\u0027t work quite right for float/double values,\nand result in false failures. Use the correct macros instead.\n\nBug: 13511379\nChange-Id: Ic2feee7f3d3569f57b6453b8fa95222846c625cd\n"
    },
    {
      "commit": "603332fc4c2d073f0e197f9ce4517710e9b3a6d0",
      "tree": "55e87813c7e80c351e22cb776ab9c2426e430a4d",
      "parents": [
        "0e79338d12d1ca780efcd0720af92b0a70e55da8"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Mar 12 17:10:41 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Mar 12 17:10:41 2014 -0700"
      },
      "message": "Upgrade to current upstream scanf implementation.\n\nAlso add a basic test.\n\nChange-Id: Icc0e68a5716b9579244f6eb8bac1ab5a24eda85a\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": "40488560c17e41c0980b3a08ef54ec38bb572a41",
      "tree": "77542af209ac1c3061418a1f215ef43e5575b6e4",
      "parents": [
        "2282e16d76c6691968bd62a4c4bb3ecefabc98ca"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Mar 12 13:50:38 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Mar 12 13:50:38 2014 -0700"
      },
      "message": "Include what you use.\n\nDon\u0027t rely on transitive includes. (Even though that works fine in AOSP.)\n\nChange-Id: Ifc06575e4aea383cfff24d6c5c14fc0a7aabdf2b\n"
    },
    {
      "commit": "3cdf5739cd34757943a5fff9d26efeb8da04cb09",
      "tree": "fa1afe43a3097d8073b749b6d836431fd435fd1f",
      "parents": [
        "dd8c7863c613290acaa8bc4b90af34f020e0bee3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 11 12:54:44 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 11 12:54:44 2014 -0700"
      },
      "message": "Add a basic unit test for system(3).\n\nChange-Id: Ibc5ac21f3663685d89ce261b58d6ea386fc1ff88\n"
    },
    {
      "commit": "3e3409af0faa8843078a9e6e7110e69a88210da4",
      "tree": "ef07a9b1dac6181400f081a431b6665cbd86e416",
      "parents": [
        "2cd3490d7bdb18e5051a3cc66e7d03635bbcbeaf"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 10 18:19:03 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 10 18:19:03 2014 -0700"
      },
      "message": "Add system/extras strftime and strptime tests.\n\nChange-Id: I889c58f6e2e27b99cf6328a8671858d2e5feaa4e\n"
    },
    {
      "commit": "be1d91dedcfb346ced5ac496cd454f5b2e9bc4a9",
      "tree": "a27aef46b6755f47ff36c6a40661f7f09e55950c",
      "parents": [
        "fd9e20d10f946334955ca199b0178580d284e89f"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sat Mar 08 15:05:26 2014 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sat Mar 08 15:09:43 2014 -0800"
      },
      "message": "Add includes for waitpid\n\n(cherry picked from commit f07c5dd9ab63f2e8ba736107bd4b69bbd8829c9f)\n\nChange-Id: I7a765fd7a3a5f8f29a703f6a591c4fd8df4ebf1c\n"
    },
    {
      "commit": "04620a3cd7bdea0d1b421c8772ba3f06839bbe9c",
      "tree": "cbc1d4ecfc8e681d69dc7658f91c3078b46bd4bd",
      "parents": [
        "333e2ae87dac85d6420786e9e12ffd7ea84dae38"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 07 17:59:05 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 07 17:59:05 2014 -0800"
      },
      "message": "Fix pthread_detach for already-exited threads.\n\nChange-Id: I2bf7f41234d93b226132a4c51705f4186f4961c3\nReported-by: Paresh Nakhe \u003cpnakhe@codeaurora.org\u003e\n"
    },
    {
      "commit": "4b558f50a42c97d461f1dede5aaaae490ea99e2e",
      "tree": "c239a686131cdda28272c961ce98febbc0c772f8",
      "parents": [
        "bef5016491eed41521f514d5c5528e2274689948"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 04 15:58:02 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 07 16:49:46 2014 -0800"
      },
      "message": "Rewrite the POSIX timer functions.\n\nThis is a much simpler implementation that lets the kernel\ndo as much as possible.\n\nCo-authored-by: Jörgen Strand \u003cjorgen.strand@sonymobile.com\u003e\nCo-authored-by: Snild Dolkow \u003csnild.dolkow@sonymobile.com\u003e\nChange-Id: Iad19f155de977667aea09410266d54e63e8a26bf\n"
    },
    {
      "commit": "0e714a5b41451e84c5ded93a42c9a4b0a9440691",
      "tree": "86e6519cc723fb66a9432193da16b380255c22f7",
      "parents": [
        "8e541b12237f597c186820b9e18b059b620bef54"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 03 16:42:47 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 04 10:27:58 2014 -0800"
      },
      "message": "Implement POSIX pthread_mutex_timedlock.\n\nThis replaces the non-standard pthread_mutex_lock_timeout_np, which we have\nto keep around on LP32 for binary compatibility.\n\nChange-Id: I098dc7cd38369f0c1bec1fac35687fbd27392e00\n"
    },
    {
      "commit": "51e6cb33e3d7c2f44864d356a2a8e66317688f55",
      "tree": "48863111f16d659bbc0456662d67f5fc8ff3bef2",
      "parents": [
        "2c7c79e6e5e730553281b6d42e734ee2c532a660"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Mar 03 15:38:51 2014 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Mar 04 11:17:13 2014 +0000"
      },
      "message": "Implement pthread_condattr_{get,set}clock.\n\nWe only support CLOCK_REALTIME and CLOCK_MONOTONIC for now,\nso we us a single bit from pthread_cond_t-\u003evalue to denote\nthe clock type. Note that this reduces the width of the counter\nto 30 bits, but this should be large enough for all practical\npurposes.\n\nbug: 13232338\n\nChange-Id: I857e7da64b3ecbb23eeac7c9f3fbd460f60231bd\n"
    },
    {
      "commit": "aedb00d04eb7f0b20b6abde702ba94a46577ca68",
      "tree": "2346f63ba4777e6739e6a4115b68fad529e8f801",
      "parents": [
        "dfeb42ede69a0dbea5735aed5fddaee3f810801d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 03 14:38:20 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 04 00:58:31 2014 +0000"
      },
      "message": "Switch to upstream alarm(3).\n\nThe only way the setitimer call can fail is if the unsigned number of seconds is\ntoo large to fit in the kernel\u0027s signed number of seconds. If you schedule a\n68-year alarm, glibc will fail by returning 0 and BSD will fail by returning -1.\n\nChange-Id: Ic3721b01428f5402d99f31fd7f2ba2cc58805607"
    },
    {
      "commit": "6ff0c75c838e73d2aeccc0102ab58a7b865172ca",
      "tree": "664bed83a31a736af22e3ac37ff36b14e809724c",
      "parents": [
        "000ffd8ab0b4112173ce319869f4111f08fbe975"
      ],
      "author": {
        "name": "Guillaume Ranquet",
        "email": "guillaumex.ranquet@intel.com",
        "time": "Mon Feb 10 13:11:29 2014 +0100"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 27 14:29:01 2014 -0800"
      },
      "message": "Add recvmmsg and sendmmsg syscalls.\n\nAlso add the corresponding constant, struct, and function declarations\nto \u003csys/socket.h\u003e, and perfunctory tests so we know that the symbols\nactually exist.\n\nSigned-off-by: Guillaume Ranquet \u003cguillaumex.ranquet@intel.com\u003e\nChange-Id: Ib0d854239d3716be90ad70973c579aff4895a4f7\n"
    },
    {
      "commit": "a92b57c7f8230661d911f2fd6dd67a81e9a90cef",
      "tree": "da3df37981e655f8d236facaf411d279183f63c9",
      "parents": [
        "7c1efffc249283b47309846abba8795f3fb91555",
        "d4934a70e69365c97b1378820152e134a0089b5e"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Feb 25 10:44:25 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 25 10:44:26 2014 +0000"
      },
      "message": "Merge \"Added ftw64, nftw64\""
    },
    {
      "commit": "7c1efffc249283b47309846abba8795f3fb91555",
      "tree": "51c0fb5fc7dd9fa85f36c4bc17c52d41dd525692",
      "parents": [
        "ba40a560176e6ea753d09a6a71343b81ea4c8c1e",
        "fe317a3775e16d466bb884a8e054fd77f7087bb3"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Feb 25 10:43:30 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 25 10:43:31 2014 +0000"
      },
      "message": "Merge \"Added mkstemp64\""
    },
    {
      "commit": "0e44bc3baeb1677e5fbdda87a737b9c508c95132",
      "tree": "1470737507c2d3924297e61e463edc18a191cc8e",
      "parents": [
        "b26e4944e2a5bf4b7e33fa38fb17a3b76c7fe0f7"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 24 15:55:31 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 24 15:55:31 2014 -0800"
      },
      "message": "Remove \u003casm/page.h\u003e.\n\nIf we have PAGE_SIZE/PAGESIZE, POSIX says they should be in \u003climits.h\u003e.\n\nChange-Id: I3c2d574ea2aea81f524874a156361411a4ffa18e\n"
    },
    {
      "commit": "d4934a70e69365c97b1378820152e134a0089b5e",
      "tree": "c26c1ef275cd79486a03d9e4df76193c4a4ccc33",
      "parents": [
        "fe317a3775e16d466bb884a8e054fd77f7087bb3"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Feb 24 16:13:50 2014 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Feb 24 20:22:11 2014 +0000"
      },
      "message": "Added ftw64, nftw64\n\nBug: 13076637\nChange-Id: I5b926526f935b00bba14c2807b61d85f95089c33\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": "90b0157679a984f1829a72f8c642d17030aa7644",
      "tree": "3de9e1189d3c245c4ffada294fe9e97dc6bff3e0",
      "parents": [
        "e65055af112780623f372aca6a1f78d2b2acb34f",
        "da030de702b756077fec536ed139e7ea38b51022"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Feb 21 17:09:13 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 21 17:09:13 2014 +0000"
      },
      "message": "Merge \"Fixed int fast types for LP64\""
    },
    {
      "commit": "da030de702b756077fec536ed139e7ea38b51022",
      "tree": "43e29ce4f9b5128e25bb55efb78a4329104e38ac",
      "parents": [
        "44ef37c1b445e864068cdcd885ab3d7b17079ad3"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Feb 20 13:40:36 2014 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Feb 21 16:27:21 2014 +0000"
      },
      "message": "Fixed int fast types for LP64\n\nBug: 13110474\nChange-Id: Id5591603ad4ba7e149c0852f4abb25e4e5a5d065\n"
    },
    {
      "commit": "5f6f4a956cd630f873fe41058e96262f897f4bc9",
      "tree": "d0c1a8d044d1597364dad94574e30a0bd8197bd7",
      "parents": [
        "44ef37c1b445e864068cdcd885ab3d7b17079ad3"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Feb 19 15:42:58 2014 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Feb 19 18:50:30 2014 +0000"
      },
      "message": "Fix signbit / infinite / isinf / isnan unit tests.\n\nTurns out stlport isn\u0027t broken. \u003ccmath\u003e (included\ntransitively via gtest in our case) is not required\nto make C99 math macros (like signbit) available, nor is\nit required to preserve them if they\u0027re already defined.\nIt is only required to make the equivalent functions in\nnamespace std available.\n\nI couldn\u0027t find any documentation of required behaviour for\nprograms that include both \u003cmath.h\u003e and \u003ccmath\u003e.\n\nI\u0027ve verified experimentally that llvm\u0027s libc++ and gnu\nstl behave the same as stlport.\n\nbug: 12935307\n\nChange-Id: I9dc5cc0fd9f4f259abc8eefb280177cdd092a94b\n"
    },
    {
      "commit": "1d18e9cc0ab8b2f6d860c4f7d85c33eb5cde4179",
      "tree": "c4e19a0cc8afd9c3dd81e91ce427610862f248fb",
      "parents": [
        "b36020789ac860fcfbbeaf56d560926d8ee228f6"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 18 15:48:56 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 18 15:48:56 2014 -0800"
      },
      "message": "Add missing file from previous change.\n\nChange-Id: Id25000162a9ed76ce756842bdc09fe9afff9528f\n"
    },
    {
      "commit": "db1ea3474899ebbd783aba872d3005f95a816d0f",
      "tree": "b70fedd7d69098f5141dbbb09ef41851a61eec8d",
      "parents": [
        "3623d80675e5321b92c2d88a7b7ec6bd998d81d5"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jan 17 18:42:49 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 18 15:39:24 2014 -0800"
      },
      "message": "Implement some of the missing LFS64 support.\n\nThis gives us:\n\n* \u003cdirent.h\u003e\n  struct dirent64\n  readdir64, readdir64_r, alphasort64, scandir64\n\n* \u003cfcntl.h\u003e\n  creat64, openat64, open64.\n\n* \u003csys/stat.h\u003e\n  struct stat64\n  fstat64, fstatat64, lstat64, stat64.\n\n* \u003csys/statvfs.h\u003e\n  struct statvfs64\n  statvfs64, fstatvfs64.\n\n* \u003csys/vfs.h\u003e\n  struct statfs64\n  statfs64, fstatfs64.\n\nThis also removes some of the incorrect #define hacks we\u0027ve had in the\npast (for stat64, for example, which we promised to clean up way back\nin bug 8472078).\n\nBug: 11865851\nBug: 8472078\nChange-Id: Ia46443521918519f2dfa64d4621027dfd13ac566\n"
    },
    {
      "commit": "915fefb62e1beed3da26fe299a8141645733a925",
      "tree": "59a4187f3e8c3cb476d1a1a0dca35f6a0f3a3a49",
      "parents": [
        "ffe026680edaba268330bc67dd986d2c900ecfc7"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 18 12:34:51 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 18 12:34:51 2014 -0800"
      },
      "message": "Fix x86 build.\n\nChange-Id: Iee6e5884288f7da6c955694cfe32fecfd9c9e263\n"
    },
    {
      "commit": "3d19a8319b9c27af8aa5cfbf495da0fe7fa62d3e",
      "tree": "a51591477e2f6f97ae56ae027d01ca1ff8c302ef",
      "parents": [
        "d4bc9ef83b36916d5e63c4c3e4a092381473ea52"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Feb 14 18:56:23 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 18 12:11:38 2014 -0800"
      },
      "message": "bionic: fix __set_errno for arm64 syscalls that return a 64-bit value\n\nbionic/libc/arch-arm64/syscalls/read.S ends with:\n    b.hi __set_errno\n    ret\nEND(read)\n\nIf __set_errno returns int, it will set w0 to 0xFFFFFFFF, which means\nx0 is 0x00000000FFFFFFFF.  When interpreted as a ssize_t that is\nINT_MAX, not -1.\n\nChange __set_errno to return long, which will cause x0 to be set instead\nof w0.\n\nChange-Id: I9f9ea0f2995928d2ea240eb2ff7758ecdf0ff412\n"
    },
    {
      "commit": "671e236d5fd2cae169c2a31d0a35e66c4fcc5556",
      "tree": "55c1a2a77c279f671d77e23ff1ee89946fd6efde",
      "parents": [
        "fc48e8cf28b80ce0f95e288eeee459b4cb932afa"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 12 19:04:27 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 12 19:04:27 2014 -0800"
      },
      "message": "Restore sys_signame for LP64.\n\nmksh is using this, and we probably build as much BSD source as glibc source.\n\nChange-Id: I400d255a67f9614ca9e57090e3a2e49d2b10cba4\n"
    },
    {
      "commit": "aa0ebdafc71e1ceac78e0929b94f3bb117d0c8e9",
      "tree": "e0fa3c926172fbc3e4b1a43950ae2a7ea662deb7",
      "parents": [
        "9e572ca4163e42bcd053df2cb8557e4b61ad064d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 11 19:57:06 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 12 17:09:25 2014 -0800"
      },
      "message": "Clean up sys_signame and sys_siglist a little.\n\nWe don\u0027t need quite so much duplication because we already have a way\nto get the signal number from its name, and that already copes with the\nfact that the mips/mips64 numbers are different from everyone else\u0027s.\n\nAlso remove sys_signame from LP64. glibc doesn\u0027t have this BSD-ism.\n\nChange-Id: I6dc411a3d73589383c85d3b07d9d648311492a10\n"
    },
    {
      "commit": "f04935c85e0b466f0d30d2cd4c0fa2fff62e7d6d",
      "tree": "8f1c6af75517892648f49adad9d4d5d44c20f49c",
      "parents": [
        "e163a3986aa7d1c67fe3274eb9204812be0a6245"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Dec 20 18:43:21 2013 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Feb 06 20:12:21 2014 -0800"
      },
      "message": "Make sure that the same tests are on all platforms.\n\nIn order to be able to generate a list of tests for cts, the same set of\ntests must exist across all platforms. This CL adds empty tests where a\ntest was conditionally compiled out.\n\nThis CL creates a single library libBionicTests that includes all of\nthe tests found in bionic-unit-tests-static.\n\nAlso fix a few missing include files in some test files.\n\nTested by running and compiling the tests for every platform and\nverifying the same number of tests are on each platform.\n\nChange-Id: I9989d4bfebb0f9c409a0ce7e87169299eac605a2\n"
    },
    {
      "commit": "f64b8ea09db3bdd84eed59f7721301743332b3fe",
      "tree": "6d45a510ee831e1bc154170170afe7c931474ebc",
      "parents": [
        "a122c376ef0737454a592cf44f50beabe154e9e3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 03 16:20:46 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 03 16:20:46 2014 -0800"
      },
      "message": "Add fallocate/fallocate64/posix_fallocate/posix_fallocate64.\n\nBug: 5287571\nBug: 12612860\nChange-Id: I4501b9c6cdf9a830336ce0b3afc4ea716b6a0f6f\n"
    },
    {
      "commit": "718a5b5495ae7726aabd2f8a748da9f391d12b98",
      "tree": "9f2062d2a222d79dc70d3b81bd608e91a28ffb70",
      "parents": [
        "c75e7726ea5167ea03c512c7c35117762548d93f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 28 17:02:03 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 28 17:02:03 2014 -0800"
      },
      "message": "Fix pthread_test to work with gtest 1.7.0.\n\nNow we\u0027re building it correctly configured, gtest takes a couple of\nTLS slots for itself.\n\nChange-Id: I1c2c4e9e5f9c6e2e2e6ecd1214cfc16a5af5afed\n"
    },
    {
      "commit": "431166d99519f6794f10c48694913d2fe864b841",
      "tree": "7c148908e51c210646a28f890da96897e6000138",
      "parents": [
        "652dd5196df87bdeef7bff452f1a4857a96e3133"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jan 27 16:28:31 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jan 27 16:36:56 2014 -0800"
      },
      "message": "Fix 32-bit mmap/mmap64 handling of negative offsets.\n\nWe don\u0027t actually need to worry about sign extension if we reject\nnegative values ourselves. Previously it was possible to come up\nwith negative but aligned values that we would pass to the kernel;\nin the case of mmap (as opposed to mmap64) we\u0027d incorrectly turn\nthose into large positive offsets.\n\nChange-Id: I2aa583e0f892d59bb77429aea8730b72db32dcb0\n"
    },
    {
      "commit": "e2a292d278b94fec3d078b1f1b27c1f89942c276",
      "tree": "92f56a8b0e38cd4576453bf8db9fdecd8c7fe077",
      "parents": [
        "513f83bb7f6961d60eb10d2ab14fb31fed190bce"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jan 24 16:37:04 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jan 24 16:38:07 2014 -0800"
      },
      "message": "Remove __STDC_FORMAT_MACROS and __STDC_LIMIT_MACROS guards (and fix SIZE_MAX for LP64).\n\nThe various committees decided that everyone should get all these macros,\nall the time.\n\nBug: 12708004\nChange-Id: Ib56010dcba9b0656e5701546fefb7f78dc0bf916\n"
    },
    {
      "commit": "d1973ca51325393f304e82a4d79874f33e54ac16",
      "tree": "75a657d895a41aa4855a06ef1e0e986c963e0eef",
      "parents": [
        "5b4884fac90753c68d401de73036c2de919958eb"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jan 21 19:50:58 2014 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Jan 23 18:35:39 2014 -0800"
      },
      "message": "bionic: rename aarch64 target to arm64\n\nRename aarch64 build targets to arm64.  The gcc toolchain is still\naarch64.\n\nChange-Id: Ia92d8a50824e5329cf00fd6f4f92eae112b7f3a3\n"
    },
    {
      "commit": "0f461e35f63200641fc53bba222845a84589c024",
      "tree": "d5b0d3a9e13f4699bdc57dfd422a69ddfdde5090",
      "parents": [
        "8276d2875f64587e266567f5bb2c5e0c70ef0a5d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 09 10:17:03 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 09 11:00:04 2014 -0800"
      },
      "message": "Fix \u003csys/resource.h\u003e.\n\nThe situation here is a bit confusing. On 64-bit, rlimit and rlimit64 are\nthe same, and so getrlimit/getrlimit64, setrlimit/setrlimit64,\nand prlimit/prlimit64 are all the same. On 32-bit, rlimit and rlimit64 are\ndifferent. 32-bit architectures other than MIPS go one step further by having\nan even more limited getrlimit system call, so arm and x86 need to use\nugetrlimit instead of getrlimit. Worse, the 32-bit architectures don\u0027t have\n64-bit getrlimit- and setrlimit-equivalent system calls, and you have to use\nprlimit64 instead. There\u0027s no 32-bit prlimit system call, so there\u0027s no\neasy implementation of that --- what should we do if the result of prlimit64\nwon\u0027t fit in a struct rlimit? Since 32-bit survived without prlimit/prlimit64\nfor this long, I\u0027m not going to bother implementing prlimit for 32-bit.\n\nWe need the rlimit64 functions to be able to build strace 4.8 out of the box.\n\nChange-Id: I1903d913b23016a2fc3b9f452885ac730d71e001\n"
    },
    {
      "commit": "5f1322cecf5af4bedfb2d3cf857d18e73a233b9d",
      "tree": "bc03185cd6ccc1eca47c0b9fefc2b956d4cd5568",
      "parents": [
        "b235f8c8773c08569a97b0ff7e4c709b216c8478",
        "dd00364807020a244aa8be4f3481f7ec0fefcc79"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jan 06 23:37:20 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jan 06 23:37:21 2014 +0000"
      },
      "message": "Merge \"Pass a valid stack pointer to __bionic_clone in pthread.__bionic_clone\""
    },
    {
      "commit": "dd00364807020a244aa8be4f3481f7ec0fefcc79",
      "tree": "5fce5f43c4b6aac8a5a0bb64ec1d01c06c308c5d",
      "parents": [
        "c1c3f7d4468f02adbf8ced689d738386e42af773"
      ],
      "author": {
        "name": "Chris Dearman",
        "email": "chris.dearman@imgtec.com",
        "time": "Sat Jan 04 12:57:39 2014 +0000"
      },
      "committer": {
        "name": "Chris Dearman",
        "email": "chris.dearman@imgtec.com",
        "time": "Sat Jan 04 13:14:35 2014 +0000"
      },
      "message": "Pass a valid stack pointer to __bionic_clone in pthread.__bionic_clone\n\n__bionic_clone modifies the child stack before cloning so the stack\npointer should be valid. The test is expecting an EINVAL error to be\ngenerated from the incorrect flags: CLONE_THREAD set without\nCLONE_SIGHAND.\n\nChange-Id: Ic02192081f6f52df6f03d9810efa82d923247a11\n"
    },
    {
      "commit": "894f8cb1395d3409bb995d18abc1b3409c557d01",
      "tree": "c9ddda0d60085077fd96cd301c3ccbe16c581578",
      "parents": [
        "c1c3f7d4468f02adbf8ced689d738386e42af773"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jan 03 14:49:37 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jan 03 14:49:37 2014 -0800"
      },
      "message": "Fix dev_t (for LP64).\n\n32-bit Android\u0027s dev_t was wrong too. We can\u0027t fix that without ABI breakage,\nbut we can at least fix 64-bit Android. And add tests.\n\nBug: https://code.google.com/p/android/issues/detail?id\u003d54966\nChange-Id: Ie2e42cc042b78b669a1a44e55f959dbd9c52c5c9\n"
    },
    {
      "commit": "6ad8f76f1f1cbee484c30d723d9d6d1fcf5dc85c",
      "tree": "07ac6a32d57f7a65112ebeda5078d2f064a9a34a",
      "parents": [
        "cf7a4a4fda076ec76bb79fdbd039665171e8cd75"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 19 14:56:17 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 19 14:56:17 2013 -0800"
      },
      "message": "Don\u0027t abort in stdio.getdelim_invalid and stdio.getline_invalid.\n\nChange-Id: Ie1aefed732f4bea77887bddd1be9a0578e247aa3\n"
    },
    {
      "commit": "e7c59f9e2041812c597ff1c8689d47d1bfd32883",
      "tree": "97d56c8132b832669676c08de6c9298b50a33a5f",
      "parents": [
        "f293b15728031432317791fb4a17a423545d37b3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Dec 17 20:47:06 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Dec 18 09:47:44 2013 -0800"
      },
      "message": "Fix compilation of crtbegin.c and pthread_debug.cpp.\n\nBecause there was no default :\u003d for the aarch64 libc_crt_target_cflags,\nthe +\u003d was causing libc_crt_target_cflags to be recursively-defined\nvariable, which meant that when we were compiling crtbegin.c LOCAL_PATH\nwould be bionic/tests/ and we\u0027d have -Ibionic/tests/include/ and find\nnone of our include files.\n\nAlso fix linking of pthread_debug.cpp, at least in the disabled mode.\nThe enabled mode was already broken for all architectures, and continues\nto be broken after this change. It\u0027s been broken for long enough that\nwe might want to just remove it...\n\n(aarch64 is using the FSF linker where arm uses the gold linker.)\n\nChange-Id: I7db2e386694f6933db043138e6e97e5ae54d4174\n"
    },
    {
      "commit": "e365f9d6543bc6607864ef61257505239dde15d1",
      "tree": "ecc2e3605bc26aeb9b16a1d3adbceb70da40ba19",
      "parents": [
        "2e3826c08171ead1647c800a0a6d9c333d335762"
      ],
      "author": {
        "name": "Marcus Oakland",
        "email": "marcus.oakland@arm.com",
        "time": "Thu Oct 10 15:19:31 2013 +0100"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Dec 17 15:02:43 2013 -0800"
      },
      "message": "AArch64: Linker64 support for AArch64\n\nAddition of support for AArch64 in the linker64 target.\n\nChange-Id: I8dfd9711278f6706063e91f626b6007ea7a3dd6e\nSigned-off-by: Marcus Oakland \u003cmarcus.oakland@arm.com\u003e\n"
    },
    {
      "commit": "282e232e2a32cca8a288e81edddfd95f450cfc79",
      "tree": "43c466720c7ac06b055d9b6c12db0ad944669a6d",
      "parents": [
        "4e78ca63b8d53b96c590d3f1b29b0cfb65a651bc"
      ],
      "author": {
        "name": "Serban Constantinescu",
        "email": "serban.constantinescu@arm.com",
        "time": "Tue Oct 22 11:30:12 2013 +0100"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Dec 16 17:40:30 2013 -0800"
      },
      "message": "AArch64: Add fixes to bionic/tests\n\nThis patch adds minor fixes to the bionic unit tests.\n\nChange-Id: Ie10f33c631ed6c10987923d678711d22931ddb05\nSigned-off-by: Serban Constantinescu \u003cserban.constantinescu@arm.com\u003e\n"
    },
    {
      "commit": "1887621de8a48eece8a05f2400ddd783b9833147",
      "tree": "73707f9768954e6d68f077febc4f442e2010609e",
      "parents": [
        "38fcbbb35a40c46e96b4df10d670d1c132910854"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 12 11:02:41 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 12 12:51:08 2013 -0800"
      },
      "message": "PTHREAD_KEYS_MAX cleanup.\n\nI fixed this bug a while back, but didn\u0027t remove it from the list,\ncould have added a better test, and could have written clearer code\nthat didn\u0027t require a comment.\n\nChange-Id: Iebdf0f9a54537a7d5cbca254a5967b1543061f3d\n"
    },
    {
      "commit": "a84f88f0989e9446686ae76a53dc087ff5788fe6",
      "tree": "63fe6c4c6d0218c0eadc5459948b1585d6a08a74",
      "parents": [
        "b39599286d03db13f51a79e4cfe6644da0079f1a",
        "bd3efbc9b585e0c9801b0b35f282347cb8692ca8"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Dec 11 19:05:24 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Dec 11 19:05:25 2013 +0000"
      },
      "message": "Merge \"bionic: move benchmarks out of tests directory\""
    },
    {
      "commit": "bd3efbc9b585e0c9801b0b35f282347cb8692ca8",
      "tree": "ee91fc952e907515d959f80a55de157318ad124a",
      "parents": [
        "05ec00bf62ac168c9787a3d0640879ab3e502fe5"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Nov 15 17:49:47 2013 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Dec 10 18:24:30 2013 -0800"
      },
      "message": "bionic: move benchmarks out of tests directory\n\nChange-Id: I4d054965198af22c9a9c821d1bc53f4e9ea01248\n"
    },
    {
      "commit": "e5bbb6b6ab662503f06ceb20fa841d2e558d596d",
      "tree": "c031e82ae3400ce97aa416185c9118812569434c",
      "parents": [
        "ed45970ac5a182e512669cfa5c15b9f4fa783ad7"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Dec 03 18:39:10 2013 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Dec 03 18:42:41 2013 -0800"
      },
      "message": "Add strcmp/memcmp testing.\n\nBug: 9797008\nChange-Id: I11b1da060d29f7dacbb53f20a3e2082395b5bd8a\n"
    },
    {
      "commit": "f00c938c7f5887981d724bf2dd9989ee0af08332",
      "tree": "215f86cc9ce1b1ed167d925419122327d3ffaa3e",
      "parents": [
        "a626e4d8bc3d59cc328942fc30ffc04981b154ed",
        "811b0cdb2d6e4a697dbc63a678712759dd0db242"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Nov 22 11:08:12 2013 -0800"
      },
      "committer": {
        "name": "Conley Owens",
        "email": "cco3@android.com",
        "time": "Fri Nov 22 13:38:33 2013 -0800"
      },
      "message": "Merge commit \u0027811b0cdb2d6e4a697dbc63a678712759dd0db242\u0027 into HEAD\n\nChange-Id: I786944f80fb1a2d502fed51dc2c391ed5db66761\n"
    },
    {
      "commit": "9d70ddc466ed0bdb36908d69b1fe849904150eb7",
      "tree": "25806ed540954a5644139381aa318d811718dbda",
      "parents": [
        "318e86ed887e04e593f3db9b84b402d5501ced9b",
        "af64dad4796ab4f077e2f2ba1e90cc56b6575d63"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Nov 19 09:56:53 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 19 09:56:53 2013 +0000"
      },
      "message": "Merge \"Add test case for 1^NaN\""
    },
    {
      "commit": "303fe0cb38def66aa438b9caac32e5af298f840a",
      "tree": "f8aefb780d74419659ecaef3dfa9d8bf29c7c95d",
      "parents": [
        "862faa12928038759e1bbdbc394a7d58b560f128",
        "877ec6d90418ff1d6597147d355a2229fdffae7e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Nov 19 03:48:59 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 19 03:49:00 2013 +0000"
      },
      "message": "Merge \"Fix pthread_join.\""
    },
    {
      "commit": "877ec6d90418ff1d6597147d355a2229fdffae7e",
      "tree": "e475221a7fbff1564ad37548e920333c49cc5873",
      "parents": [
        "f246c589d66e5dc0e3cddc3c37261fb0e3fc67e9"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Nov 15 17:40:18 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Nov 18 19:48:11 2013 -0800"
      },
      "message": "Fix pthread_join.\n\nLet the kernel keep pthread_internal_t::tid updated, including\nacross forks and for the main thread. This then lets us fix\npthread_join to only return after the thread has really exited.\n\nAlso fix the thread attributes of the main thread so we don\u0027t\nunmap the main thread\u0027s stack (which is really owned by the\ndynamic linker and contains things like environment variables),\nwhich fixes crashes when joining with an exited main thread\nand also fixes problems reported publicly with accessing environment\nvariables after the main thread exits (for which I\u0027ve added a new\nunit test).\n\nIn passing I also fixed a bug where if the clone(2) inside\npthread_create(3) fails, we\u0027d unmap the child\u0027s stack and TLS (which\ncontains the mutex) and then try to unlock the mutex. Boom! It wasn\u0027t\nuntil after I\u0027d uploaded the fix for this that I came across a new\npublic bug reporting this exact failure.\n\nBug: 8206355\nBug: 11693195\nBug: https://code.google.com/p/android/issues/detail?id\u003d57421\nBug: https://code.google.com/p/android/issues/detail?id\u003d62392\nChange-Id: I2af9cf6e8ae510a67256ad93cad891794ed0580b\n"
    },
    {
      "commit": "af64dad4796ab4f077e2f2ba1e90cc56b6575d63",
      "tree": "b219e1771210f5db0dc42dc20e889d77d9a39981",
      "parents": [
        "f246c589d66e5dc0e3cddc3c37261fb0e3fc67e9"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Nov 18 18:47:48 2013 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Nov 18 19:00:59 2013 +0000"
      },
      "message": "Add test case for 1^NaN\n\nShould be 1.\n\nChange-Id: I6cf723a419f51d3bda58286a538774b71276c7b5\n"
    },
    {
      "commit": "cbd85b9cc1c5dd0bb1a5691143cd5adcbecdba77",
      "tree": "6a68536f1a1a5c37803b04199fe536d7ce876891",
      "parents": [
        "f246c589d66e5dc0e3cddc3c37261fb0e3fc67e9"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Nov 15 15:16:01 2013 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Nov 15 16:09:44 2013 -0800"
      },
      "message": "Modify tests for another glibc difference.\n\nIt turns out that when passing a closed file to getdelim or getline, the\nfunctions in glibc will properly return a failure, but errno might not be\nset. Skip the errno check except on bionic.\n\nChange-Id: I8d625f15303d4c2d42e8d28491ea8a368aea4d32\n"
    }
  ],
  "next": "e39e3a77d6e8cf681718a572bc754fd64dfc87ff"
}
