)]}'
{
  "log": [
    {
      "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"
    },
    {
      "commit": "b4f7616fd618875768b8fffc122b58bdb84a9969",
      "tree": "7a76517ef594dd73dfe18c388483e504fccb0a3d",
      "parents": [
        "f8e71bac14a4bc52cc95c56adfe042c3938279b5"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 19 16:27:24 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 19 16:27:24 2013 -0700"
      },
      "message": "Ensure we have the off64_t variant of every function that takes an off_t.\n\nChange-Id: Ib2eee0cf13162be3b62559b84e90c6dcf5aab1c3\n"
    },
    {
      "commit": "428f5567be25b8090e3dd72e2d3d337c305b514e",
      "tree": "fe9bc208b680b3366150885d6efc5be034c3f21e",
      "parents": [
        "a4f88fdcf0e9be084d04048ad65671716298c3c2"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 05 16:10:59 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 05 16:10:59 2013 -0800"
      },
      "message": "Remove bogus extra alignment from sbrk.\n\nBug: https://code.google.com/p/android/issues/detail?id\u003d37349\nChange-Id: I970c7b6be7bb7fbe6bbbe2c332f05816aeb0e09f\n"
    },
    {
      "commit": "a55f63083fb16b2595f517a3260083e5f8cddd02",
      "tree": "a21307c7a280a75b425eac764546fb1460e3eb76",
      "parents": [
        "f6524f8bda87f7d25dad7bed7091a93f3de58728"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 02 14:23:43 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 02 14:23:43 2013 -0800"
      },
      "message": "Define _POSIX_MONOTONIC_CLOCK and implement sysconf(_SC_MONOTONIC_CLOCK).\n\nBug: http://code.google.com/p/android/issues/detail?id\u003d39680\nChange-Id: I11cf10a66f9d305868a725f04f581099fb88bbfc\n"
    }
  ]
}
