)]}'
{
  "log": [
    {
      "commit": "141b917018048c5fda567785740dfaaf38e66f1e",
      "tree": "144416c96d8e3d1406ed78d8221a72a174317d80",
      "parents": [
        "999d82e51d8b96c622ecb63c69b56e7e7753e47d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 09 17:13:09 2021 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 12 10:01:20 2021 -0700"
      },
      "message": "Switch to libbase SilentDeathTest.\n\nBug: http://b/184955378\nTest: treehugger\nChange-Id: Ie0849224074da92203340a741a86a24a4a3702c2\n"
    },
    {
      "commit": "f9cfecf3d4d848e247dc8bdc486ed227bff7315f",
      "tree": "00f1b5a19b7acaa16783ea14361d156a38a98989",
      "parents": [
        "15ade069b10f7f5291e48c01db2da4852dae04b7"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 04 16:58:13 2021 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 04 17:01:55 2021 -0800"
      },
      "message": "Fix freopen() where the path is null.\n\nThis has been in the standard since C99, but we\u0027ve never supported it\nbefore. It\u0027s apparently used by SPIRV-Tools.\n\nI tried implementing this the other way (with fcntl(2)) first, but\neventually realized that that\u0027s more complicated and gives worse\nresults. This implementation assumes that /proc is mounted, but so much\nof libc relies on that at this point that I don\u0027t think there\u0027s any\nrealistic case where the fcntl(2) implementation would be preferable,\nand there are many where it\u0027s not.\n\nThe fact that no-one\u0027s mentioned this until now suggests that it\u0027s not a\nheavily used feature anyway.\n\nI\u0027ve also replaced AssertCloseOnExec() with a CloseOnExec()\nboolean-valued function instead, because it\u0027s really annoying getting\nassertion failures that don\u0027t point you at the test line in question,\nand instead point to some common helper code.\n\nTest: treehugger\nChange-Id: Ia2e53bf2664a4f782581042054ecd492830e2aed\n"
    },
    {
      "commit": "7cda75f1d3e147a300d7ff4d690b13e36bff5c5d",
      "tree": "0d4390746ae35c223432964fce5041d3dc280bed",
      "parents": [
        "9aa6b15d799ac246e842552fca555920a93ce46b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 22 13:22:35 2020 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 22 13:22:35 2020 -0700"
      },
      "message": "Add DoNotOptimize and use it in tests.\n\nBug: http://b/148307629\nTest: treehugger\nChange-Id: I3b1726ae55116f6553ea38fe163abdde179c21f0\n"
    },
    {
      "commit": "8035caa311a286e14ace1027c4e4b945b0cd02c3",
      "tree": "df682d9e32f96a2a8206f526cd88a4ae0f38055d",
      "parents": [
        "0f4bdb04fb4b803bbf19850c86cc9270d64a06b9"
      ],
      "author": {
        "name": "Pirama Arumuga Nainar",
        "email": "pirama@google.com",
        "time": "Tue Jun 09 12:48:10 2020 -0700"
      },
      "committer": {
        "name": "Pirama Arumuga Nainar",
        "email": "pirama@google.com",
        "time": "Wed Aug 05 14:58:40 2020 -0700"
      },
      "message": "Enable coverage for libc.\n\nBug: http://b/157081822\n\n- Disable coverage for libtest_check_rtld_next_from_library to make\ndlfcn.rtld_next_from_library to pass.\n- The coverage runtime sets an environment variable to prevent\nclobbering of the coverage data on disk.  Include that variable as well\nwhen checking `printenv` output.  This is done at runtime by checking\nfor LLVM_PROFILE_FILE environment variable.\n- dl.preinit_system_calls still fails after this change.\n\nTest: bionic tests with libc coverage turned on.\n\nChange-Id: I3ea2b0800886d8c0984969a4ee8bfb0da03c33b0\n"
    },
    {
      "commit": "230328374018c7ca4e82a47ff4eb91dd2f79a5c3",
      "tree": "c607e4accae1eb4fd8b72cd22cd69e4a3308fe6b",
      "parents": [
        "4d0c40be89976f4713eb54957327306033bcbc07"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu May 07 17:02:19 2020 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu May 07 19:44:27 2020 -0700"
      },
      "message": "Track whether a thread is currently vforked.\n\nOur various fd debugging facilities get extremely confused by a vforked\nprocess closing file descriptors in preparation to exec: fdsan can\nabort, and fdtrack will delete backtraces for any file descriptors that\nget closed. Keep track of whether we\u0027re in a vforked child in order to\nbe able to detect this.\n\nBug: http://b/153926671\nTest: 32/64-bit bionic-unit-tests on blueline, x86_64 emulator\nChange-Id: I8a082fd06bfdfef0e2a88dbce350b6f667f7df9f\n"
    },
    {
      "commit": "db602e8a477622864a72787893554150315d5c09",
      "tree": "b4054f94f0f540eb223afb01f1c79383b0a6e172",
      "parents": [
        "5e85d1b290877201174fdb2f09226b5bd34b80a9"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Nov 15 09:04:27 2019 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Nov 15 09:24:35 2019 -0800"
      },
      "message": "sysconf(_SC_ARG_MAX): go back to imitating the kernel.\n\nFor reasons explained in the code comment, go back to roughly our old\ncode. The \"new\" tests are just the old tests resurrected.\n\nThis also passes the current toybox xargs tests, which were the\nmotivation for going back on our earlier decision.\n\nTest: bionic and toybox tests\nChange-Id: I33cbcc04107efe81fdbc8166dc9ae844e471173e\n"
    },
    {
      "commit": "ca3f8e4901b7e7da0cef6b11aad0ee484978211d",
      "tree": "54d05aceab505881e1004625af82f19b0dea1c72",
      "parents": [
        "9615e0ddacafcc728ff432fce61eaa0a1049880e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 28 15:59:38 2019 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 28 22:25:02 2019 -0700"
      },
      "message": "sleep/usleep: switch to trivial implementations.\n\nUpstream keeps rearranging the deckchairs for these, so let\u0027s just\nswitch to the [roughly] one-liners rather than track that...\n\nTest: treehugger\nChange-Id: If655cf7a7f316657de44d41fadd43a8c55ee6f23\n"
    },
    {
      "commit": "505168e53098c8c523449de1fdc419d29717bf1b",
      "tree": "b4ea4f7f2c612e829a3a0c5c9ed9b16c64fb144a",
      "parents": [
        "b62888b70940f173357d50395fee5b2ebee9ddff"
      ],
      "author": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Thu Feb 28 18:44:56 2019 -0800"
      },
      "committer": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Tue Mar 19 23:36:44 2019 +0000"
      },
      "message": "Annotate vfork for hwasan.\n\nCall a hwasan hook in the parent return path for vfork() to let hwasan\nupdate its shadow. See https://github.com/google/sanitizers/issues/925\nfor more details.\n\nBug: 112438058\nTest: bionic-unit-tests\nChange-Id: I9a06800962913e822bd66e072012d0a2c5be453d\n"
    },
    {
      "commit": "7cc670637005e88e00be467c6c387112644a9209",
      "tree": "0141df753769639688cc216287be3f7f76d5cbdf",
      "parents": [
        "352853a53525ecb2a120dfa4e9aa03b3970df8ee"
      ],
      "author": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Tue Feb 05 18:43:34 2019 -0800"
      },
      "committer": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Wed Feb 06 13:59:16 2019 -0800"
      },
      "message": "Cleanup bionic tests with hwasan.\n\nThe tests were patched earlier to run with tagging heap allocator.\nThis change enables hwasan code instrumentation in the tests themselves,\nand fixes the issues that arise, mainly in the code that:\n* compares addresses of unrelated stack variables\n* compares address of a stack variable with stack limits as found in\n  /proc/self/maps\n* writes address of a stack variable to a hardware watchpoint register\netc.\n\nNote that static tests are broken at the moment, like all static\nbinaries. Dynamic tests pass 100% with this change.\n\nBug: 114279110, 124007027\nTest: SANITIZE_TARGET\u003dhwaddress; run dynamic bionic tests\n\nChange-Id: I68b8df9dd3e30b47734ddc083811a75a7f27deaa\n"
    },
    {
      "commit": "68a3bcc249b04394b73991c5272aa0ae4bde7676",
      "tree": "1198b5a3d89086b82223d8ee7271d215643c03a3",
      "parents": [
        "c2d3e67a77fe284e8f8f1ae4dd4a67a669bfd644"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Nov 13 07:35:21 2018 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Nov 13 10:57:28 2018 -0800"
      },
      "message": "bionic tests: switch to using android-base/file.h for TemporaryFile\n\nA matching definition of TemporaryFile exists in libbase now.\n\nTest: compile\nBug: 119313545\nChange-Id: I6f84dbf3af9a9c4b270a2532a36c9cb4c0f6bb8f\n"
    },
    {
      "commit": "82ab481123c171d2029bb0a7767d649b576ee2f8",
      "tree": "3227b9e82293bb449edfb52e1c753a45e044a4fd",
      "parents": [
        "773c697f815d43182adf1eb430f4899255088d6b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 09 13:56:06 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 09 13:56:06 2018 -0700"
      },
      "message": "Add _SC_UIO_MAXIOV as a synonym for _SC_IOV_MAX.\n\nglibc and musl both have these as synonyms for one another, so we may\nas well do the same and get backwards compatibility on old OS releases.\n\nBug: N/A\nTest: ran tests\nChange-Id: I6bf38ea446560e1b11022ff539f07eb67c157049\n"
    },
    {
      "commit": "32bc0fcf69dfccb3726fe572833a38b01179580e",
      "tree": "abca656f500087493e0997d5cf38cbcc9ec98eb8",
      "parents": [
        "65f82092a17518080178ff7004cc6db362ebfbcd"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Thu Aug 02 17:31:13 2018 -0700"
      },
      "committer": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Thu Aug 02 18:09:44 2018 -0700"
      },
      "message": "Modernize codebase by replacing NULL with nullptr\n\nFixes -Wzero-as-null-pointer-constant warning.\n\nTest: m\nBug: 68236239\nChange-Id: I5b4123bc6709641315120a191e36cc57541349b2\n"
    },
    {
      "commit": "d6f57306d2d2ecba460cf9ee3b51235346bd8e9a",
      "tree": "317375666dd180b869722b97f5c1d02e29f0f11c",
      "parents": [
        "67b5979930ba81477cf5f835b1fe23563ee9c761"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 25 22:13:14 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 25 22:13:14 2018 -0700"
      },
      "message": "Fix sysconf errno for unknown names.\n\nThe code (and comment) have been like this since the initial commit, but\nthere was never a test of this, and glibc seems to have been returning\nEINVAL (as POSIX says it should) since long before Android existed.\n\nBug: http://b/31154352\nTest: ran tests\nChange-Id: Ica1ea836a4a5699ef0d956fe9c0f322e567de34d\n"
    },
    {
      "commit": "71ba5899ae5857a6510f0fa05039dccee73bcc6a",
      "tree": "9d34769766ce10c95ecb32bc5ec25949007a0048",
      "parents": [
        "0a8d5f3eb8f4087b307f237943a19ae36b094ced"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 07 12:44:45 2018 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 05 17:20:12 2018 -0800"
      },
      "message": "Rewrite system(3) to use posix_spawn(3).\n\nWe saw crashes from pthread_exit+debuggerd on LP32\n(https://issuetracker.google.com/72291624), and it seems like the\nequivalent problem should exist with system(3). I fixed posix_spawn(3)\nas part of that bug, so the easiest fix is probably to reuse that.\n\nBug: http://b/72470344\nTest: ran tests\nChange-Id: I05f838706f2b4a14ac3ee21292833e6c8579b0d4\n"
    },
    {
      "commit": "a7f12944d4154a445ee774683e27447d609de540",
      "tree": "7e2683233d0a36b825f630b1fc0f069e306463e8",
      "parents": [
        "59a6ee963f96eedf01df7db1e57397ff71852b15"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Dec 15 13:55:53 2017 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Dec 15 13:55:53 2017 -0800"
      },
      "message": "A few more trivial tests.\n\nBased on gaps in the list of functions not referenced by the test\nexecutable.\n\nBug: N/A\nTest: ran tests\nChange-Id: I73c238e7cf360f94670c7cd13eb954341c940b7b\n"
    },
    {
      "commit": "baed51ee3a13dae4b87b11870bdf7f10bdc9efc1",
      "tree": "7c04199156be4e1e7101b2c57cd4fa558baadcda",
      "parents": [
        "de5f9a1c54eebd1b66a5dfeaffbe3e703e76c86e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 15 15:14:35 2017 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 15 15:14:35 2017 -0800"
      },
      "message": "Change ARG_MAX/_SC_ARG_MAX back to a constant.\n\nAs per the lkml thread https://lkml.org/lkml/2017/11/1/946.\n\nBug: http://b/65818597\nTest: ran tests\nChange-Id: I7a0610e6903e6761f2b31416e2f5017bd7a60659\n"
    },
    {
      "commit": "cf3a3e67742ac2a46414531202bb13bf871395ab",
      "tree": "b3de737379c5554aa2be1e0aaf74146fb0fe9916",
      "parents": [
        "2e998d37ce5be9833c595bc97549793a81459ed4"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 23 09:28:21 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 23 17:10:53 2017 +0000"
      },
      "message": "Fix unistd.sysconf test.\n\nA previous change added new assertions about these, but didn\u0027t remove\nthese old now-invalid assertions.\n\nBug: http://b/68133223\nTest: ran tests\nChange-Id: Ib6ce6e5f7abe143f2c871e074e7fd51faaf452ac\n"
    },
    {
      "commit": "ac29d9f3b9636818773d60df18eb17e79783f774",
      "tree": "b21bb54cdb9432056d9f83ffc8c80aea317ccdcd",
      "parents": [
        "1b6de8788918f806efd812b743dcc0bbdd232392",
        "fa386e0d1eb52478f11b7232d280919245c1616c"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Oct 19 21:49:29 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 19 21:49:29 2017 +0000"
      },
      "message": "Merge \"Add POSIX swab.\""
    },
    {
      "commit": "a1c30b98e99bd4ecd351c0bb0c4a52b39776242e",
      "tree": "aebaba83e0c235e8758552ac89d4b85a6c709480",
      "parents": [
        "d6084a764e29cf979ea254139654027d91adeb7c",
        "4d215aad85cd9cba3e815eafb8c56eb5218eafb1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 19 15:42:56 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 19 15:42:56 2017 +0000"
      },
      "message": "Merge \"Add POSIX fexecve.\""
    },
    {
      "commit": "4d215aad85cd9cba3e815eafb8c56eb5218eafb1",
      "tree": "9f987f65dfaa1dd321541189ea63c23b70c70cbc",
      "parents": [
        "ab9dc08bdd60d3709e1bce555625d923b32812be"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 18 15:54:56 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 18 16:26:17 2017 -0700"
      },
      "message": "Add POSIX fexecve.\n\nI\u0027m skeptical about the usefulness of this, but it\u0027s in POSIX, it\u0027s\nin glibc (but not iOS), and it is used in some internal source (test\nrunners and container code).\n\nBug: N/A\nTest: ran tests\nChange-Id: I92c5398f2a679b21a33fba92bc8e67e3ae2eb76f\n"
    },
    {
      "commit": "fa386e0d1eb52478f11b7232d280919245c1616c",
      "tree": "fcfb7d65c39ec91e1b1ec5bedeefe806861d21c4",
      "parents": [
        "ab9dc08bdd60d3709e1bce555625d923b32812be"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 18 13:34:32 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 18 13:34:32 2017 -0700"
      },
      "message": "Add POSIX swab.\n\nSurprisingly to me, there are actual uses of `swab` in the codebases\nI have available to search, including one with a #ifndef __ANDROID__\naround it.\n\nBug: N/A\nTest: ran tests\nChange-Id: Ic91b78ae22bb65c346cb46dd38916f48d979abe0\n"
    },
    {
      "commit": "19d768598205d915a856ec8f8bf6f996dc6fa83a",
      "tree": "8463238af2bc21651e86e9e44973e9b3ba99eb52",
      "parents": [
        "435e6384de8f9e35b8878b1ccda5bb5686c15207"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 18 13:27:01 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 18 13:27:01 2017 -0700"
      },
      "message": "More \u003climits.h\u003e fixes.\n\nWent through the POSIX spec for the _POSIX* and _XOPEN* constants.\n\nBug: http://b/32776472\nTest: ran tests\nChange-Id: I389100dbc7de354eae9056e44b0a7fa8c37374e3\n"
    },
    {
      "commit": "14e3ff9f09fdd52db43628ccd6f39a6d3fb41740",
      "tree": "8ed0ba1d0744ac95265e2ea634b6e1ff8d72d88c",
      "parents": [
        "e387c2f08841ac0f6578e903ab21b54d01f3266e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Oct 06 16:58:36 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 11 14:57:49 2017 -0700"
      },
      "message": "Implement \u003cspawn.h\u003e.\n\nAs described here:\n\n  http://pubs.opengroup.org/onlinepubs/9699919799/functions/posix_spawn.html\n\nAnd here:\n\n  http://man7.org/linux/man-pages/man3/posix_spawn.3.html\n\nBug: N/A (but mentioned in my inbox since 2013)\nTest: ran tests\nChange-Id: I0b27b2919b660779e3bd8a25fb429527c16dc621\n"
    },
    {
      "commit": "aaf83e8051abf9a68e9deee589b18f0ecdf1b266",
      "tree": "f3b56813ba81ae68a68e28f73d4de933be22a455",
      "parents": [
        "0a451314b0bb3af51e34659ade322be58c434127"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 05 15:26:33 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 05 16:18:10 2017 -0700"
      },
      "message": "More POSIX limits cleanup.\n\nhttp://man7.org/linux/man-pages/man7/posixoptions.7.html is a very useful\nquick reference to what these are supposed to mean.\n\nBug: http://b/32776472\nTest: ran tests\nChange-Id: Icea6812d6075e663885844d7424aa6cf73d6284a\n"
    },
    {
      "commit": "3a8f75d8b052611c08ef17ecf625b8021f4e0229",
      "tree": "a41055f8209868da748f5118a24df528d1f07a9e",
      "parents": [
        "42f3bd0ffc3f0f0e3191c679ea4276f7f1882a00"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 05 10:33:18 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 05 10:33:18 2017 -0700"
      },
      "message": "POSIX clock cleanup.\n\nThe newest of these clocks was added in Linux 2.6.12, so no need for runtime\nchecks.\n\nAdd CTS tests that we can actually use the various clocks.\n\nBug: http://b/67458266\nTest: ran tests\nChange-Id: I3cfd7982043d6f8d4ebdc2b29e8722334f443ce5\n"
    },
    {
      "commit": "5a7c950909b28c22653f1e72a9559d9316b93f0f",
      "tree": "6e3e5fc9b2dd2dbbd52b22dceb65d2cb2448b016",
      "parents": [
        "48fbf91672d096bdec664374d16d65488b77251c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 03 15:19:02 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 03 15:19:02 2017 -0700"
      },
      "message": "Sync internal and external master.\n\nNot sure how this managed to cling on in AOSP master, but all the other\nmentions of this constant in AOSP master are already expecting the new\nvalue anyway.\n\nBug: N/A\nTest: ran tests\nChange-Id: I8b6b4b320eeb1c4cea1c06bea4c1e8e314ee344d\n"
    },
    {
      "commit": "5828840e7251091b8a2121d1ab44a53fd44dd689",
      "tree": "46ffa0bdac830d4b64aa914b0507f8c806a6a418",
      "parents": [
        "3b64f8ecb3db49574cc5b7c6030be98c159be4d4",
        "c2c36b661cf80f88305fc15907a6df16a0342862"
      ],
      "author": {
        "name": "Bill Yi",
        "email": "byi@google.com",
        "time": "Fri Sep 15 13:44:31 2017 -0700"
      },
      "committer": {
        "name": "Bill Yi",
        "email": "byi@google.com",
        "time": "Fri Sep 15 13:44:31 2017 -0700"
      },
      "message": "Merge remote-tracking branch \u0027aosp/oreo-cts-dev\u0027 into HEAD\n"
    },
    {
      "commit": "896362eb0e82bcde71c137c925eae9e0882acb91",
      "tree": "3c4b2fb6e1626a2b377c93bd925f4f0fb4e02a9c",
      "parents": [
        "96c577c48284c376ec065f2b3a2d2987a7eeff5c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 24 16:31:49 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 24 16:31:49 2017 -0700"
      },
      "message": "Add syncfs(2).\n\nGMM calls this system call directly at the moment. That\u0027s silly.\n\nBug: http://b/36405699\nTest: ran tests\nChange-Id: I1e14c0e5ce0bc2aa888d884845ac30dc20f13cd5\n"
    },
    {
      "commit": "8aa4bc7c558843ab3199792b0fde207195f66a2a",
      "tree": "a5b911dc8496eadcceae416db308f09e813e5b54",
      "parents": [
        "3e183a5d3048edaad22a3fc098b9e350bad403ca",
        "06bd5862b18e0b750a709f7f8a1d277f1f6d0c99"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Jul 29 14:56:02 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Jul 29 14:56:02 2017 +0000"
      },
      "message": "Merge \"POSIX getlogin_r/LOGIN_NAME_MAX/TTY_NAME_MAX.\""
    },
    {
      "commit": "6c135f4c41c0fafcf270aea5202adc6e68e04b76",
      "tree": "2af81ef60cde0d133e22a0d61738e4d05e51a78b",
      "parents": [
        "bafa1985eccaac231ade6f15d340759f44928524"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jul 28 16:53:32 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jul 28 16:53:32 2017 -0700"
      },
      "message": "Fix the sysconf _SC_2_VERSION test.\n\nNot sure how this ended up broken. Too many branches!\n\nBug: N/A\nTest: ran tests\nChange-Id: Ieef1e8170c9aaf139d9e0664475ccb08b8fcdeba\n"
    },
    {
      "commit": "06bd5862b18e0b750a709f7f8a1d277f1f6d0c99",
      "tree": "f6d0db8de8f67383aa97056e6c73fb2c7be1b402",
      "parents": [
        "bafa1985eccaac231ade6f15d340759f44928524"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jul 28 16:27:49 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jul 28 16:34:38 2017 -0700"
      },
      "message": "POSIX getlogin_r/LOGIN_NAME_MAX/TTY_NAME_MAX.\n\nBug: N/A\nTest: ran tests\nChange-Id: I97c8ecc82fb09c3fa4bb5e6f000d46f04f3d1702\n"
    },
    {
      "commit": "7b41aaf3d5515eba8b37a7368dfa57a655f1472e",
      "tree": "f01a2f8cfa60c30626b627a3a596a935ccdb13ef",
      "parents": [
        "c0c56ec7ceb953b275d8f1772f9276e72eb693ea"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jul 13 10:28:21 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jul 13 13:40:12 2017 -0700"
      },
      "message": "Loosen _POSIX_THREAD_PROCESS_SHARED test.\n\nBug: http://b/62424597\nTest: bionic unistd.sysconf test\nChange-Id: I4adb6d227f761360e9d3fe084a45c386bc6944da\n"
    },
    {
      "commit": "a35293534f1aa481cc299b1c092e6619806e17f7",
      "tree": "b064397a1acb02d9767871fb48341b07ae86d1df",
      "parents": [
        "2d585e0070f33ec86a5d5decf9642ee9f2501324"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jul 13 10:20:41 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jul 13 10:20:41 2017 -0700"
      },
      "message": "Fix unistd._POSIX_macros_smoke test.\n\nWe now claim _POSIX2_VERSION, but the test wasn\u0027t updated.\n\nBug: N/A\nTest: ran tests\nChange-Id: Idb3369b3df4b964f585597f0d37962ae619322d2\n"
    },
    {
      "commit": "468c8086e6f28b9342d3f89ed89f185ab5bb775a",
      "tree": "e04a6353962ea85f199c283e21b28b4caf4325ee",
      "parents": [
        "f06535035ef6e48aeacc37819ea7182416275216"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat May 20 12:47:14 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat May 20 13:11:14 2017 -0700"
      },
      "message": "Fix _POSIX_THREAD_PROCESS_SHARED.\n\nWe\u0027ve had pthread_*_setpshared for long enough that there are no\n__INTRODUCED_IN guards.\n\nFound because fio\u0027s configure script was confused by this.\n\nBug: N/A\nTest: ran tests\nChange-Id: I07b4d937741e4dcd7e615f2371b17c827341917a\n"
    },
    {
      "commit": "b8ab61804cec48e4ca585f4508fb1b7c6c5a04c5",
      "tree": "4a1045e4b9e30c52e6c3886de8474c0aeb2c8996",
      "parents": [
        "12021ce9cf1ec1bc47cded3402ac9a3aa7b9b396"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Apr 05 16:20:29 2017 -0700"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Apr 05 16:37:07 2017 -0700"
      },
      "message": "Move scopeguard into android::base\n\nTest: boot bullhead, bionic unit tests\nChange-Id: I223249684867655ecb53713b10da41d3014f96ae\n"
    },
    {
      "commit": "30a36273ab761fb07892f7816b4873b6c48a0cea",
      "tree": "98b9470ffdf08c56244bb66f2e595d8fda498ede",
      "parents": [
        "c9a840ac76c7cdbe6028ac91cdb8eb6698f0a854"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 22 17:31:41 2017 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 22 17:37:52 2017 -0800"
      },
      "message": "Cope with argv[0] being null in the dynamic linker.\n\nSomewhat unsurprisingly, very few commands are happy to be run like this,\nin particular multiplexed commands like toybox. But that\u0027s no reason for\nthe linker to get in the way too.\n\nBug: http://b/33276926\nTest: new test\nChange-Id: I6dd71ea0183f4da83571039c2198ebb6ed38520e\n"
    },
    {
      "commit": "68ecec1965dcec08c7df3f0224d69604c683cd6c",
      "tree": "13d1842c2a6d22a8818f9d24d4f49273cfda5e3c",
      "parents": [
        "3c838bbb4aca12936aa3d8e96f3b04af3803d0f4"
      ],
      "author": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Tue Jan 31 13:19:30 2017 -0800"
      },
      "committer": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Thu Feb 02 14:44:46 2017 -0800"
      },
      "message": "Fix CFI initialization crash on x86.\n\nThird try.\n\nBug: 34752378\nTest: bionic tests\nChange-Id: I247c127489a8ee38404e104f28d916a704e35f36\n"
    },
    {
      "commit": "beb3eb1790dffc6e2f57a670aec89364944f66c4",
      "tree": "833fc173575d6617e7051fbd126e98fde1c80700",
      "parents": [
        "dd76f744e7a8431eb105f1e94fd1e407690a0b89"
      ],
      "author": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Tue Jan 31 17:10:03 2017 -0800"
      },
      "committer": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Tue Jan 31 17:10:03 2017 -0800"
      },
      "message": "Revert \"Fix CFI initialization crash on x86.\"\n\nBreaks aosp-master/sdk.\n\nThis reverts commit 4ccd4317f9301ec9b32aa0d3317a0439b994d7bf.\n"
    },
    {
      "commit": "4ccd4317f9301ec9b32aa0d3317a0439b994d7bf",
      "tree": "10061ae5eae47aa226dbfc15658c1d44b9456884",
      "parents": [
        "eb35144e588dc3799b851b8504b0a7db6c9a0b91"
      ],
      "author": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Tue Jan 31 13:19:30 2017 -0800"
      },
      "committer": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Tue Jan 31 13:44:55 2017 -0800"
      },
      "message": "Fix CFI initialization crash on x86.\n\nSecond try.\n\nBug: 34752378\nTest: bionic tests\nChange-Id: I0a7453154671918b2e6e72f0bb9074c29ceb0f34\n"
    },
    {
      "commit": "6fcd7a7d28aa6be42bbc99070c93d4d16b56ab57",
      "tree": "0daa51584f72beb67cbe072f34ca67898212f381",
      "parents": [
        "a5066640cc7274e317bf3bae2d960986d58dbbbd"
      ],
      "author": {
        "name": "Alex Cheung",
        "email": "alexcheung@google.com",
        "time": "Tue Jan 31 04:05:00 2017 +0000"
      },
      "committer": {
        "name": "Alex Cheung",
        "email": "alexcheung@google.com",
        "time": "Tue Jan 31 04:19:50 2017 +0000"
      },
      "message": "Revert \"Fix CFI initialization crash on x86.\"\n\nThis reverts commit be46d3871c91902504e5ec4c7f575c86f647aafc.\n\nReverting due to broken build:\n\nhttps://android-build.googleplex.com/builds/branch-dashboard/aosp-master?build_id\u003d3687823\n\nChange-Id: I30968398edd9a094fce878839ba0a002ed487a77\n"
    },
    {
      "commit": "be46d3871c91902504e5ec4c7f575c86f647aafc",
      "tree": "d202c0a4817459b1f6d5b971284b9afa2a9f795d",
      "parents": [
        "6a9e0c8f15dee1b1b7c5cd7f8e058c2b18683bbc"
      ],
      "author": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Fri Jan 27 13:42:03 2017 -0800"
      },
      "committer": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Mon Jan 30 14:29:48 2017 -0800"
      },
      "message": "Fix CFI initialization crash on x86.\n\nBug: 34752378\nTest: bionic tests\nChange-Id: If8e33f76a1a2d83356d818fed506ea624f579860\n"
    },
    {
      "commit": "5965bf09d4da45a86c4fbedc2ee33be0b0eb97bb",
      "tree": "aa74ea965303dd98bb4d5ba8d7ee8a1d7a535072",
      "parents": [
        "cf922ff804a00fab3bc81b418053eb5f595f1c58"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 01 17:12:49 2016 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 01 17:12:49 2016 -0800"
      },
      "message": "Fix unistd.execvpe_ENOEXEC and unistd.execvpe_failure.\n\nThese passed when run directly (as root) but failed in CTS\u0027 more restricted\nenvironment.\n\nBug: http://b/33270012\nTest: ran CTS tests\nChange-Id: Iccb407769fe356c30d52a0a99fff11862134a250\n"
    },
    {
      "commit": "fb5b9bb3bb60b28619708f59c0e140db961f903d",
      "tree": "28e95e173bada0dd670a6a9fa68468b9aee3281a",
      "parents": [
        "0dafdd430661b96439b1d154d6ce146fd46f617e"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Nov 22 17:18:10 2016 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Nov 22 17:21:27 2016 -0800"
      },
      "message": "Remove CLONE_NEWNS for gettid and getpid cache tests.\n\nUsing CLONE_NEWNS flag is not related to the tests, and it make\nthe tests unavailable in cts tests. So remove the flag.\n\nBug: http://b/33089743\nTest: run CtsBionicTestCases --gtest_filter\u003dunistd*.\nChange-Id: I4bda39c6a0c41c9973d275202a3a7f7a1e9bbba3\n"
    },
    {
      "commit": "e462117087b5fa34ec6c1ca22c84b2a34b9ab95c",
      "tree": "96e177dcdd36a2cc1874481819da3abee2829200",
      "parents": [
        "42eb0b255507ca4d3b4e94b7756c15ab742261c0"
      ],
      "author": {
        "name": "Robert Sesek",
        "email": "rsesek@google.com",
        "time": "Thu Nov 03 15:00:53 2016 -0400"
      },
      "committer": {
        "name": "Robert Sesek",
        "email": "rsesek@google.com",
        "time": "Fri Nov 04 16:57:20 2016 -0400"
      },
      "message": "Set __get_thread()-\u003etid as part of clone().\n\nThis was previously done only in fork() and pthread_create(), but this left raw\nclone() with an invalid cached tid. Since the tid is used for pthread routines,\nthis led to unstable behavior after clone().\n\nTest: ltp clone01 (see bug for more)\nTest: mmma bionic/tests\nTest: bionic-unit-tests-static --gtest_filter\u003d*fork*:*clone*\n\nBug: 32612735\nBug: 32305649\nChange-Id: I30eae5a8024b4c5da65476fcadfe14c6db35bb79\n"
    },
    {
      "commit": "a4edf7a57cf818d19546c86b74146335468ea53f",
      "tree": "1199a22df4fe7e794399611016d0a6cf7561b497",
      "parents": [
        "bd839d100d1c4802cf53f3d27bb73e6032719762"
      ],
      "author": {
        "name": "Robert Sesek",
        "email": "rsesek@google.com",
        "time": "Tue Oct 25 10:29:02 2016 -0400"
      },
      "committer": {
        "name": "Robert Sesek",
        "email": "rsesek@google.com",
        "time": "Fri Oct 28 12:14:23 2016 -0400"
      },
      "message": "Fix gettid() after clone().\n\nThe tid is cached in the pthread_internal_t and is properly re-set after fork()\nand pthread_create(). But after a plain clone() the value is stale from the\nparent.\n\nTest: mmma bionic/tests\nTest: bionic-unit-tests-static --gtest_filter\u003d*fork*:*clone*\nTest: m checkbuild tests\nTest: angler boots\n\nBug: 32305649\nChange-Id: I026d416d1537484cd3e05c8493a35e5ed2acc8ed\n"
    },
    {
      "commit": "73c44a4738fdb615eaede1d0ab21fc3de59105ab",
      "tree": "af209ee2d4f9f17e8aa253681f553c6ef7bac383",
      "parents": [
        "d8244214751f9b48e60e69910c4e7175f8fab1ac"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 19 09:27:02 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 19 09:28:21 2016 -0700"
      },
      "message": "Fix our _POSIX_* macros to declare barriers and spin locks.\n\nWe have these now.\n\nTest: ran tests\nChange-Id: Ie7b479061ecec19c8b35ea81e04debfd8323d94a\n"
    },
    {
      "commit": "63615066d9f0b0b1c653c91a9b305e6c292c835a",
      "tree": "698764ee1bd4a4051e31538d2fde7f8018bfaac5",
      "parents": [
        "e1d792b10c0c825e271cb1f729dcdafa35583722"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 25 17:40:27 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 25 17:40:27 2016 -0700"
      },
      "message": "Fix execvp/execvpe behavior with absolute paths and ENOEXEC.\n\nBug: http://b/31091962\nChange-Id: Id0b3d41868f5e3ed1ccf618bfefb46609367bc9a\n"
    },
    {
      "commit": "3c1159024c5ca3e85d4fd076f39712da4b27ed34",
      "tree": "bb306b8d3fea15b742ea4a1e633c7e08870b0b00",
      "parents": [
        "fac56897f8e665d966496c4cdf6737610caf3156"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 24 19:27:04 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 24 22:56:52 2016 -0700"
      },
      "message": "Fix execvpe ENOEXEC behavior.\n\nThe special case for absolute paths wasn\u0027t handling ENOEXEC.\n\nAlso add more extensive tests for execvpe.\n\nAlso switch to manually doing the fork in ExecTestHelper::Run because\nASSERT_EXIT doesn\u0027t actually return, meaning we were only running the\nfirst part of each test.\n\nBug: http://b/31073104\nChange-Id: I7a4640afc6d290c51ba2e66fc1b9bb6b0fc174f7\n"
    },
    {
      "commit": "1b40aafe3f192f0fdccc04e75cc48b0ed74bc23e",
      "tree": "808ecabf314edc507022c559090ae7c7ce411bd7",
      "parents": [
        "fc9958ce7658d9cc46d9b101fca5720503d51cae"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 18 10:11:36 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 24 13:03:04 2016 -0700"
      },
      "message": "Rewrite the exec family.\n\n* Removes duplication.\n* Removes fixed PATH_MAX limit.\n* Adds basic tests.\n\nBug: http://b/30032507\nChange-Id: I4087a9de3e53884ac3297ebafbec4e6f8a9871b6\n"
    },
    {
      "commit": "38dba2e7e16028cdede8f48c58d18e79491f8ed9",
      "tree": "1d1f5128740bd3319b70815eb388dc6554a587c7",
      "parents": [
        "f5042cab109f7136191fd316be1471532d2ddf71"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 10 15:51:06 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 10 15:51:06 2016 -0700"
      },
      "message": "Fix sysconf(_SC_ARG_MAX).\n\nARG_MAX hasn\u0027t been a constant since Linux 2.6.23.\n\nBug: http://lists.landley.net/pipermail/toybox-landley.net/2016-August/008592.html\nChange-Id: I1eddb562751604c75b89fa610d79be0655c53693\nTest: ran the bionic tests on device and against glibc\n"
    },
    {
      "commit": "7292725bcd291bda814554fcb9d7c026619c0e49",
      "tree": "a41f6ea4be5ac695f087a387c12fd468e03713a6",
      "parents": [
        "931be5a64d71d09334f963e7ba7efd1d6049e648"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 27 14:05:10 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 27 14:05:10 2016 -0700"
      },
      "message": "Admit that we don\u0027t actually support thread priority inheritance.\n\nBug: https://code.google.com/p/android/issues/detail?id\u003d218323\nChange-Id: I6c69b0fbb8414e7cc2deeb8be50b6af4830ed55e\n"
    },
    {
      "commit": "a948a4e050883801ad8f7c72e8ef33c776850329",
      "tree": "bf3c2d50bf0c8fdd5c3974dc94847477df601088",
      "parents": [
        "2e6e99128acead0b8a996e9775dc157988946d92"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri May 20 15:32:47 2016 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon May 23 12:53:42 2016 -0700"
      },
      "message": "Change use of /data to /data/local/tmp.\n\nThe unistd fsync/fdatasync were changed to use /data from /.\nUnfortunately, this directory is unreadable unless you are root, so\nchange this path to /data/local/tmp.\n\nBug: 28885777\n(cherry picked from commit 7e53843f7b4c061920d1742c8e70a50509d83a53)\n\nChange-Id: I14514e985af8039ab63ac2bcf890f8d04dd82ccb\n"
    },
    {
      "commit": "2e6e99128acead0b8a996e9775dc157988946d92",
      "tree": "e542df792c6392c75bcbac4a98b978009d31d280",
      "parents": [
        "ccfcc8ced7346abdf80f4b9f77b5cc0b2164bf15"
      ],
      "author": {
        "name": "Shuhei Takahashi",
        "email": "nya@google.com",
        "time": "Wed May 11 14:04:09 2016 +0900"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon May 23 12:53:16 2016 -0700"
      },
      "message": "Run fsync tests on mutable filesystem.\n\nThe purpose of those tests is to ensure fsync succeeds for\ndirectories. However, they try to call fsync for / (the root\nfilesystem) that is usually mounted read-only, which does not\nmake sense because the whole point of fsync is to flush\nuncommitted changes to the filesystem.\n\nIn fact, some well-known read-only filesystems (e.g. squashfs)\ndoes not support fsync, so these tests fail if we use such\nfilesystems as the root filesystem.\n\nThis patch changes the tests to call fsync against /data\ninstead. /data is a user data partition and should be always\nmounted read-write.\n\nBug: 28681455\n\n(cherry picked from commit cfa3262ce46fdec81cb011ec78273df68c325c9c)\n\nChange-Id: I3e50f7b6ef07e96138711eef1f678f90cc9eb632\n"
    },
    {
      "commit": "126ab128824ce98fbc79ce0f19149407bcb82390",
      "tree": "fa5500215cc91f20139647c2f837a557f23217d5",
      "parents": [
        "2152a8ca3550ff0c9c998bfd4d6ab741758063ec"
      ],
      "author": {
        "name": "Daniel Micay",
        "email": "danielmicay@gmail.com",
        "time": "Thu Dec 31 08:04:53 2015 -0500"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Sun Apr 03 15:31:58 2016 +0000"
      },
      "message": "tests: allow brk to fail with ENOMEM\n\nAny caller of brk needs to handle failure by falling back to mmap as\nthere\u0027s no guarantee that other mappings are not placed above the brk\nheap. Since jemalloc starts with mmap in the first place and dlmalloc\nknows how to fall back to mmap, it\u0027s already a legacy API in Android.\n\nForcing it to succeed rules out stronger ASLR implementations where the\nbrk heap might not have any room to grow. It\u0027s also valid for the brk\nimplementation to simply return -1 with errno set to ENOMEM in every\ncase and that\u0027s a good way of finding anything relying on it. It would\nmake sense for it to be an optional kernel feature.\n\nThe brk heap is also not guaranteed to be initially page aligned. PaX\nASLR randomizes the internal bits. It was only mentioned in a comment to\nexplain the design of the test though.\n\nBug: 24233096\nChange-Id: I16e9bc8677e796c73915b830b99b0ce39c02b31d\n"
    },
    {
      "commit": "e2faf07d659b1c824002e50b9cdfa9caae62a31b",
      "tree": "72752c132d778ad698ef51cf7fca23224fcd6361",
      "parents": [
        "e725dc164015d873b64639f0fee9ba5c30175f4c"
      ],
      "author": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Thu Mar 03 08:37:53 2016 -0800"
      },
      "committer": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Fri Mar 25 14:16:58 2016 -0700"
      },
      "message": "Add {get,set}domainname(2)\n\n{get,set}domainname aren\u0027t in POSIX but are widely-implemented\nextensions.\n\nThe Linux kernel provides a setdomainname syscall but not a symmetric\ngetdomainname syscall, since it expects userspace to get the domain name\nfrom uname(2).\n\nChange-Id: I96726c242f4bb646c130b361688328b0b97269a0\nSigned-off-by: Greg Hackmann \u003cghackmann@google.com\u003e\n"
    },
    {
      "commit": "33697a0c43c48e15c3bcf018138b9b837d0099cd",
      "tree": "5abb2ab07c7f1322defd9fd6313cd11e12978579",
      "parents": [
        "94bb0fab931102f1fcf393aa507a6b77b741844f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 26 13:04:57 2016 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 26 13:13:52 2016 -0800"
      },
      "message": "Factor out the waiting for children in bionic tests.\n\nChange-Id: I4a1e51b6920b33dc892d447f5bd6d10f1cb2704a\n"
    },
    {
      "commit": "5704c423c81790195161c1757ae79da188590c51",
      "tree": "66ebd378fb496400d35ad38a8c4eb25931ad30f2",
      "parents": [
        "ac67b4eb7c70ea668abb32298b0cb16920a32a66"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jan 25 18:06:24 2016 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 26 11:09:44 2016 -0800"
      },
      "message": "Implement POSIX lockf.\n\nThis has been requested a few times over the years. This is basically\na very late rebase of https://android-review.googlesource.com/45470\nwhich was abandoned years ago. One addition is that this version has\n_FILE_OFFSET_BITS\u003d64 support.\n\nPOSIX puts this in \u003cunistd.h\u003e. glibc also has it in \u003cfcntl.h\u003e.\n\nBug: http://b/13077650\nChange-Id: I5862b1dc326e326c01ad92438ecc1578d19ba739\n"
    },
    {
      "commit": "13f26a7b2bff5ed88b925b7206256e07596f3626",
      "tree": "ea09999fc3508607d5bae97bbe0cf58edc23eed4",
      "parents": [
        "9817c6c0cfa01f6bf7e0700e2b7aab2c1220fe28"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Jan 13 13:47:58 2016 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Jan 13 17:13:21 2016 -0800"
      },
      "message": "Add method to run fortified versions of funcs.\n\nAdd a way to turn fortify off for the files that test fortify functions.\n\nThis method involves simply compiling the same file with fortify off and\nchanging the test name slightly.\n\nIt\u0027s not very pretty, and it assumes that only these few files test\nfunctions that can be fortified.\n\nBug: 15195631\nChange-Id: Iba9db1d508b7d28a1d6968019cb70fe08864827b\n"
    },
    {
      "commit": "939a7e01197858fdb8463bb5a8284ba501a3e882",
      "tree": "aca21447754ac507be1d20a7afba02deb65ea4db",
      "parents": [
        "2558b112300e0a27590b9e31f627fe94594fa6a0"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Dec 04 15:27:46 2015 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Dec 04 15:27:46 2015 -0800"
      },
      "message": "Track rename from base/ to android-base/.\n\nChange-Id: I0a4592945400b1fa6892bf7c1fa8659fd711efa3\n"
    },
    {
      "commit": "0b2acdfcc99ecf3ff36fc6337e14b171170f38cf",
      "tree": "1318497b782194c7ae533f88c1aabfca0affdc7d",
      "parents": [
        "f7cf8b2c1fbf6250e12d1e59aa353990eca4f109"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Oct 02 18:25:19 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Oct 02 18:25:19 2015 -0700"
      },
      "message": "Use const auto\u0026 in for loops.\n\nChange-Id: Ic437c59797ee4e7dc38291da35c72d827bc89c8d\n"
    },
    {
      "commit": "cb6f599c44b144db26c13507dbd89805b8fe03be",
      "tree": "2cd3dfa6f2d8b35b7c7db91a1b5c1a21a3875901",
      "parents": [
        "f16f4f8a6bac035db5f25538ddb4fe810d0719db"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Sep 29 16:11:45 2015 -0700"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Sep 29 17:49:37 2015 -0700"
      },
      "message": "Fix the way to count online cpus.\n\nRead /proc/stat to count online cpus is not correct for all android\nkernels. Change to reading /sys/devices/system/cpu/online instead.\n\nBug: 24376925\nChange-Id: I3785a6c7aa15a467022a9a261b457194d688fb38\n"
    },
    {
      "commit": "5891abdc66aa9578395bc8b8e5740f629a2694b7",
      "tree": "7ce00a1c6da021bf09535dd0d287e76c9efd31fa",
      "parents": [
        "e80369ab0c484a99925a49a81ab0675538fab38a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 07 18:27:47 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 07 19:44:12 2015 -0700"
      },
      "message": "Invalidate cached pid in vfork.\n\nBug: http://b/23008979\nChange-Id: I1dd900ac988cdbe10aad3abc53240c5d352891d5\n"
    },
    {
      "commit": "189394b885e4b11e9f009fd2e434e6dc6696277b",
      "tree": "8dcecf9dbadba4b04cebc05a0a790a39e7e2bb99",
      "parents": [
        "a3a619835d302f5414883e2307ca48406b15a4a5"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jul 24 23:22:07 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jul 24 23:22:07 2015 -0700"
      },
      "message": "Use AT_PAGESZ for sysconf(_SC_PAGE_SIZE).\n\nBug: http://b/18342333\nChange-Id: Id12ed4e85a0f35d7d27202f7792df42a65a74b4e\n"
    },
    {
      "commit": "9d476a02e9a14e847669a6683c585028175aa322",
      "tree": "1a6041545d303f558a39ee90632d1ced2b77514f",
      "parents": [
        "d70891687d742414d457e41a998726e5eb0a09bd"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon Jun 01 11:28:31 2015 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon Jun 01 13:22:57 2015 -0700"
      },
      "message": "Cleanup ftruncate negative test.\n\nAddresses post-submit comments from\nI54692ab8105dd09db6af7a2c0894a17bdd118aa0.\n\nBug: http://b/21309901\nChange-Id: Ie19ee8cdcc4055a65fe7dfc103156e54eafe8977\n"
    },
    {
      "commit": "c05554ec5c9aff5e0f1e83de9bb62c3569eecca2",
      "tree": "13991325cce91a9fd76f42303946c21e67106aea",
      "parents": [
        "c02bdc76a21f6149c7867982e66ab16982e01c1b"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue May 19 18:17:31 2015 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed May 20 14:20:33 2015 -0700"
      },
      "message": "Fix error handling for negative size in ftruncate.\n\nBug: 21309901\nChange-Id: I54692ab8105dd09db6af7a2c0894a17bdd118aa0\n"
    },
    {
      "commit": "be52e658171edf6651895c40d1563289bafa52f7",
      "tree": "0f58f6022d63e08166da1a03775d50df4d2f13b5",
      "parents": [
        "393bdb156d5024a03f03425a977d0518c84dbb98"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 23 18:02:29 2015 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 23 21:52:56 2015 -0800"
      },
      "message": "Fix dup2 in the case where the two fds are equal.\n\ndup3\u0027s behavior differs from dup2 in this case, so we need to paper\nover that in the C library.\n\nChange-Id: I313cd6f226db5e237f61866f324c5ecdd12bf762\n"
    },
    {
      "commit": "6c238f2926e69a950f0671ae5519584c20d84196",
      "tree": "a3593ca9ef0940c7518e47632c67047ad89cad40",
      "parents": [
        "6d634f9baaf804a91c97e019c832c1e9611a903a"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Thu Dec 11 20:50:41 2014 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Fri Dec 12 17:00:08 2014 -0800"
      },
      "message": "Fix pthread key num calculation.\n\nBug: 18723085\nChange-Id: Iba2c834b350e4cdba0b2d771b221560a3e5df952\n"
    },
    {
      "commit": "94926f8cfa0adf37c4e19256ade7261a97f72e51",
      "tree": "8c990320ebf445406d3d50be443db10cd58eee42",
      "parents": [
        "b033761cbf0e79ade9a8c956c2e63b42ee838183",
        "634816055f51c536d24dea30dfe930b7fe2fa603"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Dec 09 20:10:19 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 09 20:10:19 2014 +0000"
      },
      "message": "Merge \"support _POSIX_REALTIME_SIGNALS\""
    },
    {
      "commit": "725756045e03ea6f7ef00d02e883ef2914d06dde",
      "tree": "f659fe46a294ec77a2b617e82d725642e0c70bf7",
      "parents": [
        "734f0d645e461a1061c879e5bd964592d3f326ee"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Mon Dec 08 11:54:12 2014 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Dec 09 09:16:11 2014 -0800"
      },
      "message": "Change _POSIX_CPUTIME macro to make it compitable with glibc.\n\nChange-Id: I7a8dbb74bd622693c9fef60bd779687207517b7d\n"
    },
    {
      "commit": "634816055f51c536d24dea30dfe930b7fe2fa603",
      "tree": "5d3739b116df16774776010538254c10007c0a76",
      "parents": [
        "f64c43ba6c9244c50e904961dc432f04b1dfcfd9"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Mon Dec 01 17:41:04 2014 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Mon Dec 08 21:52:43 2014 -0800"
      },
      "message": "support _POSIX_REALTIME_SIGNALS\n\nBug: 18489947\nChange-Id: I2e834d68bc10ca5fc7ebde047b517a3074179475\n"
    },
    {
      "commit": "5afae64a1bac56638c6348f0c8f5e9d61b654029",
      "tree": "596b834f553f804c84a13615f30ff6ad67201303",
      "parents": [
        "230005c4bd3910ef974694f88d04e6f6a5a540b4"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Nov 25 20:17:27 2014 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Thu Dec 04 11:01:28 2014 -0800"
      },
      "message": "implement posix_madvise\n\nBug: 18472477\nChange-Id: I8183de6c281acf69ed5f7f88351b056b9827b162\n"
    },
    {
      "commit": "d5c652756bb1a52959cd5c62447b62462f90f983",
      "tree": "8804bb959d8d66a5a8557683416c254f2fc98530",
      "parents": [
        "f64c43ba6c9244c50e904961dc432f04b1dfcfd9"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Wed Nov 26 14:04:26 2014 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Wed Nov 26 17:14:50 2014 -0800"
      },
      "message": "support _POSIX_CPUTIME\n\nBug: 18490039\nChange-Id: I01fa83b48e1b908de1f227b6e4f98e280bcd50ee\n"
    },
    {
      "commit": "1c19194c9d2518dbe86973cd313a277ecb70d75c",
      "tree": "46cffb5ae65c870a36e217b2b9a7b27e2c3154be",
      "parents": [
        "27aa9c5b50cc3e979fc67c1bf5296dfd725c8540"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Wed Nov 19 19:49:14 2014 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Fri Nov 21 19:10:52 2014 -0800"
      },
      "message": "flesh out sysconf(3) and the _POSIX_* constants\n\nBug: 17571891\nChange-Id: I81036615486bde65969ae5662587fcc88348474e\n"
    },
    {
      "commit": "bc6447673fba0b38d948dcd627ab6744395c771a",
      "tree": "08a2d0eb1044baf98d0ad124e3f22a4ae41ed69b",
      "parents": [
        "38569312bc5a3a4688d45997d81b59abb0a60825"
      ],
      "author": {
        "name": "Derek Xue",
        "email": "derek.xue@linaro.org",
        "time": "Thu Sep 25 10:55:34 2014 +0100"
      },
      "committer": {
        "name": "Yongqin Liu",
        "email": "yongqin.liu@linaro.org",
        "time": "Sat Nov 15 09:48:36 2014 +0800"
      },
      "message": "bionic/test: migrate sysconf tests from system/extras to bionic/tests\n\nThe old test are implemented in file:\n  system/extras/tests/bionic/libc/other/test_sysconf.c\nThis change is to migrate them to bionic/tests with the gtest format.\n\nand since the sysconf is defined in unistd.h, will put the test under\nbionic/tests/unistd_test.cpp file as unistd.syscon test\n\nChange-Id: Ie519147c1c86a6c4cefa8c88b18bf58bdfbffbdb\nSigned-off-by: Yongqin Liu \u003cyongqin.liu@linaro.org\u003e\n"
    },
    {
      "commit": "661423a453b2692d592df56307a876dfc35c50f2",
      "tree": "6526acffcca10d34b9e31c94771aa9515f78f1b5",
      "parents": [
        "4cf942d318f2856dff078798ce9a3eac5de593b7",
        "b5e581abfe28de8ed6c8c8af1c265bb4e36f97bb"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Fri Nov 14 23:45:44 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 14 23:45:45 2014 +0000"
      },
      "message": "Merge \"Increase support of pathconf options.\""
    },
    {
      "commit": "b5e581abfe28de8ed6c8c8af1c265bb4e36f97bb",
      "tree": "fef160a2d4f88f2e5e38a7bfbda48458c3c48b93",
      "parents": [
        "e5cabca516252addb5e305c8e1e0f35cafbcafbe"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Sat Nov 08 14:58:12 2014 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Fri Nov 14 23:45:24 2014 +0000"
      },
      "message": "Increase support of pathconf options.\n\nBug: 18206366\nChange-Id: Ie770e49f5af3631eb9fbd2cd5174edf004c81e00"
    },
    {
      "commit": "fb50057138ef37232dc67c8559fd26719ee26021",
      "tree": "9747848f252d0d6004c39f18c29cce0290593e87",
      "parents": [
        "468f84107aaf108ac6b3ff389342092c2551f859"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 12 19:22:48 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 12 19:31:21 2014 -0800"
      },
      "message": "Fix glibc 2.15 build.\n\nglibc 2.15 has prlimit64, has an unsetenv that\u0027s declared nonnull,\nand hasn\u0027t fixed the problems we were having trying to use the\nPOSIX strerror_r in C++ code.\n\nChange-Id: I834356a385e5ae55500bd86781691b6c1c9c8300\n"
    },
    {
      "commit": "2f954bab2d524f6afed8a443c2a7ee32876db0fa",
      "tree": "7437b6e2e570e89df2b893f30d111e6b7acb3a1d",
      "parents": [
        "d94e7f0f1d95e0da73fca8d591fdb56b69d82653"
      ],
      "author": {
        "name": "Yongqin Liu",
        "email": "yongqin.liu@linaro.org",
        "time": "Thu Oct 30 16:34:55 2014 +0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 12 12:07:33 2014 -0800"
      },
      "message": "gethostname.c: change to report ENAMETOOLONG error when buflen is less\n\nchange to behaviour the same as glibc for the check about buflen\n\nChange-Id: I98265a8fe441df6fed2527686f89b087364ca53d\nSigned-off-by: Yongqin Liu \u003cyongqin.liu@linaro.org\u003e\n"
    },
    {
      "commit": "d94e7f0f1d95e0da73fca8d591fdb56b69d82653",
      "tree": "dd9c9acf2c1435a53d1682eea56cb39aa4018e2e",
      "parents": [
        "b63600934c62beb09514e2ced1fce1bdb489195f"
      ],
      "author": {
        "name": "Derek Xue",
        "email": "derek.xue@linaro.org",
        "time": "Thu Sep 25 11:12:01 2014 +0100"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 12 10:47:39 2014 -0800"
      },
      "message": "bionic tests: migrate gethostname test to unistd_test.cpp from system/extras\n\nThe old tests are implemented in file\n    system/extras/tests/bionic/libc/common/test_gethostname.c\nHere migrate the test to the tests/unistd_test.cpp file and\nadd some more checks\n\nChange-Id: Iab1e3da873bb333d1ddefc03108d536933792db2\nSigned-off-by: Yongqin Liu \u003cyongqin.liu@linaro.org\u003e\n"
    },
    {
      "commit": "b86a4c7f651ab347611847e4f5a1a50d6ee1827b",
      "tree": "24d8b5623c4ee06e0b6787b68e3217042a99cb69",
      "parents": [
        "2ed9ee1e938a94b563ab700dc5017a968d2591ad"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Nov 07 16:07:13 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Nov 07 16:48:27 2014 -0800"
      },
      "message": "Add sethostname(2).\n\nNot very useful, but helps building stuff like toybox out of the box.\n\nChange-Id: I110e39030452bd093a84278e019c5752d293718d\n"
    },
    {
      "commit": "9df70403d95f5cfe6824e38a9a6c35f9b9bbc76a",
      "tree": "5a2914b5db892fa3d2c17caf9e9a53f7fc0a5d93",
      "parents": [
        "2311383180aee9388d28b03901a1e4ef021bcfa7"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Wed Nov 05 18:01:01 2014 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Thu Nov 06 11:09:03 2014 -0800"
      },
      "message": "make all bionic death tests not dumpable\n\nBug: 18067305\n\nChange-Id: Ia1ecacf47eddecc9bc58aaac779e0c218f463179\n"
    },
    {
      "commit": "60452a211c19e8cd09d4111fa733c64ecd1200f0",
      "tree": "d9454888aa4b291d2c42021ce0734d5ba446c63a",
      "parents": [
        "adc01348ee51a4ad678b1c277f85cbbed5c2e728"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Sep 22 14:41:30 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Sep 22 14:41:30 2014 -0700"
      },
      "message": "Unit test for abort(3).\n\nChange-Id: I021604b977572801f228a193741624df26e76d72\n"
    },
    {
      "commit": "2b3b2ecee8df54a25e9f5e0968761dbac4761e6c",
      "tree": "4bc53bd3bc27c2fb1e862f56411141a6ecb980f8",
      "parents": [
        "2e6c5fc4e903b6ef58bd94e13e51b3f0aa4689b3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 21 19:23:53 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 22 09:26:50 2014 -0700"
      },
      "message": "Fix unistd.getpid_caching_and_clone.\n\nThis test only works if you\u0027re root (strictly: if you have permission to\nCLONE_NEWNS), so it\u0027s useful to us when we\u0027re doing ad hoc testing (since\nthat\u0027s usually done as root), but it\u0027s not useful as part of CTS or when\nrunning the tests on the host.\n\n(cherry-pick of 84d0683a824fa02dbaa6d1b56a79223804b54e80.)\n\nBug: 16705621\nBug: 17170200\nChange-Id: Ia92c871b15f7e45fc174bb59bc95540fd00ae745\n"
    },
    {
      "commit": "21972b61ec0572395c5684eebc6cc7b3a4c9e3be",
      "tree": "d785a99a7302ac6453011a26b395bc8ea5b1b337",
      "parents": [
        "8c66fd798ed5b7cefe1568d9a000d01b69d29dd9"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jul 28 12:24:22 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jul 28 12:33:07 2014 -0700"
      },
      "message": "syscall(3)\u0027s return type should be long.\n\nThis doesn\u0027t require us to change any of the syscall implementations\nbecause (a) the LP32 ones have sizeof(int) \u003d\u003d sizeof(long) anyway,\nwhich is how we never noticed this bug before and (b) the LP64 ones\nall use a 64-bit register for the result (and for the syscall number\ntoo).\n\nBug: https://code.google.com/p/android/issues/detail?id\u003d73952\nChange-Id: I9866c3579a7a94de27bfbe80ad7a822c3183c7fb\n"
    },
    {
      "commit": "fa9e16efaf0e885f6044e725eb759ef6de10f7ef",
      "tree": "b2788038c17cde5a1d53c13a51d6a16868bd229f",
      "parents": [
        "0d7415fb225573c37ff9e880957cd2044dd658ce"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jun 23 17:49:45 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jun 23 17:49:45 2014 -0700"
      },
      "message": "Fix getpid caching across a clone.\n\nIf you make clone, fork, or vfork system calls directly, you\u0027re still\non your own, but we now do the right thing for the clone wrapper.\nWith this implementation, children lose the getpid caching, but we\u0027ve\nno reason to think that that covers any significant use cases.\n\nBug: 15387103\nChange-Id: Icfab6b63c708fea830960742ec92aeba8ce7680d\n"
    },
    {
      "commit": "7086ad6919feb2415c6027163f5c63323bcca27c",
      "tree": "f32c06d513e90ba1fcb8fe56f9cd055cccc7d01b",
      "parents": [
        "d1bf37780d0bcaca3e6046171f958ebfea34bde1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jun 19 16:39:01 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jun 20 09:06:57 2014 -0700"
      },
      "message": "Cache getpid.\n\nIn practice, with this implementation we never need to make a system call.\nWe get the main thread\u0027s tid (which is the same as our pid) back from\nthe set_tid_address system call we have to make during initialization.\nA new pthread will have the same pid as its parent, and a fork child\u0027s\nmain (and only) thread will have a pid equal to its tid, which we get for\nfree from the kernel before clone returns.\n\nThe only time we\u0027d actually have to make a getpid system call now is if\nwe take a signal during fork and the signal handler calls getpid. (That,\nor we call getpid in the dynamic linker while it\u0027s still dealing with its\nown relocations and hasn\u0027t even set up the main thread yet.)\n\nBug: 15387103\nChange-Id: I6d4718ed0a5c912fc75b5f738c49a023dbed5189\n"
    },
    {
      "commit": "738b0cc5e95a9a650e9621603f4dd8dd16b07568",
      "tree": "a20e3a0ffc6154cc562326a42b212759cda31d72",
      "parents": [
        "dc3fb119497382fc8d9c3b87c5ef8321141330dc"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed May 21 19:03:34 2014 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu May 29 10:51:22 2014 -0700"
      },
      "message": "Fix overflow testing in sbrk.\n\nModify the overflow testing for sbrk.\n\nBug: 15188366\n\nChange-Id: Ia83f85f7c1789454d872279bd41f38f1ce6b8a34\n"
    },
    {
      "commit": "1728b2396591853345507a063ed6075dfd251706",
      "tree": "7083cd234073afa5179b94b3d978550c890af90c",
      "parents": [
        "bac795586bbc5dcbe886d8d781710f60c4c19d9b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 14 10:02:03 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 14 10:02:03 2014 -0700"
      },
      "message": "Switch to g_ for globals.\n\nThat\u0027s what the Google style guide recommends, and we\u0027re starting\nto get a mix.\n\nChange-Id: Ib0c53a890bb5deed5c679e887541a715faea91fc\n"
    },
    {
      "commit": "063525c61d24776094d76971f33920e2a2079530",
      "tree": "de279e25b05c43dbb06bc3ceb49f23bed3874377",
      "parents": [
        "a26dd781fe675cf94c62183da27622eb83ff6fa7"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue May 13 11:19:57 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue May 13 11:19:57 2014 -0700"
      },
      "message": "Consistently use #if defined(__BIONIC__) in tests.\n\nI\u0027ve also switched some tests to be positive rather than negative,\nbecause !defined is slightly harder to reason about and there are\nonly two cases: bionic and glibc.\n\nChange-Id: I8d3ac40420ca5aead3e88c69cf293f267273c8ef\n"
    },
    {
      "commit": "a62a28d1d9c8df7cb77e4bca19814922729b5291",
      "tree": "4aa5ff9eaa99c5692413d7228b6ff69844ea9f53",
      "parents": [
        "837abf04667c29db178fd28f500537429a18be30"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 07 14:30:33 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 07 14:30:33 2014 -0700"
      },
      "message": "Add basic tests for fsync/fdatasync.\n\nBug: 14613980\nChange-Id: Ie8002c2a1abae07295b7bdb33772764767c03d37\n"
    },
    {
      "commit": "3d7a0d9b08ecab054b2dff8332507644de3690b0",
      "tree": "b6c4f27e3abdd6590a452c978048ae21d934da09",
      "parents": [
        "07bab525e24725aaacd71e7cc63dfc31d48ba8a7"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 29 14:46:56 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 29 14:53:11 2014 -0700"
      },
      "message": "Switch to the OpenBSD wcsto* functions.\n\nThis replaces a partial set of non-functional functions with a complete\nset of functions, all of which actually work.\n\nThis requires us to implement mbsnrtowcs and wcsnrtombs which completes\nthe set of what we need for libc++.\n\nThe mbsnrtowcs is basically a copy \u0026 paste of wcsnrtombs, but I\u0027m going\nto go straight to looking at using the OpenBSD UTF-8 implementation rather\nthan keep polishing our home-grown turd.\n\n(This patch also opportunistically switches us over to upstream btowc,\nmbrlen, and wctob, since they\u0027re all trivially expressed in terms of\nother functions.)\n\nChange-Id: I0f81443840de0f1aa73b96f0b51988976793a323\n"
    },
    {
      "commit": "533dde4dbf87d6615952be3654fc74e5ff2e1003",
      "tree": "1322327db26b0dcce421e891bbe10231cde75bcb",
      "parents": [
        "eff450ff45170ff17f17b7ceb26f54b858c39238"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 25 18:27:38 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 25 19:38:33 2014 -0700"
      },
      "message": "Fix brk/sbrk error checking.\n\nNote that the kernel returns the current break on error or if the requested\nbreak is smaller than the minimum break, or the new break. I don\u0027t know where\nwe got the idea that the kernel could return -1.\n\nAlso optimizes the query case.\n\nAlso hides an accidentally-exported symbol for LP64.\n\nChange-Id: I0fd6b8b14ddf1ae82935c0c3fc610da5cc74932e\n"
    },
    {
      "commit": "cbf6df0459f05e180d1c50b3f5b36cdd483193c6",
      "tree": "6073e9703454ad83731042dbc79b464a64cd7646",
      "parents": [
        "532ad903d2febc400e23d66c5f4d836d1e5f11fc"
      ],
      "author": {
        "name": "Grigoriy Kraynov",
        "email": "grigoriy.kraynov@intel.com",
        "time": "Tue Sep 17 15:44:22 2013 +0400"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 22 19:09:45 2014 -0700"
      },
      "message": "Tests for environment variables utility functions\n\nThis is the first patch from the new set of tests for Bionic standard functions.\n\nChange-Id: Ie568788a24832394e597ad33f44a5c71cb33b51f\nSigned-off-by: Grigoriy Kraynov \u003cgrigoriy.kraynov@intel.com\u003e\n"
    },
    {
      "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": "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": "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": "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": "13613137bc4266656bffce464e525eb9ae6371f0",
      "tree": "0acda656b21254c1b809b575ab403d4099811b6e",
      "parents": [
        "020bcdaef349b6bd82302a0656fdf9aaff30bdb3"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Oct 28 15:24:04 2013 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Oct 29 14:55:11 2013 -0700"
      },
      "message": "Fix up failing glibc tests.\n\nThere is a known bug running clone with the CLONE_VM flag, so for host\ncreate an empty test.\n\nChange the expected output of the stdio test for a glibc difference.\n\nChange the pause test to use ScopedSignalHandler to setup/restore the SIGALRM\nhandler.\n\nAfter this, running bionic-unit-tests-glibc passes for all tests.\n\nBug: 11389824\n\nChange-Id: Ib304eae4164115835a54991dfdca5821ecc3db5e\n"
    },
    {
      "commit": "11952073af22568bba0b661f7a9d4402c443a888",
      "tree": "c4ae77a40e8e309219cd4ab993a39d92f3d13e50",
      "parents": [
        "cdac5f73aca015287d1f40ff50d4fbf293a0c549"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 24 15:15:14 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 24 15:48:32 2013 -0700"
      },
      "message": "Remove dependencies on obsolete __ARCH_WANT_SYSCALL_DEPRECATED system calls.\n\n(aarch64 kernels don\u0027t have these system calls.)\n\nChange-Id: I6f64075aa412f71520f2df71c3d69b647f91c1ca\n"
    }
  ],
  "next": "b4f7616fd618875768b8fffc122b58bdb84a9969"
}
