)]}'
{
  "log": [
    {
      "commit": "989a80b75014eff71600a6a4e1445e710c2f94b4",
      "tree": "432b1fe061fb09db93b402159dae3868cc064344",
      "parents": [
        "9e8a8dc18cb3162858feef2d4baaf3fa357aa3d2",
        "4d77c1151c40010d137e4a2fa8629bff4bea72b0"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Mar 24 12:13:24 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 24 12:13:24 2014 +0000"
      },
      "message": "Merge \"Fix LP64 libm for 128-bit long doubles\""
    },
    {
      "commit": "4d77c1151c40010d137e4a2fa8629bff4bea72b0",
      "tree": "ba8f9dcf0b45afd26dff4e92a037295a6f78e19d",
      "parents": [
        "849e162d3bedc5ca61bdf15486268b253b9f4e93"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Mar 14 17:56:46 2014 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Mar 24 11:48:42 2014 +0000"
      },
      "message": "Fix LP64 libm for 128-bit long doubles\n\n* reworked amd64/_fpmath.h and arm64/_fpmath.h to support 128-bit long\ndoubles.\n* improved tests to cover long double cases\n* made modfl an alias for LP32\n\nTests pass on x86, x86_64, arm, arm64 and mips.\n\nBug: 12921273\n\nChange-Id: Ibe39acde57972447a8950fa45b1e702acc68ebeb\n"
    },
    {
      "commit": "753ad778bc1c3aecc4cd82b8387a7dc8a9b44d34",
      "tree": "6eedabf25b6c892f6eb95b847e3100c8245dcacf",
      "parents": [
        "2cc58603d5fd68ec582984318fb3c5f8865a186f"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Mar 20 20:47:45 2014 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Mar 20 20:47:45 2014 -0700"
      },
      "message": "Fix deadlock in timer_delete.\n\nIf the callback function for a timer did a timer_delete, the function\nwould never return. The problem was that the timer_delete function would try\nto wait until the timer thread has finished. Waiting for yourself to finish\ndoesn\u0027t work very well.\n\nBug: 13397340\nChange-Id: Ica123a5bafbc8660c8a4a909e5c2dead55ca429d\n"
    },
    {
      "commit": "722706672617d009279a8485b895bd3389de0396",
      "tree": "705bd0f3e8bb73a50cf0a52ffabc0d5889d43748",
      "parents": [
        "849e162d3bedc5ca61bdf15486268b253b9f4e93"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Mar 19 17:45:08 2014 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Mar 19 18:23:36 2014 +0000"
      },
      "message": "Added a test flag to bionic run-test targets.\n\nIt makes it much easier to pass arguments to the tests.\n\nChange-Id: Ia91eba4868627a3cea3f8d2c26ba01af4e860b12\n"
    },
    {
      "commit": "f171b34cf045115b82ccb89b57feb56d3cad472b",
      "tree": "60d746b63387b151f00dfd3272773f2701e93929",
      "parents": [
        "f212bbf666b77777063a3a94a672bcae80b15253"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Mar 17 16:40:26 2014 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Mar 17 16:40:26 2014 -0700"
      },
      "message": "Use the float/double assert macros.\n\nThe normal ASSERT_EQ macros don\u0027t work quite right for float/double values,\nand result in false failures. Use the correct macros instead.\n\nBug: 13511379\nChange-Id: Ic2feee7f3d3569f57b6453b8fa95222846c625cd\n"
    },
    {
      "commit": "603332fc4c2d073f0e197f9ce4517710e9b3a6d0",
      "tree": "55e87813c7e80c351e22cb776ab9c2426e430a4d",
      "parents": [
        "0e79338d12d1ca780efcd0720af92b0a70e55da8"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Mar 12 17:10:41 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Mar 12 17:10:41 2014 -0700"
      },
      "message": "Upgrade to current upstream scanf implementation.\n\nAlso add a basic test.\n\nChange-Id: Icc0e68a5716b9579244f6eb8bac1ab5a24eda85a\n"
    },
    {
      "commit": "5a8173860d65182af022be88fed0c5d8d5dcb69d",
      "tree": "907e7263b278203193247ef582a4e1a8b263e21e",
      "parents": [
        "56e1eebd39be4830f309603b38e4b1118c544fb3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Mar 12 16:12:57 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Mar 12 16:12:57 2014 -0700"
      },
      "message": "Ensure we always have symbols for atof, strtof, strtold.\n\nWe\u0027ll need a better implementation of strtold for LP64, but all our\nlong double functions are currently broken for LP64 anyway so this\nisn\u0027t a regression.\n\nChange-Id: I2bdebac11245d31521d5fa09a16331c03dc4339c\n"
    },
    {
      "commit": "40488560c17e41c0980b3a08ef54ec38bb572a41",
      "tree": "77542af209ac1c3061418a1f215ef43e5575b6e4",
      "parents": [
        "2282e16d76c6691968bd62a4c4bb3ecefabc98ca"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Mar 12 13:50:38 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Mar 12 13:50:38 2014 -0700"
      },
      "message": "Include what you use.\n\nDon\u0027t rely on transitive includes. (Even though that works fine in AOSP.)\n\nChange-Id: Ifc06575e4aea383cfff24d6c5c14fc0a7aabdf2b\n"
    },
    {
      "commit": "3cdf5739cd34757943a5fff9d26efeb8da04cb09",
      "tree": "fa1afe43a3097d8073b749b6d836431fd435fd1f",
      "parents": [
        "dd8c7863c613290acaa8bc4b90af34f020e0bee3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 11 12:54:44 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 11 12:54:44 2014 -0700"
      },
      "message": "Add a basic unit test for system(3).\n\nChange-Id: Ibc5ac21f3663685d89ce261b58d6ea386fc1ff88\n"
    },
    {
      "commit": "3e3409af0faa8843078a9e6e7110e69a88210da4",
      "tree": "ef07a9b1dac6181400f081a431b6665cbd86e416",
      "parents": [
        "2cd3490d7bdb18e5051a3cc66e7d03635bbcbeaf"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 10 18:19:03 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 10 18:19:03 2014 -0700"
      },
      "message": "Add system/extras strftime and strptime tests.\n\nChange-Id: I889c58f6e2e27b99cf6328a8671858d2e5feaa4e\n"
    },
    {
      "commit": "be1d91dedcfb346ced5ac496cd454f5b2e9bc4a9",
      "tree": "a27aef46b6755f47ff36c6a40661f7f09e55950c",
      "parents": [
        "fd9e20d10f946334955ca199b0178580d284e89f"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sat Mar 08 15:05:26 2014 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sat Mar 08 15:09:43 2014 -0800"
      },
      "message": "Add includes for waitpid\n\n(cherry picked from commit f07c5dd9ab63f2e8ba736107bd4b69bbd8829c9f)\n\nChange-Id: I7a765fd7a3a5f8f29a703f6a591c4fd8df4ebf1c\n"
    },
    {
      "commit": "04620a3cd7bdea0d1b421c8772ba3f06839bbe9c",
      "tree": "cbc1d4ecfc8e681d69dc7658f91c3078b46bd4bd",
      "parents": [
        "333e2ae87dac85d6420786e9e12ffd7ea84dae38"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 07 17:59:05 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 07 17:59:05 2014 -0800"
      },
      "message": "Fix pthread_detach for already-exited threads.\n\nChange-Id: I2bf7f41234d93b226132a4c51705f4186f4961c3\nReported-by: Paresh Nakhe \u003cpnakhe@codeaurora.org\u003e\n"
    },
    {
      "commit": "4b558f50a42c97d461f1dede5aaaae490ea99e2e",
      "tree": "c239a686131cdda28272c961ce98febbc0c772f8",
      "parents": [
        "bef5016491eed41521f514d5c5528e2274689948"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 04 15:58:02 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 07 16:49:46 2014 -0800"
      },
      "message": "Rewrite the POSIX timer functions.\n\nThis is a much simpler implementation that lets the kernel\ndo as much as possible.\n\nCo-authored-by: Jörgen Strand \u003cjorgen.strand@sonymobile.com\u003e\nCo-authored-by: Snild Dolkow \u003csnild.dolkow@sonymobile.com\u003e\nChange-Id: Iad19f155de977667aea09410266d54e63e8a26bf\n"
    },
    {
      "commit": "0e714a5b41451e84c5ded93a42c9a4b0a9440691",
      "tree": "86e6519cc723fb66a9432193da16b380255c22f7",
      "parents": [
        "8e541b12237f597c186820b9e18b059b620bef54"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 03 16:42:47 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 04 10:27:58 2014 -0800"
      },
      "message": "Implement POSIX pthread_mutex_timedlock.\n\nThis replaces the non-standard pthread_mutex_lock_timeout_np, which we have\nto keep around on LP32 for binary compatibility.\n\nChange-Id: I098dc7cd38369f0c1bec1fac35687fbd27392e00\n"
    },
    {
      "commit": "51e6cb33e3d7c2f44864d356a2a8e66317688f55",
      "tree": "48863111f16d659bbc0456662d67f5fc8ff3bef2",
      "parents": [
        "2c7c79e6e5e730553281b6d42e734ee2c532a660"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Mar 03 15:38:51 2014 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Mar 04 11:17:13 2014 +0000"
      },
      "message": "Implement pthread_condattr_{get,set}clock.\n\nWe only support CLOCK_REALTIME and CLOCK_MONOTONIC for now,\nso we us a single bit from pthread_cond_t-\u003evalue to denote\nthe clock type. Note that this reduces the width of the counter\nto 30 bits, but this should be large enough for all practical\npurposes.\n\nbug: 13232338\n\nChange-Id: I857e7da64b3ecbb23eeac7c9f3fbd460f60231bd\n"
    },
    {
      "commit": "aedb00d04eb7f0b20b6abde702ba94a46577ca68",
      "tree": "2346f63ba4777e6739e6a4115b68fad529e8f801",
      "parents": [
        "dfeb42ede69a0dbea5735aed5fddaee3f810801d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 03 14:38:20 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 04 00:58:31 2014 +0000"
      },
      "message": "Switch to upstream alarm(3).\n\nThe only way the setitimer call can fail is if the unsigned number of seconds is\ntoo large to fit in the kernel\u0027s signed number of seconds. If you schedule a\n68-year alarm, glibc will fail by returning 0 and BSD will fail by returning -1.\n\nChange-Id: Ic3721b01428f5402d99f31fd7f2ba2cc58805607"
    },
    {
      "commit": "6ff0c75c838e73d2aeccc0102ab58a7b865172ca",
      "tree": "664bed83a31a736af22e3ac37ff36b14e809724c",
      "parents": [
        "000ffd8ab0b4112173ce319869f4111f08fbe975"
      ],
      "author": {
        "name": "Guillaume Ranquet",
        "email": "guillaumex.ranquet@intel.com",
        "time": "Mon Feb 10 13:11:29 2014 +0100"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 27 14:29:01 2014 -0800"
      },
      "message": "Add recvmmsg and sendmmsg syscalls.\n\nAlso add the corresponding constant, struct, and function declarations\nto \u003csys/socket.h\u003e, and perfunctory tests so we know that the symbols\nactually exist.\n\nSigned-off-by: Guillaume Ranquet \u003cguillaumex.ranquet@intel.com\u003e\nChange-Id: Ib0d854239d3716be90ad70973c579aff4895a4f7\n"
    },
    {
      "commit": "a92b57c7f8230661d911f2fd6dd67a81e9a90cef",
      "tree": "da3df37981e655f8d236facaf411d279183f63c9",
      "parents": [
        "7c1efffc249283b47309846abba8795f3fb91555",
        "d4934a70e69365c97b1378820152e134a0089b5e"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Feb 25 10:44:25 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 25 10:44:26 2014 +0000"
      },
      "message": "Merge \"Added ftw64, nftw64\""
    },
    {
      "commit": "7c1efffc249283b47309846abba8795f3fb91555",
      "tree": "51c0fb5fc7dd9fa85f36c4bc17c52d41dd525692",
      "parents": [
        "ba40a560176e6ea753d09a6a71343b81ea4c8c1e",
        "fe317a3775e16d466bb884a8e054fd77f7087bb3"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Feb 25 10:43:30 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 25 10:43:31 2014 +0000"
      },
      "message": "Merge \"Added mkstemp64\""
    },
    {
      "commit": "0e44bc3baeb1677e5fbdda87a737b9c508c95132",
      "tree": "1470737507c2d3924297e61e463edc18a191cc8e",
      "parents": [
        "b26e4944e2a5bf4b7e33fa38fb17a3b76c7fe0f7"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 24 15:55:31 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 24 15:55:31 2014 -0800"
      },
      "message": "Remove \u003casm/page.h\u003e.\n\nIf we have PAGE_SIZE/PAGESIZE, POSIX says they should be in \u003climits.h\u003e.\n\nChange-Id: I3c2d574ea2aea81f524874a156361411a4ffa18e\n"
    },
    {
      "commit": "d4934a70e69365c97b1378820152e134a0089b5e",
      "tree": "c26c1ef275cd79486a03d9e4df76193c4a4ccc33",
      "parents": [
        "fe317a3775e16d466bb884a8e054fd77f7087bb3"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Feb 24 16:13:50 2014 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Feb 24 20:22:11 2014 +0000"
      },
      "message": "Added ftw64, nftw64\n\nBug: 13076637\nChange-Id: I5b926526f935b00bba14c2807b61d85f95089c33\n"
    },
    {
      "commit": "fe317a3775e16d466bb884a8e054fd77f7087bb3",
      "tree": "c26e2b737d6741add069324fc0dc8a2ad31cd731",
      "parents": [
        "da030de702b756077fec536ed139e7ea38b51022"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Feb 21 15:11:03 2014 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Feb 24 20:19:19 2014 +0000"
      },
      "message": "Added mkstemp64\n\nBug: 13076637\nChange-Id: I41bf28ab3e6c7325470781e9323eeec023483df5\n"
    },
    {
      "commit": "90b0157679a984f1829a72f8c642d17030aa7644",
      "tree": "3de9e1189d3c245c4ffada294fe9e97dc6bff3e0",
      "parents": [
        "e65055af112780623f372aca6a1f78d2b2acb34f",
        "da030de702b756077fec536ed139e7ea38b51022"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Feb 21 17:09:13 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 21 17:09:13 2014 +0000"
      },
      "message": "Merge \"Fixed int fast types for LP64\""
    },
    {
      "commit": "da030de702b756077fec536ed139e7ea38b51022",
      "tree": "43e29ce4f9b5128e25bb55efb78a4329104e38ac",
      "parents": [
        "44ef37c1b445e864068cdcd885ab3d7b17079ad3"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Feb 20 13:40:36 2014 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Feb 21 16:27:21 2014 +0000"
      },
      "message": "Fixed int fast types for LP64\n\nBug: 13110474\nChange-Id: Id5591603ad4ba7e149c0852f4abb25e4e5a5d065\n"
    },
    {
      "commit": "5f6f4a956cd630f873fe41058e96262f897f4bc9",
      "tree": "d0c1a8d044d1597364dad94574e30a0bd8197bd7",
      "parents": [
        "44ef37c1b445e864068cdcd885ab3d7b17079ad3"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Feb 19 15:42:58 2014 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Feb 19 18:50:30 2014 +0000"
      },
      "message": "Fix signbit / infinite / isinf / isnan unit tests.\n\nTurns out stlport isn\u0027t broken. \u003ccmath\u003e (included\ntransitively via gtest in our case) is not required\nto make C99 math macros (like signbit) available, nor is\nit required to preserve them if they\u0027re already defined.\nIt is only required to make the equivalent functions in\nnamespace std available.\n\nI couldn\u0027t find any documentation of required behaviour for\nprograms that include both \u003cmath.h\u003e and \u003ccmath\u003e.\n\nI\u0027ve verified experimentally that llvm\u0027s libc++ and gnu\nstl behave the same as stlport.\n\nbug: 12935307\n\nChange-Id: I9dc5cc0fd9f4f259abc8eefb280177cdd092a94b\n"
    },
    {
      "commit": "1d18e9cc0ab8b2f6d860c4f7d85c33eb5cde4179",
      "tree": "c4e19a0cc8afd9c3dd81e91ce427610862f248fb",
      "parents": [
        "b36020789ac860fcfbbeaf56d560926d8ee228f6"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 18 15:48:56 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 18 15:48:56 2014 -0800"
      },
      "message": "Add missing file from previous change.\n\nChange-Id: Id25000162a9ed76ce756842bdc09fe9afff9528f\n"
    },
    {
      "commit": "db1ea3474899ebbd783aba872d3005f95a816d0f",
      "tree": "b70fedd7d69098f5141dbbb09ef41851a61eec8d",
      "parents": [
        "3623d80675e5321b92c2d88a7b7ec6bd998d81d5"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jan 17 18:42:49 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 18 15:39:24 2014 -0800"
      },
      "message": "Implement some of the missing LFS64 support.\n\nThis gives us:\n\n* \u003cdirent.h\u003e\n  struct dirent64\n  readdir64, readdir64_r, alphasort64, scandir64\n\n* \u003cfcntl.h\u003e\n  creat64, openat64, open64.\n\n* \u003csys/stat.h\u003e\n  struct stat64\n  fstat64, fstatat64, lstat64, stat64.\n\n* \u003csys/statvfs.h\u003e\n  struct statvfs64\n  statvfs64, fstatvfs64.\n\n* \u003csys/vfs.h\u003e\n  struct statfs64\n  statfs64, fstatfs64.\n\nThis also removes some of the incorrect #define hacks we\u0027ve had in the\npast (for stat64, for example, which we promised to clean up way back\nin bug 8472078).\n\nBug: 11865851\nBug: 8472078\nChange-Id: Ia46443521918519f2dfa64d4621027dfd13ac566\n"
    },
    {
      "commit": "915fefb62e1beed3da26fe299a8141645733a925",
      "tree": "59a4187f3e8c3cb476d1a1a0dca35f6a0f3a3a49",
      "parents": [
        "ffe026680edaba268330bc67dd986d2c900ecfc7"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 18 12:34:51 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 18 12:34:51 2014 -0800"
      },
      "message": "Fix x86 build.\n\nChange-Id: Iee6e5884288f7da6c955694cfe32fecfd9c9e263\n"
    },
    {
      "commit": "3d19a8319b9c27af8aa5cfbf495da0fe7fa62d3e",
      "tree": "a51591477e2f6f97ae56ae027d01ca1ff8c302ef",
      "parents": [
        "d4bc9ef83b36916d5e63c4c3e4a092381473ea52"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Feb 14 18:56:23 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 18 12:11:38 2014 -0800"
      },
      "message": "bionic: fix __set_errno for arm64 syscalls that return a 64-bit value\n\nbionic/libc/arch-arm64/syscalls/read.S ends with:\n    b.hi __set_errno\n    ret\nEND(read)\n\nIf __set_errno returns int, it will set w0 to 0xFFFFFFFF, which means\nx0 is 0x00000000FFFFFFFF.  When interpreted as a ssize_t that is\nINT_MAX, not -1.\n\nChange __set_errno to return long, which will cause x0 to be set instead\nof w0.\n\nChange-Id: I9f9ea0f2995928d2ea240eb2ff7758ecdf0ff412\n"
    },
    {
      "commit": "671e236d5fd2cae169c2a31d0a35e66c4fcc5556",
      "tree": "55c1a2a77c279f671d77e23ff1ee89946fd6efde",
      "parents": [
        "fc48e8cf28b80ce0f95e288eeee459b4cb932afa"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 12 19:04:27 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 12 19:04:27 2014 -0800"
      },
      "message": "Restore sys_signame for LP64.\n\nmksh is using this, and we probably build as much BSD source as glibc source.\n\nChange-Id: I400d255a67f9614ca9e57090e3a2e49d2b10cba4\n"
    },
    {
      "commit": "aa0ebdafc71e1ceac78e0929b94f3bb117d0c8e9",
      "tree": "e0fa3c926172fbc3e4b1a43950ae2a7ea662deb7",
      "parents": [
        "9e572ca4163e42bcd053df2cb8557e4b61ad064d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 11 19:57:06 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 12 17:09:25 2014 -0800"
      },
      "message": "Clean up sys_signame and sys_siglist a little.\n\nWe don\u0027t need quite so much duplication because we already have a way\nto get the signal number from its name, and that already copes with the\nfact that the mips/mips64 numbers are different from everyone else\u0027s.\n\nAlso remove sys_signame from LP64. glibc doesn\u0027t have this BSD-ism.\n\nChange-Id: I6dc411a3d73589383c85d3b07d9d648311492a10\n"
    },
    {
      "commit": "f04935c85e0b466f0d30d2cd4c0fa2fff62e7d6d",
      "tree": "8f1c6af75517892648f49adad9d4d5d44c20f49c",
      "parents": [
        "e163a3986aa7d1c67fe3274eb9204812be0a6245"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Dec 20 18:43:21 2013 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Feb 06 20:12:21 2014 -0800"
      },
      "message": "Make sure that the same tests are on all platforms.\n\nIn order to be able to generate a list of tests for cts, the same set of\ntests must exist across all platforms. This CL adds empty tests where a\ntest was conditionally compiled out.\n\nThis CL creates a single library libBionicTests that includes all of\nthe tests found in bionic-unit-tests-static.\n\nAlso fix a few missing include files in some test files.\n\nTested by running and compiling the tests for every platform and\nverifying the same number of tests are on each platform.\n\nChange-Id: I9989d4bfebb0f9c409a0ce7e87169299eac605a2\n"
    },
    {
      "commit": "f64b8ea09db3bdd84eed59f7721301743332b3fe",
      "tree": "6d45a510ee831e1bc154170170afe7c931474ebc",
      "parents": [
        "a122c376ef0737454a592cf44f50beabe154e9e3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 03 16:20:46 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 03 16:20:46 2014 -0800"
      },
      "message": "Add fallocate/fallocate64/posix_fallocate/posix_fallocate64.\n\nBug: 5287571\nBug: 12612860\nChange-Id: I4501b9c6cdf9a830336ce0b3afc4ea716b6a0f6f\n"
    },
    {
      "commit": "718a5b5495ae7726aabd2f8a748da9f391d12b98",
      "tree": "9f2062d2a222d79dc70d3b81bd608e91a28ffb70",
      "parents": [
        "c75e7726ea5167ea03c512c7c35117762548d93f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 28 17:02:03 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 28 17:02:03 2014 -0800"
      },
      "message": "Fix pthread_test to work with gtest 1.7.0.\n\nNow we\u0027re building it correctly configured, gtest takes a couple of\nTLS slots for itself.\n\nChange-Id: I1c2c4e9e5f9c6e2e2e6ecd1214cfc16a5af5afed\n"
    },
    {
      "commit": "431166d99519f6794f10c48694913d2fe864b841",
      "tree": "7c148908e51c210646a28f890da96897e6000138",
      "parents": [
        "652dd5196df87bdeef7bff452f1a4857a96e3133"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jan 27 16:28:31 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jan 27 16:36:56 2014 -0800"
      },
      "message": "Fix 32-bit mmap/mmap64 handling of negative offsets.\n\nWe don\u0027t actually need to worry about sign extension if we reject\nnegative values ourselves. Previously it was possible to come up\nwith negative but aligned values that we would pass to the kernel;\nin the case of mmap (as opposed to mmap64) we\u0027d incorrectly turn\nthose into large positive offsets.\n\nChange-Id: I2aa583e0f892d59bb77429aea8730b72db32dcb0\n"
    },
    {
      "commit": "e2a292d278b94fec3d078b1f1b27c1f89942c276",
      "tree": "92f56a8b0e38cd4576453bf8db9fdecd8c7fe077",
      "parents": [
        "513f83bb7f6961d60eb10d2ab14fb31fed190bce"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jan 24 16:37:04 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jan 24 16:38:07 2014 -0800"
      },
      "message": "Remove __STDC_FORMAT_MACROS and __STDC_LIMIT_MACROS guards (and fix SIZE_MAX for LP64).\n\nThe various committees decided that everyone should get all these macros,\nall the time.\n\nBug: 12708004\nChange-Id: Ib56010dcba9b0656e5701546fefb7f78dc0bf916\n"
    },
    {
      "commit": "d1973ca51325393f304e82a4d79874f33e54ac16",
      "tree": "75a657d895a41aa4855a06ef1e0e986c963e0eef",
      "parents": [
        "5b4884fac90753c68d401de73036c2de919958eb"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jan 21 19:50:58 2014 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Jan 23 18:35:39 2014 -0800"
      },
      "message": "bionic: rename aarch64 target to arm64\n\nRename aarch64 build targets to arm64.  The gcc toolchain is still\naarch64.\n\nChange-Id: Ia92d8a50824e5329cf00fd6f4f92eae112b7f3a3\n"
    },
    {
      "commit": "0f461e35f63200641fc53bba222845a84589c024",
      "tree": "d5b0d3a9e13f4699bdc57dfd422a69ddfdde5090",
      "parents": [
        "8276d2875f64587e266567f5bb2c5e0c70ef0a5d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 09 10:17:03 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 09 11:00:04 2014 -0800"
      },
      "message": "Fix \u003csys/resource.h\u003e.\n\nThe situation here is a bit confusing. On 64-bit, rlimit and rlimit64 are\nthe same, and so getrlimit/getrlimit64, setrlimit/setrlimit64,\nand prlimit/prlimit64 are all the same. On 32-bit, rlimit and rlimit64 are\ndifferent. 32-bit architectures other than MIPS go one step further by having\nan even more limited getrlimit system call, so arm and x86 need to use\nugetrlimit instead of getrlimit. Worse, the 32-bit architectures don\u0027t have\n64-bit getrlimit- and setrlimit-equivalent system calls, and you have to use\nprlimit64 instead. There\u0027s no 32-bit prlimit system call, so there\u0027s no\neasy implementation of that --- what should we do if the result of prlimit64\nwon\u0027t fit in a struct rlimit? Since 32-bit survived without prlimit/prlimit64\nfor this long, I\u0027m not going to bother implementing prlimit for 32-bit.\n\nWe need the rlimit64 functions to be able to build strace 4.8 out of the box.\n\nChange-Id: I1903d913b23016a2fc3b9f452885ac730d71e001\n"
    },
    {
      "commit": "5f1322cecf5af4bedfb2d3cf857d18e73a233b9d",
      "tree": "bc03185cd6ccc1eca47c0b9fefc2b956d4cd5568",
      "parents": [
        "b235f8c8773c08569a97b0ff7e4c709b216c8478",
        "dd00364807020a244aa8be4f3481f7ec0fefcc79"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jan 06 23:37:20 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jan 06 23:37:21 2014 +0000"
      },
      "message": "Merge \"Pass a valid stack pointer to __bionic_clone in pthread.__bionic_clone\""
    },
    {
      "commit": "dd00364807020a244aa8be4f3481f7ec0fefcc79",
      "tree": "5fce5f43c4b6aac8a5a0bb64ec1d01c06c308c5d",
      "parents": [
        "c1c3f7d4468f02adbf8ced689d738386e42af773"
      ],
      "author": {
        "name": "Chris Dearman",
        "email": "chris.dearman@imgtec.com",
        "time": "Sat Jan 04 12:57:39 2014 +0000"
      },
      "committer": {
        "name": "Chris Dearman",
        "email": "chris.dearman@imgtec.com",
        "time": "Sat Jan 04 13:14:35 2014 +0000"
      },
      "message": "Pass a valid stack pointer to __bionic_clone in pthread.__bionic_clone\n\n__bionic_clone modifies the child stack before cloning so the stack\npointer should be valid. The test is expecting an EINVAL error to be\ngenerated from the incorrect flags: CLONE_THREAD set without\nCLONE_SIGHAND.\n\nChange-Id: Ic02192081f6f52df6f03d9810efa82d923247a11\n"
    },
    {
      "commit": "894f8cb1395d3409bb995d18abc1b3409c557d01",
      "tree": "c9ddda0d60085077fd96cd301c3ccbe16c581578",
      "parents": [
        "c1c3f7d4468f02adbf8ced689d738386e42af773"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jan 03 14:49:37 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jan 03 14:49:37 2014 -0800"
      },
      "message": "Fix dev_t (for LP64).\n\n32-bit Android\u0027s dev_t was wrong too. We can\u0027t fix that without ABI breakage,\nbut we can at least fix 64-bit Android. And add tests.\n\nBug: https://code.google.com/p/android/issues/detail?id\u003d54966\nChange-Id: Ie2e42cc042b78b669a1a44e55f959dbd9c52c5c9\n"
    },
    {
      "commit": "6ad8f76f1f1cbee484c30d723d9d6d1fcf5dc85c",
      "tree": "07ac6a32d57f7a65112ebeda5078d2f064a9a34a",
      "parents": [
        "cf7a4a4fda076ec76bb79fdbd039665171e8cd75"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 19 14:56:17 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 19 14:56:17 2013 -0800"
      },
      "message": "Don\u0027t abort in stdio.getdelim_invalid and stdio.getline_invalid.\n\nChange-Id: Ie1aefed732f4bea77887bddd1be9a0578e247aa3\n"
    },
    {
      "commit": "e7c59f9e2041812c597ff1c8689d47d1bfd32883",
      "tree": "97d56c8132b832669676c08de6c9298b50a33a5f",
      "parents": [
        "f293b15728031432317791fb4a17a423545d37b3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Dec 17 20:47:06 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Dec 18 09:47:44 2013 -0800"
      },
      "message": "Fix compilation of crtbegin.c and pthread_debug.cpp.\n\nBecause there was no default :\u003d for the aarch64 libc_crt_target_cflags,\nthe +\u003d was causing libc_crt_target_cflags to be recursively-defined\nvariable, which meant that when we were compiling crtbegin.c LOCAL_PATH\nwould be bionic/tests/ and we\u0027d have -Ibionic/tests/include/ and find\nnone of our include files.\n\nAlso fix linking of pthread_debug.cpp, at least in the disabled mode.\nThe enabled mode was already broken for all architectures, and continues\nto be broken after this change. It\u0027s been broken for long enough that\nwe might want to just remove it...\n\n(aarch64 is using the FSF linker where arm uses the gold linker.)\n\nChange-Id: I7db2e386694f6933db043138e6e97e5ae54d4174\n"
    },
    {
      "commit": "e365f9d6543bc6607864ef61257505239dde15d1",
      "tree": "ecc2e3605bc26aeb9b16a1d3adbceb70da40ba19",
      "parents": [
        "2e3826c08171ead1647c800a0a6d9c333d335762"
      ],
      "author": {
        "name": "Marcus Oakland",
        "email": "marcus.oakland@arm.com",
        "time": "Thu Oct 10 15:19:31 2013 +0100"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Dec 17 15:02:43 2013 -0800"
      },
      "message": "AArch64: Linker64 support for AArch64\n\nAddition of support for AArch64 in the linker64 target.\n\nChange-Id: I8dfd9711278f6706063e91f626b6007ea7a3dd6e\nSigned-off-by: Marcus Oakland \u003cmarcus.oakland@arm.com\u003e\n"
    },
    {
      "commit": "282e232e2a32cca8a288e81edddfd95f450cfc79",
      "tree": "43c466720c7ac06b055d9b6c12db0ad944669a6d",
      "parents": [
        "4e78ca63b8d53b96c590d3f1b29b0cfb65a651bc"
      ],
      "author": {
        "name": "Serban Constantinescu",
        "email": "serban.constantinescu@arm.com",
        "time": "Tue Oct 22 11:30:12 2013 +0100"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Dec 16 17:40:30 2013 -0800"
      },
      "message": "AArch64: Add fixes to bionic/tests\n\nThis patch adds minor fixes to the bionic unit tests.\n\nChange-Id: Ie10f33c631ed6c10987923d678711d22931ddb05\nSigned-off-by: Serban Constantinescu \u003cserban.constantinescu@arm.com\u003e\n"
    },
    {
      "commit": "1887621de8a48eece8a05f2400ddd783b9833147",
      "tree": "73707f9768954e6d68f077febc4f442e2010609e",
      "parents": [
        "38fcbbb35a40c46e96b4df10d670d1c132910854"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 12 11:02:41 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 12 12:51:08 2013 -0800"
      },
      "message": "PTHREAD_KEYS_MAX cleanup.\n\nI fixed this bug a while back, but didn\u0027t remove it from the list,\ncould have added a better test, and could have written clearer code\nthat didn\u0027t require a comment.\n\nChange-Id: Iebdf0f9a54537a7d5cbca254a5967b1543061f3d\n"
    },
    {
      "commit": "a84f88f0989e9446686ae76a53dc087ff5788fe6",
      "tree": "63fe6c4c6d0218c0eadc5459948b1585d6a08a74",
      "parents": [
        "b39599286d03db13f51a79e4cfe6644da0079f1a",
        "bd3efbc9b585e0c9801b0b35f282347cb8692ca8"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Dec 11 19:05:24 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Dec 11 19:05:25 2013 +0000"
      },
      "message": "Merge \"bionic: move benchmarks out of tests directory\""
    },
    {
      "commit": "bd3efbc9b585e0c9801b0b35f282347cb8692ca8",
      "tree": "ee91fc952e907515d959f80a55de157318ad124a",
      "parents": [
        "05ec00bf62ac168c9787a3d0640879ab3e502fe5"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Nov 15 17:49:47 2013 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Dec 10 18:24:30 2013 -0800"
      },
      "message": "bionic: move benchmarks out of tests directory\n\nChange-Id: I4d054965198af22c9a9c821d1bc53f4e9ea01248\n"
    },
    {
      "commit": "e5bbb6b6ab662503f06ceb20fa841d2e558d596d",
      "tree": "c031e82ae3400ce97aa416185c9118812569434c",
      "parents": [
        "ed45970ac5a182e512669cfa5c15b9f4fa783ad7"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Dec 03 18:39:10 2013 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Dec 03 18:42:41 2013 -0800"
      },
      "message": "Add strcmp/memcmp testing.\n\nBug: 9797008\nChange-Id: I11b1da060d29f7dacbb53f20a3e2082395b5bd8a\n"
    },
    {
      "commit": "f00c938c7f5887981d724bf2dd9989ee0af08332",
      "tree": "215f86cc9ce1b1ed167d925419122327d3ffaa3e",
      "parents": [
        "a626e4d8bc3d59cc328942fc30ffc04981b154ed",
        "811b0cdb2d6e4a697dbc63a678712759dd0db242"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Nov 22 11:08:12 2013 -0800"
      },
      "committer": {
        "name": "Conley Owens",
        "email": "cco3@android.com",
        "time": "Fri Nov 22 13:38:33 2013 -0800"
      },
      "message": "Merge commit \u0027811b0cdb2d6e4a697dbc63a678712759dd0db242\u0027 into HEAD\n\nChange-Id: I786944f80fb1a2d502fed51dc2c391ed5db66761\n"
    },
    {
      "commit": "9d70ddc466ed0bdb36908d69b1fe849904150eb7",
      "tree": "25806ed540954a5644139381aa318d811718dbda",
      "parents": [
        "318e86ed887e04e593f3db9b84b402d5501ced9b",
        "af64dad4796ab4f077e2f2ba1e90cc56b6575d63"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Nov 19 09:56:53 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 19 09:56:53 2013 +0000"
      },
      "message": "Merge \"Add test case for 1^NaN\""
    },
    {
      "commit": "303fe0cb38def66aa438b9caac32e5af298f840a",
      "tree": "f8aefb780d74419659ecaef3dfa9d8bf29c7c95d",
      "parents": [
        "862faa12928038759e1bbdbc394a7d58b560f128",
        "877ec6d90418ff1d6597147d355a2229fdffae7e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Nov 19 03:48:59 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 19 03:49:00 2013 +0000"
      },
      "message": "Merge \"Fix pthread_join.\""
    },
    {
      "commit": "877ec6d90418ff1d6597147d355a2229fdffae7e",
      "tree": "e475221a7fbff1564ad37548e920333c49cc5873",
      "parents": [
        "f246c589d66e5dc0e3cddc3c37261fb0e3fc67e9"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Nov 15 17:40:18 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Nov 18 19:48:11 2013 -0800"
      },
      "message": "Fix pthread_join.\n\nLet the kernel keep pthread_internal_t::tid updated, including\nacross forks and for the main thread. This then lets us fix\npthread_join to only return after the thread has really exited.\n\nAlso fix the thread attributes of the main thread so we don\u0027t\nunmap the main thread\u0027s stack (which is really owned by the\ndynamic linker and contains things like environment variables),\nwhich fixes crashes when joining with an exited main thread\nand also fixes problems reported publicly with accessing environment\nvariables after the main thread exits (for which I\u0027ve added a new\nunit test).\n\nIn passing I also fixed a bug where if the clone(2) inside\npthread_create(3) fails, we\u0027d unmap the child\u0027s stack and TLS (which\ncontains the mutex) and then try to unlock the mutex. Boom! It wasn\u0027t\nuntil after I\u0027d uploaded the fix for this that I came across a new\npublic bug reporting this exact failure.\n\nBug: 8206355\nBug: 11693195\nBug: https://code.google.com/p/android/issues/detail?id\u003d57421\nBug: https://code.google.com/p/android/issues/detail?id\u003d62392\nChange-Id: I2af9cf6e8ae510a67256ad93cad891794ed0580b\n"
    },
    {
      "commit": "af64dad4796ab4f077e2f2ba1e90cc56b6575d63",
      "tree": "b219e1771210f5db0dc42dc20e889d77d9a39981",
      "parents": [
        "f246c589d66e5dc0e3cddc3c37261fb0e3fc67e9"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Nov 18 18:47:48 2013 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Nov 18 19:00:59 2013 +0000"
      },
      "message": "Add test case for 1^NaN\n\nShould be 1.\n\nChange-Id: I6cf723a419f51d3bda58286a538774b71276c7b5\n"
    },
    {
      "commit": "cbd85b9cc1c5dd0bb1a5691143cd5adcbecdba77",
      "tree": "6a68536f1a1a5c37803b04199fe536d7ce876891",
      "parents": [
        "f246c589d66e5dc0e3cddc3c37261fb0e3fc67e9"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Nov 15 15:16:01 2013 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Nov 15 16:09:44 2013 -0800"
      },
      "message": "Modify tests for another glibc difference.\n\nIt turns out that when passing a closed file to getdelim or getline, the\nfunctions in glibc will properly return a failure, but errno might not be\nset. Skip the errno check except on bionic.\n\nChange-Id: I8d625f15303d4c2d42e8d28491ea8a368aea4d32\n"
    },
    {
      "commit": "e39e3a77d6e8cf681718a572bc754fd64dfc87ff",
      "tree": "c42fb081988f8c42fdfebcca0f78c4b0181b9533",
      "parents": [
        "645d4269d323acdcb20d1c31c15dbb4afbb9f46a",
        "b687ad3c3491fffe22507cafc9347e10cbf6bd31"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Nov 15 22:47:07 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 15 22:47:07 2013 +0000"
      },
      "message": "Merge \"Add new tests for memory/string routines.\""
    },
    {
      "commit": "70b24b1cc2a1a4436b1fea3f8b76616fdcb27224",
      "tree": "70c8e04ccd256eaeda3c7e516776f4c9bca25628",
      "parents": [
        "05ec00bf62ac168c9787a3d0640879ab3e502fe5"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Nov 15 11:51:07 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Nov 15 14:41:19 2013 -0800"
      },
      "message": "Switch pthread_create over to __bionic_clone.\n\nBug: 8206355\nBug: 11693195\nChange-Id: I04aadbc36c87e1b7e33324b9a930a1e441fbfed6\n"
    },
    {
      "commit": "b687ad3c3491fffe22507cafc9347e10cbf6bd31",
      "tree": "d854ac3533adc7268002f2ad299f4a6a9140b464",
      "parents": [
        "05ec00bf62ac168c9787a3d0640879ab3e502fe5"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Nov 06 17:32:11 2013 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Nov 15 10:36:21 2013 -0800"
      },
      "message": "Add new tests for memory/string routines.\n\nCreate a few generic testing functions to allow any memory/string tests\nto be created.\n\nAdd alignment tests for memcpy/memset/strcat/strcpy/strlen.\n\nAdd an overread test for memcpy/strcat/strcpy/strlen. This test attempts\nto verify that the functions do not read past the end of their buffers\n(src buffer in the case of src/dst functions).\n\nBug: 9797008\n\nChange-Id: Ib3223ca1b99e729ae8229adc2d03f4dc3103d97c\n"
    },
    {
      "commit": "6a8f00d49c30107903f2449ae563cfee51b48468",
      "tree": "2d3ad149e0357491a6cc228ad0e639285aff7794",
      "parents": [
        "44cbe94bba2e7e4b1369c86b11d66d6b60f0e333"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 13 13:29:23 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 13 13:29:23 2013 -0800"
      },
      "message": "Add unit tests for pow\u0027s behavior with NaNs.\n\nBug: 11669804\nChange-Id: Idfa6527640c8d0c2cf3e5343bf7afe013e237545\n"
    },
    {
      "commit": "e61dc71efca544f4066a93706b639a29b3600229",
      "tree": "31137047c1a22f52fa9d61c3f051b6276bd85e89",
      "parents": [
        "22ba86ee44867c2d16973fc2f8da3b0f5b58cc5e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 13 13:14:31 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 13 13:14:31 2013 -0800"
      },
      "message": "Add a unit test for syscall(2).\n\nChange-Id: Ic7d9735d46711af93c3a1747de7b2eb8cebea094\n"
    },
    {
      "commit": "2ed710976cb0ace31aab565c95a42d4e75623894",
      "tree": "d9d2356abcd86cf2249fd318f8bd48fb5fbf002f",
      "parents": [
        "6768c1ee510a8e93175b54e93cb583f009766eed"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Nov 11 15:48:06 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Nov 11 15:48:06 2013 -0800"
      },
      "message": "Add extra regression tests for an already-fixed dynamic linker bug.\n\nBug: https://code.google.com/p/android/issues/detail?id\u003d61799\nChange-Id: I84af68f8430a06e999297c2e57e06ecb45adf81e\n"
    },
    {
      "commit": "062092543fdbd6fa2676e4f5b37a15f7bba94332",
      "tree": "1363126a8783cca6b0ae3faf7cab2657d1934323",
      "parents": [
        "7115c80231aa88272294076c8775c09727ece85a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 06 16:20:54 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 06 16:33:39 2013 -0800"
      },
      "message": "Clean up the 32-bit kernel support, fix LP64 fcntl declaration.\n\nIn practice, thanks to all the registers the stubs don\u0027t actually change,\nbut it\u0027s confusing to have an incorrect declaration.\n\nI suspect that fcntl remains broken for aarch64; it happens to work for\nx86_64 because the first vararg argument gets placed in the right register\nanyway, but I have no reason to believe that\u0027s true for aarch64.\n\nThis patch adds a unit test, though, so we\u0027ll be able to tell when we get\nas far as running the unit tests.\n\nChange-Id: I58dd0054fe99d7d51d04c22781d8965dff1afbf3\n"
    },
    {
      "commit": "ebd506c69e12b6dcaf5be94cc8ed1b53af299f9f",
      "tree": "79913ebffdfcc7a4b20d78a477b9d69340d477f9",
      "parents": [
        "cc9b7456b66b7c7c218a9d1f00d7aef1f5ecf409"
      ],
      "author": {
        "name": "Sergey Melnikov",
        "email": "sergey.melnikov@intel.com",
        "time": "Thu Oct 31 18:02:12 2013 +0400"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 31 15:06:20 2013 -0700"
      },
      "message": "Fix linker crashes during unknown symbol lookup\n\nIntegration of kernel VDSO into internal bionic data structures using\ncommon functions.\nFix for dl_iterate_phdr function: the function provides incorrect\naddress of object in case of nonzero virtual and base addresses.\nLocation in address space of a particular program header should be\ncalculated using the formula:  addr \u003d base_addr + virtual_addr.\n\nSigned-off-by: Sergey Melnikov \u003csergey.melnikov@intel.com\u003e\nChange-Id: Ie2ab4257fd456242aab8afed0bd5bd6b29e81d6d\n"
    },
    {
      "commit": "c3f114037dbf028896310609fd28cf2b3da99c4d",
      "tree": "e463aeb3604177cd93cea8a58936a8dce4b34ee5",
      "parents": [
        "d0d0b52da375bfa85947a4257198791f615f18a8"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 30 14:40:09 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 31 12:31:16 2013 -0700"
      },
      "message": "\u003cpthread.h\u003e fixes and pthread cleanup.\n\n\u003cpthread.h\u003e was missing nonnull attributes, noreturn on pthread_exit,\nand had incorrect cv qualifiers for several standard functions.\n\nI\u0027ve also marked the non-standard stuff (where I count glibc rather\nthan POSIX as \"standard\") so we can revisit this cruft for LP64 and\ntry to ensure we\u0027re compatible with glibc.\n\nI\u0027ve also broken out the pthread_cond* functions into a new file.\n\nI\u0027ve made the remaining pthread files (plus ptrace) part of the bionic code\nand fixed all the warnings.\n\nI\u0027ve added a few more smoke tests for chunks of untested pthread functionality.\n\nWe no longer need the libc_static_common_src_files hack for any of the\npthread implementation because we long since stripped out the rest of\nthe armv5 support, and this hack was just to ensure that __get_tls in libc.a\nwent via the kernel if necessary.\n\nThis patch also finishes the job of breaking up the pthread.c monolith, and\nadds a handful of new tests.\n\nChange-Id: Idc0ae7f5d8aa65989598acd4c01a874fe21582c7\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": "27586ebe1a7f2f45651b855a26b3203d63d015d6",
      "tree": "c1311b6ea1c32e15f7c7a9e3c81f1e0f78fa0737",
      "parents": [
        "d4e9f076d621dcf6450acba178e65d63c076ae6e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 28 13:21:06 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 28 13:21:06 2013 -0700"
      },
      "message": "Fix utime/utimes when passed a NULL pointer.\n\nBug: 11383777\nChange-Id: If944a42f3adfa8a6ce91c167c249e009ed63300a\n"
    },
    {
      "commit": "b38e4d536f6592cf22b984c143ee6790d6df2351",
      "tree": "e5f41120a4ccff7278f7a8b0507882520feffc2e",
      "parents": [
        "ad8fb26aff16b239fd79fd7223435bdae2462f72"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Oct 25 10:06:57 2013 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Oct 25 10:23:12 2013 -0700"
      },
      "message": "Update running bionic unit tests on host.\n\nAdd a bionic-unit-tests-glibc-run target to run the glibc bionic unit tests.\n\nModify the bionic-unit-tests-run-on-host to make sure that the /system/bin\ndirectory is created properly.\n\nAlso remove the EXTERNAL_STORAGE variable which isn\u0027t used any more.\n\nBug: 11234772\nChange-Id: I9aea501d05700b29e938f672474d550b1872a78b\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": "f8fcfbc85a3ce3e195626b90736d3a484331494b",
      "tree": "5742644f2305f27b65ae7d3a4d07a7614c36af2a",
      "parents": [
        "f0ed9bf2537e861ae75e6ab71efb4b4722ad0eee"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 22 13:28:46 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 22 16:31:01 2013 -0700"
      },
      "message": "Move away from the __ARCH_WANT_SYSCALL_NO_AT system calls.\n\nModern architectures only get the *at(2) system calls. For example,\naarch64 doesn\u0027t have open(2), and expects userspace to use openat(2)\ninstead.\n\nChange-Id: I87b4ed79790cb8a80844f5544ac1a13fda26c7b5\n"
    },
    {
      "commit": "594b1a4af204aa9de2b4913182f4556e38d71648",
      "tree": "ac4ed6a89ff6048205c0af443cc6f882e4499fdf",
      "parents": [
        "393484ab358040243793375e1525da083008e78e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 22 10:54:11 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 22 12:03:19 2013 -0700"
      },
      "message": "Make sure we have a mkfifo symbol.\n\nBug: https://code.google.com/p/android/issues/detail?id\u003d58888\nChange-Id: Ic0a883a5f30beb82cb7be3c4e81b6d693d5fbb4d\n"
    },
    {
      "commit": "3d305f1d62107d5261bad1c45a0a441d98dc4d41",
      "tree": "3699724837f144099a1b59ffaf5c6795088fbfd0",
      "parents": [
        "c284d47c57973f7dde1d2f5cc33074050203a5d3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 21 19:27:19 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 21 19:27:19 2013 -0700"
      },
      "message": "Fix statvfs tests for the host.\n\nUsing /proc seems like a better idea because it\u0027s more similar across devices.\nI\u0027ve switched to ensuring we check the initial and final elements in the struct\ntoo, so we have more reason to believe the whole struct is converted correctly.\n\nChange-Id: Ia23403369485747c1452292f6c9df2bb233c04fb\n"
    },
    {
      "commit": "e4375196d650f68ad486e2202699c98f9342d616",
      "tree": "4e62b6b03aea5a78845c309a148642a81c72e367",
      "parents": [
        "f4ac8ba566d80679ccc346b3b0af4b46d394319b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 21 17:09:52 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 21 17:40:15 2013 -0700"
      },
      "message": "Fix the system property tests to use $ANDROID_DATA.\n\nThis lets them work on the host.\n\nChange-Id: I771ccc67652ae37451b45859c7831116cd830086\n"
    },
    {
      "commit": "53bfdae4ffdbd43d0c019d1a35af1f8477a272c9",
      "tree": "f6b7395802ff60e74d4da96d0f66418dba31e22a",
      "parents": [
        "a5bab412e0bcb4f9e449d594330819c321cf18ad"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Oct 18 19:39:09 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Oct 18 19:39:09 2013 -0700"
      },
      "message": "Fix the x86_64 clone implementation.\n\nChange-Id: Ia75f46dcb4d3222049e9a6a6fabc2b17223b47f7\n"
    },
    {
      "commit": "0c40152767188dc718a46e5b4e7e32e937c85bd8",
      "tree": "2960b8f779dcd252946da0cd5c29ec0760199f9e",
      "parents": [
        "d0402acdc76e1ea412085b3b633f5ae798022350"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Oct 18 16:21:54 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Oct 18 16:21:54 2013 -0700"
      },
      "message": "Fix the time unit tests for systems with 64-bit time_t.\n\nChange-Id: I29df50b25d022c1c00906e71b612defa58e46e81\n"
    },
    {
      "commit": "17558dec7fc60775c940be0e494b42829f35e0b1",
      "tree": "c50a149307b868b6f467ff2881650c86f9ed9c63",
      "parents": [
        "e3cc1555f6e478109cc3b648f41d4039efc0fdcc"
      ],
      "author": {
        "name": "Pavel Chupin",
        "email": "pavel.v.chupin@intel.com",
        "time": "Thu Oct 17 14:41:34 2013 +0400"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Oct 18 15:04:19 2013 -0700"
      },
      "message": "x86_64: Fix bionic tests build-and-run\n\nChange-Id: Iab48362893a212afbcbc362fdfaff5bfa5b55259\nSigned-off-by: Pavel Chupin \u003cpavel.v.chupin@intel.com\u003e\n"
    },
    {
      "commit": "925753aa1175ae58b24bbfe2d9e38eb4fe3f579d",
      "tree": "135216d664f4023020f12df45768f55dbfa399bf",
      "parents": [
        "e9797ac6756481c0c219eb6b99f9062fd6dfb770"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Oct 18 13:17:18 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Oct 18 13:17:18 2013 -0700"
      },
      "message": "Fix some test assumptions that are wrong for __LP64__.\n\nChange-Id: Ic79cd5858ceb611640a76bd03f3da4925d3150d9\n"
    },
    {
      "commit": "c7e9b2331771e5e87c34a8ee3dc6cc41d35b02fe",
      "tree": "c04816a58f739d9f76c12a0f5acf1676eed6c89c",
      "parents": [
        "f89f1eaa6071111c2ef584e97efb23f1b5dbdd2d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 16 22:27:54 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 17 11:36:55 2013 -0700"
      },
      "message": "Fix sigaction(3) for 64-bit.\n\nAlso clean up \u003csignal.h\u003e and revert the hacks that were necessary\nfor 64-bit in linker/debugger.cpp until now.\n\nChange-Id: I3b0554ca8a49ee1c97cda086ce2c1954ebc11892\n"
    },
    {
      "commit": "6b9321b85875dd8938d0a5064ea3e9fdebe5c623",
      "tree": "c2dad823a24f88f577021c14c75814fe2ee9384f",
      "parents": [
        "d5e5a6a3534884113e2fefcfa23567c592a82cc8",
        "d6e117b64bdfbf8d793eb59ea9604b806608ec75"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 16 16:09:42 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Oct 16 16:09:42 2013 -0700"
      },
      "message": "am d6e117b6: am 1f29c2f5: Merge \"Switch sigpending over to rt_sigpending.\"\n\n* commit \u0027d6e117b64bdfbf8d793eb59ea9604b806608ec75\u0027:\n  Switch sigpending over to rt_sigpending.\n"
    },
    {
      "commit": "40d105ccb3e6283566ce54b693b3088f31aa4f26",
      "tree": "8a406806f97d14f4d66589dd70ce1e589f779348",
      "parents": [
        "26242bf266fc7ee72a972ff0e4b12c024df4993c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 16 12:53:58 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 16 14:07:01 2013 -0700"
      },
      "message": "Switch sigpending over to rt_sigpending.\n\nChange-Id: I7b28984796b5fb343cfbcc47e0afc3a84293d417\n"
    },
    {
      "commit": "afaebc3fefe93cbfbaead60212dab7b99bae9d7a",
      "tree": "e264c4d226e7bcc55a472af7ff89990acbd4c0ac",
      "parents": [
        "f2a760dca7e728bd6f7942dece1bb6aefe4821ed",
        "87fc78de6c869d0403ccdd2e756ec1f5d456f3d3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 15 18:20:32 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Oct 15 18:20:32 2013 -0700"
      },
      "message": "am 87fc78de: am 608c65f6: Merge \"Fix sigsuspend to use rt_sigsuspend on all platforms.\"\n\n* commit \u002787fc78de6c869d0403ccdd2e756ec1f5d456f3d3\u0027:\n  Fix sigsuspend to use rt_sigsuspend on all platforms.\n"
    },
    {
      "commit": "1f5af926fa626734981d6b4dcc0ab54e520032a9",
      "tree": "ec2188086f5ed45089a46e2e36ecf442f477bb69",
      "parents": [
        "c100a10069a16eca57f5f9ab838ff98d7db6eb03"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 15 18:01:56 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 15 18:15:19 2013 -0700"
      },
      "message": "Fix sigsuspend to use rt_sigsuspend on all platforms.\n\nChange-Id: I981c1a66d35480d4457a0a08a1b042dac94daa5b\n"
    },
    {
      "commit": "4681f8244ee6fd3aec5a5c62e604e2a429d0d00f",
      "tree": "9dba7b4b5200fc205360607eb3ca8e852af14107",
      "parents": [
        "8161b236891de223b0ebe9b76db57147d50a20f5",
        "5b3f1d8b3a6a1caf059dc376e4967a27ddd57dac"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 15 14:16:02 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Oct 15 14:16:02 2013 -0700"
      },
      "message": "am 5b3f1d8b: am 22b83da4: Merge \"Clean up the sigprocmask/pthread_sigmask implementation.\"\n\n* commit \u00275b3f1d8b3a6a1caf059dc376e4967a27ddd57dac\u0027:\n  Clean up the sigprocmask/pthread_sigmask implementation.\n"
    },
    {
      "commit": "19e62325c268a668692e2b65fde2284079f369aa",
      "tree": "364b827a4b7504b5f00c18a2f1bafc5b7d1d83b8",
      "parents": [
        "abeafbd6d5e11044dd305e48134bc3d84319a3da"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 15 11:23:57 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 15 11:23:57 2013 -0700"
      },
      "message": "Clean up the sigprocmask/pthread_sigmask implementation.\n\nLet\u0027s have both use rt_sigprocmask, like in glibc. The 64-bit ABIs\ncan share the same code as the 32-bit ABIs.\n\nAlso, let\u0027s test the return side of these calls, not just the\nsetting.\n\nBug: 11069919\nChange-Id: I11da99f85b5b481870943c520d05ec929b15eddb\n"
    },
    {
      "commit": "8161b236891de223b0ebe9b76db57147d50a20f5",
      "tree": "73f0df9d0d368ab5ac9a150611d78ac93676a5f3",
      "parents": [
        "78f6db64fe90e45f1cdb649543feb2d92696802a",
        "4691325d48406033632fe84a944ac9c3bd2e5097"
      ],
      "author": {
        "name": "Stephen Hines",
        "email": "srhines@google.com",
        "time": "Fri Oct 11 16:33:07 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 11 16:33:07 2013 -0700"
      },
      "message": "am 4691325d: am abeafbd6: Merge \"Wrap sprintf()/snprintf() macros to prevent expansion errors.\"\n\n* commit \u00274691325d48406033632fe84a944ac9c3bd2e5097\u0027:\n  Wrap sprintf()/snprintf() macros to prevent expansion errors.\n"
    },
    {
      "commit": "78f6db64fe90e45f1cdb649543feb2d92696802a",
      "tree": "572f4f617f44405ca855d713a5728a4d3366dd7c",
      "parents": [
        "49bb53c8e20ff37a1965ba4af645464ea4b8f8fa",
        "36959302a334499c7d2ddf4a090e2ab7e3a8ae1d"
      ],
      "author": {
        "name": "Stephen Hines",
        "email": "srhines@google.com",
        "time": "Fri Oct 11 16:33:03 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 11 16:33:03 2013 -0700"
      },
      "message": "am 36959302: am 8704ada3: Merge \"Fix clang warnings in bionic.\"\n\n* commit \u002736959302a334499c7d2ddf4a090e2ab7e3a8ae1d\u0027:\n  Fix clang warnings in bionic.\n"
    },
    {
      "commit": "abeafbd6d5e11044dd305e48134bc3d84319a3da",
      "tree": "c0e6452c976d21af6255aa817d5154deab0e7ddc",
      "parents": [
        "8704ada3d8fae067ed48c2b6da5a1ba4ab062e1a",
        "6e38072addd556e3894284b5bd040ac64fffa72e"
      ],
      "author": {
        "name": "Stephen Hines",
        "email": "srhines@google.com",
        "time": "Fri Oct 11 23:28:31 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 11 23:28:32 2013 +0000"
      },
      "message": "Merge \"Wrap sprintf()/snprintf() macros to prevent expansion errors.\""
    },
    {
      "commit": "6c7b3cb056509fd8756bc012878a499f6f102114",
      "tree": "1a3c40a59049e259c3c5c226d4f1359089f6f8ca",
      "parents": [
        "eda2679e30b997d036e0ec572cda054adc2ac3a6"
      ],
      "author": {
        "name": "Stephen Hines",
        "email": "srhines@google.com",
        "time": "Fri Oct 11 16:03:21 2013 -0700"
      },
      "committer": {
        "name": "Stephen Hines",
        "email": "srhines@google.com",
        "time": "Fri Oct 11 16:20:08 2013 -0700"
      },
      "message": "Fix clang warnings in bionic.\n\nThis fixes a few diverse issues that clang warns on in bionic. First,\nit specifies the appropriate converted types for format specifiers.\nThe \"h\" and \"hh\" modifiers specify that the user is passing a short or\nchar respectively. We were passing int deliberately in both cases and\nrelying on the compiler to implicitly downcast to the smaller type.\nWe also remove the non-standard \"d\" suffix from our double-precision\nfloating point constant. This is an extension for gcc that clang does\nnot implement. The third fix is to mark the c1 variable as unused,\nsince it truly is neither read nor written.\n\nChange-Id: I4793352b9d3e58f1f4cac9e7581ef4b2a70b43c7\n"
    },
    {
      "commit": "6e38072addd556e3894284b5bd040ac64fffa72e",
      "tree": "e13c1bf92ae30ecd9050b1d519cfd24831442ddf",
      "parents": [
        "eda2679e30b997d036e0ec572cda054adc2ac3a6"
      ],
      "author": {
        "name": "Stephen Hines",
        "email": "srhines@google.com",
        "time": "Fri Oct 11 00:45:24 2013 -0700"
      },
      "committer": {
        "name": "Stephen Hines",
        "email": "srhines@google.com",
        "time": "Fri Oct 11 12:14:49 2013 -0700"
      },
      "message": "Wrap sprintf()/snprintf() macros to prevent expansion errors.\n\nPreviously, FORTIFY_SOURCE used single macros to define these standard\nfunctions for use with clang. This can cause conflicts with other macros used\nto call these functions, particularly when those macros expand the number of\narguments to the function. This change wraps our macro definitions, so that\nexpansion properly takes place for programmer arguments first.\n\nChange-Id: I55929b1fd2a643b9d14a17631c4bcab3b0b712cf\n"
    },
    {
      "commit": "49bb53c8e20ff37a1965ba4af645464ea4b8f8fa",
      "tree": "bbabc527d35677ed80010a40a655ced71e6c00f4",
      "parents": [
        "2d38f0c1c7ccb123a9a71dcabeb3650d8f5832b7",
        "95de0df8c2daeefca358010f2d15c3346a5284f1"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Oct 09 21:28:52 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Oct 09 21:28:52 2013 -0700"
      },
      "message": "am 95de0df8: am eda2679e: Merge \"FORTIFY_SOURCE: fortify read()\"\n\n* commit \u002795de0df8c2daeefca358010f2d15c3346a5284f1\u0027:\n  FORTIFY_SOURCE: fortify read()\n"
    },
    {
      "commit": "b036b5ca36c1e12b075909b3eca6eab73ee611cf",
      "tree": "c3c2056a4e3868618d473047b2519aa91c3233c2",
      "parents": [
        "92f3cc50c8d884d1eb3496ebfba7d3916fc711e8"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Oct 09 20:16:34 2013 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Oct 09 20:17:03 2013 -0700"
      },
      "message": "FORTIFY_SOURCE: fortify read()\n\nChange-Id: Ic7de163fe121db13e00560adb257331bc709814d\n"
    },
    {
      "commit": "b8771d9fd844fd28b6e5e6fe429ef40c097b32a6",
      "tree": "edaea3a8b60b24c405ea01e897fb3ca84cc848e3",
      "parents": [
        "41f56e29c789aa563821715e2f3e5b9d83974280",
        "b35ebe3d7097899fd4498ebb2b93e48fd836ebcf"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Oct 09 16:53:05 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Oct 09 16:53:05 2013 -0700"
      },
      "message": "am b35ebe3d: am 848efa9d: Merge \"Revert \"FORTIFY_SOURCE: fortify read()\"\"\n\n* commit \u0027b35ebe3d7097899fd4498ebb2b93e48fd836ebcf\u0027:\n  Revert \"FORTIFY_SOURCE: fortify read()\"\n"
    },
    {
      "commit": "8d2532763981d132b02df157e4cc363c39330090",
      "tree": "371945ae89af3fa167593a3a07f33862c3698ffe",
      "parents": [
        "777ebe86677f6fd88c87995652146b2ead19a95f"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Oct 09 16:44:30 2013 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Oct 09 16:46:25 2013 -0700"
      },
      "message": "Revert \"FORTIFY_SOURCE: fortify read()\"\n\nThis change reverts\n* fb3f956d075676c0438f2ee2bf3a5be659dfc04b.\n* 65c99de2cb7a569ea17ca35e2f8f1e033421864b\n\nChange-Id: Id5774eeede41130579115cf67a72ee914f2b47d5\n"
    },
    {
      "commit": "45e3076cdc03efe7d37178fbd4366d5632d50cba",
      "tree": "7dd634389fcb412f0cf156e438a765691b6aab3a",
      "parents": [
        "ac045c32d067d61cb48370eaa10118e827ebf586",
        "731ced6b289629a552b5841561fdcccf08d8c43a"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Oct 09 16:32:25 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Oct 09 16:32:25 2013 -0700"
      },
      "message": "am 731ced6b: am c147478c: Merge \"FORTIFY_SOURCE: fortify read()\"\n\n* commit \u0027731ced6b289629a552b5841561fdcccf08d8c43a\u0027:\n  FORTIFY_SOURCE: fortify read()\n"
    },
    {
      "commit": "65c99de2cb7a569ea17ca35e2f8f1e033421864b",
      "tree": "ed12e2385af1f3a3fc350805f19b7c2948443374",
      "parents": [
        "777a4ee6771e6fe3362ef4f24244a44fcd0aabe4"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Oct 09 13:44:38 2013 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Oct 09 13:44:38 2013 -0700"
      },
      "message": "FORTIFY_SOURCE: fortify read()\n\nChange-Id: I3d7b4ec86d04efb865117ce7629a2e26917f3331\n"
    },
    {
      "commit": "6f103689268a8f6c6177b9c17d72436776a27b22",
      "tree": "75601ea885d25ac1acf6f26751961a4cfa5a79bc",
      "parents": [
        "1a086a52d30930893bfc6b2826127120f6482bec",
        "2e819c58c9396eec3e4311ef2c9bdcadd107f001"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Oct 03 15:57:09 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Oct 03 15:57:09 2013 -0700"
      },
      "message": "am 2e819c58: am 2ff3c746: Merge \"Check memory size on FD_* functions\"\n\n* commit \u00272e819c58c9396eec3e4311ef2c9bdcadd107f001\u0027:\n  Check memory size on FD_* functions\n"
    },
    {
      "commit": "7943df62f70f686b0c77532f6617b47255d75763",
      "tree": "13dfe2af815383802fe91f3192f4573ac13eb210",
      "parents": [
        "6088047a64abb1e8a27fcb9868b00a630fbdfed4"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Oct 03 14:08:39 2013 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Oct 03 15:45:10 2013 -0700"
      },
      "message": "Check memory size on FD_* functions\n\nMake sure the buffer we\u0027re dealing with has enough room.\nMight as well check for memory issues while we\u0027re here,\neven though I don\u0027t imagine they\u0027ll happen in practice.\n\nChange-Id: I0ae1f0f06aca9ceb91e58c70183bb14e275b92b5\n"
    },
    {
      "commit": "fa9fb5cb01986ac77ea4f7c54b2f419ac47989d3",
      "tree": "f2d4221bcafdc1779bb8a55e34a19900920af0a7",
      "parents": [
        "b8b8b6dc2e602b153837a85ebc59814ecfbed018",
        "2a3d760e0fc0cbd2cac03754949457c062ced5f5"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 02 21:04:32 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Oct 02 21:04:32 2013 -0700"
      },
      "message": "am 2a3d760e: am 00a816e5: Merge \"Fix 32-bit issues in tests, and add a trivial test for the FD_* macros.\"\n\n* commit \u00272a3d760e0fc0cbd2cac03754949457c062ced5f5\u0027:\n  Fix 32-bit issues in tests, and add a trivial test for the FD_* macros.\n"
    },
    {
      "commit": "5b9310e502003e584bcb3a028ca3db7aa4d3f01b",
      "tree": "5747ee180ec0d5c352758125487a2815d4eb3716",
      "parents": [
        "f741e1c2ed27f153e92a2a36c9db3b189f9a6388"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 02 16:59:05 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 02 16:59:05 2013 -0700"
      },
      "message": "Fix 32-bit issues in tests, and add a trivial test for the FD_* macros.\n\nChange-Id: Ia3f21ce1f0ed9236527fe44d36ccb7de6bf63113\n"
    },
    {
      "commit": "5634373320d7dac30fa68feeb4d3b883566461ac",
      "tree": "956ef08331faeca2bf7c71823b48cbf006a0a637",
      "parents": [
        "a6d4acc9f957a1d079e646a3bb6ee4a6504b6220",
        "8598cd6888366008033286113bd633b44c70b7dd"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Oct 02 16:30:51 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Oct 02 16:30:51 2013 -0700"
      },
      "message": "am 8598cd68: am f741e1c2: Merge \"FORTIFY_SOURCE: Add __FD_* checks\"\n\n* commit \u00278598cd6888366008033286113bd633b44c70b7dd\u0027:\n  FORTIFY_SOURCE: Add __FD_* checks\n"
    },
    {
      "commit": "90201d5eca050414d50a433866ccb580415bb0d4",
      "tree": "5d4f66ab3b47c32b1633eeb61d900223f79b0747",
      "parents": [
        "32c0c6e7d56ea2fad0a362f37bb84937b82c3be2"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Oct 02 16:11:30 2013 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Oct 02 16:11:30 2013 -0700"
      },
      "message": "FORTIFY_SOURCE: Add __FD_* checks\n\nAdd FORTIFY_SOURCE checks for the following macros:\n\n* FD_CLR\n* FD_ISSET\n* FD_SET\n\nBug: 11047121\nChange-Id: I3c5952136aec9eff3288b91b1318677ff971525c\n"
    }
  ],
  "next": "944ce989f8d9c4fa1c8211ac5aa46693346e1fe0"
}
