)]}'
{
  "log": [
    {
      "commit": "13e8dcbdc9f0b3d95cac1a234730061c9b1ae6f4",
      "tree": "0c17f125a779e03f9911ce092e16b0ada1aa2920",
      "parents": [
        "a02d631163860c795cac7a0428ad8abb9ed3b747"
      ],
      "author": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Wed Sep 19 16:29:12 2018 -0700"
      },
      "committer": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Thu Sep 20 12:20:12 2018 -0700"
      },
      "message": "[hwasan] Tweak process and thread initialization.\n\nMake sure that TLS_SLOT_TSAN is always available and correctly set up in\nHWASan-instrumented functions by setting up the tls register and running hwasan\ninitialization (__hwasan_init in the main thread and __hwasan_thread_enter in\nsecondary) early enough.\n\nThis is needed to accomodate a change in HWASan: https://reviews.llvm.org/D52249\n\nBug: 112438058\nTest: boot with SANITIZE_TARGET\u003dhwaddress, run bionic-tests\nChange-Id: Icd909a4ea0da6c6c1095522bcc28debef5f2c63d\n"
    },
    {
      "commit": "be551f596f763e147bb29ffc26bc360d910f90fb",
      "tree": "f0a7a9aa02e1b73e840f62262125d8064a9d4aae",
      "parents": [
        "3fd45bba4857fdbf320b6e89d2ae0569d9463bf5"
      ],
      "author": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Mon Aug 13 16:46:15 2018 -0700"
      },
      "committer": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Tue Aug 21 00:15:47 2018 +0000"
      },
      "message": "HWASan support in bionic.\n\n* Allow sanitization of libc (excluding existing global sanitizers)\n  and disallow sanitization of linker. The latter has not been\n  necessary before because HWASan is the first sanitizer to support\n  static binaries (with the exception of CFI, which is not used\n  globally).\n* Static binary startup: initialize HWASan shadow very early so that\n  almost entire libc can be sanitized. The rest of initialization is\n  done in a global constructor; until that is done sanitized code can\n  run but can\u0027t report errors (will simply crash with SIGTRAP).\n* Switch malloc_common from je_*  to __sanitizer_*.\n* Call hwasan functions when entering and leaving threads. We can not\n  intercept pthread_create when libc depends on libclang_rt.hwasan.\n  An alternative to this would be a callback interface like requested\n  here:\n    https://sourceware.org/glibc/wiki/ThreadPropertiesAPI\n\nAll of the above is behind a compile-time check\n__has_feature(hwaddress_sanitizer). This means that HWASan actually\nrequires libc to be instrumented, and would not work otherwise. It\u0027s\nan implementation choice that greatly reduces complexity of the tool.\nInstrumented libc also guarantees that hwasan is present and\ninitialized in every process, which allows piecemeal sanitization\n(i.e. library w/o main executable, or even individual static\nlibraries), unlike ASan.\n\nChange-Id: If44c46b79b15049d1745ba46ec910ae4f355d19c\n"
    },
    {
      "commit": "32bc0fcf69dfccb3726fe572833a38b01179580e",
      "tree": "abca656f500087493e0997d5cf38cbcc9ec98eb8",
      "parents": [
        "65f82092a17518080178ff7004cc6db362ebfbcd"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Thu Aug 02 17:31:13 2018 -0700"
      },
      "committer": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Thu Aug 02 18:09:44 2018 -0700"
      },
      "message": "Modernize codebase by replacing NULL with nullptr\n\nFixes -Wzero-as-null-pointer-constant warning.\n\nTest: m\nBug: 68236239\nChange-Id: I5b4123bc6709641315120a191e36cc57541349b2\n"
    },
    {
      "commit": "f6e5b582604715729b09db3e36a7aeb8c24b36a4",
      "tree": "1d68c449355f88a0652d3c1e2d6679b54fce1b20",
      "parents": [
        "ad596bf4fc406c0940d0f76f6b7c4ff22ecee7ac"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Jun 01 15:30:54 2018 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Jul 19 14:28:54 2018 -0700"
      },
      "message": "Introduce api to track fd ownership in libc.\n\nAdd two functions to allow objects that own a file descriptor to\nenforce that only they can close their file descriptor.\n\nUse them in FILE* and DIR*.\n\nBug: http://b/110100358\nTest: bionic_unit_tests\nTest: aosp/master boots without errors\nTest: treehugger\nChange-Id: Iecd6e8b26c62217271e0822dc3d2d7888b091a45\n"
    },
    {
      "commit": "27475b5105e30332dd2145e0bfba098b756673d9",
      "tree": "02f72da22fcc8e2d2e8bf6db1e84d10f3365592c",
      "parents": [
        "cb5f4100060cd9894273863a973d622d6ebd2719"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Thu May 17 17:14:18 2018 -0700"
      },
      "committer": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Wed May 30 16:44:23 2018 -0700"
      },
      "message": "Initialize __libc_sysinfo early on.\n\n__libc_sysinfo is hidden, so accessing it doesn\u0027t require a relocated GOT.\nIt is important not to have a relocatable initializer on __libc_sysinfo,\nbecause if it did have one, and if we initialized it before relocating the\nlinker, then on 32-bit x86 (which uses REL rather than RELA), the\nrelocation step would calculate the wrong addend and overwrite\n__libc_sysinfo with garbage.\n\nAsides:\n\n * It\u0027d be simpler to keep the __libc_sysinfo initializer for static\n   executables, but the loader pulls in libc_init_static (even though it\n   uses almost none of the code in that file, like __libc_init).\n\n * The loader has called __libc_init_sysinfo three times by the time it\n   has relocated itself. A static executable calls it twice, while libc.so\n   calls it only once.\n\nBug: none\nTest: lunch aosp_x86-userdebug ; emulator\nTest: adb shell /data/nativetest/bionic-unit-tests/bionic-unit-tests\nTest: adb shell /data/nativetest/bionic-unit-tests-static/bionic-unit-tests-static\nChange-Id: I5944f57847db7191608f4f83dde22b49e279e6cb\n"
    },
    {
      "commit": "6631f9b03dd032519be4b1971c2399a6e5e59357",
      "tree": "5e08b395a93f4a1cf4ec0fc83b7a09b4e864e51d",
      "parents": [
        "aa922bbaf38d896ecb46ae08c675c2ef0df811db"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Mon Apr 30 18:29:32 2018 -0700"
      },
      "committer": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Wed May 30 15:43:43 2018 -0700"
      },
      "message": "Clean up TLS_SLOT_BIONIC_PREINIT usage a bit\n\n - It is only needed for dynamic executables, so move the initialization\n   out of __libc_init_main_thread and just before the solib constructor\n   calls. For static executables, the slot was initialized, then never\n   used or cleared. Instead, leave it clear.\n\n - For static executables, __libc_init_main_thread already initialized the\n   stack guard, so remove the redundant __init_thread_stack_guard call.\n\n - Simplify the slot access/clearing a bit in __libc_preinit.\n\n - Remove the \"__libc_init_common() will change the TLS area so the old one\n   won\u0027t be accessible anyway.\" comment. AFAICT, it\u0027s incorrect -- the\n   main thread\u0027s TLS area in a dynamic executable is initialized to a\n   static pthread_internal_t object in the linker, then reused by libc.so.\n\nTest: adb shell /data/nativetest/bionic-unit-tests/bionic-unit-tests\nTest: adb shell /data/nativetest/bionic-unit-tests-static/bionic-unit-tests-static\nChange-Id: Ie2da6f5be3ad563fa65b38eaadf8ba6ecc6a64b6\n"
    },
    {
      "commit": "46a943c8333a9293d02c302d26d965de2b2c8ec7",
      "tree": "30b9f51323061d7a46577ac22995146c3e328340",
      "parents": [
        "4cdde64728e4d15f6abc2d713c40adaff7b0fc56"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 03 15:56:35 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 03 21:53:29 2018 -0700"
      },
      "message": "Support getting/setting API level in static binaries.\n\nBug: http://b/27917272\nTest: fixes static semaphore.sem_wait_no_EINTR_in_sdk_less_equal_than_23 test\nChange-Id: Ifeeff20772ff0308aab9417d48671b604a3e9665\n"
    },
    {
      "commit": "93ea09f65c59585c082797bbfa4f4c7778d6e8b9",
      "tree": "635acc213edb1ed30cf595c4cb1f183bc0abc290",
      "parents": [
        "7c6784061dca3e36b6c80973573a0bea8896d585"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Oct 05 15:18:47 2017 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Oct 05 15:18:47 2017 -0700"
      },
      "message": "Add directives to force stop unwinding.\n\nOn aarch64/x86/x86_64 add a macro that inserts a cfi directive that will\nstop unwinding.\n\nFor arm, clang doesn\u0027t allow emitting .cantunwind, so add a comment and\nleave it the same as it current is.\n\nAdd this macro to __libc_init and __start_thread.\n\nAlso, remove duplicate compilation of libc_init_static.cpp that already\nincludes the static library that includes that file.\n\nBug: 15469122\n\nTest: Did unwinds using new unwinder tool (unwind) and debuggerd -b\nTest: and verified new unwinder works on aarch64/x86/x86_64.\nTest: Verified that it works on old unwinder for aarch64/x86, but\nTest: x86_64 doesn\u0027t work properly, but as well as before.\nChange-Id: I77302e8f6c7ba1549d98a4a164106ee82c9ecadc\n"
    },
    {
      "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"
    }
  ]
}
