)]}'
{
  "log": [
    {
      "commit": "cbc80ba9d839675a0c4891e2ab33f39ba51b04b2",
      "tree": "0b24e6123c94bd3e61d94fd6eca6a3b9cc9b074e",
      "parents": [
        "3374d0cabb973ff2b73ad8cd909389bdeed18658"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 13 14:26:29 2018 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 13 14:27:17 2018 -0800"
      },
      "message": "Switch the rest of our internal headers to #pragma once.\n\nWe\u0027ve been using #pragma once for new internal files, but let\u0027s be more bold.\n\nBug: N/A\nTest: builds\nChange-Id: I7e2ee2730043bd884f9571cdbd8b524043030c07\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": "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": "1f29665f1507f866da4fc4c0ee094c22d6181966",
      "tree": "e0b81f20adf2083614eb3f430f8fc448b966a565",
      "parents": [
        "37229f2a9271b6e0d0d1ec516421018b807f00e8"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jun 04 16:29:37 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jun 04 16:29:37 2014 -0700"
      },
      "message": "Hide __libc_fini.\n\nBug: 11156955\nChange-Id: Id5af3540c6ec4d9ef969d62a230144fe8bb76b0b\n"
    },
    {
      "commit": "edad1e1558bf5a561ffb33c5bf5ca0553711e1ee",
      "tree": "7eeacc66f902057bfb0a96da342aef09d13d032c",
      "parents": [
        "8512992f50e8444c1985bbeb17c3385a58fc0fed"
      ],
      "author": {
        "name": "Bernhard Rosenkraenzer",
        "email": "Bernhard.Rosenkranzer@linaro.org",
        "time": "Wed Sep 18 23:37:00 2013 +0200"
      },
      "committer": {
        "name": "Bernhard Rosenkraenzer",
        "email": "Bernhard.Rosenkranzer@linaro.org",
        "time": "Wed Sep 18 23:40:19 2013 +0200"
      },
      "message": "Fix mismatch between declaration and forward declaration\n\nKernelArgumentBlock is defined as a class in KernelArgumentBlock.h, but\nforward declarations refer to it as a struct.\n\nWhile this is essentially the same, the mismatch causes a compiler\nwarning in clang (and may cause warnings in future versions of gcc) in\ncode that is supposed to be compiled with -Werror.\n\nChange-Id: I4ba49d364c44d0a42c276aff3a8098300dbdcdf0\nSigned-off-by: Bernhard Rosenkraenzer \u003cBernhard.Rosenkranzer@linaro.org\u003e\n"
    },
    {
      "commit": "ce532721aaf61d4b6a171903c851ac82adf08aa8",
      "tree": "79938358ba4dc34a795aeab6026ec06a6a811591",
      "parents": [
        "c14166477e7fd22693eab194d37624c2f7506ce4"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 15 16:31:09 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 15 16:31:09 2013 -0700"
      },
      "message": "Hide various symbols that shouldn\u0027t be exposed.\n\nA mangled symbol in libc.so is a symbol that shouldn\u0027t be exported\nby libc.so.\n\nChange-Id: Id92d1e1968b3d11d111a5d9ef692adb1ac7694a1\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"
    },
    {
      "commit": "0a150ead18019c0e4e59417ae3c5e8e0d7d2e4f4",
      "tree": "0eb50d447d6cc6f5d8084e4f0dc452c8bc2d74d8",
      "parents": [
        "404e28ff8c3352a4fa290ae7769922db0172008e"
      ],
      "author": {
        "name": "Ard Biesheuvel",
        "email": "ard.biesheuvel@gmail.com",
        "time": "Tue Aug 21 14:47:58 2012 +0200"
      },
      "committer": {
        "name": "Ard Biesheuvel",
        "email": "ard.biesheuvel@gmail.com",
        "time": "Wed Aug 22 20:45:26 2012 +0200"
      },
      "message": "libc: remove ctors/dtors sections\n\nNone of the supported ARCHs actually populate these sections,\nso there is no point in keeping them in the binaries.\n\nChange-Id: I21a364f510118ac1114e1b49c53ec8c895c6bc6b\nSigned-off-by: Ard Biesheuvel \u003card.biesheuvel@gmail.com\u003e\n"
    },
    {
      "commit": "48e1feaa9d7d7f36b5eba25baccd99a56adf9b64",
      "tree": "cebfb3b8bbea895cf8f56246b8c60839cd8c50db",
      "parents": [
        "69d6c2ccd943f43e87445d00e96eb98deb690ea1"
      ],
      "author": {
        "name": "Bruce Beare",
        "email": "bruce.j.beare@intel.com",
        "time": "Thu Jan 27 10:23:16 2011 -0800"
      },
      "committer": {
        "name": "Bruce Beare",
        "email": "bruce.j.beare@intel.com",
        "time": "Wed Feb 16 17:50:23 2011 -0800"
      },
      "message": "Updated gcc 4.4.3 IA toolchain doesn\u0027t require the .ctors list\n\nChange-Id: Ia840a19a45257128eccdcf25d105f500f2d90741\nSigned-off-by: H.J. Lu \u003chjl.tools@gmail.com\u003e\nSigned-off-by: Bruce Beare \u003cbruce.j.beare@intel.com\u003e\n"
    },
    {
      "commit": "1df986c21ee52c6756846b4a5e45cb316f772112",
      "tree": "da7effa96dd8e57e1cd718e69b79827d9011038e",
      "parents": [
        "d3f0638aeec0b1daf4d3347386a5e441d5a4bcc4"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Thu Oct 21 04:16:50 2010 +0200"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Thu Oct 21 04:16:50 2010 +0200"
      },
      "message": "libc: fix executable destruction support.\n\nThis change allows an executable to call its destructor functions\n(declared with __attribute__((destructor))) to be properly called\nwhen it normally exits.\n\nNote that this is different from calling the destructors of a shared\nlibrary when it is unloaded with dlclose() or through program exit,\nwhich are already supported.\n\nBug: 3106500\nChange-Id: I1412ef5407f13b613fc6cb6103e0a691dbee4b1a\n"
    },
    {
      "commit": "b56b5659b3996e98c2060f168d1cff1474e77d2a",
      "tree": "11135868d3dc4a731f7288bcb00abdf48c5c7202",
      "parents": [
        "ef0bd1857041ffde069cf52138aaf22c1af7130e"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Sat Jul 18 01:11:10 2009 +0200"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Sat Jul 18 01:11:10 2009 +0200"
      },
      "message": "Fix the C library runtime initialization order.\n\nThis allows libc.so to run the C runtime initializer as soon as the\ndynamic linker loads the shared library, i.e. before any other initializers\n(e.g. static C++ constructors in other shared libraries the executable depends\non).\n\nThis also removes the bug where the initializers from the executable itself\nwere run twice: once by the dynamic linker, and another time by __libc_init\nas defined by libc_init_dynamic.c\n"
    },
    {
      "commit": "1dc9e472e19acfe6dc7f41e429236e7eef7ceda1",
      "tree": "3be0c520fae17689bbf5584e1136fb820caef26f",
      "parents": [
        "1767f908af327fa388b1c66883760ad851267013"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 19:28:35 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 19:28:35 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@135843\n"
    },
    {
      "commit": "1767f908af327fa388b1c66883760ad851267013",
      "tree": "4b825dc642cb6eb9a060e54bf8d69288fbee4904",
      "parents": [
        "a799b53f10e5a6fd51fef4436cfb7ec99836a516"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 18:28:13 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 18:28:13 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@135843\n"
    },
    {
      "commit": "a27d2baa0c1a2ec70f47ea9199b1dd6762c8a349",
      "tree": "defd1cc07d16ad2f3b21154114e092d11c94c5bb",
      "parents": [],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Oct 21 07:00:00 2008 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Oct 21 07:00:00 2008 -0700"
      },
      "message": "Initial Contribution\n"
    }
  ]
}
