)]}'
{
  "log": [
    {
      "commit": "e2faf07d659b1c824002e50b9cdfa9caae62a31b",
      "tree": "72752c132d778ad698ef51cf7fca23224fcd6361",
      "parents": [
        "e725dc164015d873b64639f0fee9ba5c30175f4c"
      ],
      "author": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Thu Mar 03 08:37:53 2016 -0800"
      },
      "committer": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Fri Mar 25 14:16:58 2016 -0700"
      },
      "message": "Add {get,set}domainname(2)\n\n{get,set}domainname aren\u0027t in POSIX but are widely-implemented\nextensions.\n\nThe Linux kernel provides a setdomainname syscall but not a symmetric\ngetdomainname syscall, since it expects userspace to get the domain name\nfrom uname(2).\n\nChange-Id: I96726c242f4bb646c130b361688328b0b97269a0\nSigned-off-by: Greg Hackmann \u003cghackmann@google.com\u003e\n"
    },
    {
      "commit": "725b2a96a70c6570a1fb84562fe46348414752cd",
      "tree": "c6e4772eff6ea9ebb881ca579f14e6c4f87fc05d",
      "parents": [
        "68a2f12304e960f2045f3819c48311e7bf4d3126"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Mar 23 11:20:47 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Mar 23 17:40:25 2016 -0700"
      },
      "message": "Add pthread_getname_np.\n\nAlso guard both these GNU extensions with _GNU_SOURCE.\n\nAlso improve the tests to test each case on both the current thread and\nanother thread, since the code paths are totally different.\n\nBug: http://b/27810459\nChange-Id: I72b05bca5c5b6ca8ba4585b8edfb716a1c252f92\n"
    },
    {
      "commit": "545afa16bb6e44227f531a3508e21f3184b2fd5d",
      "tree": "39b7042e585a4a9a673417d5e057b4abdc56f9f2",
      "parents": [
        "bca25411b882abc6ab0bf07d25266ba9f8e4d398"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 15 17:11:56 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 15 17:23:12 2016 -0700"
      },
      "message": "Fix PTHREAD_THREADS_MAX.\n\nWe don\u0027t have a compile-time limit on the number of threads,\nand we don\u0027t have a definite run-time limit either.\n\nBug: http://b/27617302\nChange-Id: I6a6fe083e7b655d24eb9e7ef7f3e0280d483080b\n"
    },
    {
      "commit": "20f2c1ebd5b5860e69772b228ccda756eafc1398",
      "tree": "ac20170eeb693619808794ca272eef3f2fc621f9",
      "parents": [
        "ffd19ee64d89d5a9ba3757e8ecb1017e0ec5f135"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Mar 11 12:27:02 2016 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Mar 11 12:27:02 2016 -0800"
      },
      "message": "Init functions after debug malloc succeeds.\n\nDo not initialize all of the global function pointers associated with\ndebug malloc until the initialization has completed correctly.\n\nBug: 27600760\nChange-Id: I0621b54bc2d9fab63805d7992d384e550d6fed2a\n"
    },
    {
      "commit": "ffd19ee64d89d5a9ba3757e8ecb1017e0ec5f135",
      "tree": "a797ab082cc182f1cce8579e691f3a53d2839f18",
      "parents": [
        "79c9ff28f95b718db3ff5528b49e60e225fc56fd",
        "fc69a8ad5f0d9b63de48e3858fb4811ede7ac64e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 10 16:12:26 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 10 16:12:27 2016 +0000"
      },
      "message": "Merge \"Improve and fix the stack-protector tests.\""
    },
    {
      "commit": "fc69a8ad5f0d9b63de48e3858fb4811ede7ac64e",
      "tree": "6af471e8ad582190fcdccb40eea622802820dc74",
      "parents": [
        "728e0e9b97d7a43b4348062e4040d478c2ab8f51"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 04 11:53:09 2016 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Mar 09 14:50:03 2016 -0800"
      },
      "message": "Improve and fix the stack-protector tests.\n\nBug: http://b/26888853\nChange-Id: I505dbf7d5934f7247fb639f55dd6a9341df3947b\n"
    },
    {
      "commit": "2bf5332f233b1f718f297c0424bf441fa44d720d",
      "tree": "4ba7925da978da28691a2dd05e77b6220384e5d1",
      "parents": [
        "ba2232d0132274433a269eeccbbbd3be7f8f4384"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 07 11:54:02 2016 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 07 11:54:02 2016 -0800"
      },
      "message": "Minor clock_getcpuclockid optimization.\n\nDon\u0027t ask the kernel to copy data to userspace if we don\u0027t need it.\n(Noticed while cleaning up sysconf to not call clock_getres.)\n\nChange-Id: Icc0f7559775b8a2dcefe638ce831d06b75d67122\n"
    },
    {
      "commit": "ba2232d0132274433a269eeccbbbd3be7f8f4384",
      "tree": "36c64f017cf9b1d80bfff9ebe4bc92fbade9e466",
      "parents": [
        "a703498f0c416f58fdfdf3cdb208fffee60c9bb8",
        "6d7c1ee9ffefa98358b7043a8984366098c21b61"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Sat Mar 05 03:04:36 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Mar 05 03:04:37 2016 +0000"
      },
      "message": "Merge \"forkpty: set the output fd to -1 on the slave side.\""
    },
    {
      "commit": "d2b8de2cd16ecd86c830d98c58bcf392475bd0b3",
      "tree": "ebd7f6cc626c63e3db8fbdb9dc3a6a8858922655",
      "parents": [
        "c4d2bede1592dd82dce9bfc6ebecdc414a79490b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 04 18:25:57 2016 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 04 18:28:53 2016 -0800"
      },
      "message": "Don\u0027t call clock_getres in sysconf.\n\nThere are a hundred other reasons why we can\u0027t run on kernels old enough\nto not have all the clocks covered by sysconf.\n\nThis was causing trouble for jemalloc 4.1.0 in a seccomp-constrained process\nbecause jemalloc 4.1.0 introduced a call to sysconf that caused us to make\nclock_getres syscalls for the first time, leading to SIGSYS.\n\nBug: http://b/27408522\nChange-Id: I2eb6986d871bc03cbef278e5617734409c39e057\n"
    },
    {
      "commit": "6d7c1ee9ffefa98358b7043a8984366098c21b61",
      "tree": "d804189d541dc3dab73b0e1bf54d8e4fa8f421f3",
      "parents": [
        "5e57039c24d8aa777480e33255d627ca28af7dfe"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Mar 04 18:04:41 2016 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Mar 04 18:04:41 2016 -0800"
      },
      "message": "forkpty: set the output fd to -1 on the slave side.\n\nglibc, FreeBSD, OpenBSD, and Darwin all just leave the fd unchanged and\npossibly uninitialized. Setting it to -1 seems friendlier, though.\n\nBug: http://b/27506278\nChange-Id: I7acdc8eecbea4404d5fb4ba0b4d572245a323886\n"
    },
    {
      "commit": "29d4b714264497da0f9ae3ee512fbfde5ccce26b",
      "tree": "201196ee170fa61baf2632a8083483285ab15ff7",
      "parents": [
        "728e0e9b97d7a43b4348062e4040d478c2ab8f51"
      ],
      "author": {
        "name": "Douglas Leung",
        "email": "douglas.leung@imgtec.com",
        "time": "Thu Mar 03 18:55:39 2016 -0800"
      },
      "committer": {
        "name": "Douglas Leung",
        "email": "douglas.leung@imgtec.com",
        "time": "Fri Mar 04 15:15:00 2016 -0800"
      },
      "message": "Add __memset_chk assembler for mips32 and mips64.\n\nChange-Id: I365b1f345c695850c30ccb1a9f56f254ce182000\n"
    },
    {
      "commit": "81d6a18c69b71288c0ab0f65e0ee594f752febc8",
      "tree": "89685f4a7848b242f6fbdf8caa42005aa059d7e7",
      "parents": [
        "f3b42e5ae7727234cac586c20c230466886a7232"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 03 16:10:33 2016 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 03 16:10:33 2016 -0800"
      },
      "message": "Add x86 __memset_chk assembler.\n\nChange-Id: Ic6732f761ea8a41f70d5ff59d47ad38417d17cc2\n"
    },
    {
      "commit": "f3b42e5ae7727234cac586c20c230466886a7232",
      "tree": "2c8c924d21860809f274c387c663e08e90015de2",
      "parents": [
        "ff9bda720194f3596c9096eb8648ef92d9337c7e",
        "bed110af26f947057fd7940ba383b6f562d2df97"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 03 22:24:51 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 03 22:24:51 2016 +0000"
      },
      "message": "Merge \"Clean up bcopy cruft.\""
    },
    {
      "commit": "ff9bda720194f3596c9096eb8648ef92d9337c7e",
      "tree": "b462905173739b007ef6483dda5ac029e6219952",
      "parents": [
        "19ca2fe82fe05dd7565ce294841bd6425e84bb3d",
        "61c95fe52d1b729e643303182c720f6b45eb81ea"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 03 22:18:45 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 03 22:18:46 2016 +0000"
      },
      "message": "Merge \"Mandate optimized assembler for x86-64 __memset_chk.\""
    },
    {
      "commit": "19ca2fe82fe05dd7565ce294841bd6425e84bb3d",
      "tree": "6e2b053b9581a3dc3a8f8e59b69ef5c3e0636f3d",
      "parents": [
        "6809af03759e27c87598ea56e4f6a8c9b6267add",
        "0c3655a864f33080ebbec1248c27a7ead87d6a28"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Mar 03 22:02:37 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 03 22:02:37 2016 +0000"
      },
      "message": "Merge changes I17c22dc2,I9989e2ea\n\n* changes:\n  Add a checksum to jmp_buf on AArch64.\n  Add a checksum to jmp_buf on ARM.\n"
    },
    {
      "commit": "a4c69137c693c45fce4010ba61d69d7147f5dd9a",
      "tree": "ad08fb5e8878682c4cc959d44c507aa68be8bce9",
      "parents": [
        "5e57039c24d8aa777480e33255d627ca28af7dfe"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Mar 02 19:03:17 2016 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Mar 03 12:45:08 2016 -0800"
      },
      "message": "Add a checksum to jmp_buf on ARM.\n\nMake it easier to diagnose applications mucking with the contents of\njmp_buf by checksumming its contents.\n\nBug: http://b/27417786\nChange-Id: I9989e2ea3979a36ae0bc4c9e1bacafddbacc731b\n"
    },
    {
      "commit": "bed110af26f947057fd7940ba383b6f562d2df97",
      "tree": "9bbd7b566df7613598c1fa5377f7f135b1252853",
      "parents": [
        "6809af03759e27c87598ea56e4f6a8c9b6267add"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 03 10:41:42 2016 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 03 10:41:42 2016 -0800"
      },
      "message": "Clean up bcopy cruft.\n\nAlso remove some generic x86 assembler that\u0027s never built.\n\nChange-Id: Ic126de2eee646b5ba2b6ee549679ba90d67a48bb\n"
    },
    {
      "commit": "01d5b946acac8519d510781967bf538acdae1853",
      "tree": "8a5558513fc4642648887d3428f02eb2906c5021",
      "parents": [
        "5e57039c24d8aa777480e33255d627ca28af7dfe"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Mar 02 17:18:18 2016 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Mar 02 17:21:07 2016 -0800"
      },
      "message": "Remove optimized code for bzero, which was removed from POSIX in 2008.\n\nI\u0027ll come back for the last bcopy remnant...\n\nBug: http://b/26407170\nChange-Id: Iabfeb95fc8a4b4b3992e3cc209ec5221040e7c26\n"
    },
    {
      "commit": "61c95fe52d1b729e643303182c720f6b45eb81ea",
      "tree": "46d5dbbeabbf9679a7a8b0c74a4b11f2f1b67ff0",
      "parents": [
        "5e57039c24d8aa777480e33255d627ca28af7dfe"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Mar 02 16:39:29 2016 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Mar 02 16:39:29 2016 -0800"
      },
      "message": "Mandate optimized assembler for x86-64 __memset_chk.\n\nChange-Id: I4d6b452f3cf850d405e8f5d7da01d432603e606b\n"
    },
    {
      "commit": "784609317d49e854813f1797d7a53cf7d4379643",
      "tree": "316b6fd124f4c46b72f382b5d703a99514c4fc30",
      "parents": [
        "2332d524396aa69c55969cf6e48a5048f12d53ea"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Mar 02 11:58:41 2016 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Mar 02 11:58:41 2016 -0800"
      },
      "message": "Mandate optimized __memset_chk for arm and arm64.\n\nThis involves actually implementing assembler __memset_chk for arm64,\nbut that\u0027s easily done.\n\nObviously I\u0027d like this for all architectures (and all the string functions),\nbut this is low-hanging fruit...\n\nChange-Id: I70ec48c91aafd1f0feb974a2555c51611de9ef82\n"
    },
    {
      "commit": "2332d524396aa69c55969cf6e48a5048f12d53ea",
      "tree": "1811a2b0f3bcc886e1a919a2bb7886221084bd21",
      "parents": [
        "c5fa374ee92e3aedd15daf450e1a8bb5179e7a6a",
        "3c6016f04aa3a8e2660a7c68f0a28cbf30ff2f08"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Mar 02 19:13:02 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 02 19:13:03 2016 +0000"
      },
      "message": "Merge \"Improve diagnostics from the assembler __memcpy_chk routines.\""
    },
    {
      "commit": "ef925e50d38fe6f5499c1d0d24cca98bf88e5256",
      "tree": "24cf5b194a5933d6e74e6d0134fdede59597d843",
      "parents": [
        "c199690b5ffda0f4df50d1121f7ab577af1fe468"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 01 17:27:12 2016 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 01 20:05:59 2016 -0800"
      },
      "message": "Fix getifaddrs\u0027 handling of point-to-point interfaces.\n\nAlso remove an if that implied that IFA_BROADCAST is a possibility for\nAF_INET6.\n\nThe existing tests fail if you have a point-to-point interface configured,\nso no new test necessary.\n\nBug: http://b/27442503\nChange-Id: I4c5823b32204ae6c15527853414c2a0cef320b53\n"
    },
    {
      "commit": "3c6016f04aa3a8e2660a7c68f0a28cbf30ff2f08",
      "tree": "2a6e44952a672033546ca9aba5b92a410d935bc3",
      "parents": [
        "c199690b5ffda0f4df50d1121f7ab577af1fe468"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 01 14:45:58 2016 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 01 14:45:58 2016 -0800"
      },
      "message": "Improve diagnostics from the assembler __memcpy_chk routines.\n\nChange-Id: Iec16c92ed80beee505cba2121ea33e3550197b02\n"
    },
    {
      "commit": "62e59646f8795afac2eb4189a153e7decde370e7",
      "tree": "263b028a69cf045c2a3938a737d38399ff4e1a7a",
      "parents": [
        "2de7983470a04e3037a8993553c3b9533b985952"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 01 11:22:42 2016 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 01 12:46:47 2016 -0800"
      },
      "message": "Improve diagnostics from the assembler __memset_chk routines.\n\nChange-Id: Ic165043ab8cd5e16866b3e11cfba960514cbdc57\n"
    },
    {
      "commit": "0f67d5ffa41ecc73f52e81f18f2a10229cc33de5",
      "tree": "509bac14167c911239c92ad5add7b3752bfacd87",
      "parents": [
        "31adf6cd3846030f0d7397fa5f3cc285d8c79533"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Feb 27 19:18:41 2016 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Feb 27 19:18:41 2016 -0800"
      },
      "message": "Create logging sockets with SOCK_NONBLOCK...\n\n...rather than calling fcntl on them directly after creation.\n\nBug: https://code.google.com/p/android/issues/detail?id\u003d201440\nChange-Id: Ia3941b7645455d69620b1a361902df009b5da2c5\n"
    },
    {
      "commit": "31adf6cd3846030f0d7397fa5f3cc285d8c79533",
      "tree": "0907678f5b7fa453332fa09dd0322dbeb0a1dbfd",
      "parents": [
        "eb727252f22bd533ebfd40637c0718fdc9946221",
        "b83d6747facc5d819a0df0bcb8762477eecfd962"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Feb 28 00:30:31 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sun Feb 28 00:30:31 2016 +0000"
      },
      "message": "Merge \"Improve FORTIFY failure diagnostics.\""
    },
    {
      "commit": "b83d6747facc5d819a0df0bcb8762477eecfd962",
      "tree": "4f5b7589c2cfe21756a85327818a88a9becbc781",
      "parents": [
        "e0959b4b164a26eb9931ed6925c71d7870c063fe"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 25 20:33:47 2016 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 26 22:06:17 2016 -0800"
      },
      "message": "Improve FORTIFY failure diagnostics.\n\nOur FORTIFY _chk functions\u0027 implementations were very repetitive and verbose\nbut not very helpful. We\u0027d also screwed up and put the SSIZE_MAX checks where\nthey would never fire unless you actually had a buffer as large as half your\naddress space, which probably doesn\u0027t happen very often.\n\nFactor out the duplication and take the opportunity to actually show details\nlike how big the overrun buffer was, or by how much it was overrun.\n\nAlso remove the obsolete FORTIFY event logging.\n\nAlso remove the unused __libc_fatal_no_abort.\n\nThis change doesn\u0027t improve the diagnostics from the optimized assembler\nimplementations.\n\nChange-Id: I176a90701395404d50975b547a00bd2c654e1252\n"
    },
    {
      "commit": "f86c4494ff9613dcdf3dd7713d1e2c5d989d8eba",
      "tree": "0fcc85b0cd5b41d8c797c11ee455b490b9a4e9e0",
      "parents": [
        "a8e75ba37deff962b0ddbc2fb81b96c3515ae7e5"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 25 22:05:28 2016 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 25 22:05:28 2016 -0800"
      },
      "message": "If you\u0027re going to use memset...\n\n...you\u0027d better #include \u003cstring.h\u003e.\n\nChange-Id: I83e0877f4151fc764588e2d876e66d7712d41f61\n"
    },
    {
      "commit": "2c6c95348ca9df1727fd7402b3704e0e87cb347e",
      "tree": "369cbf183fdd9ca24f8e87030796f52faab10c62",
      "parents": [
        "d07d77e399ee26291125bedbe46d03e037e705f2"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 25 21:51:50 2016 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 25 21:51:50 2016 -0800"
      },
      "message": "GCC doesn\u0027t like {}, and clang doesn\u0027t like {0}...\n\n...so memset it is, then.\n\nI\u0027ll be glad when GCC is dead and we can use \"\u003d {}\" like it\u0027s the 21st century.\n\nChange-Id: I28d820d3926ac9bf44bf7c1e89e184726c840391\n"
    },
    {
      "commit": "6bd5cf60fa1ddb9474f8cc7b3b4d25179f5a5693",
      "tree": "9786a0524bf020e1f751b7ab55c91c6a2d46dfa4",
      "parents": [
        "e0959b4b164a26eb9931ed6925c71d7870c063fe"
      ],
      "author": {
        "name": "Anton Kirilov",
        "email": "anton.kirilov@linaro.org",
        "time": "Fri Feb 19 18:19:08 2016 +0000"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 25 20:49:15 2016 -0800"
      },
      "message": "Fix a structure initialisation in pthread_exit().\n\nThe purpose of this change is to silence Valgrind\u0027s warning about a\nsyscall parameter pointing to uninitialised bytes.\n\nChange-Id: I2737235f9ac288dbc8ec4be0c6f1cef181c9b7d7\n"
    },
    {
      "commit": "2c75991359df165ca7cc7a6213fb227c0b5ed87c",
      "tree": "4dc02df00481962e80acb454ee857fd5b2f8b2d4",
      "parents": [
        "2d4721c0c57fe2f7c1e1b40df4763a561b3cf856"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Feb 05 16:17:39 2016 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Feb 18 16:09:17 2016 -0800"
      },
      "message": "Add backtrace_string and export to libmemunreachable\n\nAdd backtrace_string to convert a malloc_debug backtrace to a string.\nAlso move the backtrace functions to libc_malloc_debug_backtrace so that\nlibmemunreachable can reuse them.\n\nChange-Id: I5ad67001c0b4d184903c762863a8588181d4873b\n"
    },
    {
      "commit": "2d4721c0c57fe2f7c1e1b40df4763a561b3cf856",
      "tree": "256b5519e32df5b56b6bc6a343f5ff50d16ddea0",
      "parents": [
        "869691c6f7691dd5bf343617aa185c32e0d3d160"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Feb 02 11:57:54 2016 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Feb 18 16:09:16 2016 -0800"
      },
      "message": "Export malloc_backtrace\n\nChange-Id: Ic1adb4dfd86b9ca698443a36263a3df2c91edda3\n"
    },
    {
      "commit": "869691c6f7691dd5bf343617aa185c32e0d3d160",
      "tree": "aa0cb5619aa90a899a31ca0ba250cb180c5d1302",
      "parents": [
        "aca201358b910e5a4b925c639902387fbdfd9016"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Jan 29 12:48:18 2016 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Feb 18 15:05:38 2016 -0800"
      },
      "message": "Export malloc_iterate and friends\n\nExport malloc_iterate, malloc_enable, and malloc_disable to be used by\nlibmemunreachable.\n\nChange-Id: I08a50349af82a95d096b6b4cbac37ababe4b9b06\n"
    },
    {
      "commit": "7dac8b8aabadbf2dcff20d3646e701728ba3777d",
      "tree": "bf5889601dc253dd00c736d1460e6cd1f324b322",
      "parents": [
        "2de48bc809bba48a7f209e209b3822bad010166f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 17 14:19:48 2016 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 17 14:38:09 2016 -0800"
      },
      "message": "Fix scope ids for link-local IPv6 addresses from getifaddrs(3).\n\nBug: http://b/27219454\nChange-Id: I7a166ff5553565f7afdab18dd2c703af4d475ab4\n"
    },
    {
      "commit": "01b85d5df3744449471b327d7afd6c1d5854bd11",
      "tree": "826bb1a5645bcfc2198815af06e35bd0573c4260",
      "parents": [
        "4c3cf4ad4d0b04d36b9e2ec3efeb0147f9c02dd3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 09 22:44:16 2016 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 09 22:44:16 2016 -0800"
      },
      "message": "Set x86 TLS limit to 0xfffff, not PAGE_SIZE.\n\nNot least because we set limit_in_pages to 1. PAGE_SIZE pages was never\nanyone\u0027s intention.\n\nChange-Id: Ide867f44a2fb20d4d5d0cd67ced468e8665a0193\n"
    },
    {
      "commit": "9c212fc43617aeef5b1828407dd5d8daee506923",
      "tree": "eebd77eb6ca299aea0e3bdfad2e56b044072f305",
      "parents": [
        "831c8a52498d3c7be204a00847275f6e9163626f",
        "ca6af7f4a81c4f8d1acf1ecbdcdae8c44bb0a092"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@google.com",
        "time": "Sat Feb 06 19:29:29 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Feb 06 19:29:29 2016 +0000"
      },
      "message": "Merge \"define pw_gecos to pw_passwd for LP32 systems\""
    },
    {
      "commit": "ca6af7f4a81c4f8d1acf1ecbdcdae8c44bb0a092",
      "tree": "03b85951dc0893c5ebdf5a37afa34fa2666cefa1",
      "parents": [
        "d2be3802582e69bfaf1a8ab02849bc44c4fa2ce6"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@google.com",
        "time": "Wed Feb 03 14:40:37 2016 -0500"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@google.com",
        "time": "Sat Feb 06 09:28:44 2016 -0500"
      },
      "message": "define pw_gecos to pw_passwd for LP32 systems\n\nSince we set both fields to NULL all the time, we can alias the two\nfields together on LP32 to provide build-time compatibility.\n\nBUG\u003d24918750\nTEST\u003dpython now builds for Brillo boards\n\nChange-Id: I3394aea80c9a5288669389f71d0e4132f2157e3c\n"
    },
    {
      "commit": "b90837c3d316c6ea8d6f0b0b6a3643d0d3245a0e",
      "tree": "13dba4cf3a2de528b0b5499bb7ed635ca5e4d8c2",
      "parents": [
        "d2be3802582e69bfaf1a8ab02849bc44c4fa2ce6",
        "4bc739a54c4ba9063e91bef06ff226dab118792d"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Feb 05 04:29:54 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 05 04:29:54 2016 +0000"
      },
      "message": "Merge \"Add check for pthread_self() when looking up a thread\""
    },
    {
      "commit": "4bc739a54c4ba9063e91bef06ff226dab118792d",
      "tree": "0eed99d568621b6609269e02ff0f5b9eb03d62fd",
      "parents": [
        "a279324094d748b97201412b2457d2f6e26287dd"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Feb 04 16:21:01 2016 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Feb 04 16:48:47 2016 -0800"
      },
      "message": "Add check for pthread_self() when looking up a thread\n\nCheck if thread_id is in fact pthread_self before\nlocking on g_thread_list_lock in __pthread_internal_find.\n\nThe main reason for doing this is not performance but to allow\nthe linker use raise() which was not working because pthread_kill()\ncouldn\u0027t find pthread_self() thread because the global thread\nlist is initialized in libc.so and the linker\u0027s version of this\nlist is empty.\n\nBug: http://b/25867917\nChange-Id: I18fe620e8cd465b30f0e1ff45fff32958f3c5c00\n"
    },
    {
      "commit": "0c485dae707fac45f5d8baff7da1a469e25c2261",
      "tree": "a7d6b4ba2311bd0f42c3dd487667f5bf4baadca3",
      "parents": [
        "5da33dd67350fcb7c12a57027b1af5f4e72a9c21"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 03 14:13:52 2016 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 03 14:13:52 2016 -0800"
      },
      "message": "Add in6addr_any and in6addr_loopback symbols.\n\nChange-Id: I3a90fa448b6bd43321672ba74b84a4e9e8a67738\n"
    },
    {
      "commit": "f226ee59e0effedeabed09e2d65be7fa7499cc25",
      "tree": "60b192388b5575a5315d7e9ea2b5b4ffa29ed59f",
      "parents": [
        "a279324094d748b97201412b2457d2f6e26287dd"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 03 11:24:28 2016 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 03 11:24:28 2016 -0800"
      },
      "message": "Add fopen64/freopen64/tmpfile64 aliases.\n\nOur fopen/freopen/tmpfile are already always O_LARGEFILE, but let\u0027s add\nthe aliases for _LARGEFILE_SOURCE compatibility.\n\nBug: http://b/24807045\nChange-Id: I5d99b3ef3c9f27ce70f13313f6a92e96c7f21f80\n"
    },
    {
      "commit": "2fc7f9db3df70b33e1cdf6faa445ec57e81b05df",
      "tree": "ce42a2c8ac35d73e3a260c11aab29f5b5e703b2d",
      "parents": [
        "172420e6a2c5af527984a3a3a51f60a48b06ae9a"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Jan 27 10:58:36 2016 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Jan 27 10:58:36 2016 -0800"
      },
      "message": "Remove unused file.\n\nThis file should have been deleted with the malloc debug rewrite, but\npopped back into existence due to a merge conflict.\n\nChange-Id: I74e53daaf3febf650b20e3da5329558ac84c5bcd\n"
    },
    {
      "commit": "194860a9e638b1d093857f08b8fad37c9ec0e113",
      "tree": "42207d2d010771166fcfc4b630168ab9930b99bb",
      "parents": [
        "896224aa7f307b6c53d8c4dfa0b0e3556b3b9fda",
        "8352475c756663fb22fce851a5ff9b9d8320f4de"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Jan 27 00:09:52 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 27 00:09:52 2016 +0000"
      },
      "message": "Merge \"Replace snprintf() with __libc_format_buffer()\""
    },
    {
      "commit": "8352475c756663fb22fce851a5ff9b9d8320f4de",
      "tree": "787da5e520fe3a9426e9cb5fb3fb4ea39105c84e",
      "parents": [
        "ced73ee45e04a991ce1295a38364568a17884eed"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Tue Jan 26 15:27:07 2016 -0800"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Tue Jan 26 23:51:01 2016 +0000"
      },
      "message": "Replace snprintf() with __libc_format_buffer()\n\nIf snprintf() is called from the linker, it may erroneously return a\nnull string.  The libc internal __libc_format_buffer() does not have\nthis problem, so it is now used instead.\n\nBug: 26756577\n\nChange-Id: I37a97e27f59b3c0a087f54a6603cc3aff7f07522\n"
    },
    {
      "commit": "d4ae54f668632e47f080ab60f2dc540560e98989",
      "tree": "b4e603213c0f8c80721316fc50ba213ab636d278",
      "parents": [
        "ced73ee45e04a991ce1295a38364568a17884eed"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 26 14:32:55 2016 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 26 14:32:55 2016 -0800"
      },
      "message": "Fix lockf for LP32.\n\nBug: http://b/13077650\nChange-Id: Ibbe2d907d23791c908475e0875a5c745ac948813\n"
    },
    {
      "commit": "d9bb70857577808c197030e7f5422ee1f976f3ac",
      "tree": "bc1b1393d66980c0fcb40d1b18d5f9e160478e42",
      "parents": [
        "e1497902c13ceafa88ae4af634de33c9b4e0ed0b",
        "5704c423c81790195161c1757ae79da188590c51"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 26 20:45:32 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jan 26 20:45:32 2016 +0000"
      },
      "message": "Merge \"Implement POSIX lockf.\""
    },
    {
      "commit": "5704c423c81790195161c1757ae79da188590c51",
      "tree": "66ebd378fb496400d35ad38a8c4eb25931ad30f2",
      "parents": [
        "ac67b4eb7c70ea668abb32298b0cb16920a32a66"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jan 25 18:06:24 2016 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 26 11:09:44 2016 -0800"
      },
      "message": "Implement POSIX lockf.\n\nThis has been requested a few times over the years. This is basically\na very late rebase of https://android-review.googlesource.com/45470\nwhich was abandoned years ago. One addition is that this version has\n_FILE_OFFSET_BITS\u003d64 support.\n\nPOSIX puts this in \u003cunistd.h\u003e. glibc also has it in \u003cfcntl.h\u003e.\n\nBug: http://b/13077650\nChange-Id: I5862b1dc326e326c01ad92438ecc1578d19ba739\n"
    },
    {
      "commit": "ca482742985a22dbf5ee4a0afdf8525300f7785d",
      "tree": "5a12f9d0381a6f732d90c5565fba8a3d3b2526b6",
      "parents": [
        "126cf324a39689e0c16cf815d0fb01f2bc18df05"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Mon Jan 25 17:38:44 2016 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Mon Jan 25 17:39:18 2016 -0800"
      },
      "message": "Revert \"Revert \"Make sem_wait able to return errno EINTR for sdk \u003e 23.\"\"\n\nThis reverts commit 6d5108520225fd2c4b10ca63565545ec120aab4a.\nAnd add missing bionic_sdk_version.h.\n\nChange-Id: I24cc738b1fd1d26234c52afbc787f5b3c4a9c9cb\n"
    },
    {
      "commit": "ac67b4eb7c70ea668abb32298b0cb16920a32a66",
      "tree": "561114e7101e55d8ae0fa7e8610124100adcef77",
      "parents": [
        "c96b6e1747c5b5ca154bada84ec0a3868540e96f",
        "6d5108520225fd2c4b10ca63565545ec120aab4a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 26 00:32:38 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jan 26 00:32:38 2016 +0000"
      },
      "message": "Merge \"Revert \"Make sem_wait able to return errno EINTR for sdk \u003e 23.\"\""
    },
    {
      "commit": "6d5108520225fd2c4b10ca63565545ec120aab4a",
      "tree": "914cf5e7a79c5a0545cf233fcb69b01aa9249999",
      "parents": [
        "892b61d3409e8cdf0e121c688737eb058d57f7ab"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Jan 26 00:20:06 2016 +0000"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Jan 26 00:20:06 2016 +0000"
      },
      "message": "Revert \"Make sem_wait able to return errno EINTR for sdk \u003e 23.\"\n\nBroke the build. There\u0027s no such file as bionic_sdk_version.h anywhere in the tree.\n\nThis reverts commit 892b61d3409e8cdf0e121c688737eb058d57f7ab.\n\nChange-Id: Iec3f4588edfb1d1524bb5f16451fd05dc6ebe44a\n"
    },
    {
      "commit": "c96b6e1747c5b5ca154bada84ec0a3868540e96f",
      "tree": "2566d8f92d63cff78bf5c64ab041af8c71ac42b7",
      "parents": [
        "e40e429753cfe84fee0aaf553b57ce8679a28c9d",
        "892b61d3409e8cdf0e121c688737eb058d57f7ab"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Mon Jan 25 23:39:29 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jan 25 23:39:29 2016 +0000"
      },
      "message": "Merge \"Make sem_wait able to return errno EINTR for sdk \u003e 23.\""
    },
    {
      "commit": "892b61d3409e8cdf0e121c688737eb058d57f7ab",
      "tree": "abc63e4c8e1a525bdfe15b8447d0c73825d8861e",
      "parents": [
        "7150e5a8ef7c5f5c77720db7961e170580db08ea"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Mon Jan 25 11:37:16 2016 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Mon Jan 25 13:44:39 2016 -0800"
      },
      "message": "Make sem_wait able to return errno EINTR for sdk \u003e 23.\n\nPosix standards says sem_wait is interruptible by the delivery\nof a signal. To keep compatiblity with old apps, only fix that\nin newer sdk versions.\n\nBug: 26743454\n\nChange-Id: I924cbb436658e3e0f397c922d866ece99b8241a3\n"
    },
    {
      "commit": "63860cb8fd1adf3f679b9b4ad876323a8d65cd9d",
      "tree": "25aeae686d92efcb5e08a54e8cba1e8c31efe33b",
      "parents": [
        "ad9c3f34f762ed45cce5dbb93218124ed31f6873"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Nov 16 17:30:32 2015 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Jan 25 10:54:21 2016 -0800"
      },
      "message": "Malloc debug rewrite.\n\nThe major components of the rewrite:\n\n- Completely remove the qemu shared library code. Nobody was using it\n  and it appears to have broken at some point.\n- Adds the ability to enable/disable different options independently.\n- Adds a new option that can enable the backtrace on alloc/free when\n  a process gets a specific signal.\n- Adds a new way to enable malloc debug. If a special property is\n  set, and the process has an environment variable set, then debug\n  malloc will be enabled. This allows something that might be\n  a derivative of app_process to be started with an environment variable\n  being enabled.\n- get_malloc_leak_info() used to return one element for each pointer that\n  had the exact same backtrace. The new version returns information for\n  every one of the pointers with same backtrace. It turns out ddms already\n  automatically coalesces these, so the old method simply hid the fact\n  that there where multiple pointers with the same amount of backtrace.\n- Moved all of the malloc debug specific code into the library.\n  Nothing related to the malloc debug data structures remains in libc.\n- Removed the calls to the debug malloc cleanup routine. Instead, I\n  added an atexit call with the debug malloc cleanup routine. This gets\n  around most problems related to the timing of doing the cleanup.\n\nThe new properties and environment variables:\n\nlibc.debug.malloc.options\n  Set by option name (such as \"backtrace\"). Setting this to a bad value\n  will cause a usage statement to be printed to the log.\n\nlibc.debug.malloc.program\n  Same as before. If this is set, then only the program named will\n  be launched with malloc debug enabled. This is not a complete match,\n  but if any part of the property is in the program name, malloc debug is\n  enabled.\n\nlibc.debug.malloc.env_enabled\n  If set, then malloc debug is only enabled if the running process has the\n  environment variable LIBC_DEBUG_MALLOC_ENABLE set.\n\nBug: 19145921\n\nChange-Id: I7b0e58cc85cc6d4118173fe1f8627a391b64c0d7\n"
    },
    {
      "commit": "0ac0cee0d1ab60a92103a5021e76ec31da2e3234",
      "tree": "86e5e5d15c525b7fd3883ea3dcf06f57f5853906",
      "parents": [
        "a42483baad9a37297e6bbbe02d433ecbde890386"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Jan 06 17:57:44 2016 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Mon Jan 25 10:14:35 2016 -0800"
      },
      "message": "Remove dlmalloc.\n\nBug: http://b/17207577\nChange-Id: Ie009badca6deb1f91b27a4340b70cdd6bedff893\n"
    },
    {
      "commit": "bba395492a0bb6ee72d0ad8e4d468e852392220e",
      "tree": "bf0baaf8f36e64b3b64045ab8b2401625ca83ac0",
      "parents": [
        "05c2f6b3d39ee92eae248e902a5a54fdcc6c696f"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Jan 21 22:25:32 2016 +0000"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Jan 22 01:43:04 2016 +0000"
      },
      "message": "Revert \"Temporary apply LIBC version to __pthread_gettid\"\n\nThis reverts commit 0ef1d121b5e4845f4ef3b59ae9a1f99ceb531186.\n\nBug: http://b/26392296\nBug: http://b/26391427\nChange-Id: I7bbb555de3a43813e7623ff6ad4e17874d283eca\n"
    },
    {
      "commit": "d1293faba6dbb9aa8a6253d565f8276e819c1453",
      "tree": "2df6136520419c7b4fae2046d479250e94f9e728",
      "parents": [
        "94ddc29c0ebb0ba8493c070d40efb5d68260982d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 19 09:47:47 2016 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 19 09:47:47 2016 -0800"
      },
      "message": "Fix GCC build breakage.\n\nChange-Id: I0339f525c68af942fb97f4bffc771717e67e0e07\n"
    },
    {
      "commit": "ed57b98758176f0cccdec16cbed524e444039fe7",
      "tree": "75089e67cfcbff961a859ac13409b1f19137cfc6",
      "parents": [
        "68d0150221eb505a576f6ad5ca1f367b4ce547a0"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jan 15 21:02:56 2016 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jan 18 12:07:38 2016 -0800"
      },
      "message": "Implement if_nameindex(3)/if_freenameindex(3).\n\nThis is just a subset of the recently-implemented getifaddrs(3), though if\nwe want to handle interfaces (such as \"rmnet_*\") that don\u0027t have an address,\nwe need to either expose ifaddrs_storage and keep track of which interfaces\nwe\u0027ve already seen (which is pretty messy), or refactor the netlink code so\nwe can reuse it and just extract the information we need for if_nameindex(3).\nThis patch goes the latter route.\n\nAlso clean up if_nametoindex(3) and if_indextoname(3).\n\nChange-Id: I5ffc5df0bab62286cdda2e7af06f032c767119a8\n"
    },
    {
      "commit": "fdb2963e0a65ececa89837eff64ffd8aca8027d2",
      "tree": "5fb2398cfa9aa777c399cc2052b8681859bfde61",
      "parents": [
        "195b85a80faadcb4180f7f8192fc8ae162165892"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Tue Dec 22 17:07:23 2015 +0000"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jan 08 19:18:44 2016 -0800"
      },
      "message": "Handle AF_PACKET in getifaddr(3).\n\nAlso fix a bug where we were mutating the address/broadcast address\nof an existing entry rather than the new entry, and use \u0027const\u0027 to\nensure we don\u0027t make that mistake again.\n\nChange-Id: I31c127a5d21879b52c85cd0f7ed2e66554a21e39\n"
    },
    {
      "commit": "42d949ff9d2956e25f84e537f43a8f93ecb37baf",
      "tree": "66f1215029c3777d59393fbbbaa55ba5aed5872a",
      "parents": [
        "988e71b2b22117b0f7e994cbe764066630494125"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 06 19:51:43 2016 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 06 20:06:08 2016 -0800"
      },
      "message": "Defend against -fstack-protector in libc startup.\n\nExactly which functions get a stack protector is up to the compiler, so\nlet\u0027s separate the code that sets up the environment stack protection\nrequires and explicitly build it with -fno-stack-protector.\n\nBug: http://b/26276517\nChange-Id: I8719e23ead1f1e81715c32c1335da868f68369b5\n"
    },
    {
      "commit": "9353089262b21f88a2dca6516f03a4dd39a5dbd1",
      "tree": "65db2e55162740266136447893dd9a6a0845e028",
      "parents": [
        "1464f6d8d9d560ed57bd878b822b2611c821b8bd",
        "e97ce31fe768f6383234d809eef144f049210a5e"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Jan 06 19:16:31 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 06 19:16:31 2016 +0000"
      },
      "message": "Merge \"Revert \"system_properties.cpp: special case ro.* properties\"\""
    },
    {
      "commit": "e97ce31fe768f6383234d809eef144f049210a5e",
      "tree": "d58ffcc743723e687ac24f8c9bb4841efb9edad1",
      "parents": [
        "c5fd81ab2524a06be907d9c5234e79346bbbbd7c"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Jan 06 18:52:52 2016 +0000"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Jan 06 19:13:54 2016 +0000"
      },
      "message": "Revert \"system_properties.cpp: special case ro.* properties\"\n\nThis reverts commit c5fd81ab2524a06be907d9c5234e79346bbbbd7c.\n\nBug: 26416032\n\nChange-Id: Id2d6761fdf55efa28c0b08b597daaa5cd381d758\n"
    },
    {
      "commit": "031dfe198b53753bc852961e915fedb78c5f42df",
      "tree": "722bbbd7d34c0a2f0bedc4ae516f15cf0cbf625e",
      "parents": [
        "7d27b68ef4abf279700ff6a4eb9584b6c969a00d",
        "40c2bf6cf6d9fa423d36128823451ae1cc1f7662"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 06 01:27:09 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 06 01:27:09 2016 +0000"
      },
      "message": "Merge \"Fix a broken link in a comment.\""
    },
    {
      "commit": "40c2bf6cf6d9fa423d36128823451ae1cc1f7662",
      "tree": "6fb17de7a6a808b801ddad4e7569010188b8914a",
      "parents": [
        "c6c3b47be20be9e81725f9bd07d81a9ed752acfc"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 05 16:33:33 2016 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 05 16:33:33 2016 -0800"
      },
      "message": "Fix a broken link in a comment.\n\nBug: https://code.google.com/p/android/issues/detail?id\u003d197784\nChange-Id: I2f9e5bc2dd2b8a6992c7c55bc856e4a323c7c8a8\n"
    },
    {
      "commit": "c5fd81ab2524a06be907d9c5234e79346bbbbd7c",
      "tree": "4c6bd98ff76eb21ec69e8ba264bcf03613d4b83b",
      "parents": [
        "507d6f2a51f907f46b5d4bfe32b5a826ad7dd25f"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Jan 05 16:19:24 2016 -0800"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Jan 05 16:30:17 2016 -0800"
      },
      "message": "system_properties.cpp: special case ro.* properties\n\nCurrently, reads of ro.* properties are treated differently than\nwrites of ro.* properties. When writing an ro.* property, we ignore\nthe \"ro.\" portion of the property, and base the security decision\non the label of the remaining portion.\n\nSee https://android.googlesource.com/platform/system/core/+/e7a9e52740c952c623f7842ffa1d09b58b45e552/init/property_service.cpp\nline 120-126\n\nFor example, for writing, the label associated with\n\"ro.build.fingerprint\" comes from the /property_contexts file\nentry:\n\n  # ro.build.fingerprint is either set in /system/build.prop, or is\n  # set at runtime by system_server.\n  build.fingerprint       u:object_r:fingerprint_prop:s0\n\nHowever, we fail to follow this same special case when sorting\nproperties into files. Instead, ro.build.fingerprint is assigned\nu:object_r:default_prop:s0 instead of u:object_r:fingerprint_prop:s0\n\nIgnore the \"ro.\" portion when sorting properties into files.\nThis will make reads and writes of properties use the same label.\n\nBug: 21852512\nChange-Id: Ie88ffc6b78b31fc8ddf370ae27c218546fb25a83\n"
    },
    {
      "commit": "0ef1d121b5e4845f4ef3b59ae9a1f99ceb531186",
      "tree": "fca911e05370dd70453096dae35a1727dff66bee",
      "parents": [
        "c1113a3fc7f32fb86937f7ab73afe0a481688788"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Jan 04 22:36:18 2016 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Jan 05 00:19:13 2016 -0800"
      },
      "message": "Temporary apply LIBC version to __pthread_gettid\n\nThis is workaround for http://b/26391427\n\nBug: http://b/26391427\nChange-Id: Ibf5c611cf4c04dfa595644225e6d9503089a18da\n"
    },
    {
      "commit": "c8bb96a163ac4e4f47f305df9e4dc1252f6a938d",
      "tree": "77502aeddb6adfdeafe75fb03bb2fcf88e0ce576",
      "parents": [
        "eb90e91cb5872f6aac7008b0c83e103d396be196"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Jan 05 08:03:56 2016 +0000"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Jan 05 08:03:56 2016 +0000"
      },
      "message": "Revert \"Temporary apply LIBC version to __pthread_gettid\"\n\nThis reverts commit eb90e91cb5872f6aac7008b0c83e103d396be196.\n\nChange-Id: I63450087b6d3c23218b77d5eee37965f254a82d6\n"
    },
    {
      "commit": "eb90e91cb5872f6aac7008b0c83e103d396be196",
      "tree": "526677ca699b31c5e16bb26a3f96370c1bc9659e",
      "parents": [
        "04673ee997996e970d58c2ab83041ca7f01ebe5c"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Jan 04 22:36:18 2016 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Jan 04 22:36:18 2016 -0800"
      },
      "message": "Temporary apply LIBC version to __pthread_gettid\n\nThis is workaround for http://b/26391427\n\nBug: http://b/26391427\nChange-Id: I4ccc56e8b1bd2597f267df9706a33bb635abcfcb\n"
    },
    {
      "commit": "9cddb482b498abd134f7ccfc9933747e8bcb9cc7",
      "tree": "a11142895775f0aaa7c4c68175254e6ead803676",
      "parents": [
        "2fed6aa9f0d2a90d59ad3c4d73313958f3470152"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jan 04 20:38:05 2016 +0000"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jan 04 13:00:39 2016 -0800"
      },
      "message": "Revert \"Revert \"Implement getifaddrs(3)/freeifaddrs(3).\"\"\n\nThis reverts commit 76814a8250fd5e1502909ef5e10e4d166cc96c0e.\n\nThis differs from the original in fixing the GCC -Werror build:\n\n  bionic/libc/bionic/ifaddrs.cpp: In function \u0027void __handle_netlink_response(ifaddrs**, nlmsghdr*)\u0027:\n  bionic/libc/bionic/ifaddrs.cpp:113:62: error: use of old-style cast [-Werror\u003dold-style-cast]\n       ifinfomsg* ifi \u003d reinterpret_cast\u003cifinfomsg*\u003e(NLMSG_DATA(hdr));\n\nThis appears to be a GCC bug; the GCC command-line correctly uses -isystem,\nand manually adding #pragma GCC system_header doesn\u0027t help. So just turn the\nwarning off for GCC for now. We won\u0027t need to worry about building with GCC\nsoon anyway.\n\nBug: http://b/26238832\nChange-Id: I01615bd335edf11baf487b1c83a9157cd780f4a1\n"
    },
    {
      "commit": "76814a8250fd5e1502909ef5e10e4d166cc96c0e",
      "tree": "04b19cda236e882d75bfd928c4fbc87dded7a27a",
      "parents": [
        "0945ed5cc5921243724fed4465d20881f4891a8d"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Tue Dec 22 17:47:54 2015 +0000"
      },
      "committer": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Tue Dec 22 17:47:54 2015 +0000"
      },
      "message": "Revert \"Implement getifaddrs(3)/freeifaddrs(3).\"\n\nWerror build broken. Revert while working on a fix.\n\nThis reverts commit 0945ed5cc5921243724fed4465d20881f4891a8d.\n\nChange-Id: I67edab7a7a3b9aa673ce9d14aa95380f947838a1\n"
    },
    {
      "commit": "0945ed5cc5921243724fed4465d20881f4891a8d",
      "tree": "cb4468cc6114238740ef29973bd5d5fa951fa826",
      "parents": [
        "4afd635be1b956c40f36758a482e6d83502fbb42"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Dec 19 14:39:10 2015 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Dec 19 14:49:09 2015 -0800"
      },
      "message": "Implement getifaddrs(3)/freeifaddrs(3).\n\nTime to dust off the old libcore implementation from gingerbread and add it\nto bionic. Unlike the original, this actually looks at both RTM_NEWLINK and\nRTM_NEWADDR.\n\nBug: http://b/26238832\nChange-Id: I7bb4b432deb766065b66b9c9ff36ed68249aba82\n"
    },
    {
      "commit": "dd57119ced4670de2ea18fc84a59f20ccec353a7",
      "tree": "465a0f267c3258e8ad134f69aea977779e2d105e",
      "parents": [
        "7cb3c4af134cfa4308742c86086bccdd06463c0c",
        "b417169d80cdf975c71b03de247ea2365e83c229"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Thu Dec 17 17:54:05 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 17 17:54:05 2015 +0000"
      },
      "message": "Merge \"Reset access to system properties on reinitialization\""
    },
    {
      "commit": "dd586f2ebd0c42904e699f3634568a38c97d4da7",
      "tree": "9622cf03564998a33d69f2039382844d81384e30",
      "parents": [
        "d3e5301a75256171199b23f6ba2c6651d05ce5f1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Dec 16 15:15:58 2015 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Dec 16 15:15:58 2015 -0800"
      },
      "message": "sem_timedwait with a null timeout doesn\u0027t mean \"forever\".\n\nIt actually means \"crash immediately\". Well, it\u0027s an error. And callers are\nmuch more likely to realize their mistake if we crash immediately rather\nthan return EINVAL. Historically, glibc has crashed and bionic -- before\nthe recent changes -- returned EINVAL, so this is a behavior change.\n\nChange-Id: I0c2373a6703b20b8a97aacc1e66368a5885e8c51\n"
    },
    {
      "commit": "bc2e88a85d5fd3e59c041a667283378c1503a16c",
      "tree": "4c2f4295e7c36a46c22a0984366ce8e12c5be93f",
      "parents": [
        "23af25b747b5e7b0ca513a87b32f1f6a3cb99698"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Dec 16 19:02:04 2015 +0000"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Dec 16 19:02:04 2015 +0000"
      },
      "message": "Revert \"Revert \"Remove remaining ndk_cruft from LP64 platforms\"\"\n\nThis reverts commit 23af25b747b5e7b0ca513a87b32f1f6a3cb99698.\n\nBug: http://b/26164862\nChange-Id: I201bf49530f33f8ba6a1a35b79723afb9e84c7a5\n"
    },
    {
      "commit": "23af25b747b5e7b0ca513a87b32f1f6a3cb99698",
      "tree": "5d1a2a01cc4566ea0a6ea7941147924276b186bd",
      "parents": [
        "b1d0a2ae7790f882d8f1ab24d7ef15e2b90c8ca2"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Dec 15 01:34:14 2015 +0000"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Dec 15 01:34:14 2015 +0000"
      },
      "message": "Revert \"Remove remaining ndk_cruft from LP64 platforms\"\n\nThis reverts commit b1d0a2ae7790f882d8f1ab24d7ef15e2b90c8ca2.\n\nChange-Id: I1da06be0b78a4f2a4cad7e4a19a3ee755f55a813\n"
    },
    {
      "commit": "b1d0a2ae7790f882d8f1ab24d7ef15e2b90c8ca2",
      "tree": "4c2f4295e7c36a46c22a0984366ce8e12c5be93f",
      "parents": [
        "881673cb45449f9fbc9fa496cf1d777868ee9da8"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Dec 14 15:49:28 2015 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Dec 14 15:49:28 2015 -0800"
      },
      "message": "Remove remaining ndk_cruft from LP64 platforms\n\nThis change removes endpwent, dlmalloc_inspect_all, dlmalloc_trim\nfrom lp64 libc.so. It also removed necessety of having brillo\nversion scripts for lp64 platforms.\n\nBug: http://b/26164862\nChange-Id: I4e9b38907bb1dc410f0eb6d2f5d5944fe713da51\n"
    },
    {
      "commit": "b417169d80cdf975c71b03de247ea2365e83c229",
      "tree": "6e80ff774fd361a1f5d3c16ddde63917a632ff1a",
      "parents": [
        "e371ae68ac0d6d39cacf5edc893bda2f4a61e883"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Dec 09 15:48:15 2015 -0800"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Fri Dec 11 11:16:21 2015 -0800"
      },
      "message": "Reset access to system properties on reinitialization\n\nTreat subsequent calls to __system_properties_init() as a\nreinitialization of system properties and revoke access to prop files\nthat have been previously mapped but that the process\u0027s current context\ndoes not have access to.  Additionally reset the no_access_ flag in\ncase permissions have loosened and previously unaccessible files can now\nbe accessed.\n\nThis is meant to work around an issue that setcon() does not revoke\nmmap() mappings, so we must manually revoke them after a successful\nsetcon() call.\n\nBug 26114086\n\nChange-Id: I4d690abb6817283ca64ac26ea4c1dad398a98fbc\n"
    },
    {
      "commit": "e46ded5ce1582202cb809c907128e423e58ce7ed",
      "tree": "74fdc33d58a67dd3c0e6c1d9937d977f0310436f",
      "parents": [
        "cb025e55f707216eb36b07f6fc36dcf604a45c07",
        "46e2eadad24b9d11f5319efd393066ae8c35cd54"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Thu Dec 10 23:05:15 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 10 23:05:15 2015 +0000"
      },
      "message": "Merge \"Do not set properties in bionic_systrace\""
    },
    {
      "commit": "46e2eadad24b9d11f5319efd393066ae8c35cd54",
      "tree": "6684ad778a4bdca5644d819b26f23b731ef4aeed",
      "parents": [
        "e371ae68ac0d6d39cacf5edc893bda2f4a61e883"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Thu Dec 10 13:21:46 2015 -0800"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Thu Dec 10 13:33:37 2015 -0800"
      },
      "message": "Do not set properties in bionic_systrace\n\nCurrently, if the debug.atrace.tags.enableflags property is not found,\nit is set to a safe value such that a pointer to this property can be\nstored for later access.  This may result in selinux denials because not\nall processes write permissions for this property or permission to\nconnect to the property write socket at all.\n\nChange I6d953c0c281fd72ad3eba8a479fd258023579b5b writes this property to\na safe value upon boot, which greatly decreases the cases in which this\nproperty will not be accessible and removes the need to write it here.\nThis commit removes this write.\n\nBug 26115803\n\nChange-Id: Ief72c5f731d3a1231b5080eb531fa0a491a8b1d1\n"
    },
    {
      "commit": "9d8632e1a76de6bd6abc853c0fbd6a2c9dc32cdc",
      "tree": "305a1363fc70628723c7a9d924cd1a59494c0b58",
      "parents": [
        "39801757c3bf688bee28f636959757953b2bb695",
        "89a50fe1ebfa09f6a5e82566e27f80708a50db4d"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Dec 10 17:39:48 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 10 17:39:48 2015 +0000"
      },
      "message": "Merge \"constexpr constructor for atfork_list_t\""
    },
    {
      "commit": "6500f51c0e3ef37dbda889dbd1125c03c787ae50",
      "tree": "1485326704318f906f94643e5ca0ef6768912a9e",
      "parents": [
        "5a3ab3422d8b8f500eda70edf7b0fff83656603a",
        "6c54ddd20f663de9e383fcd7b4cff93471369d87"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 10 02:33:34 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 10 02:33:34 2015 +0000"
      },
      "message": "Merge \"Fix -fstack-protector-strong for x86.\""
    },
    {
      "commit": "9da687e2f49c2a67135bf30d074de445728e109d",
      "tree": "fcad0d0f8e72c806418d5975db8bcbd51837ead9",
      "parents": [
        "eaccfde0759c6df6011c2a1e69ca275f2e24d909"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Dec 08 13:42:41 2015 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Dec 08 13:42:41 2015 -0800"
      },
      "message": "bionic: Build Breakage\n\nBug: 23668800\nChange-Id: Ic7cf5864d3f5881e6f7105a49ecf62b1bc4a604c\n"
    },
    {
      "commit": "6c54ddd20f663de9e383fcd7b4cff93471369d87",
      "tree": "fd15dbb7ebc4bc7b79a32d4694b872cb53617e90",
      "parents": [
        "f0a451dcd10241c8f2ead2448ed922eb80f387f6"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Dec 08 12:43:13 2015 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Dec 08 12:48:42 2015 -0800"
      },
      "message": "Fix -fstack-protector-strong for x86.\n\nWe need to ensure %gs:20 is set up early enough for -fstack-protector-strong\non x86, and that __set_tls doesn\u0027t get stack protector checks because it\u0027s a\nprerequisite for them. x86 devices/emulators won\u0027t boot without this.\n\nBug: http://b/26073874\nChange-Id: Icf0d34294648cc0c8cb406a3617befe0d45c525a\n"
    },
    {
      "commit": "89a50fe1ebfa09f6a5e82566e27f80708a50db4d",
      "tree": "16ab617d63b023817165d0331e50f0acdf908ffb",
      "parents": [
        "eaccfde0759c6df6011c2a1e69ca275f2e24d909"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Dec 08 11:39:29 2015 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Dec 08 11:40:51 2015 -0800"
      },
      "message": "constexpr constructor for atfork_list_t\n\nBug: http://b/26026986\nChange-Id: Iad95383a23f81eea776bebce641c555d26547b77\n"
    },
    {
      "commit": "eaccfde0759c6df6011c2a1e69ca275f2e24d909",
      "tree": "e6310793b85e8c051d50b6e71b1442e29121365e",
      "parents": [
        "cf0c1af1dd2aff82ee13a1d688248b809ef7334b",
        "870f165ceb3348d79499d40ce8b629f62a15ff2b"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Dec 08 18:59:05 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 08 18:59:05 2015 +0000"
      },
      "message": "Merge \"Add monotonic logging for bionic\""
    },
    {
      "commit": "d51a0b0f9da767d5d67c9f3565c34afcaab1a908",
      "tree": "7043aa37cd6a476cbc94617e95878f681e48b4d2",
      "parents": [
        "9dec0a775b07f58d133ae5c35713e7cf60ddcc7c"
      ],
      "author": {
        "name": "Rohit Agrawal",
        "email": "rohitagr@google.com",
        "time": "Sat Dec 05 12:39:54 2015 -0800"
      },
      "committer": {
        "name": "Rohit Agrawal",
        "email": "rohitagr@google.com",
        "time": "Mon Dec 07 13:06:14 2015 -0800"
      },
      "message": "Base bcopy on memmove rather than memcpy.\n\nPOSIX defined bcopy to handle overlapping memory akin to memmove and\nbionic appears to have always done so.\n\nChange-Id: I2599113411e3532913270ba1c1b49e35cbc5f106\n"
    },
    {
      "commit": "cfd5a46b092536905ffe45a19cfe1b9e35aa8d10",
      "tree": "391ff85101b7308b1f45c22104f338e1cb2aeb72",
      "parents": [
        "7bd33cdf15c26c5855628eb2ac0e7d0f52189010"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Dec 04 15:57:51 2015 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Dec 07 11:13:23 2015 -0800"
      },
      "message": "Make all of ndk_cruft.cpp one big extern \"C\".\n\nChange-Id: Iddd9b5f36e661e443fa13d12326e72df8c0d209c\n"
    },
    {
      "commit": "bb46afd6c44a847efe96e30d72708fd2d0906e8c",
      "tree": "9223b0b3f481341e36fc054e7209de3ec088a579",
      "parents": [
        "0d89913e74981cd51532e66a2e2f138392be4de1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Dec 04 18:03:12 2015 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Dec 05 07:30:59 2015 -0800"
      },
      "message": "Revert \"Revert \"Remove __sinit and __sdidinit.\"\"\n\nThis reverts commit c8bae05f3ff9f1c736f7be70fa17d02795d748bb.\n\nWe were breaking init (ueventd) because we initialize system properties\nbefore we initialize stdio. The new system property implementation uses\nstdio to read from /property_contexts, so we end up touching stdio data\nstructures before they\u0027ve been initialized.\n\nThis second attempt takes things further by removing the stdio initialization\nfunction altogether. The data structures for stdin/stdout/stderr can be\nstatically initialized as data, and -- since we already had to give the\natexit implementation a backdoor for stdio -- we can just admit that we\nneed to clean up stdio, and that we always do so last.\n\nThis patch also removes the 17 statically pre-allocated file structures,\nso the first fopen will now allocate a block of 10 (the usual overflow\nbehavior). I did this just to make my life simpler, but it\u0027s not actually\nnecessary to remove it if we want it back.\n\nChange-Id: I936b2eb5e88e4ebaf5516121872b71fc88e5609c\n"
    },
    {
      "commit": "c8bae05f3ff9f1c736f7be70fa17d02795d748bb",
      "tree": "66de08608fd3b91963a647f70c7e0cfa65eaea07",
      "parents": [
        "4ade5195f188b84ce3599c71ef058d040b141da4"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Dec 04 17:47:20 2015 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Dec 04 17:47:20 2015 -0800"
      },
      "message": "Revert \"Remove __sinit and __sdidinit.\"\n\nThis reverts commit 4371961e00ad83fca033992c8a19c7d262fe6f84.\n\nThis broke booting; ueventd crashes with a null pointer dereference\nsomewhere in __sfp (but the kernel doesn\u0027t unwind, so I don\u0027t know\nwhat was calling __sfp).\n\nChange-Id: I65375fdfdf1d339a06558b4057b580cacd6324e2\n"
    },
    {
      "commit": "4ade5195f188b84ce3599c71ef058d040b141da4",
      "tree": "117d9a8ada047bad24b3cf0e0aa55394f873d930",
      "parents": [
        "ef2ba3dbf986257ded12531fe15bf0d1d4a87d50",
        "21eadee6e97c08485c9ec52a8f44cabd4261bf4a"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Sat Dec 05 00:21:46 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Dec 05 00:21:46 2015 +0000"
      },
      "message": "Merge \"Do not create prop files for ctl.* properties\""
    },
    {
      "commit": "21eadee6e97c08485c9ec52a8f44cabd4261bf4a",
      "tree": "d2ea6f70043e7651890534babfd9529875d9f901",
      "parents": [
        "0b40c13a5a2da127cb1203d33a3d170671b39247"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Fri Dec 04 15:53:25 2015 -0800"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Fri Dec 04 15:55:32 2015 -0800"
      },
      "message": "Do not create prop files for ctl.* properties\n\nChange-Id: Ia6660c68c9e0cb89938751dbc0747ee038394778\n"
    },
    {
      "commit": "8766edc098304436a8b2b1b01ef01b9401918d54",
      "tree": "b1b3d6c1803633dc0dadaff8b6d9bacfec158d4b",
      "parents": [
        "0b40c13a5a2da127cb1203d33a3d170671b39247"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Dec 04 15:53:25 2015 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Dec 04 15:53:25 2015 -0800"
      },
      "message": "Fix GCC build.\n\n  error: \u0027__sdidinit\u0027 initialized and declared \u0027extern\u0027 [-Werror]\n\nChange-Id: I97d9c174da6a99ca61b72572dfb4694813372a60\n"
    },
    {
      "commit": "2558b112300e0a27590b9e31f627fe94594fa6a0",
      "tree": "0358d61d7b6559672c444dfb3b09a1dd1a751823",
      "parents": [
        "136bf8fa45b243b56a8f2543d43970f253118cd7",
        "4371961e00ad83fca033992c8a19c7d262fe6f84"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Dec 04 23:27:07 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 04 23:27:07 2015 +0000"
      },
      "message": "Merge \"Remove __sinit and __sdidinit.\""
    },
    {
      "commit": "870f165ceb3348d79499d40ce8b629f62a15ff2b",
      "tree": "8578c0c7ff389d8711811dfdfb50d10c2d579379",
      "parents": [
        "2452cf3c332fdfdae6b6b27b57acaa6786a91c87"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Nov 30 16:23:15 2015 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Dec 04 14:45:25 2015 -0800"
      },
      "message": "Add monotonic logging for bionic\n\nPrimarily a debug feature that can be switched at runtime to permit\ndeveloper to have the option of high-resolution Android logs with\neither CLOCK_REALTIME (default) or CLOCK_MONOTONIC to correlate with\nother system activities like kernel logs or systrace.\n\nBug: 23668800\nChange-Id: Ib29024899540f51a72cad5dde25517a7134d68f7\n"
    },
    {
      "commit": "6ed51c0e8542922f8ceb2659a7921e0af096d734",
      "tree": "229abd75c12e808b76cdbed10eeeda4b6afb0316",
      "parents": [
        "2452cf3c332fdfdae6b6b27b57acaa6786a91c87"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Fri Dec 04 11:34:42 2015 -0800"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Fri Dec 04 13:26:47 2015 -0800"
      },
      "message": "add checks for initialization for system properties\n\nIf a __system_property* function is called before\n__system_properties_init() then the app will will abort.  This commit\nreturns either an error code or a safe return value instead.\n\nBug 26027140\n\nChange-Id: I95ffd143e9563658ab67a397991e84fb4c46ab77\n"
    },
    {
      "commit": "2452cf3c332fdfdae6b6b27b57acaa6786a91c87",
      "tree": "59ae83c9bbd1f70bbad486a3dd817805cf9ffcd6",
      "parents": [
        "514f46b74c5424eb10f21349654e90fcf69b3b10",
        "304348af197f30b3bf0e0764b97eb9699a376c68"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Fri Dec 04 00:58:05 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 04 00:58:05 2015 +0000"
      },
      "message": "Merge \"Clear pthread_internal_t allocated on user provided stack.\""
    },
    {
      "commit": "304348af197f30b3bf0e0764b97eb9699a376c68",
      "tree": "5a20f5c4c690072b852144b7e502bca4270f26cb",
      "parents": [
        "22dca83e1c37d3b465b9fa432bbf7cb4bd0df868"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Thu Dec 03 13:01:42 2015 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Thu Dec 03 16:51:20 2015 -0800"
      },
      "message": "Clear pthread_internal_t allocated on user provided stack.\n\nSeveral parts in pthread_internal_t should be initialized\nto zero, like tls, key_data and thread_local_dtors. So\njust clear the whole pthread_internal_t is more convenient.\n\nBug: 25990348\nChange-Id: Ibb6d1200ea5e6e1afbc77971f179197e8239f6ea\n"
    },
    {
      "commit": "845e24a05e56003d0ac35d904bfc02f5dac762f1",
      "tree": "ac0688fb1d79676bc131fdacf6ad5a774ca054d1",
      "parents": [
        "376b94f1e777375eb9ebb04a882b898aafa94625"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Thu Dec 03 15:38:52 2015 -0800"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Thu Dec 03 15:40:23 2015 -0800"
      },
      "message": "Remove c++14\u0027isms from system_properties\n\nChange-Id: If78e7d2770e8f8321f0d1824c3c52f93820dd325\n"
    },
    {
      "commit": "4371961e00ad83fca033992c8a19c7d262fe6f84",
      "tree": "414fdfe263a993592ff18cdfb8fe4d9d2d3a16ce",
      "parents": [
        "22dca83e1c37d3b465b9fa432bbf7cb4bd0df868"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 03 13:23:03 2015 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 03 13:23:03 2015 -0800"
      },
      "message": "Remove __sinit and __sdidinit.\n\nWe\u0027re eagerly initializing stdio now, so this can all be simplified.\n\nChange-Id: Icb288f8dd0ee08f02bea0d23670f75e78bed6b99\n"
    },
    {
      "commit": "49a309ff6a8349cbd1625711497743463638bebf",
      "tree": "934a2a6d0b469f2345a733b414e26c6654fd6020",
      "parents": [
        "9cbabd8fe5ef3834682996ff23b4a5325e0586cb"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Sep 23 16:09:47 2015 -0700"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Dec 02 15:17:03 2015 -0800"
      },
      "message": "Separate properties by selabel\n\nThe purpose of this change is to add read access control to the property\nspace.\n\nIn the current design, a process either has access to the single\n/dev/__properties__ file and therefore all properties that it contains\nor it has access to no properties.  This change separates properties\ninto multiple property files based on their selabel, which allows\ncreation of sepolicies that allow read access of only specific sets of\nproperties to specific domains.\n\nBug 21852512\n\nChange-Id: Ice265db79201ca811c6b6cf6d851703f53224f03\n"
    },
    {
      "commit": "6bef152af2c622ee0c57f9c374b76f3dd352e52b",
      "tree": "c7a6e152b450b5280ec5d2fbb4eaf0e41dd1b325",
      "parents": [
        "af87c9ccfc3afbc7db9f0bc131d122453b5c882d",
        "d68c9e5906917f1528fe16c2c657e3a34c16e536"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Mon Nov 30 23:57:02 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 30 23:57:02 2015 +0000"
      },
      "message": "Merge \"Init stdio in __libc_init_common.\""
    }
  ],
  "next": "d68c9e5906917f1528fe16c2c657e3a34c16e536"
}
