)]}'
{
  "log": [
    {
      "commit": "bc475bc8d1d202baa48f6c9829fe1cced9122332",
      "tree": "20940f846ec40d52c5517d28b6e96abab9180301",
      "parents": [
        "ecbf00bda2fcee65e4e6385772022529ffeeed91",
        "8f2a30a92ab6981cccbc1a9e17b738f7542ae33f"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Mar 26 19:40:59 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 26 19:40:59 2014 +0000"
      },
      "message": "Merge \"Add accept4() syscall\""
    },
    {
      "commit": "ecbf00bda2fcee65e4e6385772022529ffeeed91",
      "tree": "b85cebec3747f506dd11c4a3217e0d0cad0fa60f",
      "parents": [
        "c8fc4ddc183060aa979185d5a6845f26beb1a733",
        "f1de90b3a26d6ec46c0f1c741ef93509fe69f942"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Mar 26 14:23:59 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 26 14:24:01 2014 +0000"
      },
      "message": "Merge \"Clean up CMSG_*HDR in \u003csys/socket.h\u003e\""
    },
    {
      "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": "f1de90b3a26d6ec46c0f1c741ef93509fe69f942",
      "tree": "b80cd059473878fdbb83ec9440ae827ebc98f237",
      "parents": [
        "849e162d3bedc5ca61bdf15486268b253b9f4e93"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Mar 19 17:40:23 2014 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Mar 25 17:07:37 2014 +0000"
      },
      "message": "Clean up CMSG_*HDR in \u003csys/socket.h\u003e\n\nRemoved __CMSG_NXTHDR, __CMSG_FIRSTHDR and cmsg_nxthdr.\n\nBug: 13418328\nChange-Id: I6b1ed58b41b3f37d41e070c4f222b5bfa512bc48\n"
    },
    {
      "commit": "c20de902875dcaebde0ccd0b7a8351598f254d4c",
      "tree": "cb4a8a75dd787d93bca11fc0a2da944a7fc2e76f",
      "parents": [
        "849e162d3bedc5ca61bdf15486268b253b9f4e93"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Mar 20 15:21:32 2014 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Mar 21 09:59:34 2014 +0000"
      },
      "message": "Remove ALIGNBYTES and ALIGN from \u003csys/param.h\u003e\n\nThere are only three users of bionic definition of ALIGN and keeping it\nin sys/param.h polutes the namespace.\n\nI inline the definition in the the three places that\u0027s used.\n\nBug: 13400663\nChange-Id: I565008e8426c38ffb07422f42cd8e547d53044e9\n"
    },
    {
      "commit": "2282e16d76c6691968bd62a4c4bb3ecefabc98ca",
      "tree": "d3fa1fc25132fa088ec53fe35fa07e5de018c64b",
      "parents": [
        "ef43a6fb0e0c5fb1debd8db83a5b57749e8331fa",
        "2725ca95b23bc59ac7e7d7d52362c369db180671"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Mar 12 20:48:39 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 12 20:48:39 2014 +0000"
      },
      "message": "Merge \"Use [u]int32_t instead of __[u]int32_t in sys/types.h\""
    },
    {
      "commit": "2725ca95b23bc59ac7e7d7d52362c369db180671",
      "tree": "d3968d6f45bd018b37d1f872cc9a8eead4f5fdeb",
      "parents": [
        "5810bcf381e28e423a782af9bf53c05085b09926"
      ],
      "author": {
        "name": "Pavel Chupin",
        "email": "pavel.v.chupin@intel.com",
        "time": "Wed Mar 12 11:23:49 2014 +0400"
      },
      "committer": {
        "name": "Pavel Chupin",
        "email": "pavel.v.chupin@intel.com",
        "time": "Thu Mar 13 00:23:43 2014 +0400"
      },
      "message": "Use [u]int32_t instead of __[u]int32_t in sys/types.h\n\nAvoid this error in -ffreestanding mode:\nsys/types.h:45:1: error: unknown type name \u0027__uint32_t\u0027\n\nChange-Id: I826b36873862d1d70b47401f31f4369a77666b8e\nSigned-off-by: Pavel Chupin \u003cpavel.v.chupin@intel.com\u003e\n"
    },
    {
      "commit": "cccfe1e17c47799deee67fa23f48d8c860390ac8",
      "tree": "6f9e16f0334ab314da4aaabea677b1c5d47f471f",
      "parents": [
        "753e1399060c08072a8fb17eb297889a2ae987d0"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 11 13:37:11 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 11 13:37:11 2014 -0700"
      },
      "message": "Reimplement clock(3) and switch to OpenBSD time(3).\n\nThe new implementation is a better approximation to the processor time used\nby the process because it\u0027s actually based on resource usage rather than just\nelapsed wall clock time.\n\nChange-Id: I9e13b69c1d3048cadf0eb9dec1e3ebc78225596a\n"
    },
    {
      "commit": "247dc91889ffc8b71fc3371edba9d834afab96ab",
      "tree": "5e7fc130a6cfee3b122b0689eaeab4a2094272c8",
      "parents": [
        "a3056591960f9d9f646135ee20804cc1a9e41106"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 10 17:17:01 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 10 17:17:01 2014 -0700"
      },
      "message": "Take ownership of various simple syscall wrappers.\n\nNone of these trivial functions is something we\u0027re going to get from BSD.\n\nChange-Id: Iee1d1281b73db67da5ec303da7a49748121464bf\n"
    },
    {
      "commit": "4b558f50a42c97d461f1dede5aaaae490ea99e2e",
      "tree": "c239a686131cdda28272c961ce98febbc0c772f8",
      "parents": [
        "bef5016491eed41521f514d5c5528e2274689948"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 04 15:58:02 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 07 16:49:46 2014 -0800"
      },
      "message": "Rewrite the POSIX timer functions.\n\nThis is a much simpler implementation that lets the kernel\ndo as much as possible.\n\nCo-authored-by: Jörgen Strand \u003cjorgen.strand@sonymobile.com\u003e\nCo-authored-by: Snild Dolkow \u003csnild.dolkow@sonymobile.com\u003e\nChange-Id: Iad19f155de977667aea09410266d54e63e8a26bf\n"
    },
    {
      "commit": "e4ab19c67d00b526a3f8c1af4e8e8153c2867294",
      "tree": "796913d98a7b1ad57b09ed747c95562aa140ef42",
      "parents": [
        "ddad384dbf802bf258e19a8d18f5d9e9fba8f97b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 03 10:57:28 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 03 10:57:28 2014 -0800"
      },
      "message": "Remove deprecated and unused constants from \u003csys/klog.h\u003e.\n\nChange-Id: I23d54b5eaf918859480f927534a3f9e3af602311\n"
    },
    {
      "commit": "a8b1eb3fcf13fab029a16fa3b6636218a64c4583",
      "tree": "d36173147fe379d5b636503743b6fe37455322a0",
      "parents": [
        "2ec592c338f5c5021f127e92212d156cd909c617"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 28 17:59:29 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 28 17:59:29 2014 -0800"
      },
      "message": "Fix build.\n\nChange-Id: I71cde79263d5f5a8382865b8151f65c5c05ea17b\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": "0e44bc3baeb1677e5fbdda87a737b9c508c95132",
      "tree": "1470737507c2d3924297e61e463edc18a191cc8e",
      "parents": [
        "b26e4944e2a5bf4b7e33fa38fb17a3b76c7fe0f7"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 24 15:55:31 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 24 15:55:31 2014 -0800"
      },
      "message": "Remove \u003casm/page.h\u003e.\n\nIf we have PAGE_SIZE/PAGESIZE, POSIX says they should be in \u003climits.h\u003e.\n\nChange-Id: I3c2d574ea2aea81f524874a156361411a4ffa18e\n"
    },
    {
      "commit": "c9ae21a5c3b2e1baafe50f752e2e07e343d39530",
      "tree": "80d3c9ac31b5c5662b70aacd9c03d9d798ceafae",
      "parents": [
        "3572fbc8cd01d90a7f0c65a15c79abf1ece144ef"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Feb 19 17:59:05 2014 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Feb 24 10:45:35 2014 +0000"
      },
      "message": "Move system_properties over to C++.\n\nThis change constitutes the minimum amount of\nwork required to move the code over to C++, address\ncompiler warnings, and to make it const correct and\nidiomatic (within the constraints of being called\nfrom C code).\n\nbug: 13058886\n\nChange-Id: Ic78cf91b7c8e8f07b4ab0781333a9e243763298c\n"
    },
    {
      "commit": "6b5559315d959347fcc01781669f771746cbb2ee",
      "tree": "1a810ab6de06ed4a07b6df58ee967948d4b452ab",
      "parents": [
        "787c1f937a915feefb767d0c6a15ddb70e6de933"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 18 16:43:31 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 18 16:43:31 2014 -0800"
      },
      "message": "Use uid_t and gid_t for st_uid and st_gid in struct stat.\n\nChange-Id: Ide62dc714d76d881e3aa79e7a59ee6533a23dd00\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": "aa0ebdafc71e1ceac78e0929b94f3bb117d0c8e9",
      "tree": "e0fa3c926172fbc3e4b1a43950ae2a7ea662deb7",
      "parents": [
        "9e572ca4163e42bcd053df2cb8557e4b61ad064d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 11 19:57:06 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 12 17:09:25 2014 -0800"
      },
      "message": "Clean up sys_signame and sys_siglist a little.\n\nWe don\u0027t need quite so much duplication because we already have a way\nto get the signal number from its name, and that already copes with the\nfact that the mips/mips64 numbers are different from everyone else\u0027s.\n\nAlso remove sys_signame from LP64. glibc doesn\u0027t have this BSD-ism.\n\nChange-Id: I6dc411a3d73589383c85d3b07d9d648311492a10\n"
    },
    {
      "commit": "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": "ebd90b9ba99cdd49a4a4eea38b1b8654af942e97",
      "tree": "84c7f281ae270ff073dda6deb9621350aba20488",
      "parents": [
        "c16a4532917259fabc8018d681cdd1ad1b1b5e08"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 07 16:50:55 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 07 16:50:55 2014 -0800"
      },
      "message": "Fix socklen_t (on LP64 only).\n\nToo late to fix LP32 :-(\n\nBug: 12935461\nChange-Id: Ib056ca1eaf9ae8712f88ae21ff94e91b08cf588b\n"
    },
    {
      "commit": "c16a4532917259fabc8018d681cdd1ad1b1b5e08",
      "tree": "53ca50e4054f0acaffa041d2833b832404fbd563",
      "parents": [
        "4affcbf87769c43c4d03ecd60f902b0b6a6cb84a",
        "9f87a0b285128542a221f2b69d3b959a4e33c054"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Feb 08 00:23:50 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Feb 08 00:23:50 2014 +0000"
      },
      "message": "Merge \"Remove \u003csys/_types.h\u003e.\""
    },
    {
      "commit": "9f87a0b285128542a221f2b69d3b959a4e33c054",
      "tree": "6854c64ecb95a5d048e7880b6493f7448a402ccc",
      "parents": [
        "e163a3986aa7d1c67fe3274eb9204812be0a6245"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 07 14:55:58 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 07 14:55:58 2014 -0800"
      },
      "message": "Remove \u003csys/_types.h\u003e.\n\nBug: 12213562\nChange-Id: I0d10664f9da60739bdbad0408be0dd61eea3c1fe\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": "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": "8d60cc63163df81938305632e1b7474aeda17d52",
      "tree": "da12d1c2995aeeea5d08107025b76c31f28aaa6e",
      "parents": [
        "fb4da1e7b749b4cf6843515517e839efa1ee24c7"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 03 15:41:57 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 03 15:41:57 2014 -0800"
      },
      "message": "Use __inline__ for fortify.\n\nlibunwind has #define inline /* empty */ which breaks our fortified headers.\nglibc uses __inline but our BSD-derived headers often override that. __inline__\nis the third alternative understood by GCC that -- as far as I know -- neither\nthe C library itself nor third-party code tries to mess with.\n\nBug: 12871594\nChange-Id: I6677e70ea531bb7d4c46021b43af760d4ad8ecf7\n"
    },
    {
      "commit": "7b95807fa086174cbab146cbd7c60a6d2e386917",
      "tree": "d1bb0fe2e71d96a91e3bcc60c7c9d8402a7cc433",
      "parents": [
        "07f84025520a9530760a2f2535a1effde5ec51dd"
      ],
      "author": {
        "name": "Ross McIlroy",
        "email": "rmcilroy@google.com",
        "time": "Fri Jan 31 04:45:53 2014 +0000"
      },
      "committer": {
        "name": "Ross McIlroy",
        "email": "rmcilroy@google.com",
        "time": "Fri Jan 31 04:45:53 2014 +0000"
      },
      "message": "Add missing ucontext_t definition to bionic for arch-arm64.\n\nChange-Id: I1ee15230c63e00f01d2063cfffcffe7f1a1eeb6a\n"
    },
    {
      "commit": "3614424e107849c53759ef93b9166e69a76818df",
      "tree": "2db2487dd642e557da50128bd125c8a795b890af",
      "parents": [
        "53a55c121b458e4131e025f1bbe0e4e2b1b232f7"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 30 10:39:02 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 30 10:39:02 2014 -0800"
      },
      "message": "Make ARM \u003cuser.h\u003e more glibc-compatible.\n\nChange-Id: I681930ad7f80a5e7bc40eb0f36872e415445f0f9\n"
    },
    {
      "commit": "02c661b88384a4a0cd5dd2b32123968bd992873f",
      "tree": "125c8846b87f9996c6c1a55e3310039112aa0a08",
      "parents": [
        "807bbb75f14543a72b3f745d35f2c97a92752cd0"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 29 18:37:15 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 29 18:37:15 2014 -0800"
      },
      "message": "Add mips \u003csys/ucontext.h\u003e.\n\nChange-Id: I2821f523f0c3bb4400b2ad5d36e21e5a3d6d777c\n"
    },
    {
      "commit": "4e72fcc3c2b8bcaab653732dfd3edd137602c648",
      "tree": "c08386f914788420c9eb41f4a4627ce4d13d4916",
      "parents": [
        "8f355275920f8be82f56e30087a57b1d5ce49771"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 29 17:53:59 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 29 17:53:59 2014 -0800"
      },
      "message": "Add arm \u003csys/ucontext.h\u003e.\n\nChange-Id: I14d435f9e3e82f77d8a7e886ff88c18f5d09d14a\n"
    },
    {
      "commit": "677a07cb9a3f5964e9ead4d37b9f775d971c61e0",
      "tree": "08f35f05834b56e79584cce2c02a9e55539a8176",
      "parents": [
        "972c39c4fee85c5c532eecac409a1384c76b2cc6"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 29 16:46:00 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 29 16:46:00 2014 -0800"
      },
      "message": "Add x86 \u003csys/ucontext.h\u003e.\n\nChange-Id: I43e72604f7a932f134733b78094b577415a5edb7\n"
    },
    {
      "commit": "e61d106008f7d77fa1c0de43ac27311320225135",
      "tree": "7b13d23c2987c0486e71084a1948f1a544d34712",
      "parents": [
        "037b10d05a789eb57878127ee4d69db1008e8c80"
      ],
      "author": {
        "name": "Pavel Chupin",
        "email": "pavel.v.chupin@intel.com",
        "time": "Mon Jan 27 17:56:43 2014 +0400"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 29 15:35:33 2014 -0800"
      },
      "message": "Add x86_64 ucontext.h for better compatibility\n\nAs suggested here: https://android-review.googlesource.com/#/c/71267/\nit may be used for x86_64 libunwind enabling.\n\nChange-Id: I21623261a48ea7099e030d33932556e294d226ff\nSigned-off-by: Pavel Chupin \u003cpavel.v.chupin@intel.com\u003e\n"
    },
    {
      "commit": "c835c35727e473758903e1c44c7a72aa6b9965fc",
      "tree": "9a5e7b48e66dade5385e5ea862949da67c480105",
      "parents": [
        "33c3e8d3b2312be3a3eb9d2632c4a570969e1624"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jan 10 15:32:31 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jan 10 15:32:31 2014 -0800"
      },
      "message": "Add some more headers.\n\nThis patch adds trivial implementations of the missing sys headers\nneeded by strace. All strace needs are the constants and structures,\nso this is enough for now. We can come back and add the functions\nif/when we ever need them.\n\nChange-Id: Idb87c1a8b6b1c62f6e16ae94f147e1169722b48e\n"
    },
    {
      "commit": "f8b2b3c81ea4cebf1f9adbb47cc9dfb81a1ed309",
      "tree": "7c3361a631af642d38c72e0165639d9c4f5db9eb",
      "parents": [
        "6114ffb3e16c114c728c31b472263660e2d2210c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 09 14:01:18 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 09 14:01:18 2014 -0800"
      },
      "message": "Fix x86 user_regs_struct.\n\nI fixed x86-64 yesterday, but didn\u0027t fix x86 at the same time.\n\nChange-Id: I5c081f5956dfedb9389af303369b841dd0fc1953\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": "5b17e4da39a4f6b6fde1560fe7e4c335297aef02",
      "tree": "c38a4cc059071d50390130b81bef8c6adb41547e",
      "parents": [
        "8a6eec38eb19b5af317b57c15459f9786df83eba"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 08 16:29:22 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 08 16:29:22 2014 -0800"
      },
      "message": "Add \u003csys/reg.h\u003e.\n\nThis describes the offsets into ptrace\u0027s returned arrays of registers\nfor x86 and x86-64.\n\nChange-Id: I044f03e286673999a298b73a813d4ad366625845\n"
    },
    {
      "commit": "8a6eec38eb19b5af317b57c15459f9786df83eba",
      "tree": "aa2e95dbac43d69bd0114cef3d89e88813bd2c7e",
      "parents": [
        "5d5cc2273f7be6b3d9fe4e5787ab22bc137c811a",
        "eddc8ece3de370fc321d7b974f6565db3a91543b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 09 00:24:55 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 09 00:24:55 2014 +0000"
      },
      "message": "Merge \"Fix x86_64 register names in \u003csys/user.h\u003e.\""
    },
    {
      "commit": "eddc8ece3de370fc321d7b974f6565db3a91543b",
      "tree": "990ffed4dc77fe2d8b73dd39b6452bbedb4518de",
      "parents": [
        "4c8caf0ad39768e614fb4c1f5ef415aab223adb2"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 08 15:54:19 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 08 15:54:19 2014 -0800"
      },
      "message": "Fix x86_64 register names in \u003csys/user.h\u003e.\n\nChange-Id: Ieb327247a41f6195589716170e324d1cd1251b96\n"
    },
    {
      "commit": "155b0764204934de4b81f95c57f957a059a82a32",
      "tree": "bd3e408c08a10f2383a53484b2ea1e28a11a84e3",
      "parents": [
        "4c8caf0ad39768e614fb4c1f5ef415aab223adb2"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 08 15:51:13 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 08 15:51:13 2014 -0800"
      },
      "message": "We shouldn\u0027t have a \u003csys/dirent.h\u003e that\u0027s a subset of \u003cdirent.h\u003e.\n\nglibc has no \u003csys/dirent.h\u003e. If we do have to bring this back, we\nshould probably just have one file #include the other.\n\nChange-Id: I5c0bf9c03769daf3b23f69778e9f01f81c3de9ec\n"
    },
    {
      "commit": "bc4e135a8ec0a72d07b2d74a082067e8e56c1f62",
      "tree": "f0e624c7c6dd30991f47fe3b89645d0767fa9b9f",
      "parents": [
        "1c1b83549f8b96fec4cb7037cf595171909855c2",
        "65c6f3099e95ece2f0322569c1a101faa8d53942"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 08 02:31:55 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 08 02:31:55 2014 +0000"
      },
      "message": "Merge \"Add SWAP_FLAG_* constants to \u003csys/swap.h\u003e.\""
    },
    {
      "commit": "65c6f3099e95ece2f0322569c1a101faa8d53942",
      "tree": "efae8b58d4d05ab1f2d24e044436cd2343a39789",
      "parents": [
        "27a4bb319885f9ed218ebca02a92870582b35fd4"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 07 17:46:06 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 08 02:23:06 2014 +0000"
      },
      "message": "Add SWAP_FLAG_* constants to \u003csys/swap.h\u003e.\n\nBug: 9336527\nChange-Id: I679be4d8425ba177dd782e714f465caf9daa976c"
    },
    {
      "commit": "abfc88fed79fced91b3b2cd8f3eb20f98c03452d",
      "tree": "c7b35bb701b46c744c0d88ccc8f942dbf7dcc255",
      "parents": [
        "27a4bb319885f9ed218ebca02a92870582b35fd4"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 07 17:44:51 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 07 17:44:51 2014 -0800"
      },
      "message": "Define fsid_t as well as __fsid_t.\n\nChange-Id: Ib8efbd913a0e6bfe27b88c1342bd5cec926dd74e\n"
    },
    {
      "commit": "894f8cb1395d3409bb995d18abc1b3409c557d01",
      "tree": "c9ddda0d60085077fd96cd301c3ccbe16c581578",
      "parents": [
        "c1c3f7d4468f02adbf8ced689d738386e42af773"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jan 03 14:49:37 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jan 03 14:49:37 2014 -0800"
      },
      "message": "Fix dev_t (for LP64).\n\n32-bit Android\u0027s dev_t was wrong too. We can\u0027t fix that without ABI breakage,\nbut we can at least fix 64-bit Android. And add tests.\n\nBug: https://code.google.com/p/android/issues/detail?id\u003d54966\nChange-Id: Ie2e42cc042b78b669a1a44e55f959dbd9c52c5c9\n"
    },
    {
      "commit": "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": "b8fa5b1ca9fc9b8b92875d2d9f33df3c8310aa09",
      "tree": "de6b8214db56c8db43f107a6e02290a0e460ac8d",
      "parents": [
        "ed96db2a4f2fe5683407c3571d037bb7325544da"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 19 16:50:22 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 19 16:50:22 2013 -0800"
      },
      "message": "Fix struct stat for aarch64.\n\nAnother kernel, another struct stat.\n\nChange-Id: Ia5ee553d4a2ffc878d2fed82a763ff64c02b12e8\n"
    },
    {
      "commit": "ad8842f5c67dea52a2b4ce280b612f41846cd2ef",
      "tree": "ff36713ad2efab27cbfd302a54f726a439363d96",
      "parents": [
        "7649766b4569af52e6875828186fdf4924cadb3d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Dec 18 12:22:33 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Dec 18 12:22:33 2013 -0800"
      },
      "message": "Don\u0027t use __kernel_ulong_t.\n\nChange-Id: Ifdfbac0ac6da647276a84bd64bb342bb5a07ad61\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": "c2f082f65528a889aca7cde4b343aaf36199ba82",
      "tree": "5a25b53321b7dc3ecef8e241eb07133df30eb5b3",
      "parents": [
        "5aad083f3de0bbcc0ffb1fecb688fbbe5abe5214"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 12 15:31:35 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 12 15:31:35 2013 -0800"
      },
      "message": "Make \u003csys/param.h\u003e more glibc-like.\n\nIn particular, add MAX and MIN, needed by elfutils.\n\nBug: 11864683\nChange-Id: I1b876732cdf68cdf5b930319e5ef5b5647586718\n"
    },
    {
      "commit": "ed45970ac5a182e512669cfa5c15b9f4fa783ad7",
      "tree": "c8038ea495e3822f652d45eb06efe739b246268b",
      "parents": [
        "ab0b0cdf1b07eb25ad89e0de08d4b3fd453602fe"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Dec 02 17:44:53 2013 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Dec 02 19:13:12 2013 -0800"
      },
      "message": "Add cfi directives to all arm assembly.\n\nSince the ENTRY/END macros now have .cfi_startproc/.cfi_endproc, most of the\ncustom arm assembly has no unwind information. Adding the proper cfi directives\nfor these and removing the arm directives.\n\nUpdate the gensyscalls.py script to add these cfi directives for the generated\nassembly. Also fix the references to non-uapi headers to the proper uapi\nheader.\n\nIn addition, remove the kill.S, tkill.S, tgkill.S for arm since they are not\nneeded at all. The unwinder (libunwind) is able to properly unwind using the\nnormal abort.\n\nAfter this change, I can unwind through the system calls again.\n\nBug: 11559337\nBug: 11825869\nBug: 11321283\n\nChange-Id: I18b48089ef2d000a67913ce6febc6544bbe934a3\n"
    },
    {
      "commit": "ab797cb4fded31cd30f4cd778f0b850c6801e7db",
      "tree": "1372663bbd473c185a53d7c2f25fbc0ff7319f3b",
      "parents": [
        "98c910fb217a5c094e3101e57c52a618beaa23db"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Nov 26 17:57:31 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Nov 26 17:57:31 2013 -0800"
      },
      "message": "Finish \u003csys/user.h\u003e.\n\nChange-Id: I1d97d7fa3d5be2ff4728571ed5376705a27091ec\n"
    },
    {
      "commit": "e96d4bffe5eadd6f70eaefef1d6efcb00f6b23be",
      "tree": "d0fee6dbb05d6294b63ec1550f47eecbc2ae5117",
      "parents": [
        "5a52bd34f1b7e49e28b31dd2c186de8bdef47451"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Nov 25 13:58:38 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Nov 25 13:58:38 2013 -0800"
      },
      "message": "Make \u003csys/timerfd.h\u003e standalone.\n\nThere\u0027s no uapi timerfd.h.\n\nBug: 11559337\nChange-Id: I77a4b1365fdcf2c9f18673b11341a165e54b4bbd\n"
    },
    {
      "commit": "363390eaffaf991b13c9666bb82af7ab793976f6",
      "tree": "6409e459d44727c844d149f5af17fcd5aab66a6e",
      "parents": [
        "26f0e54ae083727ee66ee35531ed00338570d792"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Nov 22 18:00:09 2013 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Nov 22 18:00:09 2013 -0800"
      },
      "message": "Move arm user.h definitions to sys/user.h.\n\nThere is no uapi user.h file for arm, it was included by accident.\nMove the user struct definition into the file to follow the pattern\nused by the other architectures.\n\nChange-Id: Ib9cea0deca551c9268382ddd6de9202fd32ef941\n"
    },
    {
      "commit": "880d0e6c64eb49736125648d1539726629308316",
      "tree": "7a138dfc0c460c7af3a3e0f754fb042dbc8722f5",
      "parents": [
        "eec57b370642f1b83285883104f2e778f32eef73",
        "811cba00af83c72673c079cc433f72a652814bcf"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 21 20:37:25 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 21 20:37:26 2013 +0000"
      },
      "message": "Merge \"Remove hidden __reboot from header\""
    },
    {
      "commit": "811cba00af83c72673c079cc433f72a652814bcf",
      "tree": "d2bb076c4b2735b43b79156210b3734343cc9451",
      "parents": [
        "f1258672d1eed41da30612a70690c19ff1966b73"
      ],
      "author": {
        "name": "Pavel Chupin",
        "email": "pavel.v.chupin@intel.com",
        "time": "Thu Nov 21 23:13:08 2013 +0400"
      },
      "committer": {
        "name": "Pavel Chupin",
        "email": "pavel.v.chupin@intel.com",
        "time": "Fri Nov 22 00:19:34 2013 +0400"
      },
      "message": "Remove hidden __reboot from header\n\nThis change is required:\nhttps://android-review.googlesource.com/#/c/70570\n\nChange-Id: Idb991f96a424aa5b0f9e06d9fb787fe8c8530750\nSigned-off-by: Pavel Chupin \u003cpavel.v.chupin@intel.com\u003e\n"
    },
    {
      "commit": "9c67d4307c6be91618a75f0255e701fc69f3b55f",
      "tree": "b236872b0e3ca0107e1e0466b5131354e2384d3a",
      "parents": [
        "ca045a19234a9323ea0e7eccbe3aefd74f9c1bab"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 21 08:55:46 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 21 08:55:46 2013 -0800"
      },
      "message": "Fix useconds_t for LP64.\n\nChange-Id: I869e60484999c1feda3dcdb86bee5b5373e6b3df\n"
    },
    {
      "commit": "ab61eb366ac48addf2bca6093a34455193f5c8df",
      "tree": "335fe463aa773ac8484c40e955fec90f126c9e4f",
      "parents": [
        "39bc7ecd45700e9edac0b29d33cc211383ebb107"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 20 16:09:06 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 20 16:24:16 2013 -0800"
      },
      "message": "Switch to upstream sleep(3) and usleep(3).\n\nAlso fix the signature of usleep, and the definition of useconds_t which\nshould be unsigned, as the \u0027u\u0027 in its name implies.\n\nThis patch also cleans up the existing FreeBSD hacks by moving the libm\nstuff from \u003csys/cdefs.h\u003e to a libm-private header, and adding comments\nabout the hacks we use to build FreeBSD source.\n\nChange-Id: Ibe5067a380502df94a0a3a7901969b35411085b6\n"
    },
    {
      "commit": "e888de81df66036903cde08402ab8e93c910e337",
      "tree": "2bf3298ace028c9430e8df26828ef3828f013527",
      "parents": [
        "1b2d214b62ad7bf46f37c79442a69d930aa29027"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Nov 19 15:32:31 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Nov 19 15:32:31 2013 -0800"
      },
      "message": "Provide \u003csys/user.h\u003e.\n\nstrace wants this, for example.\n\nChange-Id: Icb4d64bde392abbc091fa3375a4fa19b2707b12c\n"
    },
    {
      "commit": "2ecc164ae9b8062e29faf5eca491669e2741cab3",
      "tree": "7e439e620ea4ab1f975ffdf8e9640dc16f9b8854",
      "parents": [
        "68723453ac920004fcba2a820c2d56919a5b7081"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Nov 08 14:38:12 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Nov 08 14:38:12 2013 -0800"
      },
      "message": "Remove the dependency on the non-uapi __kernel_nlink_t.\n\nThe kernel doesn\u0027t have an nlink_t; it just uses the equivalent of\nuint32_t. We already had a usable __nlink_t in the C library, so\nlet\u0027s just define our nlink_t in terms of __nlink_t, which is what\n__nlink_t was meant for anyway.\n\nNote that our struct stat just follows the kernel, and doesn\u0027t refer\nto nlink_t anyway.\n\nChange-Id: I2a56e418e42404b1741b08c50554b03c11caebae\n"
    },
    {
      "commit": "40596aa0054bcfa76148f55321bf4b979e2242be",
      "tree": "5e7f3d342b548177c5fb486878477ccfe5708f03",
      "parents": [
        "f1258672d1eed41da30612a70690c19ff1966b73"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Nov 05 14:54:29 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 06 12:04:48 2013 -0800"
      },
      "message": "Make cpp.py less braindead.\n\nThe old code ignored operator precedence (!), despite having two tables\nof operator precedence. The code\u0027s still pretty awful, but I\u0027ve cleaned\nit up enough to fix this, the most important bug.\n\nThis patch lets us correctly clean the uapi unistd.h, stat.h, and swab.h files,\nand also fixes the mess we were already making of various old kernel\nheader files. I\u0027ve added a bunch more tests, fixed the existing tests that\nthe existing script was already failing (!), and changed the script so that\nthe tests are run every time the script is run.\n\nWe can probably remove some of the old kernel header files that we were\nparsing incorrectly, but we can worry about that later.\n\nBug: 11253477\nChange-Id: Ie66c65b3a7ae13b4e98ed8038a6a534f06eae0e5\n"
    },
    {
      "commit": "3503ce2177a56a8807887ee540abc68377483393",
      "tree": "aba3d28a4d9cb417370653427e631dd9416f1445",
      "parents": [
        "9b9f0d0cd05b5249e4b8119a8bd12ec17712b9da"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Nov 05 13:28:36 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Nov 05 13:28:36 2013 -0800"
      },
      "message": "Fix \u003csys/select.h\u003e for LP64, clean up \u003ctime.h\u003e.\n\nThe 64-bit uapi headers don\u0027t define FD_CLR and friends, so this\npatch updates libc/kernel/common/linux/time.h after the change\nb934bbec145e9e084bf48149a3a94ae3dd132157 in external/kernel-headers,\nthen fixes \u003csys/select.h\u003e to work in this new world, and removes\nsome now-unnecessary duplication from \u003ctime.h\u003e (with other cruft\ncleaned up while I\u0027m here).\n\nChange-Id: Ifd26f901b4d200c65065b3e6ef1b74055127e052\n"
    },
    {
      "commit": "126405039e408ac58567cff76d923c37794ea30f",
      "tree": "c0a6a9e5e929ec341c62000c7aa4d8440fffd02e",
      "parents": [
        "6e504fdaff6cb85edca312db56ce79f3477e4db1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 28 21:28:40 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 28 21:28:40 2013 -0700"
      },
      "message": "Update \u003csys/exec_elf.h\u003e to include EM_AARCH64.\n\nUpstream added the constant for us.\n\nChange-Id: I197e32d2e5b3fd499d069546ccfcc1d35d65e0a0\n"
    },
    {
      "commit": "7f8863dc07377544c1289efd0aaf787f5a4ecc04",
      "tree": "11da1e44adc234588a9926c61b54669c8319d3c7",
      "parents": [
        "93b7b8191238a8735141ed0f0b1222d8a30be3cc"
      ],
      "author": {
        "name": "Serban Constantinescu",
        "email": "serban.constantinescu@arm.com",
        "time": "Thu Oct 10 23:05:06 2013 +0100"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 28 16:18:42 2013 -0700"
      },
      "message": "AArch64: Autogenerated syscalls for AArch64\n\nThis patch adds AArch64 syscalls, autogenerated using:\n        ./libc/tools/gensyscalls.py\n\nChange-Id: I1cc60430423ecb52a35448bf2c358b82136b2f16\nSigned-off-by: Serban Constantinescu \u003cserban.constantinescu@arm.com\u003e\n"
    },
    {
      "commit": "74ce45972d88604aa759040cfd2570674cfb439d",
      "tree": "375a1f8838e1f1aada4bfda687c453a4a0213658",
      "parents": [
        "486d99f050a609c16641614edc72d71746ce859a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 28 14:59:41 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 28 14:59:41 2013 -0700"
      },
      "message": "Update \u003csys/exec_elf.h\u003e to get the DF_* flags.\n\nChange-Id: Ia9e785f6b95122f94ee3b01a312db1d5bb91a72e\n"
    },
    {
      "commit": "e4d792adb8d6f9228b9ac9dc1ad7f43b271f085f",
      "tree": "2424b3c3c863e813eb56bdb2d21aac571cc7f30b",
      "parents": [
        "3ec5d8954b41f2e51d6ff7851533f1db1eba9a09"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 28 14:19:05 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 28 14:34:56 2013 -0700"
      },
      "message": "Don\u0027t allow text relocations on 64-bit.\n\nI\u0027ve also updated our \u003csys/exec_elf.h\u003e to match upstream.\n\nChange-Id: I52f9fce3167541811208d273ff23ceaa112f7135\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": "93de3d881d8c24eddadf0c5b5dce0754fcca67ae",
      "tree": "bec108dbbba7945233ebe85c23b130bda6909bc6",
      "parents": [
        "97dc3309f3d403c391581444ad656c2f3c61303d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 23 11:25:54 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 23 11:25:54 2013 -0700"
      },
      "message": "Fix header file dependencies.\n\nMIPS\u0027 asm/fcntl.h assumes a bunch of __kernel_* types are already declared.\n\nChange-Id: Iff701bbb5ede9667a78230c2de3a8f4fe41371c5\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": "594b1a4af204aa9de2b4913182f4556e38d71648",
      "tree": "ac4ed6a89ff6048205c0af443cc6f882e4499fdf",
      "parents": [
        "393484ab358040243793375e1525da083008e78e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 22 10:54:11 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 22 12:03:19 2013 -0700"
      },
      "message": "Make sure we have a mkfifo symbol.\n\nBug: https://code.google.com/p/android/issues/detail?id\u003d58888\nChange-Id: Ic0a883a5f30beb82cb7be3c4e81b6d693d5fbb4d\n"
    },
    {
      "commit": "c7fdee72ddfe950594e20a527bfb199866428c17",
      "tree": "e0309f7375d306065ae21ad13d0da66c35b21148",
      "parents": [
        "25269b88749061ff80e8a97b738e4bf6bc7e829a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Oct 18 17:00:11 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Oct 18 17:00:11 2013 -0700"
      },
      "message": "Fix struct statfs for LP64.\n\nChange-Id: I9649d881588931a1d672b65ddcf94009daadb0ef\n"
    },
    {
      "commit": "f68fac8c0030e56dfaab60c5a3a7c3c5afca80cc",
      "tree": "61fc0b5f1ddc4e2ac769688f931cbe99d40b2c63",
      "parents": [
        "e9797ac6756481c0c219eb6b99f9062fd6dfb770"
      ],
      "author": {
        "name": "Pavel Chupin",
        "email": "pavel.v.chupin@intel.com",
        "time": "Tue Dec 18 17:25:01 2012 +0400"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Oct 18 13:24:25 2013 -0700"
      },
      "message": "x86_64: Fix sys/stat.h\n\nAdd 64-bit stat structure mapping 64-bit stat syscall.\n\nChange-Id: Ice517616391bee1d556b6c03e7f5ee610050e6c6\nSigned-off-by: Pavel Chupin \u003cpavel.v.chupin@intel.com\u003e\n"
    },
    {
      "commit": "43d2137af0e2f65b7febf4414e10b979aa0007bf",
      "tree": "4527e7ee3fc5b092b1309bdb6d76e2ecde6b1a3f",
      "parents": [
        "70cf2077619cd2d177756e2bb1cf3fbf870ef355"
      ],
      "author": {
        "name": "Andrei Emeltchenko",
        "email": "andrei.emeltchenko@intel.com",
        "time": "Mon Oct 14 16:48:26 2013 +0300"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 17 13:32:32 2013 -0700"
      },
      "message": "Add SOCK_CLOEXEC and SOCK_NONBLOCK socket flags.\n\nSOCK_CLOEXEC is used to atomically set close-on-exec flag for the new\ndescriptor(s), and SOCK_NONBLOCK is used to mark descriptor(s) as\nnon-blocking.\n\nChange-Id: I8ba6a70543d23759e3ddcc7ff9c21b567184d681\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": "78df45e1d104be0d9a2c7784df07a4d7843e6c16",
      "tree": "df8e54ab631dd689e38ab4b7cfa95cb9e4adb2a8",
      "parents": [
        "5cf1f229620d02c0ca266c9e03418fdeefd85191"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 08 15:31:44 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 08 15:31:44 2013 -0700"
      },
      "message": "Fix the ALIGN and ALIGNBYTES macros for LP64.\n\nChange-Id: I3a361255afce375ab1cefa449721f0aea4d47919\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": "7943df62f70f686b0c77532f6617b47255d75763",
      "tree": "13dfe2af815383802fe91f3192f4573ac13eb210",
      "parents": [
        "6088047a64abb1e8a27fcb9868b00a630fbdfed4"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Oct 03 14:08:39 2013 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Oct 03 15:45:10 2013 -0700"
      },
      "message": "Check memory size on FD_* functions\n\nMake sure the buffer we\u0027re dealing with has enough room.\nMight as well check for memory issues while we\u0027re here,\neven though I don\u0027t imagine they\u0027ll happen in practice.\n\nChange-Id: I0ae1f0f06aca9ceb91e58c70183bb14e275b92b5\n"
    },
    {
      "commit": "90201d5eca050414d50a433866ccb580415bb0d4",
      "tree": "5d4f66ab3b47c32b1633eeb61d900223f79b0747",
      "parents": [
        "32c0c6e7d56ea2fad0a362f37bb84937b82c3be2"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Oct 02 16:11:30 2013 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Oct 02 16:11:30 2013 -0700"
      },
      "message": "FORTIFY_SOURCE: Add __FD_* checks\n\nAdd FORTIFY_SOURCE checks for the following macros:\n\n* FD_CLR\n* FD_ISSET\n* FD_SET\n\nBug: 11047121\nChange-Id: I3c5952136aec9eff3288b91b1318677ff971525c\n"
    },
    {
      "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": "01a700e5d2ee9b5bd61546faffcb453fd1d6325c",
      "tree": "aa482e53659f9a08b0059e622a7d38fecb2f3cf0",
      "parents": [
        "f5ea738baa0ad5b32348f2ac42450d33d452ef31"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Sep 30 21:57:07 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Sep 30 21:57:07 2013 -0700"
      },
      "message": "Better statfs/fstatfs glibc compatibility.\n\nChange-Id: I069d169c96cd71b75a045ec911fb4bd484c6b2c9\n"
    },
    {
      "commit": "d3e64a3f403918abf2cc3f9f0f9a2204a420ec96",
      "tree": "ec7cb0e25587096a42ed0fce4a125bf4bba7affd",
      "parents": [
        "76218efbeb2e124656ce15d4eb5a7039da065123"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Sep 30 17:41:08 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Sep 30 18:42:13 2013 -0700"
      },
      "message": "Add x86_64 to the bionic headers.\n\nManual changes:\n\n  cpp.py: cope with macros that refer to other macros.\n\n  defaults.py: x86 no longer always implies __i386__; use __i386__ to replace\n  the kernel CONFIG_X86_32 flag.\n\n  asm/page.h: the upstream page.h isn\u0027t a uapi header and no longer includes\n  the stuff we were using it for. Let\u0027s just have our own static file, since\n  it\u0027s the same for all our architectures (both 32- and 64-bit).\n\n  sys/select.h: we used to use the various FD_SET-related macros from the\n  kernel header files, but they\u0027ve gone. Adjust by adding trivial equivalent\n  definitions.\n\nAutomated changes:\n\n  libc/kernel/arch-x86, libc/kernel/common: regenerated from\n  external/kernel-headers.\n\nChange-Id: I84fc0ed52dc742e043b4ae300fd3b58ee99b7fcd\n"
    },
    {
      "commit": "60f4f9a5b99a0a66817f50edfc2194a49f8b5146",
      "tree": "13900546cac13512fd4dfd37d3f9e98606c750d2",
      "parents": [
        "759111cadf84f337f98177259d9e3f9d39c9eea9"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Sep 24 16:32:07 2013 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Sep 24 16:45:01 2013 -0700"
      },
      "message": "libc: fortify recvfrom()\n\nFortify calls to recv() and recvfrom().\n\nWe use __bos0 to match glibc\u0027s behavior, and because I haven\u0027t\ntested using __bos.\n\nChange-Id: Iad6ae96551a89af17a9c347b80cdefcf2020c505\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": "afcc0cccdafef0c67600cbbc72cee0e7a41f3f04",
      "tree": "506a007c24f06d7ec6415c22901f7485c06b8797",
      "parents": [
        "d5ddf40ecf72a03e38164389555ccdade779ab5a"
      ],
      "author": {
        "name": "Daniel Leung",
        "email": "daniel.leung@intel.com",
        "time": "Wed Sep 18 14:41:18 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 19 14:11:26 2013 -0700"
      },
      "message": "Add mmap64()\n\nThis adds mmap64() to bionic so that it is possible to have\nlarge offset passed to kernel. However, the syscall mechanism\nonly passes 32-bit number to kernel. So effectively, the\nlargest offset that can be passed is about 43 bits (since\noffset is signed, and the number passed to kernel is number\nof pages (page size \u003d\u003d 4K \u003d\u003e 12 bits)).\n\nChange-Id: Ib54f4e9b54acb6ef8b0324f3b89c9bc810b07281\nSigned-off-by: Andrew Boie \u003candrew.p.boie@intel.com\u003e\n"
    },
    {
      "commit": "bd8e6749b78567af62ec126d7cc057386ebee25a",
      "tree": "949ca8147c4675afb9f0af51e404f535dbd38a93",
      "parents": [
        "eb8f36223e51db626a23b8032f03c095be80998b"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Aug 28 13:22:52 2013 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Aug 28 14:27:14 2013 -0700"
      },
      "message": "cdefs.h: introduce __bos0\n\nIntroduce __bos0 as a #define for __builtin_object_size((s), 0).\nThis macro is intended to be used for places where the standard\n__bos macro isn\u0027t appropriate.\n\nmemcpy, memmove, and memset deliberately use __bos0. This is done\nfor two reasons:\n\n1) I haven\u0027t yet tested to see if __bos is safe to use.\n2) glibc uses __bos0 for these methods.\n\nChange-Id: Ifbe02efdb10a72fe3529dbcc47ff647bde6feeca\n"
    },
    {
      "commit": "d0be7c8f9a06b3ca8ea7647ea35c8f9dc63f0fe1",
      "tree": "a17df28516ef00c47859728418e9b7c7ef26c1ba",
      "parents": [
        "632fd5183a611b80e009be36f881f572acc41619"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 08 17:13:33 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 08 17:13:33 2013 -0700"
      },
      "message": "Add futimens.\n\nBug: 10239370\nChange-Id: I518340084103dc339ef8a065d4837d6258a1381d\n"
    },
    {
      "commit": "c03e1e74390c1b8a30341399cd85cc869d0842b0",
      "tree": "f4f7c54da4d89aa1019822c5be7aa61d97efcd43",
      "parents": [
        "9a73d08f4c334c00fe06d583d37e038ebe063eba"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jul 29 16:51:45 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jul 29 17:09:36 2013 -0700"
      },
      "message": "Define PTHREAD_KEYS_MAX and _POSIX_THREAD_KEYS_MAX in a POSIX-compliant way.\n\nAlso make sysconf use PTHREAD_STACK_MIN rather than redefining its\nown, different, constant.\n\nBug: 9997352\nChange-Id: I9a8e7d2b18e691439abfb45533e82c36eee9e81d\n"
    },
    {
      "commit": "06040fd75c1edff9e5ffb2b3d3e2a6e66d57c11d",
      "tree": "26c883a0e074a206e7063d111861a177d91959e1",
      "parents": [
        "4fc8a0c1165537b693c900ac3e2c61470bd7e484"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 09 13:25:03 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 09 13:25:03 2013 -0700"
      },
      "message": "Add \u003csys/statvfs.h\u003e.\n\nBug: 2512019\nChange-Id: I6e7fd3fa281977cc4bc270481a95416b5b2dc351\n"
    },
    {
      "commit": "e42e51d5637b86f45dd852b70342013d50006220",
      "tree": "edb4f04b890718f07737e9fc9ef73c1bb254d1ae",
      "parents": [
        "de2781d906f27be4df3e03a8e5041dcc1aeb281d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 03 14:58:04 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 03 14:58:04 2013 -0700"
      },
      "message": "Clean up \u003csys/mount.h\u003e/\u003clinux/fs.h\u003e duplication.\n\nRoll on uapi...\n\nBug: 6340120\nChange-Id: Ic9521905683946e836574e4d768e34853ea777fa\n"
    },
    {
      "commit": "f936ef1a9f1f77985ca1fae35c1b0dc78e1510c0",
      "tree": "8dc7beb630070de7db38581631e12e1bba2a31aa",
      "parents": [
        "d7b0d6e1e157f87887ec2708d6478b8eb2873077"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed Jul 03 11:57:15 2013 +0900"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 03 13:35:18 2013 -0700"
      },
      "message": "Include linux/termios.h from sys/ioctl.h.\n\nOn NetBSD and glibc, including sys/ioctl.h provides some\nterminal ioctl data structures such as struct winsize. For\ncompatibility, provide these via sys/ioctl.h in bionic as well.\nbionic does not have its own definitions for these structures, so\nget them from the Linux kernel definitions.\n\nChange-Id: I01345c23c0bebd60b0a80fc33668e7c0ad7356c3\n"
    },
    {
      "commit": "a6cde392765eb955cb4be5faa6ee62dcf77e8aa5",
      "tree": "c1553a2002af8470615afecb1a2fff9c29c2f916",
      "parents": [
        "227b47a461b27d746b373feb66001cdddc9ba1db"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Sat Jun 29 08:15:25 2013 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Sat Jun 29 08:16:22 2013 -0700"
      },
      "message": "More FORTIFY_SOURCE functions under clang\n\n* bzero\n* umask\n* strlcat\n\nChange-Id: I65065208e0b8b37e10f6a266d5305de8fa9e59fc\n"
    },
    {
      "commit": "5e9a086145764d64c0f7fbce5489d820aa7fdcd4",
      "tree": "5aaecbeac880a8e5e96148858121dee63ddf5d58",
      "parents": [
        "1ec20a086cb1da1d7455a36ea5d2ea4856426ea0"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Jun 24 18:36:39 2013 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 25 16:52:40 2013 -0700"
      },
      "message": "bionic: add compatibility mode for properties\n\nAllow a new bionic to work with an old init property area by supporting\nthe old format.\n\n(cherry picked from commit ad76c85b9ca587084089d086f954158bc0eae905)\n\nChange-Id: Ib496e818a62a5834d40c71eb4745783d998be893\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": "1540f601be32bdd4af8e8c13bdf2bc06bdaa76f1",
      "tree": "76a3c1ec1fff772960cd08143071ce0bc0e66600",
      "parents": [
        "996cdc4b1a7fcae89650bee0a44b6cb7900a4a3c"
      ],
      "author": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Wed Jun 19 13:31:21 2013 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Jun 24 16:35:37 2013 -0700"
      },
      "message": "bionic: revert to a single (larger) property area\n\nd329697 is too complicated.  Change the multiple property pages back to\na single 128K property area that\u0027s mapped in entirely at initialization\n(the memory will not get allocated until the pages are touched).\n\nd329697 has other changes useful for testing (moving property area\ninitialization inside bionic and adding __system_property_set_filename)\nso undo the change manually rather than with git revert.\n\nSigned-off-by: Greg Hackmann \u003cghackmann@google.com\u003e\n\n(cherry picked from commit 5f05348c18286a2cea46eae8acf94ed5b7932fac)\n\nChange-Id: I690704552afc07a4dd410277893ca9c40bc13e5f\n"
    },
    {
      "commit": "996cdc4b1a7fcae89650bee0a44b6cb7900a4a3c",
      "tree": "91963e572529ef6f21306d296d8a39d903f99204",
      "parents": [
        "f7511e3bc932f9f4d025a62871c29bf1e0ac0ea7"
      ],
      "author": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Thu Jun 20 11:27:56 2013 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Jun 24 16:35:32 2013 -0700"
      },
      "message": "bionic: reimplement property area as hybrid trie/binary tree\n\nSee the comments for an explanation of how properties are stored.\n\nThe trie structure is designed to scale better than the previous\narray-based implementation.  Searching an array with n properties\nrequired average O(n) string compares of the entire key; searching the\ntrie requires average O(log n) string compares of each token (substrings\nbetween \u0027.\u0027 characters).\n\nSigned-off-by: Greg Hackmann \u003cghackmann@google.com\u003e\n\n(cherry picked from commit 6ac8e6a46d71a51bec16938efa89f275fa89cf7d)\n\nChange-Id: Icbe31908572f33b4d9b85d5b62ac837cbd0f85e0\n"
    },
    {
      "commit": "cb215a7e9ecec9feb5aae9d9a5b1c89f392208e7",
      "tree": "f1f337bbd7b7c1406bea8821e69b43082c56ba10",
      "parents": [
        "0ea1d5c0ae94ee581c72451b20813c028f51090c"
      ],
      "author": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Wed Feb 13 14:41:48 2013 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Jun 24 16:35:15 2013 -0700"
      },
      "message": "bionic: make property area expandable\n\nThe property area is initially one 4K region, automatically expanding as\nneeded up to 64 regions.\n\nTo avoid duplicating code, __system_property_area_init() now allocates\nand initializes the first region (previously it was allocated in init\u0027s\ninit_property_area() and initialized in bionic).  For testing purposes,\n__system_property_set_filename() may be used to override the file used\nto map in regions.\n\nSigned-off-by: Greg Hackmann \u003cghackmann@google.com\u003e\n\n(cherry picked from commit d32969701be070c0161c2643ee3c3df16066bbb8)\n\nChange-Id: I038d451fe8849b0c4863663eec6f57f6521bf4a7\n"
    },
    {
      "commit": "c6ff844d75dddfb19fc804b8add2d6a79947b101",
      "tree": "f7eda9c4bf1279480f00c4a27b2009246a1d1f19",
      "parents": [
        "c656d732c7712b0f73d9c560ccf3cb5ae47d219d"
      ],
      "author": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Tue Feb 12 16:39:31 2013 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 18 19:24:29 2013 -0700"
      },
      "message": "bionic: add __system_property_foreach\n\nfind_nth() will be inefficient on a trie.  Since find_nth() is only used\ninternally and only for enumerating properties, we can add a foreach()\nfunction to do this directly.\n\nSigned-off-by: Greg Hackmann \u003cghackmann@google.com\u003e\n\n(cherry picked from commit 577418403d68e663fb33c7b0c8a90d862d9c00cf)\n\nChange-Id: Iaca97d1182ce2c28863ba85241cbb5cf6185eb2f\n"
    },
    {
      "commit": "a641c18f0c62c31f5678f8c159a74486010ea851",
      "tree": "58f89487d51470e9748495461b97f1e776859fe6",
      "parents": [
        "16d1af167f8e36a9aa4a07ae77034ad519b00463"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Jun 18 13:07:18 2013 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Jun 18 13:07:18 2013 -0700"
      },
      "message": "libc: Rename fortify error functions.\n\n__umask_error -\u003e __umask_invalid_mode\n__creat_error -\u003e __creat_missing_mode\n__too_many_args_error -\u003e __creat_too_many_args\n\nChange-Id: I4036f344a3a93628e70f2e948ad73cfed3a967ea\n"
    },
    {
      "commit": "16d1af167f8e36a9aa4a07ae77034ad519b00463",
      "tree": "61abe872a5f2ebebc4fe15205a77158bc8372ec2",
      "parents": [
        "b24c0637d06fe0980b9e13a8d0c3e6f4dbda9cd5"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Mon Jun 17 14:49:19 2013 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Jun 18 12:14:20 2013 -0700"
      },
      "message": "libc: add limited FORTIFY_SOURCE support for clang\n\nIn 829c089f83ddee37203b52bcb294867a9ae7bdbc, we disabled all\nFORTIFY_SOURCE support when compiling under clang. At the time,\nwe didn\u0027t have proper test cases, and couldn\u0027t easily create targeted\nclang tests.\n\nThis change re-enables FORTIFY_SOURCE support under clang for a\nlimited set of functions, where we have explicit unittests available.\nThe functions are:\n\n* memcpy\n* memmove\n* strcpy\n* strncpy\n* strcat\n* strncat\n* memset\n* strlen (with modifications)\n* strchr (with modifications)\n* strrchr (with modifications)\n\nIt may be possible, in the future, to enable other functions. However,\nI need to write unittests first.\n\nFor strlen, strchr, and strrchr, clang unconditionally calls the\nfortified version of the relevant function. If it doesn\u0027t know the\nsize of the buffer it\u0027s dealing with, it passes in ((size_t) -1),\nwhich is the largest possible size_t.\n\nI added two new clang specific unittest files, primarily copied\nfrom fortify?_test.cpp.\n\nI\u0027ve also rebuild the entire system with these changes, and didn\u0027t\nobserve any obvious problems.\n\nChange-Id: If12a15089bb0ffe93824b485290d05b14355fcaa\n"
    },
    {
      "commit": "b24c0637d06fe0980b9e13a8d0c3e6f4dbda9cd5",
      "tree": "918218d294c845db4b5fda6f9fb9a211a443bb54",
      "parents": [
        "977a33137d2be0093f474055f839cf665b82b588"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Jun 18 10:46:02 2013 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Jun 18 12:13:52 2013 -0700"
      },
      "message": "libc: Introduce __errordecl()\n\nDefine __errordecl and replace __attribute__((__error__(\"foo\")))\nwith __errordecl. Make sure __errordecl is a no-op on clang, as it\ngenerates a compile time warning.\n\nChange-Id: Ifa1a2d3afd6881de9d479fc2adac6737871a2949\n"
    },
    {
      "commit": "5cf32de7a0fea0b10959b598300babc6e4f54d95",
      "tree": "c0f130185003fff9bf8cc00f96a3a04475535b3f",
      "parents": [
        "5995bf880e2a7fac249382f0a929b7271c843122"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Jan 23 23:07:06 2013 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Jun 17 16:58:43 2013 -0700"
      },
      "message": "bionic: move system property writing from init to bionic\n\nMove the implementation of writing to the system property area\nfrom init to bionic, next to the reader implementation.  This\nwill allow full property testing to be added to bionic tests.\n\nAdd new accessor and waiting functions to hide the implementation\nfrom watchprops and various bionic users.\n\nAlso hide some of the implementation details of the property area\nfrom init by moving them into _system_properties.h, and other details\nfrom everybody by moving them into system_properties.h.\n\n(cherry picked from commit dc1038b7900acb664e99643d2974e1a0f4703781)\n\nChange-Id: I192d3825ee276c5047bc751039fe6cfe226a7cca\n"
    }
  ],
  "next": "36fa67bcdd90f18a3c68f8637ae836762407fa51"
}
