)]}'
{
  "log": [
    {
      "commit": "02c78a386739a8a2b3007efeb00a9ca04132100a",
      "tree": "6679bef40da8b7fbe6b3c5a479eb5c2e4e035708",
      "parents": [
        "055890686636faddbb6d5d407c67f5dcc53ac865"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 11 17:02:20 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 14 14:35:47 2014 -0700"
      },
      "message": "Reimplement isinf/isnan/fpclassify.\n\nAlso move isinf and isnan into libc like everyone else.\n\nAlso move fpclassify to libc like the BSDs (but unlike glibc). We need\nthis to be able to upgrade our float/double/long double parsing to gdtoa.\n\nAlso add some missing aliases. We now have all of:\n\n  isnan, __isnan, isnanf, __isnanf, isnanl, __isnanl,\n  isinf, __isinf, isinff, __isinff, isinfl, __isinfl,\n  __fpclassify, __fpclassifyd, __fpclassifyf, __fpclassifyl.\n\nBug: 13469877\nChange-Id: I407ffbac06c765a6c5fffda8106c37d7db04f27d\n"
    },
    {
      "commit": "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": "f1bfc8781e17fb851de23dce4332c0cb5ccb8749",
      "tree": "7f72366ccd2c9bc891557f714fe102e6349b2ba0",
      "parents": [
        "ab5488f97545f5dd1a1cd2ff6a5579b1d2443996",
        "ac3fc00ca2c157387164c7daaf9e10799c5ac8dc"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 01 23:52:04 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 01 23:52:04 2014 +0000"
      },
      "message": "Merge \"Remove SIZE_MAX definition in limits.h\""
    },
    {
      "commit": "3bfa0fd32f07fab81f178a58eee4d0738b6d0db6",
      "tree": "33b967594a53edf95d7113cd45032f2680ed5651",
      "parents": [
        "c19972a4ca24512e017ad501bf446a489d4236e7"
      ],
      "author": {
        "name": "Henrik Smiding",
        "email": "henrik.smiding@intel.com",
        "time": "Wed Jan 08 16:57:55 2014 +0100"
      },
      "committer": {
        "name": "yijunx.zhu",
        "email": "yijunx.zhu@intel.com",
        "time": "Tue Apr 01 14:41:08 2014 +0800"
      },
      "message": "Add Silvermont architecture cache sizes\n\nAdds Silvermont specific cache sizes for bionic optimizations.\n\nChange-Id: Ib992f530b8c485121b2874470fd6bed2212adb0f\nSigned-off-by: Henrik Smiding \u003chenrik.smiding@intel.com\u003e\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": "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": "09289d92f920f307fc50dd64e9970c36c30b58e4",
      "tree": "c6df28c072f0e60f1ff689288011de2d2ff12dad",
      "parents": [
        "bfa2b6fc6a09df9815773890db94d6a126565289"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 20 11:51:11 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 20 11:51:11 2014 -0800"
      },
      "message": "Remove useless _C_LABEL from our assembler source.\n\nChange-Id: I41a9181537c70ecc69ef8035132c9a83811a40d0\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": "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": "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": "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": "e4bc7561219ddb7cfb7b33f731caa92a7766b9ca",
      "tree": "dbb5c65c0e813f2f3035ffe05ee7e58dabd4fbb3",
      "parents": [
        "c1c3f7d4468f02adbf8ced689d738386e42af773"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Jan 06 16:39:10 2014 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Jan 06 16:39:10 2014 -0800"
      },
      "message": "Add cfi directives to x86 syscalls.\n\nModify the syscalls script to generate the cfi directives for x86\nsyscalls.\n\nUpdate the x86 syscalls.\n\nChange-Id: Ia1993dc714a7e79f917087fff8200e9a02c52603\n"
    },
    {
      "commit": "a85aaf11fafd52b1304cc288d0699411ae510cc8",
      "tree": "feedcf05571335f0f43fca942b8ece2301c70953",
      "parents": [
        "66d166192e6b0e1091550e9f584e92521e375df7"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 02 16:23:24 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 02 16:23:24 2014 -0800"
      },
      "message": "Use the MAX_ERRNO constant.\n\nIf you\u0027re going to hardcode a constant, you could at least try to\nget the constant right...\n\nChange-Id: I886a2593357d1c4dfd6c42649c63e8a35c15a441\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": "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": "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": "99c393dff33e0a5d3838c16dc7878f32ac3da971",
      "tree": "5f7d46e4c7047c8ab0dbc650ec6957bab79613fa",
      "parents": [
        "6ae2f22dc091844f2cf4a1de65d3ff6b225c2635"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Nov 26 16:20:50 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Nov 26 16:20:50 2013 -0800"
      },
      "message": "Fix the order of arguments to sys_clone for x86.\n\nUnlike x86-64, x86\u0027s arguments are just like every other\narchitecture\u0027s.\n\nChange-Id: Ic6da23f2a70599683b68e7e12ab9ba061e0b349c\n"
    },
    {
      "commit": "9dec707bd6fa59849c205db6f878f1b2cc2de536",
      "tree": "e7e48a8ac0473a0e2bfc30b611390a9c9ab3c642",
      "parents": [
        "a98fff25c33b2cb697c6bf75b3d17612427b6db3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Nov 26 13:48:24 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Nov 26 13:48:24 2013 -0800"
      },
      "message": "Fix _exit_with_stack_teardown for x86.\n\nChange-Id: Ife8f9c538c86f7c0017143015d5ee849a99b625b\n"
    },
    {
      "commit": "507cfe2e10a6c4ad61b9638820ba10bfe881a18c",
      "tree": "95639273dd28b75ba8c16690773d44c385342e31",
      "parents": [
        "bf652a5f5c1249471cb6a60b5bda5ddf1e94a635"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Nov 19 13:45:27 2013 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Nov 19 16:31:24 2013 -0800"
      },
      "message": "Add .cfi_startproc/.cfi_endproc to ENTRY/END.\n\nBug: 10414953\nChange-Id: I711718098b9f3cc0ba8277778df64557e9c7b2a0\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": "ed74484dcbc2e156a6e5fa861a62425b12e55128",
      "tree": "d41520a7d4f893cef86ab650b23e400e30351446",
      "parents": [
        "a034e1d3e06207f079e814101bb3bce1924264e0"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 07 10:31:05 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 07 10:31:05 2013 -0800"
      },
      "message": "Stop using the non-uapi \u003clinux/err.h\u003e header file.\n\nWe only need it for MAX_ERRNO, and it\u0027s time we had somewhere to put\nthe little assembler utility macros we\u0027ve been putting off writing.\n\nChange-Id: I9354d2e0dc47c689296a34b5b229fc9ba75f1a83\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": "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"
    },
    {
      "commit": "2a0b873065edb304fa2d1c54f8de663ea638b8ab",
      "tree": "4753b74b87e713379965bb051482036e6726afb1",
      "parents": [
        "777a4ee6771e6fe3362ef4f24244a44fcd0aabe4"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 08 18:50:24 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 09 13:39:13 2013 -0700"
      },
      "message": "Fix __errno for LP64 and clean up __get_tls.\n\nIf __get_tls has the right type, a lot of confusing casting can disappear.\n\nIt was probably a mistake that __get_tls was exposed as a function for mips\nand x86 (but not arm), so let\u0027s (a) ensure that the __get_tls function\nalways matches the macro, (b) that we have the function for arm too, and\n(c) that we don\u0027t have the function for any 64-bit architecture.\n\nChange-Id: Ie9cb989b66e2006524ad7733eb6e1a65055463be\n"
    },
    {
      "commit": "c4c6e192ac045c06f4aad3afc8e437baf67227b7",
      "tree": "3d5177d557937711cbcf05516946cc1ce6935139",
      "parents": [
        "5d06718cd357b509588465ec1fa261db23b5899a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 08 14:48:05 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 08 14:48:05 2013 -0700"
      },
      "message": "pthread_exit should call __NR_exit with status 0.\n\nWe shouldn\u0027t have been passing the bottom 32 bits of the address used\nfor pthread_join to the kernel.\n\nChange-Id: I487e5002d60c27adba51173719213abbee0f183f\n"
    },
    {
      "commit": "a97cc5b458048ddaa034489e4a4e55e9064aca2f",
      "tree": "699344735ec16ddeb4984c7cdd830e2d949ab55a",
      "parents": [
        "a6e9ae80e51bffa40e600beb38e7796d2ef45242"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 07 10:20:24 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 07 10:25:11 2013 -0700"
      },
      "message": "Clean up the x86 and x86_64 _exit_with_stack_teardown implementations.\n\nChange-Id: I4bcbbc53893612bd94643ef07722becb00f91792\n"
    },
    {
      "commit": "72645164b6840806d1681f48565bb3b54efc4628",
      "tree": "69739188ac779194adc5d5203dd73c0c036bdf41",
      "parents": [
        "8fb977ba114e3fcb4965bc0211d3f9a409915994"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Oct 04 15:59:19 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Oct 04 16:10:13 2013 -0700"
      },
      "message": "Add arch-x86_64/include/machine.\n\nThis is basically the other half of I5de76f6c46ac87779f207d568a86bb453e2414de\nfrom Pavel Chupin \u003cpavel.v.chupin@intel.com\u003e, but taking the exact upstream\n_types.h instead of the modified version. (I was confused when I suggested\notherwise.)\n\nI\u0027ve also cleaned up the internal_types.h situation; we weren\u0027t gaining\nanything from these empty files, and there is no upstream internal_types.h\nfor x86_64.\n\nChange-Id: I802a9a6a8df1c979e820659212c75a47c2ef392e\n"
    },
    {
      "commit": "7e841ed688947855a3bd20d2b23a44599257038a",
      "tree": "205c6762a88cc425d28dabf2a68a2ba7ee0d3fd6",
      "parents": [
        "41ba05e22ed1829cc7431fd4899cfa5725c76044"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 03 23:30:33 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 03 23:30:33 2013 -0700"
      },
      "message": "Remove useless x86 fallbacks.\n\nThe NDK ABI requires that you support SSE2, and the build system won\u0027t let you\nbuild with ARCH_X86_HAVE_SSE2 set to false. So let\u0027s stop pretending this\nconstant is actually a variable, and let\u0027s remove the corresponding dead code.\n\nAlso, the USE_SSE2 and USE_SSE3 macros are unused, so let\u0027s not bother\nsetting them.\n\nChange-Id: I40b501d998530d22518ce1c4d14575513a8125bb\n"
    },
    {
      "commit": "b49c17c2bf1232e29bc390e58d6fa43688929aa5",
      "tree": "269ad5c6bd759a7e84339e6ba89e833de385d610",
      "parents": [
        "3901b1bdd939973a72e01272177757b2524995d3"
      ],
      "author": {
        "name": "Pavel Chupin",
        "email": "pavel.v.chupin@intel.com",
        "time": "Wed Oct 02 16:38:05 2013 +0400"
      },
      "committer": {
        "name": "Pavel Chupin",
        "email": "pavel.v.chupin@intel.com",
        "time": "Thu Oct 03 11:14:33 2013 +0400"
      },
      "message": "Move common arch-* code to arch-common directory\n\nWill be helpful on adding x86_64\n\nChange-Id: I96cf6fc7912c02f289c75f07ae0079c32d69173f\nSigned-off-by: Pavel Chupin \u003cpavel.v.chupin@intel.com\u003e\n"
    },
    {
      "commit": "e4ffd9f2341f42c9281b4a93df76768580535edd",
      "tree": "ef4a32ac4a578caae3a1b909df84f508f2bf07d0",
      "parents": [
        "475e8dde178f05f91626a22ade795244efe69a3e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 01 13:29:43 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 01 13:29:43 2013 -0700"
      },
      "message": "Regenerate the system call stubs (to get x86_64).\n\nThis touches the x86 stubs too because arm, x86, and x86_64 now\nall share the same header (at a source level), which causes a\nreordering of the #include lines.\n\nChange-Id: If9a1e2b2718bd41d8399fea748bce672c513ef84\n"
    },
    {
      "commit": "c0af6954262675856d6833ce7c256f0838326fd0",
      "tree": "e1e80dcf2426cfd7dd5bdb8b617ccf253f25cc81",
      "parents": [
        "f281fd02e9eebea3de9c07412c5b66647ca0c290"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 01 11:06:56 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 01 11:10:21 2013 -0700"
      },
      "message": "Clean up some comments.\n\nCopyright headers shouldn\u0027t contain the filename (and especially\nshouldn\u0027t contain a different file\u0027s filename).\n\nChange-Id: I82690a3bf371265402bc16f5d2fbb9299c3a1926\n"
    },
    {
      "commit": "d612165c6705379aa50144afc35aa40c16793728",
      "tree": "211edb774ff41f0983e730b5f8d1eff99a04b61c",
      "parents": [
        "a1c1a3344de1c0a35126ea6f43e1d55184f078da"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Sep 25 22:43:36 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 26 08:57:17 2013 -0700"
      },
      "message": "Make it easier to add syscalls for another architecture.\n\nMuch of the per-architecture duplication can be removed, so let\u0027s do so\nbefore we add the 64-bit architectures.\n\nChange-Id: Ieb796503c8e5353ea38c3bab768bb9a690c9a767\n"
    },
    {
      "commit": "b4f7616fd618875768b8fffc122b58bdb84a9969",
      "tree": "7a76517ef594dd73dfe18c388483e504fccb0a3d",
      "parents": [
        "f8e71bac14a4bc52cc95c56adfe042c3938279b5"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 19 16:27:24 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 19 16:27:24 2013 -0700"
      },
      "message": "Ensure we have the off64_t variant of every function that takes an off_t.\n\nChange-Id: Ib2eee0cf13162be3b62559b84e90c6dcf5aab1c3\n"
    },
    {
      "commit": "3c4b50fd8cce143d9ba8f03a93f0fccba4e54d14",
      "tree": "f1db656c0c18b55cdbb471f413c05701a4e055b8",
      "parents": [
        "99b859cf786f208300f7fc3a6fa5b570c3333433"
      ],
      "author": {
        "name": "Pavel Chupin",
        "email": "pavel.v.chupin@intel.com",
        "time": "Fri Jul 26 16:50:11 2013 +0400"
      },
      "committer": {
        "name": "Pavel Chupin",
        "email": "pavel.v.chupin@intel.com",
        "time": "Tue Sep 03 16:20:52 2013 +0400"
      },
      "message": "Fix strchr for basic non-sse case on x86\n\nFix source location. Move declaration of __strchr_chk out of\nifdef __BIONIC_FORTIFY which should be available for strchr.cpp\ncompilation when __BIONIC_FORTIFY is not defined.\n\nChange-Id: I552a6e16656e59b276b322886cfbf57bbfb2e6a7\nSigned-off-by: Pavel Chupin \u003cpavel.v.chupin@intel.com\u003e\n"
    },
    {
      "commit": "baa91f4f8974b6e9a81fa3aa49f051b3bf823653",
      "tree": "5107a2ba56f4f360dd171abaa3f84e360ab0ab5b",
      "parents": [
        "aa2733d17b87c607fccbd6e6a0f44d2d411ffd77"
      ],
      "author": {
        "name": "Alexander Ivchenko",
        "email": "alexander.ivchenko@intel.com",
        "time": "Thu Jun 27 12:55:46 2013 +0400"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 02 17:57:23 2013 -0700"
      },
      "message": "Add ssse3 implementation of __memcmp16.\n\n__memcmp16 was missing in x86. Also added C-version for backward\ncompatibility. Added bionic test for __memcmp16 and for wmemcmp.\n\nChange-Id: I33718441e7ee343cdb021d91dbeaf9ce2d4d7eb4\nSigned-off-by: Alexander Ivchenko \u003calexander.ivchenko@intel.com\u003e\n"
    },
    {
      "commit": "995f17e6a9a9903f03f542192da9a83b1cabc684",
      "tree": "df293d04f7d4dee17ae89a88b389525e05ccbf83",
      "parents": [
        "c76550b3377f50a2bc53536e2713e14edc8dbeac",
        "d206b560e72e791b5dfeb339b5f7c18354bf95fd"
      ],
      "author": {
        "name": "Rom Lemarchand",
        "email": "romlem@google.com",
        "time": "Tue Jun 25 22:25:30 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jun 25 22:25:31 2013 +0000"
      },
      "message": "Merge \"libc: add swapon and swapoff syscalls\""
    },
    {
      "commit": "64a4f6adf7c3f191cc819b5baa83dcb474aea2db",
      "tree": "695297841a513635afa1dcd294e5644cafd78b0b",
      "parents": [
        "7d624e9aff4c6addea7f2275fe58ff0815d95c70"
      ],
      "author": {
        "name": "Pavel Chupin",
        "email": "pavel.v.chupin@intel.com",
        "time": "Fri Apr 19 13:09:25 2013 +0400"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jun 25 14:17:58 2013 -0700"
      },
      "message": "Update x86 machine/endian.h from upstream\n\nAfter download new version from upstream (OpenBSD 1.17) did the\nfollowing:\n * changed all u_int* types to uint*\n * add #include \u003csys/types.h\u003e\n\nAll these changes are Android-specific and had been done before for\nprevious version (1.14).\n\nBug: http://code.google.com/p/android/issues/detail?id\u003d54465\nChange-Id: Ieb44e7fce4e794d997bb00ee0dd417fb61521720\nSigned-off-by: Pavel Chupin \u003cpavel.v.chupin@intel.com\u003e\n"
    },
    {
      "commit": "d206b560e72e791b5dfeb339b5f7c18354bf95fd",
      "tree": "43505a7c19af687b367549236c9d12778a263ff7",
      "parents": [
        "7d624e9aff4c6addea7f2275fe58ff0815d95c70"
      ],
      "author": {
        "name": "Rom Lemarchand",
        "email": "romlem@google.com",
        "time": "Thu Jun 06 14:29:40 2013 -0700"
      },
      "committer": {
        "name": "Rom Lemarchand",
        "email": "romlem@google.com",
        "time": "Tue Jun 25 13:18:03 2013 -0700"
      },
      "message": "libc: add swapon and swapoff syscalls\n\nChange-Id: Ie79dc8e3f2ff1cd427dd6d95e3850920c4b407b0\nSigned-off-by: Rom Lemarchand \u003cromlem@google.com\u003e\n"
    },
    {
      "commit": "0a490665a3a287cd3aee1e7327f2381222c387c4",
      "tree": "57ae5c88efa43bb4e22cb8c251776a307e65c7ca",
      "parents": [
        "8d79fd1c94cb021b6852e6f44e27183ec83fe04c"
      ],
      "author": {
        "name": "Liubov Dmitrieva",
        "email": "liubov.dmitrieva@intel.com",
        "time": "Tue Jan 17 12:55:46 2012 +0400"
      },
      "committer": {
        "name": "Liubov Dmitrieva",
        "email": "liubov.dmitrieva@intel.com",
        "time": "Fri May 31 13:37:03 2013 +0400"
      },
      "message": "bionic/x86: Optimization for string routines\n\nOptimized strcpy, strcat,\nstrncpy, strncat, strlcpy, strlcat,\nmemchr, memrchr, strchr, strrchr, index,\nstrnlen, strlen, wcslen, wmemcmp, wcscmp,\nwcschr, wcsrchr, wcscpy, wcscat\n\nChange-Id: I82b29132edf9a2e144e0bb3ee4ff5217df8d2a6d\nSigned-off-by: Liubov Dmitrieva \u003cliubov.dmitrieva@intel.com\u003e\n"
    },
    {
      "commit": "e4c4ada5804beb689905286b9bbe6521a186d302",
      "tree": "aa5e0e69f65cc79d4b9aef84e63d6fff65a2e477",
      "parents": [
        "2317275f859a685386889139855f2f3314337d53"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri May 24 10:48:12 2013 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri May 24 10:50:05 2013 -0700"
      },
      "message": "libc x86: Remove index.S, strcpy.S, strchr.S\n\nThese files are never used.\n\nChange-Id: Iab8474bdff3bd4d225597c62b3c0f0849f808818\n"
    },
    {
      "commit": "615684c2562ac663ad1849b7772e921b0ff724c3",
      "tree": "eb4e1dc7467b3d8b0acfcf056c481a20e29d4a6f",
      "parents": [
        "f5f29de6ae5a0b74234f111b5691a1e5588671cb"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri May 24 08:52:04 2013 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri May 24 08:52:04 2013 -0700"
      },
      "message": "libc: delete x86 memchr.S\n\nThis file is never used.\n\nChange-Id: Ief08ad176713b5194048852609613801969e1364\n"
    },
    {
      "commit": "4200e6203aaa67c37874ad2b2271bff920297c7f",
      "tree": "5b2ff689915ec6230345c3d020e4f59da678e08f",
      "parents": [
        "e1c58ab5bb6284b3e3a2d0e54c295a93780b3f70"
      ],
      "author": {
        "name": "Todd Poynor",
        "email": "toddpoynor@google.com",
        "time": "Wed May 08 20:21:00 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue May 14 14:45:02 2013 -0700"
      },
      "message": "libc: add timerfd calls\n\n(cherry-pick of 04c0ac14a49e0969333008a9522b64046d58fbdc.)\n\nChange-Id: I06d0b6c2a8781602362b81f48faf1cca76b9ec05\n"
    },
    {
      "commit": "4cdde5f12364079a2b55fa4fc4ed53364cb8465d",
      "tree": "0446d7fadb5ff4378fee3d75fd1d9551d3c73c5a",
      "parents": [
        "3323628d635d3973965ee458c1fee7d8ab45136f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 21 22:48:18 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 21 22:48:18 2013 -0700"
      },
      "message": "Replace unnecessary x86 uses of \u003csys/linux-syscalls.h\u003e with \u003casm/unistd.h\u003e.\n\nChange-Id: I9d016ee8e8329cccf244d27c336d9524348af996\n"
    },
    {
      "commit": "5c2772f59d3b6f564897187324d8606f54423207",
      "tree": "2e6558ee71209b8520dbdd757b1d2cae37937040",
      "parents": [
        "babb72dc292a567674f6d7d2ccf7f63edaf77b80"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 21 22:15:06 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 21 22:26:20 2013 -0700"
      },
      "message": "The SYS_ constants should cover all __NR_ values.\n\n\u003csys/linux-syscalls.h\u003e only contains constants for the syscalls\nwe\u0027re generating stubs for. We want all the syscalls available\non the architecture in question.\n\nKeep using \u003csys/linux-syscalls.h\u003e on ARM for now because the\n__NR_ARM_set_tls and __NR_ARM_cacheflush values aren\u0027t in \u003casm/unistd.h\u003e.\n\nChange-Id: I66683950d87d9b18d6107d0acc0ed238a4496f44\n"
    },
    {
      "commit": "8f7120bbacb0bb7a8aca1102f76f64a462f40231",
      "tree": "ea3f120e146a043018529c4cd42b7632a5646ca0",
      "parents": [
        "800ad8249a398e94d039b6f6597e2a51558e41dd"
      ],
      "author": {
        "name": "Kito Cheng",
        "email": "kito@0xlab.org",
        "time": "Fri Mar 22 10:25:56 2013 +0800"
      },
      "committer": {
        "name": "Kito Cheng",
        "email": "kito@0xlab.org",
        "time": "Fri Mar 22 10:28:15 2013 +0800"
      },
      "message": "Drop unnecessary execution permission for .cpp/.c/.h\n\nChange-Id: I9ac2b9d8f6bdb4fab8962210c5ec8f9c3e8c0ebf\n"
    },
    {
      "commit": "17a8b0db63d54e9d79bf11112ace0c4fe9606289",
      "tree": "61b5f1d12776e4843e7ba70df5b20f97970be019",
      "parents": [
        "86c318497270c80a3791b4cd9835367653636377"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 21 15:43:53 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 21 16:14:06 2013 -0700"
      },
      "message": "Expose wait4 as wait4 rather than __wait4.\n\nThis helps strace(1) compile with one fewer hack.\n\nChange-Id: I5296d0cfec5546709cda990abd705ad33d7c4626\n"
    },
    {
      "commit": "ec706c24acb4d1db6a583a57b76adfb9250d39eb",
      "tree": "fcb512131936b2b686571bc53f2b6a3b06fca45f",
      "parents": [
        "980508b0ead3ee01e99e93635c57eb76d1aba62d",
        "9aceab50155b17741faded1fb22e2daa51a07fb1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Mar 13 00:44:33 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 13 00:44:33 2013 +0000"
      },
      "message": "Merge \"Use the kernel\u0027s MAX_ERRNO in the syscall stubs.\""
    },
    {
      "commit": "9aceab50155b17741faded1fb22e2daa51a07fb1",
      "tree": "d1a976cb41c6aa807c6b07f0e858f92ea5763b4f",
      "parents": [
        "94a34010c1f989032c0a4dc7a7a68d069ca23b1e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 12 14:57:30 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 12 17:43:58 2013 -0700"
      },
      "message": "Use the kernel\u0027s MAX_ERRNO in the syscall stubs.\n\nBug: http://code.google.com/p/android/issues/detail?id\u003d53104\nChange-Id: Iaabf7025b153e96dc5eca231a33a32d4cb7d8116\n"
    },
    {
      "commit": "04954a43b362b8c817cc5859513efad0c344f412",
      "tree": "372c39b6cfec1bc006a1adbdbc191a7c594a136b",
      "parents": [
        "6b4c77f854c079138d552608b9df5fa3035f0fcc"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Feb 26 01:30:00 2013 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Mar 12 14:06:08 2013 -0700"
      },
      "message": "Break bionic implementations into arch versions.\n\nMove arch specific code for arm, mips, x86 into separate\nmakefiles.\nIn addition, add different arm cpu versions of memcpy/memset.\n\nBug: 8005082\n\nMerge from internal master (acdde8c1cf8e8beed98c052757d96695b820b50c).\n\nChange-Id: I04f3d0715104fab618e1abf7cf8f7eec9bec79df\n"
    },
    {
      "commit": "538f6fc202b07219ce78de54c0e05ab81e937154",
      "tree": "a8ed6260b45d305d695f99c7aa1b96e1617caaee",
      "parents": [
        "a0259b42eba08e6d71a274fa3f770afccbb93107"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 21 17:39:06 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 21 17:39:06 2013 -0800"
      },
      "message": "Stop advertising rindex(3), which is both deprecated and unimplemented.\n\nChange-Id: I3c775d9974e49c3f76a53e46e022659657b89034\n"
    },
    {
      "commit": "11ebbc8437af208f64861b7531502ff0eeb30e03",
      "tree": "0fbde52d13d9be98860d588530a320e4d7b3427f",
      "parents": [
        "ccd403161cdcc88a0ffcaecd1bc707e2d4c88a1c"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Feb 21 17:17:09 2013 -0800"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Feb 21 17:17:09 2013 -0800"
      },
      "message": "libc: remove bcmp prototype\n\nAFAIK, bionic only ever provided an implementation of bcmp\nfor x86, and even then, the code was never actually compiled.\nRemove the prototype.\n\nbcmp() has been obsoleted and replaced by memcmp()\n\nChange-Id: I549d02ab6a9241a9acbbbfade0d98a9a02c2eaee\n"
    },
    {
      "commit": "40eabe24e4e3ae8ebe437f1f4e43cf39cbba2e9e",
      "tree": "19eef7fcbba616a52bd37f4c83ece3e918b25445",
      "parents": [
        "3e3b239d2be0c5a92e91385f4f10b8f7da8d2837"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 14 18:59:37 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 15 12:08:59 2013 -0800"
      },
      "message": "Fix the pthread_setname_np test.\n\nFix the pthread_setname_np test to take into account that emulator kernels are\nso old that they don\u0027t support setting the name of other threads.\n\nThe CLONE_DETACHED thread is obsolete since 2.5 kernels.\n\nRename kernel_id to tid.\n\nFix the signature of __pthread_clone.\n\nClean up the clone and pthread_setname_np implementations slightly.\n\nChange-Id: I16c2ff8845b67530544bbda9aa6618058603066d\n"
    },
    {
      "commit": "d2547040a13fe1bce31a60df35d4953c596a3db0",
      "tree": "ae25504b5bcb17d9aa7b790b873a2f9227f51f8b",
      "parents": [
        "95b1ea1bb3c93369d96045420b91b7617992d8bd"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 13 16:31:52 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 13 16:31:52 2013 -0800"
      },
      "message": "ffs was not being built for x86.\n\nChange-Id: I53e92273664a4d0a13536c2fa1aeb87e1f3cf4e8\n"
    },
    {
      "commit": "6719500dbd9330d7539d2db3dcf3e8ad1858c7aa",
      "tree": "c5ee88ca9fa2aadf63a88f2a0255ecdcee07e881",
      "parents": [
        "2fee0340a93637507de6a860914dc3e14d44ee94"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 13 15:12:32 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 13 15:12:32 2013 -0800"
      },
      "message": "Add a bunch more missing ENDs to assembler routines.\n\nThis isn\u0027t everything; I\u0027ve missed out those x86 files that are\n\nChange-Id: Idb7bb1a68796d6c0b70ea2b5c3300e49da6c62d2\n"
    },
    {
      "commit": "b6032515a058fb02c8c4152c9f055bb3bd462ae2",
      "tree": "81d718c6da869f3eb71742f8c546a72936200303",
      "parents": [
        "baf2c09f3f47a35b195eb83cc7acffeaf4b6d4e9"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 12 23:02:33 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 12 23:02:33 2013 -0800"
      },
      "message": "Fix __pthread_clone and __bionic_clone error handling on x86.\n\nBug: 3461078\nChange-Id: I93c151e27411211dd32717f206745c62c08c21ee\n"
    },
    {
      "commit": "bdff26df2749d8d66e5d4eb5a2ecf4a9ff50fad2",
      "tree": "63abbeeb4ca8f58a7fa4c36c4cc8b21d20755b80",
      "parents": [
        "c56be54a18eff7e1c35c9a19cfc8b84a80780b73"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 11 17:08:16 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 11 17:08:16 2013 -0800"
      },
      "message": "Use ENTRY/END in custom x86 assembler too.\n\nChange-Id: Ic2e482e5daff29c65d3b2ab0b2111c996bbc6226\n"
    },
    {
      "commit": "5e3fc43ddeada547a155c6f561a12ff0b16e02d3",
      "tree": "9becf3a8442387f408f7f9ee73ab06ab7f8865d1",
      "parents": [
        "1fea0f258a45d918fe5ae8e9769f45c0348bd095"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 11 16:36:48 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 11 16:39:10 2013 -0800"
      },
      "message": "Fix __pthread_clone on ARM to set errno on failure.\n\nMIPS and x86 appear to have been correct already.\n\n(Also fix unit tests that ASSERT_EQ with errno so that the\narguments are in the retarded junit order.)\n\nBug: 3461078\nChange-Id: I2418ea98927b56e15b4ba9cfec97f5e7094c6291\n"
    },
    {
      "commit": "646e058136d59671d5d32d93bedbb71004a9ce73",
      "tree": "354d30a60436bb8a093faf72b56ad2b96abb55b6",
      "parents": [
        "2f41531ff9f48dbdaf2ba711e14c669031728e99"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 07 12:16:10 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 07 12:16:10 2013 -0800"
      },
      "message": "Fix x86 build, remove void* arithmetic.\n\nChange-Id: Idc7f14af2e094ac33de315e808176237af063bb8\n"
    },
    {
      "commit": "2f41531ff9f48dbdaf2ba711e14c669031728e99",
      "tree": "ae8b9be038220ed0d4cba96453560676d8bd4699",
      "parents": [
        "d4187efd7f9c30ffaff4738862e3d08be27a52e9",
        "42b2c6a5eed5e4ef35315b8cd32d1355f12a69b6"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 07 19:48:16 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 07 19:48:17 2013 +0000"
      },
      "message": "Merge \"Clean up the argc/argv/envp/auxv handling.\""
    },
    {
      "commit": "42b2c6a5eed5e4ef35315b8cd32d1355f12a69b6",
      "tree": "0fb55a369b620ef79cfa103f67a5184f067dadeb",
      "parents": [
        "d32fdbaf03f688497adbec885e85c0a69f7a4542"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 07 10:14:39 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 07 11:44:21 2013 -0800"
      },
      "message": "Clean up the argc/argv/envp/auxv handling.\n\nThere\u0027s now only one place where we deal with this stuff, it only needs to\nbe parsed once by the dynamic linker (rather than by each recipient), and it\u0027s\nnow easier for us to get hold of auxv data early on.\n\nChange-Id: I6314224257c736547aac2e2a650e66f2ea53bef5\n"
    },
    {
      "commit": "7582a9c119a4e4d0c306996b2513205889a9fb6c",
      "tree": "44c9126902c7477c5f260323a07a775725c22f55",
      "parents": [
        "d32fdbaf03f688497adbec885e85c0a69f7a4542"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 06 17:08:15 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 06 17:08:15 2013 -0800"
      },
      "message": "Switch x86 syscall stubs over to the ENTER/END style of the ARM stubs.\n\nAlso update the x86 asm.h to support this; we need it for libm assembler\nanyway.\n\nAlso clean up the _FBSDID hack in \u003csys/cdefs.h\u003e.\n\nChange-Id: Iababd977b8110ec022bf7c93f4d62ece47630e7c\n"
    },
    {
      "commit": "a0ee07829a9ba7e99ef68e8c12551301cc797f0f",
      "tree": "fefc432ee572779579a16d2868d4181a33399281",
      "parents": [
        "a990cf5b3392c5aef767aee1e67b4d7ef651afc6"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 30 19:06:37 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 01 14:51:19 2013 -0800"
      },
      "message": "Upgrade libm.\n\nThis brings us up to date with FreeBSD HEAD, fixes various bugs, unifies\nthe set of functions we support on ARM, MIPS, and x86, fixes \"long double\",\nadds ISO C99 support, and adds basic unit tests.\n\nIt turns out that our \"long double\" functions have always been broken\nfor non-normal numbers. This patch fixes that by not using the upstream\nimplementations and just forwarding to the regular \"double\" implementation\ninstead (since \"long double\" on Android is just \"double\" anyway, which is\nwhat BSD doesn\u0027t support).\n\nAll the tests pass on ARM, MIPS, and x86, plus glibc on x86-64.\n\nBug: 3169850\nBug: 8012787\nBug: https://code.google.com/p/android/issues/detail?id\u003d6697\nChange-Id: If0c343030959c24bfc50d4d21c9530052c581837\n"
    },
    {
      "commit": "a6a3ac59243d8c95c94c3069e9332051f785c05f",
      "tree": "1a8567d1852f147f346240ac6f8187f9e9b526c3",
      "parents": [
        "3db2fc5acb4894a2cb22533b165a0de1bbafc3f6"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 29 15:02:50 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 29 15:02:50 2013 -0800"
      },
      "message": "Use the NetBSD \u003csys/exec_elf.h\u003e.\n\nReplace a kernel header file dependency with files from NetBSD.\nThey\u0027re more complete, and ELF is ELF, whether you\u0027re on Linux or a BSD.\n\nBug: 7973611\nChange-Id: I83ee719e7efdf432ec2ddbe8be271d05b2f558d7\n"
    },
    {
      "commit": "a4b2dc016fa62bd172a73c3f8971c805700ffb0f",
      "tree": "e4fdfa1397187776c680825a805ae3672c27c052",
      "parents": [
        "364d9ee62f583bca795a2b40f71a04e272c80389"
      ],
      "author": {
        "name": "Rom Lemarchand",
        "email": "romlem@google.com",
        "time": "Wed Jan 09 15:46:06 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 10 13:14:46 2013 -0800"
      },
      "message": "Add signalfd call to bionic\n\nAdd signalfd() call to bionic.\n\nAdding the signalfd call was done in 3 steps:\n- add signalfd4 system call (function name and syscall\n  number) to libc/SYSCALLS.TXT\n- generate all necessary headers by calling\n  libc/tools/gensyscalls.py. This patch is adding\n  the generated files since the build system\n  does not call gensyscalls.py.\n- create the signalfd wrapper in signalfd.cpp and add\n  the function prototype to sys/signalfd.h\n\n(cherry-pick of 0c11611c11f4dc1b6d43587b72c3ccbe8c51a51c, modified to\nwork with older versions of GCC still in use on some branches.)\n\nChange-Id: I4c6c3f12199559af8be63f93a5336851b7e63355\n"
    },
    {
      "commit": "4fa35d8ae80c175425e9525831d7b6a71a3ada60",
      "tree": "aa349c2c944131991af7fcbcd91b1ab54c9c6b4e",
      "parents": [
        "0521ff8234cafcc61060961b2f856fcf4dae1e7d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Dec 11 16:14:54 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Dec 11 16:17:33 2012 -0800"
      },
      "message": "Fix \u003cendian.h\u003e and \u003csys/endian.h\u003e.\n\nPreviously we\u0027d been relying on getting the machine-specific \u003cendian.h\u003e\ninstead of the top-level \u003cendian.h\u003e, and \u003csys/endian.h\u003e was basically broken.\nNow, with this patch and the previous patch we should have \u003cendian.h\u003e\nand \u003csys/endian.h\u003e behaving the same. This is basically how NetBSD\u0027s endian.h\nworks, and was probably how ours was originally intended to work.\n\nBug: http://code.google.com/p/android/issues/detail?id\u003d39824\nChange-Id: I71de5a507e633de166013a658b5764df9e1aa09c\n"
    },
    {
      "commit": "97b70b2bda47af46adf58dfde61050357114aa1f",
      "tree": "b9158b242f0beaacf3c9f6eb72fcc818cc812b87",
      "parents": [
        "07c0b73a7fc9214e50fc6b9a15a06aeef0506e0f",
        "20c4a3a8eee5ca8c87ae377732f541baffce1fda"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Nov 30 10:06:53 2012 -0800"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 30 10:07:19 2012 -0800"
      },
      "message": "Merge \"Replace .S version of x86 crtfiles with .c version\""
    },
    {
      "commit": "20c4a3a8eee5ca8c87ae377732f541baffce1fda",
      "tree": "73b9ac8f6749da7b637f90727f5f7051bf0e36aa",
      "parents": [
        "8784709a2cfe6d32b5fff2c6b826b8d9cbf73d7b"
      ],
      "author": {
        "name": "Pavel Chupin",
        "email": "pavel.v.chupin@intel.com",
        "time": "Wed Nov 28 18:31:14 2012 +0400"
      },
      "committer": {
        "name": "Pavel Chupin",
        "email": "pavel.v.chupin@intel.com",
        "time": "Fri Nov 30 17:41:25 2012 +0400"
      },
      "message": "Replace .S version of x86 crtfiles with .c version\n\nThis patch replaces .S versions of x86 crtfiles with .c which are much\neasier to support. Some of the files are matching .c version of Arm\ncrtfiles. x86 files required some cleanup anyway and this cleanup actually\nled to matching Arm files.\n\nI didn\u0027t change anything to share the same crt*.c between x86 and Arm. I\nprefer to keep them separate for a while in case any change is required\nfor one of the arch, but it\u0027s good thing to do in the following patches.\n\nChange-Id: Ibcf033f8d15aa5b10c05c879fd4b79a64dfc70f3\nSigned-off-by: Pavel Chupin \u003cpavel.v.chupin@intel.com\u003e\n"
    },
    {
      "commit": "3975cec694a0c9b42e3f7e671fcd678da92836c3",
      "tree": "bf92249d492ff0b9902d06950814e18be342a4b8",
      "parents": [
        "50e62e4051c14d7d2a5e07ebe66afd2a81693a26"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 29 17:25:23 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 29 17:25:23 2012 -0800"
      },
      "message": "Remove (near-)duplicate definitions of size_t and ssize_t.\n\nThe near duplicates upset fussier compilers that insist that\ntypedefs be exactly the same, but the fix isn\u0027t to make all\ncopies identical...\n\nChange-Id: Icfdace41726f36ec33c9ae919dbb5a54d3529cc9\n"
    },
    {
      "commit": "b15c58bb0fe55f076751acd7a5d00ded0ec33963",
      "tree": "a77604250097aa29d362334783e7f4d9277efa67",
      "parents": [
        "f2de6b0f6e873f9cb28682b8fc6764b0ab41c6ee"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Nov 27 14:18:04 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Nov 27 14:18:04 2012 -0800"
      },
      "message": "Clean up _BYTE_ORDER definitions for better x86 portability.\n\nWe\u0027d manually hacked _BYTE_ORDER into the arm and mips \"_types.h\" headers,\nbut not into the x86 one. Judging by upstream, _BYTE_ORDER should be in\nthe \"endian.h\" headers instead, so let\u0027s uniformly do that.\n\nI\u0027ve also ironed out some of the other differences between the different\narchitectures\u0027 header files too.\n\nBug: http://code.google.com/p/android/issues/detail?id\u003d39824\nChange-Id: I19d3af7ffd74e1c02b1b6886aec0f0d11f44ab8d\n"
    },
    {
      "commit": "c1b44ecc5385e68e81667068e03b32c2084a85b1",
      "tree": "d80d0045d50a9c5c775dbfb574f0635520ab104c",
      "parents": [
        "4136c3a2b7f7546968c5a305aa2ef0663fcb6c6d"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@android.com",
        "time": "Wed Oct 17 19:10:11 2012 +0200"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@android.com",
        "time": "Wed Oct 17 19:10:11 2012 +0200"
      },
      "message": "Revert \"libc: Provide ucontext_t/mcontext_t/\u003csys/ucontext.h\u003e\"\n\nThis creates build issues in the internal Android tree.\nWill investigate later.\n\nOriginal patch: https://android-review.googlesource.com/#/c/38875/\n\nChange-Id: I12c5995ebf172890051af42a5d3b31014c9c5117\n"
    },
    {
      "commit": "c124baaf29a948fd8b93e7f1fefc20b659271026",
      "tree": "a2f4e090a3822fc51b94ab9f1bf03117993dd2c5",
      "parents": [
        "a9944cfe9e152ca46afb0a77300ec5a2a1a24e64"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@android.com",
        "time": "Thu Jul 12 19:06:15 2012 +0200"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@android.com",
        "time": "Wed Oct 17 15:59:23 2012 +0200"
      },
      "message": "libc: Provide ucontext_t/mcontext_t/\u003csys/ucontext.h\u003e\n\nThis patch updates the C library headers to provide ucontext_t\ndefinitions for three architectures.\n\n+ Fix \u003csignal.h\u003e to always define \u0027struct sigcontext\u0027.\n\nThe new declarations are announced with new macros defined in\n\u003csys/cdefs.h\u003e in order to make it easier to adapt client code\nthat already defines its own, incompatible, versions of the\nstructures seen here.\n\nhttp://code.google.com/p/android/issues/detail?id\u003d34784\n\nChange-Id: Ie78c48690a4ce61c50593f6c39639be7fead3596\n"
    },
    {
      "commit": "1ad05db9cef23c1ca28ffd51852fa2a0b0c9b4b7",
      "tree": "23595a588bdd3a9bfb5c223e4cc7bc39b8dd84d9",
      "parents": [
        "6e3b0f2d2e89a8f3bbfc5d26dcdc13233c1111ba"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 06 11:24:45 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 06 11:24:45 2012 -0700"
      },
      "message": "Add mlockall and munlockall for Google TV.\n\nChange-Id: I10e961d701e74aab07211ec7975f61167e387853\n"
    },
    {
      "commit": "1ad10a566e042676c95a0bdbf3cbc48e99ddafb2",
      "tree": "113ce6b3d9940da27f19e77d9234feeafa082671",
      "parents": [
        "8b4e8a937be2e7ac94e52d596813095ef16c9ec8"
      ],
      "author": {
        "name": "Irina Tirdea",
        "email": "irina.tirdea@intel.com",
        "time": "Wed Aug 29 11:48:35 2012 +0300"
      },
      "committer": {
        "name": "Irina Tirdea",
        "email": "irina.tirdea@intel.com",
        "time": "Mon Sep 03 01:38:34 2012 +0300"
      },
      "message": "Add getsid system call to bionic\n\nAdd getsid() system call to bionic for\nall architectures. This is needed for various tools\n(e.g. perf).\n\nAdding the getsid system call was done in 3 steps:\n() add getsid system call (function name and syscall\nnumber) to libc/SYSCALLS.TXT\n() generate all necessary headers by calling\nlibc/tools/gensyscalls.py. This patch is adding\nthe generated files since the build system\ndoes not call gensyscalls.py.\n() add the system call signature to libc/include/unistd.h\n\nChange-Id: Id69a257e13ec02e1a44085a6b217a3f19ab025b1\nSigned-off-by: Irina Tirdea \u003cirina.tirdea@intel.com\u003e\n"
    },
    {
      "commit": "c0b4d18d7d23981c1afa6a98ded011849a3c2fe2",
      "tree": "9570ba9144f949a6064c141547cee78a72fbf745",
      "parents": [
        "1bd035cf119a2e4a667f07907c7860e5ec223cee"
      ],
      "author": {
        "name": "Kevin Schoedel",
        "email": "kevin.p.schoedel@intel.com",
        "time": "Fri Jun 29 09:23:47 2012 -0400"
      },
      "committer": {
        "name": "Edwin Vane",
        "email": "edwin.vane@intel.com",
        "time": "Tue Aug 21 15:28:23 2012 -0400"
      },
      "message": "Use unambiguous mnemonics\n\nChange-Id: I8da0af54cc3cbf69d9e485eb71bc44a6976b1adc\nAuthor: Kevin P Schoedel \u003ckevin.p.schoedel@intel.com\u003e\nReviewed-by: Edwin Vane \u003cedwin.vane@intel.com\u003e\n"
    },
    {
      "commit": "22d366cc09383956dc264ed4641572e609392eee",
      "tree": "8364d1dc738a464cc40bf1ccdaa13ab885f71934",
      "parents": [
        "e1cd69a708d30fbc3b9e0e8d4db67f67fc123b65"
      ],
      "author": {
        "name": "Jin Wei",
        "email": "wei.a.jin@intel.com",
        "time": "Wed Aug 08 15:15:16 2012 +0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 15 17:04:50 2012 -0700"
      },
      "message": "enable clone system call for x86\n\nAdd __bionic_clone function for x86, which will be\nused for clone system call.\n\nChange-Id: I889dc9bf4b7ebb4358476e17e6f3233e26491f4d\nSigned-off-by: Jin Wei \u003cwei.a.jin@intel.com\u003e\nSigned-off-by: Xiaokang Qin \u003cxiaokang.qin@intel.com\u003e\nSigned-off-by: Beare, Bruce J \u003cbruce.j.beare@intel.com\u003e\nSigned-off-by: Jack Ren \u003cjack.ren@intel.com\u003e\nAuthor-tracking-BZ: 51414\n"
    },
    {
      "commit": "e36c826f7a6580227e9e70f6ec70aa88ba0f577e",
      "tree": "d36ec57b36b908d06e3d277c0eb1e486ca18da89",
      "parents": [
        "4ec9e343cf445c5032d9a782d2e92b1dba713e61"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Aug 10 11:17:59 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 10 12:57:43 2012 -0700"
      },
      "message": "Add unshare() syscall.\n\n(cherry-pick of 5467f25f82934d611c60f8bc57a05114f3c1bea0.)\n\nBug: 6925012\nChange-Id: Ic5ea2fbd606311087de05d7a3594df2fa9b2fef9\n"
    }
  ],
  "next": "7c92b6ca409f514e7ff67ac8c10d73ce92ff38d2"
}
