)]}'
{
  "log": [
    {
      "commit": "b6453c52ac55f85d7f88f04db6e320825cea9bf7",
      "tree": "b1ecbacb334303b5e0e0c2773700977eeb97b574",
      "parents": [
        "1089afb744de588d841ffdeed158dbcd113a8e02"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Jun 29 16:47:53 2016 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Jun 30 12:58:32 2016 -0700"
      },
      "message": "Only initialize the global stack protector once.\n\nBefore, dynamic executables would initialize the global stack protector\ntwice, once for the linker, and once for the executable. This worked\nbecause the result was the same for both initializations, because it\nused getauxval(AT_RANDOM), which won\u0027t be the case once arc4random gets\nused for it.\n\nBug: http://b/29622562\nChange-Id: I7718b1ba8ee8fac7127ab2360cb1088e510fef5c\nTest: ran the stack protector tests on angler (32/64bit, static/dynamic)\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": "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": "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": "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": "93c0f5ee00d1357247fda333c9d49c8673c9c83b",
      "tree": "9afe2dc72f063df4b498aa1328be122e389fd777",
      "parents": [
        "487a1823e8617011009eded8eae9a75c1f871887"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Tue Oct 06 11:08:13 2015 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Oct 09 15:59:04 2015 -0700"
      },
      "message": "Move VDSO pointers to a shared globals struct.\n\nChange-Id: I01cbc9cf0917dc1fac52d9205bda2c68529d12ef\n"
    },
    {
      "commit": "afab3ffcce1054ec887fb347700819d69a9c8151",
      "tree": "390c1e92f59867262d1181c346948071f09d536c",
      "parents": [
        "1923d4c03a68c89f304b601545f5e8db026b9be0"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 28 14:58:37 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 28 14:58:37 2015 -0700"
      },
      "message": "Move PAGE_MASK into \u003csys/user.h\u003e.\n\nI\u0027m removing the TODO on the assumption that being compatible with glibc\nis more useful than BSD. The new internal \"bionic_page.h\" header factors\nout some duplication between libc and the linker.\n\nBug: http://b/22735893\nChange-Id: I4aec4dcba5886fb6f6b9290a8f85660643261321\n"
    },
    {
      "commit": "d29486343a66cae37fc4fc74ed206fd29f25476b",
      "tree": "9b18ae43784916a8228362e06ebb6f308358374a",
      "parents": [
        "c99fabb7a097e9aeed49ce03584cce113d086905"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 21 11:57:09 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 21 11:57:09 2015 -0700"
      },
      "message": "Use a less misleading name for the code that sets up the main thread.\n\nChange-Id: I50c1b0a3b633cf8bc40a6bd86f12adb6b91e2888\n"
    },
    {
      "commit": "1801db3d3fe17df543e721b9fb355e5c882dc6cc",
      "tree": "0da1044f0e048558d86d74ea9414cb867e43af51",
      "parents": [
        "1cfbd94a2f40743757cdecd51cfa3e3ab545a5c5"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jun 08 18:04:00 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jun 09 20:10:25 2015 -0700"
      },
      "message": "Statically linked executables should honor AT_SECURE.\n\nBug: http://b/19647373\nChange-Id: I10e7682d9cec26a523f1a3597ca5326c3ca42ebe\n"
    },
    {
      "commit": "4b41555ba5439025cee9cf3f9ff45db43b1865da",
      "tree": "130e856c9feb2499299a5fb57fc911cecacbee45",
      "parents": [
        "e880c736d6c1d947f6309d5f1f63c74e8345c6a6"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Sep 04 21:54:34 2014 +0000"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Sep 04 21:54:34 2014 +0000"
      },
      "message": "Revert \"Register __libc_fini as early as possible.\"\n\nThis reverts commit e880c736d6c1d947f6309d5f1f63c74e8345c6a6.\n\nChange-Id: Ide83e442eb5dbfef5298a15bc602c3fe1dda1862\n"
    },
    {
      "commit": "e880c736d6c1d947f6309d5f1f63c74e8345c6a6",
      "tree": "b7e6dfa0c80d87f72ab1bbccd78242eee01ba841",
      "parents": [
        "3b10ba6f1b743ddced32474891ff6d1cb83c027a"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Sep 03 14:56:05 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Sep 03 15:27:29 2014 -0700"
      },
      "message": "Register __libc_fini as early as possible.\n\n  We want __libc_fini to be called after all the destructors.\n\nBug: 14611536\nChange-Id: Ibb83a94436795ec178fd605fa531ac29608f4a3e\n"
    },
    {
      "commit": "53c3c271dc9927dd280981fc23409af60f460007",
      "tree": "4a04122167583b9994204372bbc549a8174b9611",
      "parents": [
        "83ce99d8b7e2b15b2169e6e6e18e871ad35abb6c"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Jul 11 12:59:16 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Jul 14 12:05:16 2014 -0700"
      },
      "message": "Upstream atexit\n\nChange-Id: Ia454a2181b5058ed9783dc02b6b1805d0e4d2715\n"
    },
    {
      "commit": "d286796fce1e6fff407b719a53eb2afbeb96c327",
      "tree": "c1edc80194a19b7b443611acd0ffdea2ddfe130a",
      "parents": [
        "2f9400b679ffe08f7190781e64edda5edf0f7297"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jun 03 15:22:34 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jun 03 15:22:34 2014 -0700"
      },
      "message": "Turn on -Wunused and fix the mistakes it uncovers.\n\nChange-Id: I023d2d8b547fbc21d4124bb7510d42b06a0dc501\n"
    },
    {
      "commit": "0266ae5f884d72da58f33a072e865ba131234a5e",
      "tree": "48763b706806f544b1dec0ef98261bed6f21dee2",
      "parents": [
        "eeb9a9f59a58a2f042e8f6fd1a4911ae92ac5493"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 10 17:46:57 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 10 18:22:24 2014 -0800"
      },
      "message": "Switch \u003celf.h\u003e over to linux uapi under the covers.\n\nRemove the linker\u0027s reliance on BSD cruft and use the glibc-style\nElfW macro. (Other code too, but the linker contains the majority\nof the code that needs to work for Elf32 and Elf64.)\n\nAll platforms need dl_iterate_phdr_static, so it doesn\u0027t make sense\nto have that part of the per-architecture configuration.\n\nBug: 12476126\nChange-Id: I1d7f918f1303a392794a6cd8b3512ff56bd6e487\n"
    },
    {
      "commit": "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": "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": "d3920b3a996b358e48232f417aa0a1e44a60f155",
      "tree": "b0520d0d300dbca1e6e54a9a7c26e6d2cd81ed08",
      "parents": [
        "f6afd3b670e23f56bf341d12136416aee17ea249"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 07 18:39:34 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 08 11:16:13 2013 -0800"
      },
      "message": "Switch to using AT_RANDOM for the stack guards.\n\nBug: 7959813\nChange-Id: I8db4b8912ba649bfe668c6f22aa44690ddd401a2\n"
    },
    {
      "commit": "42b2c6a5eed5e4ef35315b8cd32d1355f12a69b6",
      "tree": "0fb55a369b620ef79cfa103f67a5184f067dadeb",
      "parents": [
        "d32fdbaf03f688497adbec885e85c0a69f7a4542"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 07 10:14:39 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 07 11:44:21 2013 -0800"
      },
      "message": "Clean up the argc/argv/envp/auxv handling.\n\nThere\u0027s now only one place where we deal with this stuff, it only needs to\nbe parsed once by the dynamic linker (rather than by each recipient), and it\u0027s\nnow easier for us to get hold of auxv data early on.\n\nChange-Id: I6314224257c736547aac2e2a650e66f2ea53bef5\n"
    }
  ]
}
