)]}'
{
  "log": [
    {
      "commit": "bc9f9f25bf1247a6a638a2a2df8441bdd9fabad7",
      "tree": "17328616c29a98aa2eb16b6cb3a7b7b1c93c0322",
      "parents": [
        "3788a1ee8eae4180117010bb9302334acfe1d218"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Aug 08 15:19:20 2014 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Aug 08 15:35:47 2014 -0700"
      },
      "message": "Make __set_errno hidden in asm.\n\nThis fixes the build after the -Bsymbolic change.\n\nBug: 16853291\nChange-Id: I989c9fec3c32e0289ea257a3bd2b7fd2709b6ce2\n"
    },
    {
      "commit": "6a918870bab1a55a5f57dd7954abd9a8a27c1bc2",
      "tree": "fa02049d5e70ded2d921311a4aa1b0af09bf22bf",
      "parents": [
        "447fe1c23bc5adaded9a51d3b58f3adaf2cce7b3"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Aug 05 20:53:31 2014 +0000"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Aug 05 14:11:38 2014 -0700"
      },
      "message": "Revert \"Replaces vfork() implementation with fork()\"\n\nWe\u0027re getting cold feet on this one... let\u0027s put it back.\n\nThis reverts commit 210331d9762037afb9b5ed8413079c6f65872df9.\n\nChange-Id: I6b0d3c2b1dbf7f1dc9566979a91b7504c2189269\n"
    },
    {
      "commit": "79310994d2b3826a10598f7e7795acb5edb42a20",
      "tree": "34a7eec7841aaf4dc12eb33fe6309d078f672819",
      "parents": [
        "c7706a02ad90ab73f3a056040d2c4a3464ab1ab1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 30 15:05:09 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 30 15:19:29 2014 -0700"
      },
      "message": "Implement \u003csys/fsuid.h\u003e.\n\nChange-Id: I1e5e50444a1b5a430ba5b5d9b8b1d91219af5e92\n"
    },
    {
      "commit": "c7706a02ad90ab73f3a056040d2c4a3464ab1ab1",
      "tree": "177c6035b2ef52cb779fb38f1688e74f6dfd0002",
      "parents": [
        "18a1bbe6e18770694d489f2e140e779dc59fde86",
        "bc5a3ec6df66d2456667ddf1d6dfaf623552169d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 30 22:15:43 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jul 29 21:36:05 2014 +0000"
      },
      "message": "Merge \"[MIPSR6] Use C-coded string ops on mips32r6/mips64r6\""
    },
    {
      "commit": "bc5a3ec6df66d2456667ddf1d6dfaf623552169d",
      "tree": "2f51584e75c74e72638ed319fa198bcd717a2075",
      "parents": [
        "4d421901e587fd1563da94baf59b015017c01b91"
      ],
      "author": {
        "name": "Duane Sand",
        "email": "duane.sand@imgtec.com",
        "time": "Thu Jul 10 15:24:27 2014 -0700"
      },
      "committer": {
        "name": "Duane Sand",
        "email": "duane.sand@imgtec.com",
        "time": "Wed Jul 23 14:00:21 2014 -0700"
      },
      "message": "[MIPSR6] Use C-coded string ops on mips32r6/mips64r6\n\nThe existing assembler code uses deprecated lwl/lwr/swl/swr ops.\nReplacing those with misalignment-forgiving lw/sw ops may\ninvolve careful performance tuning.\n\nChange-Id: I47a042f7b22b87d7d52e46c29c44b1db1ba8b693\n"
    },
    {
      "commit": "ba23bd0a409bb0e43c57dabee96b2ae52481d5b7",
      "tree": "28aee3c30260e7386ab212e9dacf335797d93ab4",
      "parents": [
        "7d22a4519610f830178bbff32d961a2784354397"
      ],
      "author": {
        "name": "Duane Sand",
        "email": "duane.sand@imgtec.com",
        "time": "Thu Jul 24 10:56:54 2014 -0700"
      },
      "committer": {
        "name": "Duane Sand",
        "email": "duane.sand@imgtec.com",
        "time": "Thu Jul 24 18:04:21 2014 +0000"
      },
      "message": "[MIPS] Drop soft-fp targets\n\nChange-Id: I583bf8242d3034ebfc48548499cdb3316094c8e3\n"
    },
    {
      "commit": "7d22a4519610f830178bbff32d961a2784354397",
      "tree": "3cd58468d9463b71076fda0b70aacff9786a9f66",
      "parents": [
        "f9650757493060d950cc28c5a58acdcdd41f02e9",
        "dd37251c473e1483faba0fd5aaf30e7a55582e8a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jul 24 03:57:12 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jul 23 18:45:08 2014 +0000"
      },
      "message": "Merge \"[MIPSR6] setjmp supports mips32r6 and FP64A/FPXX reg models\""
    },
    {
      "commit": "dd37251c473e1483faba0fd5aaf30e7a55582e8a",
      "tree": "e944658c6ea3eafc732d7362dae7e8ce49206137",
      "parents": [
        "4d421901e587fd1563da94baf59b015017c01b91"
      ],
      "author": {
        "name": "Duane Sand",
        "email": "duane.sand@imgtec.com",
        "time": "Mon Jul 14 15:30:14 2014 -0700"
      },
      "committer": {
        "name": "Duane Sand",
        "email": "duane.sand@imgtec.com",
        "time": "Wed Jul 23 13:57:30 2014 -0700"
      },
      "message": "[MIPSR6] setjmp supports mips32r6 and FP64A/FPXX reg models\n\nSave and restore floating point registers via 64-bit\nload/stores when possible.  Use assembler\u0027s builtin macro\nops to generate pairs of 32-bit load/stores on Mips I cpus.\n\nSome cpus or FR modes have only 16 even-numbered dp fp regs.\nThis is exposed by _MIPS_FPSET, defined by existing compilers.\n\nChange-Id: I7f617a3ffea8da41c402ef3a68ab32c91d3d7622\n"
    },
    {
      "commit": "f541650828f75b3dab22c9c0caab845be78b80fc",
      "tree": "d437c324bf4f5d3f5477e76afc89ab78df0b0f00",
      "parents": [
        "4d421901e587fd1563da94baf59b015017c01b91"
      ],
      "author": {
        "name": "Duane Sand",
        "email": "duane.sand@imgtec.com",
        "time": "Wed Jul 16 12:29:34 2014 -0700"
      },
      "committer": {
        "name": "Duane Sand",
        "email": "duane.sand@imgtec.com",
        "time": "Tue Jul 22 14:27:48 2014 -0700"
      },
      "message": "[MIPS] Allow united mipsel and mips64el gcc toolchain\n\nExplicitly tell 32-bit links that they are doing 32-bit links.\nThis is needed when using united 32-bit and 64-bit toolchains.\nThis is harmless when using older separate 32-only toolchains.\n\nChange-Id: I70cbd3f5867e59b1f6f829793444242fb0894aa6\n"
    },
    {
      "commit": "3f525d41c2acde2ae3309cf839d83d7f41ab2fe6",
      "tree": "572f2b5a63ffbbec084c9f048f396856c228b9b0",
      "parents": [
        "52f9b051c8bcb3d723b023a74d7d89ee45cf754c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jun 24 16:32:01 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jun 24 19:03:31 2014 -0700"
      },
      "message": "Add splice, tee, and vmsplice.\n\nChange-Id: I5f43380b88d776a8bb607b47dbbc5db5a2fe6163\n"
    },
    {
      "commit": "0d7415fb225573c37ff9e880957cd2044dd658ce",
      "tree": "68252d281005257fa0e1664fa095e9eb1e11844d",
      "parents": [
        "ac86f99405707aa099e11d97cd68bfe011cf7a32",
        "c82c0b7e072491da4818e7de37411fbb2055fce1"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Sat Jun 21 04:43:24 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 20 20:43:43 2014 +0000"
      },
      "message": "Merge \"Remove SHA1 from LP64 in favor of libcrypto.\""
    },
    {
      "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": "c82c0b7e072491da4818e7de37411fbb2055fce1",
      "tree": "52915af97820de3316dab31073920c141ad861a3",
      "parents": [
        "a217a0cdb3ff78f6b59d64fd4356f87643ad9d1e"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon Jun 16 16:52:27 2014 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon Jun 16 16:52:27 2014 -0700"
      },
      "message": "Remove SHA1 from LP64 in favor of libcrypto.\n\nKeep the symbols around on LP32 for binary compatibility.\n\nBug: 11156955\nChange-Id: I379a7e0fa3092e9a70daeafcbcb2aacfc314031a\n"
    },
    {
      "commit": "891dedb935b50f1abb39eedfe33049a1e49283cb",
      "tree": "8066a42ec9e07537607254deb91195fb9d102a88",
      "parents": [
        "4fb0d4fb312ed696081200e65ce9bf643928e5e6"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Fri Jun 13 12:28:11 2014 +0200"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon Jun 16 13:10:20 2014 -0700"
      },
      "message": "libc: Fix \u0027index\u0027 symbol export.\n\nThe C library didn\u0027t export the \u0027index\u0027 symbol, but its C++ name-mangling\ninstead, which broke the ABI and prevented some applications from loading\nproperly.\n\nThe main reason was that the implementation under bionic/index.cpp relied\non the declaration to specify that the function has C linkage.\n\nHowever, the declaration for index() was removed from both \u003cstring.h\u003e\nand \u003cstrings.h\u003e in a recent patch, which made the compiler think it was\nok to compile the function with C++ linkage instead!\n\nThis patch does the following:\n\n- Move index() definition to bionic/ndk_cruft.cpp and ensure it uses\n  C linkage.\n\n  Note that this removes index() from the 64-bit library entirely, this\n  is intentional and will break source compatibility. Simply replacing\n  an index() call with the equivalent strchr() should be enough to fix\n  this in third-party code.\n\n- Remove bionic/index.cpp from the tree and build files.\n\n- Remove x86 assembly implementation from arch-x86/ to avoid conflict\n  with the one in ndk_cruft.cpp\n\nBUG\u003d15606653\n\nChange-Id: I816b589f69c8f8a6511f6be6195d20cf1c4e8123\n"
    },
    {
      "commit": "f87ac523a1aa02490d67330e74180c8ac2d78420",
      "tree": "f5014b39b280e71e6012528f998b372e32120d7f",
      "parents": [
        "1e7ae47d40aad100fa16731418ac8af7b9919da7",
        "607341e226912d95d03216483bdcef6f8d96f8b4"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Jun 13 20:52:56 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jun 12 03:32:07 2014 +0000"
      },
      "message": "Merge \"Remove ioprio_get(2) and ioprio_set(2) from LP64.\""
    },
    {
      "commit": "607341e226912d95d03216483bdcef6f8d96f8b4",
      "tree": "3de470c4d40cfab0d173b633929f7b14ddbe8ff9",
      "parents": [
        "346fa721ca20e481a624930425d823d452e11dfe"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Jun 12 18:02:48 2014 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Jun 12 18:10:13 2014 -0700"
      },
      "message": "Remove ioprio_get(2) and ioprio_set(2) from LP64.\n\nBug: 11156955\nChange-Id: I07b596d85e4bd6347d488d1a92c8d0a00b5ef3b3\n"
    },
    {
      "commit": "24614b4729a4c8665193f5793b93019b37f779b1",
      "tree": "52631806852b1c584e50f04981e1f64d99106d3f",
      "parents": [
        "346fa721ca20e481a624930425d823d452e11dfe"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jun 12 15:35:22 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jun 12 15:35:22 2014 -0700"
      },
      "message": "Remove __memcmp16 from bionic.\n\nChange-Id: I2486d667d96c8900dd368d855f37c1327161efb7\n"
    },
    {
      "commit": "8e613cf342b369f7985135dbe11ebdbf8c736157",
      "tree": "729d925aaeff9b92b7bb09c9385e90069b400c2c",
      "parents": [
        "440bd6bcc308f78b32fcbc4a3ba312dd1343559b"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed Jun 11 14:17:35 2014 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed Jun 11 14:41:45 2014 -0700"
      },
      "message": "Remove declaration for putw(3)/getw(3).\n\nThese were both removed from POSIX 2004, and we don\u0027t define an\nimplementation for getw(3). Keep the definition of put(3) on LP32 for\nbinary compatibility.\n\nBug: 13935372\nChange-Id: Iba384b45093ac6d2d7c2d81f7980cd7701dd6f56\n"
    },
    {
      "commit": "440bd6bcc308f78b32fcbc4a3ba312dd1343559b",
      "tree": "bc8398b92bb63a367ab8bc0c71f48cc6ed5aefa4",
      "parents": [
        "0ada9388e74693d990bdbb4af92c33bae8b34d4b",
        "210331d9762037afb9b5ed8413079c6f65872df9"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed Jun 11 16:59:53 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jun 10 22:08:45 2014 +0000"
      },
      "message": "Merge \"Replaces vfork() implementation with fork()\""
    },
    {
      "commit": "210331d9762037afb9b5ed8413079c6f65872df9",
      "tree": "85e6c875bcd65741da38a7d2b6a47cc24440d8b4",
      "parents": [
        "e2a54ca80e011db21665e9639af4608f58e32fbd"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Jun 05 18:07:03 2014 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Jun 10 21:38:52 2014 -0700"
      },
      "message": "Replaces vfork() implementation with fork()\n\nvfork() was removed from POSIX 2008, so this replaces its implementation\nwith a call to fork().\n\nBug: 13935372\nChange-Id: I6d99ac9e52a2efc5ee9bda1cab908774b830cedc\n"
    },
    {
      "commit": "1c60f8080acaf0f1794689886e94e54d15d43a7b",
      "tree": "1a33f54a268b06c93059ccb6a1c756bd5a160c53",
      "parents": [
        "087b3cfa5b56c2e4a29cca225fdb1956033868ac",
        "ebc8cd117a562f387c52ed4e1aeba0fb21f33194"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jun 06 22:24:44 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 06 22:24:44 2014 +0000"
      },
      "message": "Merge \"Rename __bionic_clone_entry to __start_thread.\""
    },
    {
      "commit": "ebc8cd117a562f387c52ed4e1aeba0fb21f33194",
      "tree": "f271f020ad489e0c6dddb6c2f4135963f8bec9bd",
      "parents": [
        "b837767a63dfc65653448cf732090d7d0b270080"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jun 06 15:18:54 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jun 06 15:18:54 2014 -0700"
      },
      "message": "Rename __bionic_clone_entry to __start_thread.\n\nThis seems a bit less obscure.\n\nChange-Id: I7dc528c253b73c861694f67556ad8f919bf92136\n"
    },
    {
      "commit": "3d5cb30d23cfc6a72f01c00246e69a2c614c8228",
      "tree": "25e525111f2e2181c6544e96eebc4ce6ec11777e",
      "parents": [
        "c3bdc792be78d788663ff9b5e019b4af852dc6f7"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jun 06 11:44:55 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jun 06 15:05:58 2014 -0700"
      },
      "message": "Remove getdents from bionic.\n\nBug: 11156955\nChange-Id: I6c306989801be552d85fba8a50dcdc79282fb9d2\n"
    },
    {
      "commit": "5d9a7ba0dc9c24ed4e4efa9cac0e796fd524b308",
      "tree": "4674df3b5064cb38211453b6e887c364f0c66f05",
      "parents": [
        "831405b749d15a11fb947a40d61fd858e952d860"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri May 30 19:00:03 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jun 02 10:32:55 2014 -0700"
      },
      "message": "Avoid a system call in \u0027gettid\u0027.\n\nSystem calls can be pretty slow. This is mako, which has one of our\nlowest latencies:\n\n                       iterations      ns/op\n  BM_unistd_getpid       10000000        209\n  BM_unistd_gettid      200000000          8\n\nBug: 15297299 (kernel panic from too many gettid calls)\nBug: 15315766 (excessive gettid overhead in liblogd)\nChange-Id: I49656c0fc5b5d092390264a59e4f2c0d8a8b1aeb\n"
    },
    {
      "commit": "fae42a837ae7f880de9561c7b3c2b18e4a531e90",
      "tree": "9ded88c4807f1c040ccc7f8baf8e970ac374c18c",
      "parents": [
        "32c8ae9de0e51ac64efcfd2e5da34382deee959e",
        "b30aff405a220495941f1673b0a5e66c4fa8b84c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 29 03:13:23 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu May 29 03:13:23 2014 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Lose the hand-written futex assembler.\"\"\""
    },
    {
      "commit": "b30aff405a220495941f1673b0a5e66c4fa8b84c",
      "tree": "3bf667c009cf468c040ccaae6e81d468b4fd0254",
      "parents": [
        "52f74322b1d72d57146107f32ee2c76c421bf4b1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 28 19:35:33 2014 +0000"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 28 18:31:15 2014 -0700"
      },
      "message": "Revert \"Revert \"Lose the hand-written futex assembler.\"\"\n\nThe problem with the original patch was that using syscall(3) means that\nerrno can be set, but pthread_create(3) was abusing the TLS errno slot as\na pthread_mutex_t for the thread startup handshake.\n\nThere was also a mistake in the check for syscall failures --- it should\nhave checked against -1 instead of 0 (not just because that\u0027s the default\nidiom, but also here because futex(2) can legitimately return values \u003e 0).\n\nThis patch stops abusing the TLS errno slot and adds a pthread_mutex_t to\npthread_internal_t instead. (Note that for LP64 sizeof(pthread_mutex_t) \u003e\nsizeof(uintptr_t), so we could potentially clobber other TLS slots too.)\n\nI\u0027ve also rewritten the LP32 compatibility stubs to directly reuse the\ncode from the .h file.\n\nThis reverts commit 75c55ff84ebfa686c7ae2cc8ee431c6a33bd46b4.\n\nBug: 15195455\nChange-Id: I6ffb13e5cf6a35d8f59f692d94192aae9ab4593d\n"
    },
    {
      "commit": "8a405b027a9c8b3a614016f4824a03fa252e9e1e",
      "tree": "6477f0c0bc3bab543583bc4df2f6a2e2c69a599d",
      "parents": [
        "52f74322b1d72d57146107f32ee2c76c421bf4b1",
        "6f2bde344123d8503cd60f3ecd3420f39aa24eb9"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed May 28 21:35:04 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 28 21:35:04 2014 +0000"
      },
      "message": "Merge \"Add optimized AArch64 versions of bcopy and wmemmove based on memmove\""
    },
    {
      "commit": "52f74322b1d72d57146107f32ee2c76c421bf4b1",
      "tree": "7e0a5dde316d082a56bfcd95fc12737336e7bec1",
      "parents": [
        "53e70fe30646453a5deba0730337cb9674cd6fc8",
        "75c55ff84ebfa686c7ae2cc8ee431c6a33bd46b4"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed May 28 18:04:26 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 28 18:04:26 2014 +0000"
      },
      "message": "Merge \"Revert \"Lose the hand-written futex assembler.\"\""
    },
    {
      "commit": "75c55ff84ebfa686c7ae2cc8ee431c6a33bd46b4",
      "tree": "17a0bb533344ff11f7401dba76d950b71c7bd1b1",
      "parents": [
        "ced906c849704f379d7191822f6d74993d4fa296"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed May 28 18:02:33 2014 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed May 28 18:03:01 2014 +0000"
      },
      "message": "Revert \"Lose the hand-written futex assembler.\"\n\nThis reverts commit ced906c849704f379d7191822f6d74993d4fa296.\n\nCauses issues on art / dalvik due to a broken return value\ncheck and other undiagnosed issues.\n\nbug: 15195455\n\nChange-Id: I5d6bbb389ecefb0e33a5237421a9d56d32a9317c"
    },
    {
      "commit": "e7dccdf683616347a8fa65aba02ee3e12babbcf4",
      "tree": "253b37e25ec6dda5398244727b8872f6043d6c97",
      "parents": [
        "1c4d83012fea4e6d011215bef1665cf68d2ac47c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue May 27 15:47:32 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue May 27 15:49:51 2014 -0700"
      },
      "message": "Clear the return address register in __bionic_clone.\n\nThe unwinder will end up on the parent thread\u0027s stack if the return\naddress register is not cleared.\n\nBug: 14270816\nBug: 15195760\nChange-Id: Iebcdf5cc881cad245643bb193760de35eb7f8b19\n"
    },
    {
      "commit": "6f2bde344123d8503cd60f3ecd3420f39aa24eb9",
      "tree": "fd32dfb0c313a1d852c37450ad22bab1d232c951",
      "parents": [
        "1c4d83012fea4e6d011215bef1665cf68d2ac47c"
      ],
      "author": {
        "name": "Bernhard Rosenkraenzer",
        "email": "Bernhard.Rosenkranzer@linaro.org",
        "time": "Fri May 23 17:44:18 2014 +0200"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri May 23 18:49:57 2014 -0700"
      },
      "message": "Add optimized AArch64 versions of bcopy and wmemmove based on memmove\n\nAdd optimized versions of bcopy and wmemmove for AArch64 based on the\nmemmove implementation\n\nChange-Id: I82fbe8a7221ce224c567ffcfed7a94a53640fca8\nSigned-off-by: Bernhard Rosenkraenzer \u003cBernhard.Rosenkranzer@linaro.org\u003e\n"
    },
    {
      "commit": "fd0ce866ce46ed62aa17dc2959a085cb3bf5755d",
      "tree": "62e5d2aa5516f7cd82d804b7105288ede6897de2",
      "parents": [
        "8167dd7cb98e87ffe9b40e4993c330b244ca2234"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Sat May 24 01:02:22 2014 +0000"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Sat May 24 01:02:22 2014 +0000"
      },
      "message": "Revert \"Add optimized AArch64 versions of bcopy and wmemmove based on memmove\"\n\nThis reverts commit 8167dd7cb98e87ffe9b40e4993c330b244ca2234.\n\nFor some reason I thought the bcopy change was bzero. The bcopy code doesn\u0027t pass our tests, so reverting until I can figure out what\u0027s wrong.\n\nChange-Id: Id89fe959ea5105cd58dff6bba8d91a30cc4bcb07\n"
    },
    {
      "commit": "8167dd7cb98e87ffe9b40e4993c330b244ca2234",
      "tree": "8800a876d9c8866a1e76f890254d7a22d8281bfb",
      "parents": [
        "a486632e789c6db4c35f969485ebb57f503bcf48"
      ],
      "author": {
        "name": "Bernhard Rosenkraenzer",
        "email": "Bernhard.Rosenkranzer@linaro.org",
        "time": "Fri May 23 17:44:18 2014 +0200"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri May 23 17:54:08 2014 -0700"
      },
      "message": "Add optimized AArch64 versions of bcopy and wmemmove based on memmove\n\nAdd optimized versions of bcopy and wmemmove for AArch64 based on the\nmemmove implementation\n\nChange-Id: Ie43d0ff4f8ec4edba5b4fb5ccacd941f81ac6557\nSigned-off-by: Bernhard Rosenkraenzer \u003cBernhard.Rosenkranzer@linaro.org\u003e\n"
    },
    {
      "commit": "ced906c849704f379d7191822f6d74993d4fa296",
      "tree": "3bac511fef3da9b482019edced149a849a541fbc",
      "parents": [
        "ea7dc32080114af59789c119ca6aa4814426ea42"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 22 19:49:11 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 22 19:49:11 2014 -0700"
      },
      "message": "Lose the hand-written futex assembler.\n\nAlso stop exporting \u0027futex\u0027.\n\nBug: 12250341\nChange-Id: Icc4fa4296cd04dfe0d1061822c69e2eb40c3433a\n"
    },
    {
      "commit": "6e599a904b1f033cfaf79febff686f6296089a7d",
      "tree": "9a76b32c875febf25ad2d93d0a4c8e98e8c13ca9",
      "parents": [
        "4f6ed4a10951cbd868fec1b0117a276918c60fa1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 22 13:40:49 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 22 13:41:36 2014 -0700"
      },
      "message": "Remove the tkill(2) stub.\n\nglibc doesn\u0027t have tkill or tgkill and says \"use syscall(3) instead\".\nI\u0027ve left tgkill since it\u0027s quite widely used, but there\u0027s no reason\nto have tkill as well.\n\nBug: 11156955\nChange-Id: Ifc0af750320086f829bc9914551c172b501f3b60\n"
    },
    {
      "commit": "d5ed63a6a8290de88802172ce178656fbafe70c6",
      "tree": "97bb7a00c975041f6e297fe7ff53a8b116f405bf",
      "parents": [
        "f97d8713a265f44279819ba6b245dd81aada34da"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 21 18:27:40 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 21 18:30:00 2014 -0700"
      },
      "message": "Hide most of the private futex functions.\n\nAlso hide part of the system properties compatibility code, since\nwe needed to touch that to keep it building.\n\nI\u0027ll remove __futex_syscall4 and futex in a later patch.\n\nBug: 11156955\nChange-Id: Ibbf42414c5bb07fb9f1c4a169922844778e4eeae\n"
    },
    {
      "commit": "c1b7f44c13fbcbab3faaa8e11d3a459ebc11bfe5",
      "tree": "5721a9d70c44d69edba76775e71cca12070021b1",
      "parents": [
        "daf6912838dd27e3c064c4e7df98b6165549af82",
        "46a55a4478db9e335bdc7f73ee2cf3a66fe673fd"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 21 18:07:04 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 21 18:07:05 2014 +0000"
      },
      "message": "Merge \"Remove __syslog; we have the public klogctl API.\""
    },
    {
      "commit": "9f0a52e4e5afc20a61230e6cbfe735606bff7e0c",
      "tree": "82e2ccc566299f9bf290b42cadc05c52d7dbc9c2",
      "parents": [
        "7471a3700348df588d4da35a41b38f6a88b505fd",
        "c3705f641507eafc170cd7a3fe98759e781e4594"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 21 15:21:16 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 21 15:21:16 2014 +0000"
      },
      "message": "Merge \"Hide __get_sp.\""
    },
    {
      "commit": "46a55a4478db9e335bdc7f73ee2cf3a66fe673fd",
      "tree": "b6e2b8723f2d8330895a5bed48777e804365037d",
      "parents": [
        "20177b9fea893ab63a49cf574790ea5e5027e50d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue May 20 21:01:00 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue May 20 21:01:00 2014 -0700"
      },
      "message": "Remove __syslog; we have the public klogctl API.\n\nBug: 11156955\nChange-Id: I5c2cc02f39f76dd32984135f5c12c10bf2853796\n"
    },
    {
      "commit": "c3705f641507eafc170cd7a3fe98759e781e4594",
      "tree": "0079a84ceb4bc2fde453ab8c586efc06b3dd075b",
      "parents": [
        "3d2bc5d6c8f08e587a8dad848829f98776549ba6"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue May 20 20:22:50 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue May 20 20:22:50 2014 -0700"
      },
      "message": "Hide __get_sp.\n\nBug: 11156955\nChange-Id: I55d8d320521e80c2085af28933a18b00cf5c714e\n"
    },
    {
      "commit": "4e631ba5688db2fae7bbc476982055a376102146",
      "tree": "89ba046be0d6572f54de0a930bcac365f0881928",
      "parents": [
        "3d2bc5d6c8f08e587a8dad848829f98776549ba6"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue May 20 16:24:10 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue May 20 16:24:55 2014 -0700"
      },
      "message": "Remove perf_event_open.\n\nThis was accidentally added at a time when you couldn\u0027t add a constant\nto \u003csyscall.h\u003e without generating an assembly stub! (You no longer need\nto add the constants at all.)\n\nBug: 11156955\nChange-Id: I053c17879138787976c744a5ecf7d30ee51dc48f\n"
    },
    {
      "commit": "903b78873a744d3fba187e4bd22008ba21162e51",
      "tree": "54927c30d730513d9cfa817448b3184a6b6531ee",
      "parents": [
        "172ab0f65035013565ec57f52ece663082683698"
      ],
      "author": {
        "name": "Sreeram Ramachandran",
        "email": "sreeram@google.com",
        "time": "Mon May 19 13:39:57 2014 -0700"
      },
      "committer": {
        "name": "Sreeram Ramachandran",
        "email": "sreeram@google.com",
        "time": "Mon May 19 15:19:16 2014 -0700"
      },
      "message": "Mark sockets on creation (socket()) and accept4().\n\nRemove the separate syscall for accept() and implement it as accept4(..., 0).\n\nChange-Id: Ib0b8f5d7c5013b91eae6bbc3847852eb355c7714\n"
    },
    {
      "commit": "31d0398de65becc83168fa931cbd3345bbc346bd",
      "tree": "22f5cc2853de1dde796ed791df3acae98f688a36",
      "parents": [
        "aafa3d0e4623f3c57c7abe66f6afa726b9cde348"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri May 16 16:17:44 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri May 16 16:17:44 2014 -0700"
      },
      "message": "Hide _exit_with_stack_teardown.\n\nBug: 11156955\nChange-Id: Ida3020343c9975177dc324918cd1f10c455eb173\n"
    },
    {
      "commit": "7222b1b594a8fab4b9e744d764b70e4c17767794",
      "tree": "1e533c94afca3c8f5361649368fffde6bd4908b9",
      "parents": [
        "d9b0629868fe4a2ce2e144b826dd869b6d808834"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri May 16 15:47:29 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri May 16 15:47:29 2014 -0700"
      },
      "message": "Hide __signalfd4, used to implement signalfd(3).\n\nBug: 11156955\nChange-Id: I50842279cb5b32ec8bd45193435574e415cd806e\n"
    },
    {
      "commit": "8f0cd8aa22906c3e678738eeba20fc1a5c399b6c",
      "tree": "38bbf429b63d34d1d339bcd02689e81f744ef53a",
      "parents": [
        "15c13bd6cc0ce44d8f083f75d0bfa926a88cc169"
      ],
      "author": {
        "name": "Sreeram Ramachandran",
        "email": "sreeram@google.com",
        "time": "Tue May 13 15:40:26 2014 -0700"
      },
      "committer": {
        "name": "Sreeram Ramachandran",
        "email": "sreeram@google.com",
        "time": "Wed May 14 11:10:22 2014 -0700"
      },
      "message": "Mark sockets on accept().\n\n(cherry picked from commit 58b1f3f6a30a660ad81637c2b50382c3d279243b)\n\nChange-Id: I5d09be413cf720fbed905f96313b007997ada76c\n"
    },
    {
      "commit": "ceb5bd787c8ce281e5f4343c5d4f77b41c3e2919",
      "tree": "4b91184c22597e1757ba036d30e09f5c5e586a74",
      "parents": [
        "0ccef7ec5294b34902e07c26db55891d3eddb2be"
      ],
      "author": {
        "name": "Sreeram Ramachandran",
        "email": "sreeram@google.com",
        "time": "Mon May 12 11:19:16 2014 -0700"
      },
      "committer": {
        "name": "Sreeram Ramachandran",
        "email": "sreeram@google.com",
        "time": "Tue May 13 11:30:03 2014 -0700"
      },
      "message": "Introduce netd_client, a dynamic library that talks to netd.\n\nThe library exists outside bionic. It is dynamically loaded, to replace selected\nstandard socket syscalls with versions that talk to netd.\n\nChange connect() to use the library if available.\n\n(cherry picked from commit 3a6b627a14df8111b03e452f2df4b5f4938e0e49)\n\nChange-Id: Ib6198e19dbc306521a26fcecfdf6e8424d163fc9\n"
    },
    {
      "commit": "c1d26965ae12f94c7b0dc64b2548c3c29d180296",
      "tree": "de17b14e772e69f6cfc0fc17394c3e1ad4a0bab0",
      "parents": [
        "8b307e0e9843aad7e1816eb631208117df2e787b",
        "5a92284167ffba6d45210ef6889fa7d255c15d4f"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue May 13 00:26:50 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 13 00:26:50 2014 +0000"
      },
      "message": "Merge \"Add 32-bit Silvermont-optimized string/memory functions.\""
    },
    {
      "commit": "dcbef06ce6bb21d62d5a32148a3e64746b47b449",
      "tree": "193e7494535d26ac5820c17b0993817e709d55b3",
      "parents": [
        "4b57305afe2b54a6afb733361f6fd93cb92ccfa8"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon May 12 16:11:06 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon May 12 16:11:06 2014 -0700"
      },
      "message": "Remove the useless indirection in mips\u0027 __set_tls.\n\nChange-Id: I12e9d6716c42ccbccc9a186441aca0736bb22d05\n"
    },
    {
      "commit": "5a92284167ffba6d45210ef6889fa7d255c15d4f",
      "tree": "0ab0ebc49463cc1bdcad12f96ee12c5acbe51cc1",
      "parents": [
        "ebcc72070499b2ab2d1dee990d6f52814a56600e"
      ],
      "author": {
        "name": "Varvara Rainchik",
        "email": "varvara.rainchik@intel.com",
        "time": "Thu Apr 24 15:41:20 2014 +0400"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon May 12 13:56:59 2014 -0700"
      },
      "message": "Add 32-bit Silvermont-optimized string/memory functions.\n\nAdd following functions:\nbcopy, memcpy, memmove, memset, bzero, memcmp, wmemcmp, strlen,\nstrcpy, strncpy, stpcpy, stpncpy.\nCreate new directories inside arch-x86 to specify architecture: atom,\nsilvermont and generic (non atom or silvermont architectures are treated like generic).\nDue to introducing optimized versions of stpcpy and stpncpy,\nc-implementations of these functions are moved from\ncommon for architectures makefile to arm and mips specific makefiles.\n\nChange-Id: I990f8061c3e9bca1f154119303da9e781c5d086e\nSigned-off-by: Varvara Rainchik \u003cvarvara.rainchik@intel.com\u003e\n"
    },
    {
      "commit": "954cf0d4e2669f91194b45f484152e47efa4f6c7",
      "tree": "a367f6590dcf1723983c7396a63bb6174b94b8e9",
      "parents": [
        "170daa042cb0ef3e5d7839f79d052a683b3c670f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 08 19:00:23 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 08 19:00:23 2014 -0700"
      },
      "message": "Hide the __bionic_clone and __bionic_clone_entry implementation details.\n\nclone(2) is the public symbol.\n\nAlso switch a test from __bionic_clone to clone; testing public API\nmeans the test now works on glibc too.\n\nChange-Id: If59def26a00c3afadb8a6cf9442094c35a59ffde\n"
    },
    {
      "commit": "8d77bce185d04c531bd9bf34d38e5cbbe644d3a3",
      "tree": "b68dd0db69716a52362f9db6c9a34d6a0aa4b102",
      "parents": [
        "8eaeaf50cbd769c7c9852621a422a4f0be1e08e5"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 22 13:55:58 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 22 13:55:58 2014 -0700"
      },
      "message": "LP64 shouldn\u0027t include the non-standard \u003ctime64.h\u003e cruft.\n\nThis patch includes just enough to keep external/chromium_org building\nuntil they switch 64-bit Android over to using the regular non-Android code.\n\nChange-Id: Iecaf274efa46ae18a42d5e3439c5aa4f909177c1\n"
    },
    {
      "commit": "cb65cc3fb4a8d7dfbbcbdfdb9140ab59baada28e",
      "tree": "8d424aa59f47bb1a024dab2f730b97ec54da269b",
      "parents": [
        "4abaa576e86e4ceaa9a18271f306787294a1cdfc"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 16 16:31:17 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 16 16:31:17 2014 -0700"
      },
      "message": "Clean up \u003cmachine/ieee.h\u003e.\n\nThe upstream intention was for this to be architecture-dependent, but it\u0027s a\nlot clearer if we just have one copy.\n\nChange-Id: I4e8310496145f9f411cd2e847c8cd023b1d758e9\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": "1b0dc40980c259aa0d9a416cd1ccf497e6efe138",
      "tree": "5a30cfb93222ba774b604bbba25c781df40dda78",
      "parents": [
        "f1bfc8781e17fb851de23dce4332c0cb5ccb8749"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 01 17:16:59 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 01 17:16:59 2014 -0700"
      },
      "message": "Remove \u003cmachine/limits.h\u003e.\n\nChange-Id: I7f9e9538517f726d4f08bf1f4b8d57c54d3f1676\n"
    },
    {
      "commit": "ac3fc00ca2c157387164c7daaf9e10799c5ac8dc",
      "tree": "4d90f528c67a0180d0c6f21a54579de1af66af98",
      "parents": [
        "d8fe15fdb6581b6920a4be75731337edbac64b11"
      ],
      "author": {
        "name": "Russell Webb",
        "email": "russell.webb@intel.com",
        "time": "Mon Mar 10 16:35:28 2014 -0700"
      },
      "committer": {
        "name": "Fengwei Yin",
        "email": "fengwei.yin@intel.com",
        "time": "Mon Mar 31 22:38:14 2014 +0800"
      },
      "message": "Remove SIZE_MAX definition in limits.h\n\nthe POSIX standard is that SIZE_MAX is defined\nin stdint.h, not limits.h.\n\nChange-Id: Iafd8ec71d1840541feaca4f53b2926b398293fac\nSigned-off-by: Webb, Russell \u003crussell.webb@intel.com\u003e\nSigned-off-by: Fengwei Yin \u003cfengwei.yin@intel.com\u003e\nReviewed-by: Ross, Andrew J \u003candrew.j.ross@intel.com\u003e\nReviewed-by: Boie, Andrew P \u003candrew.p.boie@intel.com\u003e\nReviewed-by: Gumbel, Matthew K \u003cmatthew.k.gumbel@intel.com\u003e\nTested-by: Gumbel, Matthew K \u003cmatthew.k.gumbel@intel.com\u003e\n"
    },
    {
      "commit": "8f2a30a92ab6981cccbc1a9e17b738f7542ae33f",
      "tree": "a0ec364f2362051c4d06569ee5706c3165808b78",
      "parents": [
        "c8fc4ddc183060aa979185d5a6845f26beb1a733"
      ],
      "author": {
        "name": "Andrei Emeltchenko",
        "email": "andrei.emeltchenko@intel.com",
        "time": "Wed Mar 26 15:50:01 2014 +0200"
      },
      "committer": {
        "name": "Andrei Emeltchenko",
        "email": "andrei.emeltchenko@intel.com",
        "time": "Wed Mar 26 15:50:01 2014 +0200"
      },
      "message": "Add accept4() syscall\n\nAdd accept4() using SYSCALLS.TXT and gensyscall\n\nChange-Id: I6f19f29144186d15d46423e10f2cc4b4223719c6\n"
    },
    {
      "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": "53e43292aac91bf62995788cd5ca2ceb7caea283",
      "tree": "003679a1e2288bad947f714ee45bfa6febf479b6",
      "parents": [
        "ba40a560176e6ea753d09a6a71343b81ea4c8c1e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 24 18:00:43 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 24 18:02:05 2014 -0800"
      },
      "message": "More OpenBSD cleanup (primarily string).\n\nThis patch removes the string/ and wchar/ directories.\n\nChange-Id: Ia489904bc67047e4bc79acb1f3eec21aa3fe5f0d\n"
    },
    {
      "commit": "b8dc9bbd905f762bae9845274b1053da1c084860",
      "tree": "164ba85e365ae05ba1ba1defac2f2a671f902067",
      "parents": [
        "26172fa401a4323c8c9b4063a59ab6d08ca617bf"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 20 14:35:20 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 20 14:35:20 2014 -0800"
      },
      "message": "Stop asking GCC to cause trouble.\n\nWhy do we see so many bogus strict-aliasing warnings? Because we asked GCC to\ncause trouble on arm and mips.\n\nChange-Id: I25d7fd036b6afff7ccfa799abe0dc1579ead2847\n"
    },
    {
      "commit": "851e68a2402fa414544e66650e09dfdaac813e51",
      "tree": "baec353c8e9b6f24e885459b20a8748fc5c39468",
      "parents": [
        "22c6b7ffd36fe8b34b677eea94d00aef2624e4e8"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 19 16:53:20 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 20 13:51:26 2014 -0800"
      },
      "message": "Unify our assembler macros.\n\nOur \u003cmachine/asm.h\u003e files were modified from upstream, to the extent\nthat no architecture was actually using the upstream ENTRY or END macros,\nassuming that architecture even had such a macro upstream. This patch moves\neveryone to the same macros, with just a few tweaks remaining in the\n\u003cmachine/asm.h\u003e files, which no one should now use directly.\n\nI\u0027ve removed most of the unused cruft from the \u003cmachine/asm.h\u003e files, though\nthere\u0027s still rather a lot in the mips/mips64 ones.\n\nBug: 12229603\nChange-Id: I2fff287dc571ac1087abe9070362fb9420d85d6d\n"
    },
    {
      "commit": "6e39ba73bfd9504762e8798fd6b293f11d5fdf7e",
      "tree": "a4ced0486a47d0941a9df2df00a9d75a3537393d",
      "parents": [
        "ca566b31036704eb6cdde05a0bd9ee972d7a995d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 20 11:36:55 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 20 11:36:55 2014 -0800"
      },
      "message": "Stop advertising an arm32-specific hack like it\u0027s a build system feature.\n\nChange-Id: I3a830b4a3516b6eb8e4f8e6e6b122a22a2e341df\n"
    },
    {
      "commit": "9abbbdc5346020e33a8fdbe7254dd0fdff9df616",
      "tree": "9a4c06c1cb4b09c8c957c72e061984db2321cc40",
      "parents": [
        "e6c451f5f2e17fccccedaa1c2a90d8d9ba0c1917"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 19 14:54:31 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 19 14:54:31 2014 -0800"
      },
      "message": "Make mips/mips64 syscall stubs more like the other architectures.\n\nChange-Id: I55f8c1a95f643a6e484f12fbcc25e2c77e55b6b8\n"
    },
    {
      "commit": "eae27dc55adca75c2332e4b767ec667acfbbbcb3",
      "tree": "3f2394e5a56dfc6e2f8fde6156121372c1ed1f19",
      "parents": [
        "44ef37c1b445e864068cdcd885ab3d7b17079ad3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 19 12:20:00 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 19 12:20:00 2014 -0800"
      },
      "message": "Make mips generated assembler more like the mips64 stuff.\n\nI broke the mips build yesterday because it doesn\u0027t use\n\u003cprivate/bionic_asm.h\u003e like the other architectures, including mips64.\nI want to move mips closer to mips64 to try to avoid this kind of thing\nin future.\n\nChange-Id: Idb985587ff355b9e5e765c1f5671dc0144cd2488\n"
    },
    {
      "commit": "986f9067103e41296898a7c0e89f5ed84420fb5b",
      "tree": "2c8aff9ef2cd15f628ad735a801a76256d9c0279",
      "parents": [
        "787c1f937a915feefb767d0c6a15ddb70e6de933"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 18 16:42:36 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 18 16:42:36 2014 -0800"
      },
      "message": "Fix build by avoiding the _C_LABEL macro.\n\nChange-Id: Ide367c2b65071388bd95fbc81a4ed6ae94aec4e4\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": "f25d677147ae55a1f3b6ef7fa3ee27921792813f",
      "tree": "bc2f15be8e5d496de16cb4f415d4ef4035d5277d",
      "parents": [
        "022885e2fad5ef9643e05d80c6f50a2a90bf3431"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Thu Jan 23 15:17:50 2014 -0800"
      },
      "committer": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Wed Feb 12 13:58:34 2014 -0800"
      },
      "message": "Reconfig libc\u0027s Android.mk to build for multilib\n\n1. Moved arch-specific setup to their own files:\n    - \u003carch\u003e/\u003carch\u003e.mk, arch-specific configs. Variables in those config\n      end with the arch name.\n    - removed the extra complexity introduced by function libc-add-cpu-variant-src,\n      which seems to be not very useful these days.\n2. Separated out the crt object files generation rules and set up the\n   rules for both TARGET_ARCH and TARGET_2ND_ARCH.\n3. Build all the libraries for both TARGET_ARCH and TARGET_2ND_ARCH,\n  with the arch-specific LOCAL_ variables.\n\nBug: 11654773\nChange-Id: I9c2d85db0affa49199d182236d2210060a321421\n"
    },
    {
      "commit": "b3a23bd0178c8edbb34e310be08e6fb73ac6ba09",
      "tree": "c1b689b1ba401045d91a629d70017a7db2fcb395",
      "parents": [
        "a206dde5bdf9b4d995bf578cc3b54fb8b85e02c5"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 11 13:32:02 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 11 13:52:02 2014 -0800"
      },
      "message": "Build syscall stubs in their own library.\n\nThis lets us lose the auto-generated makefiles.\n\nChange-Id: I2de0c71b3b9c08f9cce8f4ff7fd7254dda008c86\n"
    },
    {
      "commit": "a6ecba4d233d7b769a05ee81ae908c9105352624",
      "tree": "496b3cbe11b5f4037703f3855f7c95704a451d30",
      "parents": [
        "71e4466b100359f36a29c8c0277888df6081a265"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 10 18:37:02 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 11 10:24:40 2014 -0800"
      },
      "message": "Clean up cacheflush.\n\nNo cacheflush for LP64; use the GCC builtin instead. Clean up the\n32-bit MIPS implementation now we no longer need to worry about\nold versions of GCC.\n\nBug: 12924756\nChange-Id: Ie23955b3ec194e226c4b2bce35b11d5e061f4753\n"
    },
    {
      "commit": "0266ae5f884d72da58f33a072e865ba131234a5e",
      "tree": "48763b706806f544b1dec0ef98261bed6f21dee2",
      "parents": [
        "eeb9a9f59a58a2f042e8f6fd1a4911ae92ac5493"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 10 17:46:57 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 10 18:22:24 2014 -0800"
      },
      "message": "Switch \u003celf.h\u003e over to linux uapi under the covers.\n\nRemove the linker\u0027s reliance on BSD cruft and use the glibc-style\nElfW macro. (Other code too, but the linker contains the majority\nof the code that needs to work for Elf32 and Elf64.)\n\nAll platforms need dl_iterate_phdr_static, so it doesn\u0027t make sense\nto have that part of the per-architecture configuration.\n\nBug: 12476126\nChange-Id: I1d7f918f1303a392794a6cd8b3512ff56bd6e487\n"
    },
    {
      "commit": "645d0312c2d6b6492cc4b3891bc1a91908dc24b7",
      "tree": "4ec0e5c08e0c5a60dc7f9dfbb65e49aa8c57a138",
      "parents": [
        "5036935c41d9193cfbba606df2121cd4c6973116"
      ],
      "author": {
        "name": "Chris Dearman",
        "email": "chris.dearman@imgtec.com",
        "time": "Wed Feb 05 18:51:43 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 06 16:22:20 2014 -0800"
      },
      "message": "[MIPS64] libc/libm support\n\nlibc/libm support for MIPS64 targets\n\nChange-Id: I8271941d418612a286be55495f0e95822f90004f\nSigned-off-by: Chris Dearman \u003cchris.dearman@imgtec.com\u003e\nSigned-off-by: Raghu Gandham \u003craghu.gandham@imgtec.com\u003e\n"
    },
    {
      "commit": "ea0fab18ba73d697b2da9f9ac6a23c016b280e76",
      "tree": "36fa6ebe40ff15e8e89ff22ff02f81c783dde61d",
      "parents": [
        "375aaa3f608d6089102b256f162e423638a16c47"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 05 14:11:38 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 05 14:11:38 2014 -0800"
      },
      "message": "Remove unused cruft from MIPS \u003cmachine/signal.h\u003e.\n\nAn extra (unused) struct sigcontext doesn\u0027t help anybody.\n\nChange-Id: I73899fe7e1ccccf50a507c737945cf014d430396\n"
    },
    {
      "commit": "9afe2884c7fe11f862982fd550a2ead688f2044d",
      "tree": "69b97d715c09e405c76354e314de27b69723164e",
      "parents": [
        "12e8b76e5f799b2b8407bf354a9675577529d34b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 04 19:26:31 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 04 19:26:31 2014 -0800"
      },
      "message": "Kill \u003cmachine/_types.h\u003e.\n\nMost of \u003cmachine/_types.h\u003e was either unused, wrong, or identical across\nall 32-/64-bit architectures.\n\nI\u0027m not a huge fan of \u003csys/_types.h\u003e either, but moving the bits we need\nup into there is a step forward.\n\nBug: 12213562\nChange-Id: Id13551c78966e324beee2dd90c5575e37d2a71e6\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": "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": "c5bf703c4cfa2ca4f35a83c9afaf4ee123cb617c",
      "tree": "59d892fb966be1108fde54815857f0696087d264",
      "parents": [
        "7b0c23f1ac5df8654e0790b9eb3bbfcbf36c0e5f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 02 15:41:33 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jan 03 14:27:17 2014 -0800"
      },
      "message": "Remove as many hard-coded constants from the MIPS vfork.S as possible.\n\nWe could do better, but not without MIPS cleaning up their kernel headers.\n\nChange-Id: Ib4d4ce5d720ce8ca27a3f9a1ae07a9a277675af9\n"
    },
    {
      "commit": "887e1140fe7596fa1239a0bc802d2cdb51c57d3c",
      "tree": "de277e97257d5397d6ae36287a080477966dac5c",
      "parents": [
        "17c9fe7d2f396294a09344a253b2a16ae400df14"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 02 12:05:50 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 02 12:05:50 2014 -0800"
      },
      "message": "Clean up \u003csched.h\u003e.\n\nThis patch switches to using the uapi constants. It also adds the missing\nsetns system call, fixes sched_getcpu\u0027s error behavior, and fixes the\ngensyscalls script now ARM is uapi-only too.\n\nChange-Id: I8e16b1693d6d32cd9b8499e46b5d8b0a50bc4f1d\n"
    },
    {
      "commit": "5063791535bc7541a4b46c24c4e5c9f330e5025f",
      "tree": "04a45e9bdf45539d45c2e2871a5968359dc60d3a",
      "parents": [
        "3b2f4142aa4f2892ecbea89a256b4f5fc94e777a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Dec 22 12:02:32 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Dec 22 12:02:32 2013 -0800"
      },
      "message": "Fix MIPS build.\n\nChange-Id: I175f427e355fca9a5a3f4e4379d7fcd1f7f6a22d\n"
    },
    {
      "commit": "2aace21a19b6be8f6a427fc664d4175f0bf832c9",
      "tree": "2f5405d71e85ba2eee7b6d33d327a8866f8951cc",
      "parents": [
        "6d929061c36e7929c61c8e6331315b86fe86976f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Dec 21 15:30:49 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Dec 21 15:30:49 2013 -0800"
      },
      "message": "Remove the bogus exit status from _exit_with_stack_teardown.\n\nIt should always be 0, and there\u0027s no reason to pass a constant in as\nan argument.\n\nChange-Id: I92ac59b718a18e298bd7c52821af447f9181ca2a\n"
    },
    {
      "commit": "5eccb9646dd94438911706d3ebf52775caa7f41e",
      "tree": "65e098b6c9b6e25947f40a8466d05f87c906af5d",
      "parents": [
        "026b6ab6d5f0d8fca5cdfab05727197626769dc2"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Dec 20 16:58:06 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Dec 20 16:58:06 2013 -0800"
      },
      "message": "Fix aarch64 futex assembly routines.\n\nAlso make the other architectures more similar to one another,\nuse NULL instead of 0 in calling code, and remove an unused #define.\n\nChange-Id: I52b874afb6a351c802f201a0625e484df6d093bb\n"
    },
    {
      "commit": "766c7efe28fb066252eeb9b8e47e22970307c09e",
      "tree": "fa3872efb1ebf569e61f9b9092168ef611c88862",
      "parents": [
        "5e26221a1da6bc0f11819078e74f1f6e0b76f642"
      ],
      "author": {
        "name": "Chris Dearman",
        "email": "chris.dearman@imgtec.com",
        "time": "Mon Dec 16 14:10:13 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Dec 20 15:36:00 2013 -0800"
      },
      "message": "Allocate additional space on stack for indirect syscall\n\nThe caller is only required to allocate 16 bytes on the\nstack for a0-a3. syscall is handling up to 6 arguments so\nadditional space is needed on the stack to avoid corrupting the\ncallers frame.\n\nChange-Id: I054b31696decc3e17d9c70af18cd278b852235d1\n"
    },
    {
      "commit": "2b333ea31ec5b5b4627f14b22253b017b346638a",
      "tree": "2445413705d53303a63fcb8997cff38388d63f2e",
      "parents": [
        "d2bcbf0dbec86b8f27b1b3d939025098f134ea60"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Dec 18 11:21:55 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Dec 18 11:21:55 2013 -0800"
      },
      "message": "Remove \u003cmachine/kernel.h\u003e.\n\nBug: 12175484\nChange-Id: I127f7f91f36bd879109d653e0c56ec56e2529d4d\n"
    },
    {
      "commit": "c13fb75ceabb47f8292be206db80b93889fccf66",
      "tree": "6aca1af2e53339d0c6f04abf3fa9fa696d9268c9",
      "parents": [
        "f293b15728031432317791fb4a17a423545d37b3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Dec 17 20:43:30 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Dec 17 20:43:30 2013 -0800"
      },
      "message": "Move bionic over to GCC\u0027s \u0027warning\u0027 attribute.\n\nThis is a better solution than the old __warn_references because it\u0027s\na compile-time rather than link-time warning, it doesn\u0027t rely on something\nthat doesn\u0027t appear to be supported by gold (which is why you only used\nto see these warnings on mips builds), and the errors refer to the exact\ncall site(s) rather than just telling you which object file contains a\nreference to the bad function.\n\nThis is primarily so we can build bionic for aarch64; building libc.so\ncaused these warnings to fire (because link time is the wrong time) and\nwarnings are errors.\n\nChange-Id: I5df9281b2a9d98b164a9b11807ea9472c6faa9e3\n"
    },
    {
      "commit": "36d6188f8cd8b948fb797f11d9620d63d0c2215a",
      "tree": "86b3162cac031151b2ae44b4d554fce4f9456147",
      "parents": [
        "318e86ed887e04e593f3db9b84b402d5501ced9b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Nov 19 13:31:58 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Nov 19 14:08:54 2013 -0800"
      },
      "message": "Clean up forking and cloning.\n\nThe kernel now maintains the pthread_internal_t::tid field for us,\nand __clone was only used in one place so let\u0027s inline it so we don\u0027t\nhave to leave such a dangerous function lying around. Also rename\nfiles to match their content and remove some useless #includes.\n\nChange-Id: I24299fb4a940e394de75f864ee36fdabbd9438f9\n"
    },
    {
      "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": "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": "effaa7824da1af4db5cef50c78079d4c4e1717a7",
      "tree": "75fd1cad053bece3b7df4c45e26e16a36c2de737",
      "parents": [
        "ae5c3dd73844e6a9e1a14dbf893eab5142902f18"
      ],
      "author": {
        "name": "Chris Dearman",
        "email": "chris.dearman@imgtec.com",
        "time": "Wed Nov 13 14:15:31 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 14 16:53:15 2013 -0800"
      },
      "message": "[MIPS] Reimplement syscall to invoke the system call directly\n\nSome MIPS kernels do not correctly restart interrupted system calls that\nhave been invoked using the indirect syscall (NR_syscall).\n\nThe simplest workaround is to handle the indirection in userland and then\ncall the required system call directly.\n\nChange-Id: I8385399621529db9a52b463c96925f6decaaca30\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": "6b53c2349a5a3fc70a475de6a66131b615e88e48",
      "tree": "3e06ca4bee68b07b1ea57cb564fed82333e997be",
      "parents": [
        "bbefbf1a75052e4c887309299fb4532705aa843d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 24 22:36:58 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 24 22:41:50 2013 -0700"
      },
      "message": "Fix the exit syscall stub\u0027s name.\n\nI\u0027ve left the exit_group syscall as _exit because otherwise we\u0027d have to\nconvince the compiler that our _exit (which just calls __exit_group) is\nactually \"noreturn\", and it seems like that would be less clean than just\ncutting out the middleman.\n\nWe\u0027ll just have to trust ourselves not to add anything to SYSCALLS.TXT\nthat ought to be private but that only has a single leading underscore.\nHopefully we can manage that.\n\nChange-Id: Iac47faea9f516186e1774381846c54cafabc4354\n"
    },
    {
      "commit": "bf425680e484486803bf21e4c4cd1e3f36614a3c",
      "tree": "e98aae6ddd8758482b81ff2734ee21ad3db3885c",
      "parents": [
        "f8dfb6f249da6fc9c91cc8b94fa28c19e598faa6"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 24 16:29:40 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 24 16:29:40 2013 -0700"
      },
      "message": "Let the compiler worry about implementing ffs(3).\n\nIt does at least as good a job as our old hand-written assembly anyway.\n\nChange-Id: If7c4a1ac508bace0b71ee7b67808caa6eabf11d2\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": "b8cf18b4dd3a46f004ac255257e7a87b6e6d8457",
      "tree": "89a1ad1fc414410eb6c6f3ec7c191a74e8d9a321",
      "parents": [
        "97dc3309f3d403c391581444ad656c2f3c61303d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 23 11:21:36 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 23 11:21:36 2013 -0700"
      },
      "message": "MIPS\u0027 pipe(2) is weird, but MIPS\u0027 pipe2(2) is the same as everyone else\u0027s.\n\narch/mips/kernel/syscall.c has a special sysm_pipe wrapper, but there\u0027s\nno special treatment of pipe2 because it carries no historical baggage.\n\nChange-Id: I892c0f690b21992c8a48276a9b732126f18fc0ee\n"
    },
    {
      "commit": "cac7b9d6ec1a09814bc028e2f768db732f018891",
      "tree": "3278eba969b89888065d93f36be63eb68f463242",
      "parents": [
        "ec40edc9188aebe5207e47c0a66e89e1ed368bd6"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 23 09:48:29 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 23 09:48:29 2013 -0700"
      },
      "message": "Remove dependencies on obsolete __ARCH_WANT_SYSCALL_NO_FLAGS syscalls.\n\n(aarch64 kernels only have the newer system calls.)\n\nAlso expose the new functionality that\u0027s exposed by glibc in our header files.\n\nChange-Id: I45d2d168a03f88723d1f7fbf634701006a4843c5\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": "7f70c9b64eec4a4a86a3948966187ff8ee9fa720",
      "tree": "c609e0f102ddbab362263cc0f9e1dd51e53b76b8",
      "parents": [
        "393484ab358040243793375e1525da083008e78e"
      ],
      "author": {
        "name": "Serban Constantinescu",
        "email": "serban.constantinescu@arm.com",
        "time": "Sun Oct 13 22:07:26 2013 +0100"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 22 12:01:29 2013 -0700"
      },
      "message": "AArch64: Fix uses of stack size for 32/64bit libc builds\n\nThis patch fixes stack size uses to size_t.\n\nChange-Id: I0671c85ddb1c1aceaf9440a7c73c21fe528653fa\nSigned-off-by: Serban Constantinescu \u003cserban.constantinescu@arm.com\u003e\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": "103ccde8fe2f2c8abde914a8ba736b2e9cb8d20b",
      "tree": "b89dd26c065ca696293d554a7998a6593ed8f73b",
      "parents": [
        "1f29c2f51097b68110bc2766a7c1560d6a8831d0"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 16 14:27:59 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 16 14:27:59 2013 -0700"
      },
      "message": "Sort the syscalls.mk files, give all generated files the same header.\n\nNo non-comment changes to the .S files.\n\nChange-Id: Iafcfd004c3ea92b64268f80ab16df615b97cefac\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": "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": "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": "232163cf70712fe00436b70dd495f4cf405e9eab",
      "tree": "53a65d0054d5828646703e80216eb2987b8dfe27",
      "parents": [
        "92f3cc50c8d884d1eb3496ebfba7d3916fc711e8"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 09 17:35:36 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 09 17:35:36 2013 -0700"
      },
      "message": "Clean up the cpuacct cruft.\n\nChange-Id: I6ed63af8dfc2368e211420389fa8af4d5dc0908f\n"
    }
  ],
  "next": "14b467e840f8735e050b1844731c7747a7130525"
}
