)]}'
{
  "log": [
    {
      "commit": "cef3faec0ea40fdfe58e425fd0be64f00de6a26d",
      "tree": "1f33cbb2de225d0d76d3eb53ef8857b9ecc79bbe",
      "parents": [
        "1b2d214b62ad7bf46f37c79442a69d930aa29027"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Nov 19 16:52:24 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Nov 19 17:22:22 2013 -0800"
      },
      "message": "Clean up pthread_internal_t.\n\nBug: 11755300\nChange-Id: Ib509e8c5ec6b23513aa78b5ac5141d7c34ce2dc8\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": "e48b68570d872ef7ece1d873c0ea298ea76393f3",
      "tree": "8c6d8721af2bfddd2c649a0d887a4a905358da04",
      "parents": [
        "e39e3a77d6e8cf681718a572bc754fd64dfc87ff"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Nov 15 14:57:45 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Nov 15 14:57:45 2013 -0800"
      },
      "message": "Clean up the pthread_create trampoline.\n\nBug: 8206355\nBug: 11693195\nChange-Id: I35cc024d5b6ebd19d1d2e45610db185addaf45df\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": "61fb3fc770566c7bafe7af8fb93590bcad387fbb",
      "tree": "6ee5199c60b3105c89e8dcf01a6d065007533013",
      "parents": [
        "266eb4a44c4cdd9502980511ff2846fde5c66454"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 07 12:28:46 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 07 12:29:07 2013 -0800"
      },
      "message": "Prepare to switch to the uapi \u003clinux/signal.h\u003e.\n\n\u003ctime.h\u003e didn\u0027t need to copy the cruft from \u003csignal.h\u003e, and\n\u003csignal.h\u003e only needs the uid_t hack when it\u0027s not using\nuapi headers.\n\npthread_exit.cpp should include what it uses.\n\nChange-Id: I836c36abe0f0a781d41fc425b249d1c7686bb124\n"
    },
    {
      "commit": "7250d2e5b4cd4af7cd802ae04b9b77d97f3a5a45",
      "tree": "73ebda84047c05f50726c593ffb2924533a5cdd0",
      "parents": [
        "f945732e21e3c1291943d21fa5fee0c43792bbec"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 06 17:21:09 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 06 17:21:09 2013 -0800"
      },
      "message": "Remove pathconf\u0027s dependencies on non-uapi header files.\n\nChange-Id: I597996e4b141b009916f7ad2866dd100e08aa4d3\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": "6fa79c5cf57a3a7bc37849d0d510bf8cb043b531",
      "tree": "a2f0ef4501935803d4661b508b5fdf728b856ddc",
      "parents": [
        "943cc1b58892c627f65f44b7f0fcf365048b7364"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Nov 05 11:59:06 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Nov 05 11:59:06 2013 -0800"
      },
      "message": "Remove unnecessary #include.\n\nChange-Id: I99dade0b3803272ee29eba2ad36b0311f8a24c31\n"
    },
    {
      "commit": "66759d6041b33706c3a92dde48492ba4f2bbab2f",
      "tree": "53c8282836fb5f88d285a0305e7204202f6eabfb",
      "parents": [
        "0360e3ab2d21d4b4b3d5590765857bef595c0046"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 31 14:09:39 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 31 14:09:39 2013 -0700"
      },
      "message": "Move the pthread debugging flags to the right place.\n\nChange-Id: Ie805bd837d1f72cdf1818e056c0baeb0857e4e84\n"
    },
    {
      "commit": "c3f114037dbf028896310609fd28cf2b3da99c4d",
      "tree": "e463aeb3604177cd93cea8a58936a8dce4b34ee5",
      "parents": [
        "d0d0b52da375bfa85947a4257198791f615f18a8"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 30 14:40:09 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 31 12:31:16 2013 -0700"
      },
      "message": "\u003cpthread.h\u003e fixes and pthread cleanup.\n\n\u003cpthread.h\u003e was missing nonnull attributes, noreturn on pthread_exit,\nand had incorrect cv qualifiers for several standard functions.\n\nI\u0027ve also marked the non-standard stuff (where I count glibc rather\nthan POSIX as \"standard\") so we can revisit this cruft for LP64 and\ntry to ensure we\u0027re compatible with glibc.\n\nI\u0027ve also broken out the pthread_cond* functions into a new file.\n\nI\u0027ve made the remaining pthread files (plus ptrace) part of the bionic code\nand fixed all the warnings.\n\nI\u0027ve added a few more smoke tests for chunks of untested pthread functionality.\n\nWe no longer need the libc_static_common_src_files hack for any of the\npthread implementation because we long since stripped out the rest of\nthe armv5 support, and this hack was just to ensure that __get_tls in libc.a\nwent via the kernel if necessary.\n\nThis patch also finishes the job of breaking up the pthread.c monolith, and\nadds a handful of new tests.\n\nChange-Id: Idc0ae7f5d8aa65989598acd4c01a874fe21582c7\n"
    },
    {
      "commit": "2b6e43e00ece68b3aba26d8f95f07cd9d9294ab4",
      "tree": "7a27d206fb0f2ef7b702c0c785827d607dd7216a",
      "parents": [
        "8e6e7cdadbb4efdeefaa73fe94f7a9a1722745a7"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 29 16:11:06 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 29 16:11:06 2013 -0700"
      },
      "message": "Explain the sigprocmask in pthread_exit.\n\nAlso remove the SIGSEGV special case, which was probably because\nhand-written __exit_with_stack_teardown stubs used to try to cause\nSIGSEGV if the exit system call returned (which it never does, so\nthat dead code disappeared).\n\nAlso move the sigprocmask into the only case where it\u0027s necessary ---\nthe one where we unmap the stack that would be used by a signal\nhandler.\n\nChange-Id: Ie40d20c1ae2f5e7125131b6b492cba7a2c6d08e9\n"
    },
    {
      "commit": "27586ebe1a7f2f45651b855a26b3203d63d015d6",
      "tree": "c1311b6ea1c32e15f7c7a9e3c81f1e0f78fa0737",
      "parents": [
        "d4e9f076d621dcf6450acba178e65d63c076ae6e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 28 13:21:06 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 28 13:21:06 2013 -0700"
      },
      "message": "Fix utime/utimes when passed a NULL pointer.\n\nBug: 11383777\nChange-Id: If944a42f3adfa8a6ce91c167c249e009ed63300a\n"
    },
    {
      "commit": "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": "567a8de3ca5b4c4f033bfbcdd339a3fd59a76227",
      "tree": "1a7f98471fcdec66ad6a8a9e8805aaf2f4e7556f",
      "parents": [
        "972885499255a9368e96332f9da0d28b2436d042"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 24 17:14:55 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 24 17:14:55 2013 -0700"
      },
      "message": "Start moving 32-bit cruft somewhere it won\u0027t pollute 64-bit.\n\nChange-Id: I03a6a50a5243f29e50fb58a3cf8b5e7198640baa\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": "8c39e58b6a6744c5e7ae08424a6281d75af23072",
      "tree": "a63a0f7373e7abd7a9ce74d284ed86963ba747e8",
      "parents": [
        "231484705bea118259200da6019722a026021f4b",
        "594b1a4af204aa9de2b4913182f4556e38d71648"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 22 19:03:56 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 22 19:03:57 2013 +0000"
      },
      "message": "Merge \"Make sure we have a mkfifo symbol.\""
    },
    {
      "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": "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": "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": "68b67113a44311b3568027af5893e316f63ec556",
      "tree": "14e02214b958c50a6b2d4d6af86301de2c328a10",
      "parents": [
        "d9913b0b0dfad473bd1cb81463ac0d6b68a0deb6"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 15 17:17:05 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 15 17:17:05 2013 -0700"
      },
      "message": "\u0027Avoid confusing \"read prevented write\" log messages\u0027 2.\n\nThis time it\u0027s assembler.\n\nChange-Id: Iae6369833b8046b8eda70238bb4ed0cae64269ea\n"
    },
    {
      "commit": "d9913b0b0dfad473bd1cb81463ac0d6b68a0deb6",
      "tree": "a1315bb27518a684e6337da5dd6fa055a6794fe9",
      "parents": [
        "7672521440c8b7f98795c3fb4295227398e3e296",
        "98624c374646a050556bdc402b55b792fefa7e55"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 16 00:09:54 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 16 00:09:54 2013 +0000"
      },
      "message": "Merge \"Make pthread_create report sched_setscheduler failures on LP64.\""
    },
    {
      "commit": "7672521440c8b7f98795c3fb4295227398e3e296",
      "tree": "aeb953cffdbd906743690e5f0911059cb4cab42e",
      "parents": [
        "d16391bb88d92a58e3492921ac75a1d5d86031b7",
        "d1eda33f012e46083b91e087fb79d14a5ce70f0e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 15 23:53:45 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 15 23:53:45 2013 +0000"
      },
      "message": "Merge \"Avoid confusing \"read prevented write\" log messages.\""
    },
    {
      "commit": "98624c374646a050556bdc402b55b792fefa7e55",
      "tree": "a55bf0e44ee1613a4e0765482c77e5eb16368ac2",
      "parents": [
        "dc9d8d050a43e1cd32f1337e79187124bb15d938"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 15 16:51:17 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 15 16:51:17 2013 -0700"
      },
      "message": "Make pthread_create report sched_setscheduler failures on LP64.\n\nWe couldn\u0027t fix this for 32-bit because there\u0027s too much broken\ncode out there. (Pretty much everyone asks for real-time\nscheduling for all their threads, and the kernel says \"don\u0027t be\nstupid\".)\n\nChange-Id: I43c5271e6b6bb91278b9a19eec08cbf05391e3c4\n"
    },
    {
      "commit": "0cfc95e0106acf6e3bff35e28e9addc76b3e0aaa",
      "tree": "a1702ac31cdc6a6851585f74d2cf0ddd8066f895",
      "parents": [
        "dc9d8d050a43e1cd32f1337e79187124bb15d938"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 15 16:49:49 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 15 16:49:49 2013 -0700"
      },
      "message": "Fix indentation in sched_getaffinity.\n\nChange-Id: I966852149a0255ca132cd7a15f135a875ce400d0\n"
    },
    {
      "commit": "d1eda33f012e46083b91e087fb79d14a5ce70f0e",
      "tree": "2d075e9d43c3a300327e79ee27c5b8330d8dce4c",
      "parents": [
        "dc9d8d050a43e1cd32f1337e79187124bb15d938"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 15 16:43:38 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 15 16:49:28 2013 -0700"
      },
      "message": "Avoid confusing \"read prevented write\" log messages.\n\nMoving to a \"function: message\" style avoids ambiguity.\n\nChange-Id: If9d590e50265c61725d3673bd03796e65edd2d5e\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": "eda2679e30b997d036e0ec572cda054adc2ac3a6",
      "tree": "ccda4ea3fe14eb88d8a1debf464c06cda91be11a",
      "parents": [
        "39385aa78c5d437cfabc26a1bccdf050a8c94ac4",
        "b036b5ca36c1e12b075909b3eca6eab73ee611cf"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Oct 10 04:11:48 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 10 04:11:48 2013 +0000"
      },
      "message": "Merge \"FORTIFY_SOURCE: fortify read()\""
    },
    {
      "commit": "b036b5ca36c1e12b075909b3eca6eab73ee611cf",
      "tree": "c3c2056a4e3868618d473047b2519aa91c3233c2",
      "parents": [
        "92f3cc50c8d884d1eb3496ebfba7d3916fc711e8"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Oct 09 20:16:34 2013 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Oct 09 20:17:03 2013 -0700"
      },
      "message": "FORTIFY_SOURCE: fortify read()\n\nChange-Id: Ic7de163fe121db13e00560adb257331bc709814d\n"
    },
    {
      "commit": "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": "8d2532763981d132b02df157e4cc363c39330090",
      "tree": "371945ae89af3fa167593a3a07f33862c3698ffe",
      "parents": [
        "777ebe86677f6fd88c87995652146b2ead19a95f"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Oct 09 16:44:30 2013 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Oct 09 16:46:25 2013 -0700"
      },
      "message": "Revert \"FORTIFY_SOURCE: fortify read()\"\n\nThis change reverts\n* fb3f956d075676c0438f2ee2bf3a5be659dfc04b.\n* 65c99de2cb7a569ea17ca35e2f8f1e033421864b\n\nChange-Id: Id5774eeede41130579115cf67a72ee914f2b47d5\n"
    },
    {
      "commit": "fb3f956d075676c0438f2ee2bf3a5be659dfc04b",
      "tree": "9854167170b90563f6948b5936dbed1effeed706",
      "parents": [
        "bc545e8a98dd4e1148e8b9c9ca491d1a481ee94d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 09 16:29:42 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 09 16:29:42 2013 -0700"
      },
      "message": "Fix build.\n\n\u0027private\u0027 is no longer on the default include path inside bionic.\n\nChange-Id: I9bfab213a496fac585787118603af3aa2a1f9951\n"
    },
    {
      "commit": "bc545e8a98dd4e1148e8b9c9ca491d1a481ee94d",
      "tree": "f0af7a07b2ea3ba19b1f083df9430fc0d57f4c0b",
      "parents": [
        "c147478cb75cfaa2aadc67fd920e8765503d97cc",
        "eb847bc8666842a3cfc9c06e8458ad1abebebaf0"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 09 23:29:00 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 09 23:29:00 2013 +0000"
      },
      "message": "Merge \"Fix x86_64 build, clean up intermediate libraries.\""
    },
    {
      "commit": "c147478cb75cfaa2aadc67fd920e8765503d97cc",
      "tree": "396dbec577ca49f1d866e3e4a5e580329a89343f",
      "parents": [
        "0c17099a71cb5d1b36b7aab66fd7341b3fc9106d",
        "65c99de2cb7a569ea17ca35e2f8f1e033421864b"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Oct 09 23:23:26 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 09 23:23:27 2013 +0000"
      },
      "message": "Merge \"FORTIFY_SOURCE: fortify read()\""
    },
    {
      "commit": "eb847bc8666842a3cfc9c06e8458ad1abebebaf0",
      "tree": "15e070fb706ba7599d5f402a8f934a7399541a6a",
      "parents": [
        "0c17099a71cb5d1b36b7aab66fd7341b3fc9106d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 09 15:50:50 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 09 16:00:17 2013 -0700"
      },
      "message": "Fix x86_64 build, clean up intermediate libraries.\n\nThe x86_64 build was failing because clone.S had a call to __thread_entry which\nwas being added to a different intermediate .a on the way to making libc.so,\nand the linker couldn\u0027t guarantee statically that such a relocation would be\npossible.\n\n  ld: error: out/target/product/generic_x86_64/obj/STATIC_LIBRARIES/libc_common_intermediates/libc_common.a(clone.o): requires dynamic R_X86_64_PC32 reloc against \u0027__thread_entry\u0027 which may overflow at runtime; recompile with -fPIC\n\nThis patch addresses that by ensuring that the caller and callee end up in the\nsame intermediate .a. While I\u0027m here, I\u0027ve tried to clean up some of the mess\nthat led to this situation too. In particular, this removes libc/private/ from\nthe default include path (except for the DNS code), and splits out the DNS\ncode into its own library (since it\u0027s a weird special case of upstream NetBSD\ncode that\u0027s diverged so heavily it\u0027s unlikely ever to get back in sync).\n\nThere\u0027s more cleanup of the DNS situation possible, but this is definitely a\nstep in the right direction, and it\u0027s more than enough to get x86_64 building\ncleanly.\n\nChange-Id: I00425a7245b7a2573df16cc38798187d0729e7c4\n"
    },
    {
      "commit": "65c99de2cb7a569ea17ca35e2f8f1e033421864b",
      "tree": "ed12e2385af1f3a3fc350805f19b7c2948443374",
      "parents": [
        "777a4ee6771e6fe3362ef4f24244a44fcd0aabe4"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Oct 09 13:44:38 2013 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Oct 09 13:44:38 2013 -0700"
      },
      "message": "FORTIFY_SOURCE: fortify read()\n\nChange-Id: I3d7b4ec86d04efb865117ce7629a2e26917f3331\n"
    },
    {
      "commit": "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": "14b66bffb08d23ad16d69b62d1fbfda769db1c12",
      "tree": "fb39fb1d7b7df4184c986a9ad148fe6ca584a587",
      "parents": [
        "65e1c48df095b2af53340ab55f687d5b1c638d66",
        "ef0696d46ac76b1a9eb9038027ef5872fe1f3507"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 09 00:20:08 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 09 00:20:08 2013 +0000"
      },
      "message": "Merge \"Fix malloc debugging for LP64.\""
    },
    {
      "commit": "c7c5f85ead6a58eadd511c728a9020a493bc128f",
      "tree": "a2a9e24e58bc73036ae7c93a7120ecda7cca8c1e",
      "parents": [
        "458076c3c7f41c72e0d1ae8da23907f75427ca3a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 08 17:02:26 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 08 17:02:26 2013 -0700"
      },
      "message": "Fix bionic\u0027s built-in stack trace dumping for LP64.\n\nChange-Id: I967c5789d7bb2d3d248d94d81a40d5ec4e1bf26d\n"
    },
    {
      "commit": "ef0696d46ac76b1a9eb9038027ef5872fe1f3507",
      "tree": "1618c0982b2b1600bc5ae9a7c5e6c668964e8716",
      "parents": [
        "458076c3c7f41c72e0d1ae8da23907f75427ca3a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 08 16:16:01 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 08 16:18:55 2013 -0700"
      },
      "message": "Fix malloc debugging for LP64.\n\nChange-Id: Idd0b239f5c66d45de315d556271a5d13b8eb907c\n"
    },
    {
      "commit": "5cf1f229620d02c0ca266c9e03418fdeefd85191",
      "tree": "26c8f5b7b37bf666d639eed38b61a253711d62ba",
      "parents": [
        "242b2e0b928f83083f60bbb856309122981299af",
        "c4c6e192ac045c06f4aad3afc8e437baf67227b7"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 08 22:02:20 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 08 22:02:20 2013 +0000"
      },
      "message": "Merge \"pthread_exit should call __NR_exit with status 0.\""
    },
    {
      "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": "0f395b7ba056ccec3915737cfece81ca2161e980",
      "tree": "bfa09bf67d1ffd7eb782543699ba8810aeb6b6cf",
      "parents": [
        "9c710927ab33a663a5ba34b15902e7062523f8e3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 08 13:19:00 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 08 13:19:00 2013 -0700"
      },
      "message": "Make logging fall back to /dev/stderr if we\u0027re on the host.\n\nOtherwise you get no logging, which sucks.\n\nChange-Id: Iea1e8f996461afbb217a55711b7967005c39cfcb\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": "6861c6f85e6563695c4763e56756398c9d5f6e14",
      "tree": "c1d460b532b20b094f8bad905159f62a076c7eaf",
      "parents": [
        "a81fd294be55f8781dbf22f381a3335212d8dbd9"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Oct 04 09:45:24 2013 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Oct 04 11:43:30 2013 -0700"
      },
      "message": "Make error messages even better!\n\nChange-Id: I72bd1eb1d526dc59833e5bc3c636171f7f9545af\n"
    },
    {
      "commit": "e2617290fca2ebbc4d64cae5a8d8d9e9f8e6c701",
      "tree": "7cd7f32b7fdd038bbaae6043d36a6854d1db5379",
      "parents": [
        "41ba05e22ed1829cc7431fd4899cfa5725c76044"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Oct 04 08:57:17 2013 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Oct 04 08:57:17 2013 -0700"
      },
      "message": "FORTIFY_SOURCE: emphasize prevention in error messages.\n\nFORTIFY_SOURCE prevents buffer overflows from occurring.\nHowever, the error message often implies that we only\ndetect it, not prevent it.\n\nBring more clarity to the error messages by emphasizing\nprevention over detection.\n\nChange-Id: I5f3e1478673bdfc589e6cc4199fce8e52e197a24\n"
    },
    {
      "commit": "1e52a54a47c00af689b7d8d503c4d69e53ae26fc",
      "tree": "46580702630f0cda815f53916360a0ef09928127",
      "parents": [
        "141029327cdc62629e248b3be1d7a58d4e9e5ba8"
      ],
      "author": {
        "name": "Pavel Chupin",
        "email": "pavel.v.chupin@intel.com",
        "time": "Fri Sep 20 18:46:42 2013 +0400"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 03 17:31:50 2013 -0700"
      },
      "message": "x86_64: Fix get_tls and statvfs\n\n* bionic_tls.h - Add x86_64 version of get_tls macro;\n* statvfs.h - 64-bit kernels don\u0027t have __statfs64/__fstatfs64, applying\nworkaround;\n\nChange-Id: I20d7ddad74c7b7243866373d0142da6627c08280\nSigned-off-by: Pavel Chupin \u003cpavel.v.chupin@intel.com\u003e\n"
    },
    {
      "commit": "e8dc673ca56556389ad06ce1bb55e6624b4db721",
      "tree": "3a8dca9211bef6cadda57bf24bf9d2c95ecd47b9",
      "parents": [
        "2ff3c746aeafeac9d1019bed97a99346515516af",
        "35c1862cdfcd87b5ef6c59128b9993efffafe88b"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Oct 03 22:52:02 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 03 22:52:02 2013 +0000"
      },
      "message": "Merge \"Don\u0027t export unnecessary symbol.\""
    },
    {
      "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": "35c1862cdfcd87b5ef6c59128b9993efffafe88b",
      "tree": "8af488889834eb365ed3f99c995e9843e4de1b7b",
      "parents": [
        "6088047a64abb1e8a27fcb9868b00a630fbdfed4"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Oct 03 14:59:05 2013 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Oct 03 14:59:05 2013 -0700"
      },
      "message": "Don\u0027t export unnecessary symbol.\n\nChange-Id: I8b1d75a08476c41dd8e3f09fc93a3df617928f88\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": "70e1730c38ad91cf65425e29732b5c041dd0cf43",
      "tree": "1bc495e675774a495636e37df94c5fb1e7d7ab5a",
      "parents": [
        "e0e6409c12d21cf1f0390c435fd76e74b5c4580d",
        "35d937e4eb7b8e0a4e9a113d2f7434d55c0bc056"
      ],
      "author": {
        "name": "Stephen Hines",
        "email": "srhines@google.com",
        "time": "Wed Oct 02 16:30:15 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 02 16:30:15 2013 +0000"
      },
      "message": "Merge \"Remove _FORTIFY_SOURCE in implementation files.\""
    },
    {
      "commit": "e0e6409c12d21cf1f0390c435fd76e74b5c4580d",
      "tree": "49351db63c52974950b6e75fe1667deaa454c41f",
      "parents": [
        "e26135ab18c94ba6ee9866bc04471853a899565b",
        "5f6cfce4f6608f2e450266814543e70b1ed2e02c"
      ],
      "author": {
        "name": "Stephen Hines",
        "email": "srhines@google.com",
        "time": "Wed Oct 02 16:29:21 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 02 16:29:22 2013 +0000"
      },
      "message": "Merge \"Add simple implementation _Unwind_GetIP() for clang compiles.\""
    },
    {
      "commit": "5f6cfce4f6608f2e450266814543e70b1ed2e02c",
      "tree": "4e45c2598a634c1d21e8b9b49ee775f414c01d33",
      "parents": [
        "76218efbeb2e124656ce15d4eb5a7039da065123"
      ],
      "author": {
        "name": "Stephen Hines",
        "email": "srhines@google.com",
        "time": "Tue Oct 01 18:20:51 2013 -0700"
      },
      "committer": {
        "name": "Stephen Hines",
        "email": "srhines@google.com",
        "time": "Tue Oct 01 18:20:51 2013 -0700"
      },
      "message": "Add simple implementation _Unwind_GetIP() for clang compiles.\n\nClang (prior to 3.4) does not actually provide a declaration (or definition)\nof _Unwind_GetIP() for ARM. We can work around this by writing our own\nbasic implementation using the available primitive operations.\n\nChange-Id: If6c66846952d8545849ad32d2b55daa4599cfe2c\n"
    },
    {
      "commit": "405f8553cf19c583158d59ab44a5d668eade360d",
      "tree": "971ae2a0ed75041cfdd41a8a61352da7644820c2",
      "parents": [
        "b2acd5ded1e801fb1379ec51c6f43eab63af50f5"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 01 17:25:28 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 01 17:25:28 2013 -0700"
      },
      "message": "Remove more assumptions that pointers are 32-bit.\n\nChange-Id: I2157e2fc4db7692b746c697982c3d028a056462a\n"
    },
    {
      "commit": "35d937e4eb7b8e0a4e9a113d2f7434d55c0bc056",
      "tree": "38f058560086d0a97b8455258fb66d05ada36a3b",
      "parents": [
        "76218efbeb2e124656ce15d4eb5a7039da065123"
      ],
      "author": {
        "name": "Stephen Hines",
        "email": "srhines@google.com",
        "time": "Tue Oct 01 15:02:07 2013 -0700"
      },
      "committer": {
        "name": "Stephen Hines",
        "email": "srhines@google.com",
        "time": "Tue Oct 01 15:02:07 2013 -0700"
      },
      "message": "Remove _FORTIFY_SOURCE in implementation files.\n\nThis was causing conflicting declarations for the library definitions of\ncommon functions like sprintf(), snprintf(), and strchr().\n\nChange-Id: I5daaa8a58183aa0d4d0fae8a7cb799671810f576\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": "f281fd02e9eebea3de9c07412c5b66647ca0c290",
      "tree": "ca234c3fee208aae87b1b4a05f66b06b3c4d295c",
      "parents": [
        "693bd73fcdf1504e84aef314d1933f5efc2c817d",
        "01a700e5d2ee9b5bd61546faffcb453fd1d6325c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 01 15:30:40 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 01 15:30:40 2013 +0000"
      },
      "message": "Merge \"Better statfs/fstatfs glibc compatibility.\""
    },
    {
      "commit": "693bd73fcdf1504e84aef314d1933f5efc2c817d",
      "tree": "c90eb16e2defbb6dde4e6c516338652e6e4cf557",
      "parents": [
        "f5ea738baa0ad5b32348f2ac42450d33d452ef31",
        "c620059479c47a78d57086d73726c9adc2f337ad"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 01 15:23:44 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 01 15:23:44 2013 +0000"
      },
      "message": "Merge \"Remove 32-bit assumptions from the ELF code.\""
    },
    {
      "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": "3456a1f5f486ebca7389bfd3eb942cb107eee0e6",
      "tree": "beecf7022d70b1fd2d5254ad8130218be776e331",
      "parents": [
        "6dee3b9aeec40bb518c1a29b4462300869a03d8e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Sep 30 19:20:02 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Sep 30 19:20:02 2013 -0700"
      },
      "message": "Fix x86 build.\n\nChange-Id: I1f2d8189bec3d0e25d21ca7d7bd73fd02f8678e2\n"
    },
    {
      "commit": "c620059479c47a78d57086d73726c9adc2f337ad",
      "tree": "ef410fffb4d853aaf7dbfee41743c197c4985856",
      "parents": [
        "6dee3b9aeec40bb518c1a29b4462300869a03d8e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Sep 30 18:43:46 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Sep 30 18:43:46 2013 -0700"
      },
      "message": "Remove 32-bit assumptions from the ELF code.\n\nChange-Id: I2c1f3d34c33685799aade8866eec44479ff9f963\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": "9ae59c02ca68da5bb45152c85c4cab6fd6f7aba2",
      "tree": "8f0e68c1325835e1add3d2a04de74440bc2c2b36",
      "parents": [
        "a259472ca076ee230523e63502999be13a3f72d2"
      ],
      "author": {
        "name": "Bernhard Rosenkraenzer",
        "email": "Bernhard.Rosenkranzer@linaro.org",
        "time": "Wed Sep 18 23:29:08 2013 +0200"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 19 11:55:36 2013 -0700"
      },
      "message": "Declare __page_shift and __page_size with C linkage.\n\n__page_shift and __page_size were accidentally declared in unistd.h with\nC linkage - their implementation needs to use the same linkage.\n\nGoing forward, though, let\u0027s stop the inlining madness and let\u0027s kill\nthe non-standard __getpageshift(). This patch takes getpagesize(3) out\nof line and removes __getpageshift but fixes __page_shift and __page_size\nfor backwards binary compatibility.\n\nChange-Id: I35ed66a08989ced1db422eb03e4d154a5d6b5bda\nSigned-off-by: Bernhard Rosenkraenzer \u003cBernhard.Rosenkranzer@linaro.org\u003e\n"
    },
    {
      "commit": "edad1e1558bf5a561ffb33c5bf5ca0553711e1ee",
      "tree": "7eeacc66f902057bfb0a96da342aef09d13d032c",
      "parents": [
        "8512992f50e8444c1985bbeb17c3385a58fc0fed"
      ],
      "author": {
        "name": "Bernhard Rosenkraenzer",
        "email": "Bernhard.Rosenkranzer@linaro.org",
        "time": "Wed Sep 18 23:37:00 2013 +0200"
      },
      "committer": {
        "name": "Bernhard Rosenkraenzer",
        "email": "Bernhard.Rosenkranzer@linaro.org",
        "time": "Wed Sep 18 23:40:19 2013 +0200"
      },
      "message": "Fix mismatch between declaration and forward declaration\n\nKernelArgumentBlock is defined as a class in KernelArgumentBlock.h, but\nforward declarations refer to it as a struct.\n\nWhile this is essentially the same, the mismatch causes a compiler\nwarning in clang (and may cause warnings in future versions of gcc) in\ncode that is supposed to be compiled with -Werror.\n\nChange-Id: I4ba49d364c44d0a42c276aff3a8098300dbdcdf0\nSigned-off-by: Bernhard Rosenkraenzer \u003cBernhard.Rosenkranzer@linaro.org\u003e\n"
    },
    {
      "commit": "50af69e8f326b2762a44d5fea2b118e7616e5d20",
      "tree": "46a173af8b370ce18d029c05c636bdc6fcc557ed",
      "parents": [
        "322e7bce235ec6e3f82f65669423a1d9e997b51e"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Sep 13 16:34:43 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Sep 13 16:44:47 2013 -0700"
      },
      "message": "Simplify main thread stack size initialization\n\nChange-Id: Iec09433d9de501031cce09dc75848a5e8f3d96bf\n"
    },
    {
      "commit": "322e7bce235ec6e3f82f65669423a1d9e997b51e",
      "tree": "17a4d755030ee77fb1773eb570efcb157ea9113a",
      "parents": [
        "98c726ec9b40e75efdd3ea027cd9cc627329f85e"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Sep 12 21:47:20 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Sep 13 16:25:25 2013 -0700"
      },
      "message": "Use kernel default for initial thread size\n\nBug: 10697851\n\nChange-Id: I8d980f5e0b584799536f6e6b891056c968d26cdf\n"
    },
    {
      "commit": "a21e696d905d12ee17481c5fe2ccbb67571c0572",
      "tree": "7ae551a42a065e102665df8a143efe65d78abe45",
      "parents": [
        "99b859cf786f208300f7fc3a6fa5b570c3333433"
      ],
      "author": {
        "name": "Pavel Chupin",
        "email": "pavel.v.chupin@intel.com",
        "time": "Fri Aug 09 19:17:55 2013 +0400"
      },
      "committer": {
        "name": "Pavel Chupin",
        "email": "pavel.v.chupin@intel.com",
        "time": "Tue Sep 03 13:27:09 2013 +0400"
      },
      "message": "Avoid segfaults if properties are not initialized\n\nNull or constant dereferencing occurs if properties are not initialized.\nOn Android devices it shouldn\u0027t happen but can be faced if testing bionic\nlibc.so on Linux host.\n\nChange-Id: I8f047cbe17d0e7bcde40ace000a8aa53789c16cb\nSigned-off-by: Pavel Chupin \u003cpavel.v.chupin@intel.com\u003e\n"
    },
    {
      "commit": "93501d3ab81156bcef251bb817a49e9ca46a6ec1",
      "tree": "38deed513bd1e1ec2cc316a4bd5de6689ee991da",
      "parents": [
        "2557433d8ea4c489f061170822f34f038b930b96"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Aug 28 10:47:43 2013 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Aug 28 12:39:06 2013 -0700"
      },
      "message": "FORTIFY_SOURCE: introduce __strncpy_chk2\n\nThis change detects programs reading beyond the end of \"src\" when\ncalling strncpy.\n\nChange-Id: Ie1b42de923385d62552b22c27b2d4713ab77ee03\n"
    },
    {
      "commit": "9b06cc3c1b2c4e2b08582f3fc9393a05aa589766",
      "tree": "230f8e9cadd5dbd6a854b9e7c63f9707a4f84400",
      "parents": [
        "cf0529946a0ffd07e94785102965656768e455e1"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Thu Aug 15 14:51:16 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 15 15:34:22 2013 -0700"
      },
      "message": "Fix pthread_getcpuclockid.\n\nclock_gettime was returning EINVAL for the values\nproduced by pthread_getcpuclockid.\n\nBug: 10346183\nChange-Id: Iabe643d7d46110bb311a0367aa0fc737f653208e\n"
    },
    {
      "commit": "59a13c122ebc4191583b67c846a95d690dcda5cf",
      "tree": "70d47582d6e0c4c18847e3f74649b2bca0fef5c6",
      "parents": [
        "c85e0dbb0b8d602f930cf7ae99901730c1c6a26a"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Aug 01 13:13:33 2013 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Aug 14 18:14:43 2013 -0700"
      },
      "message": "Optimize __memset_chk, __memcpy_chk. DO NOT MERGE.\n\nThis change creates assembler versions of __memcpy_chk/__memset_chk\nthat is implemented in the memcpy/memset assembler code. This change\navoids an extra call to memcpy/memset, instead allowing a simple fall\nthrough to occur from the chk code into the body of the real\nimplementation.\n\nTesting:\n\n- Ran the libc_test on __memcpy_chk/__memset_chk on all nexus devices.\n- Wrote a small test executable that has three calls to __memcpy_chk and\n  three calls to __memset_chk. First call dest_len is length + 1. Second\n  call dest_len is length. Third call dest_len is length - 1.\n  Verified that the first two calls pass, and the third fails. Examined\n  the logcat output on all nexus devices to verify that the fortify\n  error message was sent properly.\n- I benchmarked the new __memcpy_chk and __memset_chk on all systems. For\n  __memcpy_chk and large copies, the savings is relatively small (about 1%).\n  For small copies, the savings is large on cortex-a15/krait devices\n  (between 5% to 30%).\n  For cortex-a9 and small copies, the speed up is present, but relatively\n  small (about 3% to 5%).\n  For __memset_chk and large copies, the savings is also small (about 1%).\n  However, all processors show larger speed-ups on small copies (about 30% to\n  100%).\n\nBug: 9293744\n\nMerge from internal master.\n\n(cherry-picked from 7c860db0747f6276a6e43984d43f8fa5181ea936)\n\nChange-Id: I916ad305e4001269460ca6ebd38aaa0be8ac7f52\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": "e320a8c7802eb54f80693db03bb2a201580875e7",
      "tree": "2b803053b2b802f4ad01869d0f479a3bae89f6a2",
      "parents": [
        "bfba6aac99115972fad3341aef595c0ca1f7258b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jul 25 10:15:07 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jul 25 10:15:07 2013 -0700"
      },
      "message": "Avoid sign extension of the mmap offset.\n\noff_t is signed to support seeking backwards, but that\u0027s a liability\nwhen using off_t to represent a subset of a file.\n\nChange-Id: I2a3615166eb16212347eb47f1242e3bfb93c2022\n"
    },
    {
      "commit": "d0f2a6014c138945f78108b21b54a813c7a055db",
      "tree": "e85eed80c57edd9bebdfca324ab7e71331eb15dc",
      "parents": [
        "6fe4a58f84954523f17114f1f7cf060a3573c073"
      ],
      "author": {
        "name": "Rom Lemarchand",
        "email": "romlem@google.com",
        "time": "Tue Jul 23 11:30:52 2013 -0700"
      },
      "committer": {
        "name": "Rom Lemarchand",
        "email": "romlem@google.com",
        "time": "Tue Jul 23 13:48:39 2013 -0700"
      },
      "message": "Restore dlmalloc mmap threshold to 64k\n\nRestoring DEFAULT_MMAP_THRESHOLD to 64k, the way it was before\n999089181ef60bb67e1a49f2cf6f4ec608a7caf8.\n\nThis forces allocations in the 64k-256k range to be mmaped.\n\nChange-Id: Iace55ed638edd272b3e94fa6cd2ddd349042be84\nSigned-off-by: Rom Lemarchand \u003cromlem@google.com\u003e\n"
    },
    {
      "commit": "4cf13952175a793fed4646d7d7396364874b0909",
      "tree": "398598a421abf5790688df72da59cbce627d2e40",
      "parents": [
        "e8bd8c2ed9c71c73682f29020456934c55f260e3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jul 19 16:42:27 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jul 19 16:42:27 2013 -0700"
      },
      "message": "Move stuff only needed by pthread-timers.c into pthread-timers.c.\n\nChange-Id: I4915b3fff9c4f5a36b4f51027fb22019c11607b0\n"
    },
    {
      "commit": "84114c8dd5b17efecf7988f263ce431208d7be5a",
      "tree": "81d4ae4e6a40c4255b2e76adeb2b68dab5932058",
      "parents": [
        "40e7a87864fee75f7af2caf8e1972d0d764135cd"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 17 13:33:19 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 17 13:33:19 2013 -0700"
      },
      "message": "Improve stack overflow diagnostics (take 2).\n\nThis reverts commits eb1b07469f2b5a392dc1bfd8adc211aea8c72bc5 and\nd14dc3b87fbf80553f1cafa453816b7f11366627, and fixes the bug where\nwe were calling mmap (which might cause errno to be set) before\n__set_tls (which is required to implement errno).\n\nBug: 8557703\nChange-Id: I2c36d00240c56e156e1bb430d8c22a73a068b70c\n"
    },
    {
      "commit": "107cdd406b8e404af4d552498076cfe2dfe5efbf",
      "tree": "3a16d2410197ce4a4daabe8b1a5dd4a27893be80",
      "parents": [
        "b7b36b819e8029a152859f3204ba2da38a0e2879"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 17 13:12:26 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 17 13:12:26 2013 -0700"
      },
      "message": "Prevent the madvise(MADV_MERGEABLE) mmap hack from affecting errno.\n\nBug: 9889616\nChange-Id: I4a7323e0ae5aeb5cbe0da1b2bc7501d83b3a2aa4\n"
    },
    {
      "commit": "e459bba398e8a9eee0958d418e9b16dfabdb1515",
      "tree": "3dfd8b38bf81525d758d5d7225cf22310f966006",
      "parents": [
        "2cf5a6f6627549842c0c840ff3615ae942a90ea3"
      ],
      "author": {
        "name": "Rom Lemarchand",
        "email": "romlem@google.com",
        "time": "Fri May 17 17:08:41 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 17 13:00:45 2013 -0700"
      },
      "message": "mmap: Reinstate passing MADV_MERGEABLE on private anonymous maps\n\nReinstate mmap calling madvise(MADV_MERGEABLE) removed in\n635df850e5037be5093f64a87ec2e0a23bf7a50b\n\n(cherry-pick of c702a904679a36511bead29c51eeac15d81f4fd2.)\n\nChange-Id: I18803fb54701b2b3d8186dff5c678211ee3efa1f\n"
    },
    {
      "commit": "d14dc3b87fbf80553f1cafa453816b7f11366627",
      "tree": "b1a26c875f451b79888f60cf73504aab799874e1",
      "parents": [
        "aa754dca90487356cabf07ade0e8d88c2630b784"
      ],
      "author": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Wed Jul 17 03:17:05 2013 +0000"
      },
      "committer": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Wed Jul 17 03:17:05 2013 +0000"
      },
      "message": "Revert \"Improve stack overflow diagnostics.\"\n\nThis reverts commit aa754dca90487356cabf07ade0e8d88c2630b784.\n\nChange-Id: Ifa76eee31f7f44075eb3a48554315b2693062f44\n"
    },
    {
      "commit": "aa754dca90487356cabf07ade0e8d88c2630b784",
      "tree": "b4cda0d4fa3935abd85b3ee178d35d0738e8a744",
      "parents": [
        "9562d38df1e4aba941b3433cfd0922fee5ea258b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 16 13:14:24 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 16 13:14:24 2013 -0700"
      },
      "message": "Improve stack overflow diagnostics.\n\nWe notify debuggerd of problems by installing signal handlers. That\u0027s\nfine except for when the signal is caused by us running off the end of\na thread\u0027s stack and into the guard page.\n\nBug: 8557703\nChange-Id: I1ef65b4bb3bbca7e9a9743056177094921e60ed3\n"
    },
    {
      "commit": "d4e753fea9345c24dcce89531dff9019bef14eb3",
      "tree": "b1a26c875f451b79888f60cf73504aab799874e1",
      "parents": [
        "f152e386fcf477f3f5de9dc020c3660d4f9c4b81"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 16 12:45:46 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 16 12:45:46 2013 -0700"
      },
      "message": "Clean up __builtin_expect usage.\n\nAlso remove some dead code; our malloc debugging doesn\u0027t use this\nany more.\n\nChange-Id: Id69cf182371f5f37d40b5bbd08f2744ade286e66\n"
    },
    {
      "commit": "b95cf0d23a1db3b7c37bd98b0c86196796c9b029",
      "tree": "f9e43cf229b0bfe58029dd5adbac739d18df6742",
      "parents": [
        "59ed029b286a1564f635377296e4f088e0fd2afa"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jul 15 14:51:07 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jul 15 14:51:07 2013 -0700"
      },
      "message": "Fix pthread_getattr_np, pthread_attr_setguardsize, and pthread_attr_setstacksize.\n\npthread_getattr_np was reporting the values supplied to us, not the values we\nactually used, which is kinda the whole point of pthread_getattr_np.\n\npthread_attr_setguardsize and pthread_attr_setstacksize were reporting EINVAL\nfor any size that wasn\u0027t a multiple of the system page size. This is\nunnecessary. We can just round like POSIX suggests and glibc already does.\n\nAlso improve the error reporting for pthread_create failures.\n\nChange-Id: I7ebc518628a8a1161ec72e111def911d500bba71\n"
    },
    {
      "commit": "6184c1feaaecd161d9e53fb2ebe9c9a9ff4610cf",
      "tree": "124f38d761d958b929e3f70a6646cac1bf0a464b",
      "parents": [
        "9d476716c2bd7bc5a018a71e121257c35e965058"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 09 14:18:36 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 09 14:18:36 2013 -0700"
      },
      "message": "Fix MIPS build.\n\nChange-Id: I583b1794dbc12fcded8c4f57f367593a742ab33f\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": "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": "1ec20a086cb1da1d7455a36ea5d2ea4856426ea0",
      "tree": "1a99f8a56a835c983dc6d61205db9f40ad290e24",
      "parents": [
        "b116bf76286178a7d552c4d0a72b79212c8c93d1"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Jun 24 18:42:21 2013 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 25 16:52:34 2013 -0700"
      },
      "message": "bionic: use the size of the file to determine property area size\n\nOn the reader size, don\u0027t assume that the property size is PA_SIZE,\nread it from the size of the file.  Allows init to use a different\nproperty size without recompiling statically linked executables.\n\n(cherry picked from commit 285b42a04cbe8e627a75c9bfb3c7cb3f7b539267)\n\nChange-Id: I074204e9e6591b35faf7c1c58fb11ec162aff7bf\n"
    },
    {
      "commit": "c45087bffa528c0809f0df2e0a3708eba7018b33",
      "tree": "396514632534992375e81be44ea31194ff56ed9a",
      "parents": [
        "bfacb603e417c1e2c25ce8482b5c6e31b4db8c9b"
      ],
      "author": {
        "name": "Sergey Melnikov",
        "email": "sergey.melnikov@intel.com",
        "time": "Fri Jan 25 16:40:13 2013 +0400"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jun 25 13:12:39 2013 -0700"
      },
      "message": "Kernel dso support for \u0027dl_iterate_phdr\u0027 function\n\nKernel provides virtual DSO for stack unwinding/exception handlind info for\nsignal usage case. Stack unwinding routines use \u0027dl_iterate_phdr\u0027 function\nfor additional DWARF info gathering from DSOs. Patch enables virtual DSO\nenumeration via dl_iterate_phdr function.\n\nSigned-off-by: Sergey Melnikov \u003csergey.melnikov@intel.com\u003e\nChange-Id: Ic2882b28f40b456a088bc1e63c50cbfda7e4a102\n"
    },
    {
      "commit": "836dbf65e4370df38cddc170229a7b0bdf882c8c",
      "tree": "438d92641ff419d9836fbbfe992e9f6dcbcb46aa",
      "parents": [
        "1d36ee1a6e69ec529a7c43a4fe6268f85bc5134a"
      ],
      "author": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Fri Jun 21 13:02:38 2013 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Jun 24 16:35:46 2013 -0700"
      },
      "message": "bionic: store property names as variable-length strings\n\nNames are immutable, so the fixed-sized arrays can be replaced with\nvariable-length ones to save memory (especially on internal tree nodes).\n\nSigned-off-by: Greg Hackmann \u003cghackmann@google.com\u003e\n\n(cherry picked from commit 492ce95d9f6149137cb5b63c55cf2b3cdbe51e5e)\n\nChange-Id: Ib074192d1b71150233d78c58e9ffcf7ecf688b6b\n"
    },
    {
      "commit": "1d36ee1a6e69ec529a7c43a4fe6268f85bc5134a",
      "tree": "1a48ada4a610b0662d3f6d88740931fd19b27c3a",
      "parents": [
        "1540f601be32bdd4af8e8c13bdf2bc06bdaa76f1"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Sun Jun 16 10:19:16 2013 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Jun 24 16:35:41 2013 -0700"
      },
      "message": "bionic: prevent root processes from calling __system_property_add\n\nIf a root process other than init calls __system_property_add, which\nit should never do, it will break the design assumption that there is\nonly one mutator.\n\nPass O_EXCL to open() in map_prop_region_rw to ensure that only one\nprocess ever has the property pages open for write.\n\n(cherry picked from commit fb9b7b436f3ef94385f1b0c55ab81f246f0d96b8)\n\nChange-Id: I6df3afedbfb5d07891b095aa24b78278381a5aaf\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": "f7511e3bc932f9f4d025a62871c29bf1e0ac0ea7",
      "tree": "afa81157847956d9291013d7b948bab992c5006f",
      "parents": [
        "cb215a7e9ecec9feb5aae9d9a5b1c89f392208e7"
      ],
      "author": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Thu Jun 20 10:33:28 2013 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Jun 24 16:35:27 2013 -0700"
      },
      "message": "bionic: add missing memory barriers to system properties\n\n1) Reading the value must finish before checking whether it\u0027s intact\n\n2) Setting the serial\u0027s dirty bit must visible before modifying the\nvalue\n\n3) The modified value must be visible before clearing the serial\u0027s dirty\nbit\n\n4) New properties and their TOC entries must be visible before updating\nthe property count\n\nSigned-off-by: Greg Hackmann \u003cghackmann@google.com\u003e\n\n(cherry picked from commit 5bfa3ee8b37ef162154559575193018a6235acba)\n\nChange-Id: Id3fa45261fc2df2ae493ab5194bc2b6bff04e966\n"
    }
  ],
  "next": "cb215a7e9ecec9feb5aae9d9a5b1c89f392208e7"
}
