)]}'
{
  "log": [
    {
      "commit": "5205e8ac5e4f1534bce09f6bb8a396a7520fe11a",
      "tree": "84209445d29bc975ef9bf8858f60c9a613e3dcad",
      "parents": [
        "f1c36760be5d964669fcd9e7e5bd7e75d3ce9e63",
        "b6b7e2ee2e6db849dc8509ce1c97e66dbb143635"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Nov 05 21:16:12 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 05 21:16:12 2021 +0000"
      },
      "message": "Merge \"Add the missing \u0027--\u0027 to shell invocations.\""
    },
    {
      "commit": "f1c36760be5d964669fcd9e7e5bd7e75d3ce9e63",
      "tree": "945e3aed0ef178be959209dcf0f1293406d82deb",
      "parents": [
        "7d3f322e64ea1d51a465d2cac1ba2905977bdc49",
        "70aa88c66cf375a5c86d861ca880792fe4b1dc8b"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Nov 05 15:40:25 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 05 15:40:25 2021 +0000"
      },
      "message": "Merge \"Remove references to nonplat sepolicy\""
    },
    {
      "commit": "70aa88c66cf375a5c86d861ca880792fe4b1dc8b",
      "tree": "4277bcd83249dc8aa80c4bedb1fc7413d3c554ec",
      "parents": [
        "de6c4cd4e0608a08f9b330daac5836619665858b"
      ],
      "author": {
        "name": "Jeff Vander Stoep",
        "email": "jeffv@google.com",
        "time": "Fri Nov 05 09:27:38 2021 +0100"
      },
      "committer": {
        "name": "Jeff Vander Stoep",
        "email": "jeffv@google.com",
        "time": "Fri Nov 05 09:30:25 2021 +0100"
      },
      "message": "Remove references to nonplat sepolicy\n\n\"nonplat\" was renamed to \"vendor\" in Android Pie, but was retained\nhere for Treble compatibility.\n\nWe\u0027re now outside of the compatbility window for these devices so\nit can safely be removed.\n\nTest: build boot cuttlefish device. adb remount, modify\n/system/etc/selinux/plat_sepolicy_and_mapping.sha256 to force\non-device policy compilation. reboot. Verify that device boots\nwithout new selinux denials.\n\nChange-Id: I663a524670120ee19dfe785aa5f89b3981bdd378\n"
    },
    {
      "commit": "b6b7e2ee2e6db849dc8509ce1c97e66dbb143635",
      "tree": "f32bc5120cb44a4649b9c0d6299989150cadc45d",
      "parents": [
        "7d3f322e64ea1d51a465d2cac1ba2905977bdc49"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 04 17:18:58 2021 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 04 17:29:35 2021 -0700"
      },
      "message": "Add the missing \u0027--\u0027 to shell invocations.\n\nThis came up with POSIX recently. Doesn\u0027t seem like it matters since\neveryone\u0027s had this wrong for 40 years, but \"meh\" --- it\u0027s a trivial\nfix, and it\u0027s strictly correct even if nobody needs this, so let\u0027s just\ndo it...\n\n(Geoff Clare pointed out that my app compat concern \"what if someone\u0027s\nrelying on this bug to pass flags to the shell?\" isn\u0027t relevant because\nwhile you can indeed do that, you then can\u0027t pass a command!)\n\nBug: https://austingroupbugs.net/view.php?id\u003d1440\nTest: treehugger\nChange-Id: I64f6440da55e2dc29d0136ee62007197d2f00d46\n"
    },
    {
      "commit": "9e33b76c67638bdc740ed967e53c8c6489dcbbd3",
      "tree": "4ec021f5d6ae62203c8497658a449f7952a954f5",
      "parents": [
        "fe95fe354f085ede5dee1306ea1591514a72ae2b"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Fri Oct 29 02:43:22 2021 +0800"
      },
      "committer": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Thu Nov 04 01:03:11 2021 +0800"
      },
      "message": "Re-enable LTO for linker\n\nClang cannot build ifunc with LTO. This is a KI: https://bugs.llvm.org/show_bug.cgi?id\u003d46488\n\nMove the LTO: never down to libc itself, so that we can have LTO for the\nrest of linker.\n\nTest: m GLOBAL_THINLTO\u003dtrue linker\nChange-Id: I483fc3944e340638a664fb390279e211c2ae224b\n"
    },
    {
      "commit": "2abfa9e4f80279dba06a27d90b96b55837be6d4a",
      "tree": "a41aade332147aa1be4dcfa31f446f655e9c81dc",
      "parents": [
        "d7b0bde05fe0170dff95023ad5aa14c0a820988c"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Nov 01 16:26:06 2021 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Nov 02 15:53:58 2021 -0700"
      },
      "message": "Update to v5.15 kernel headers.\n\nKernel headers coming from:\n\nGit: https://android.googlesource.com/kernel/common/\nBranch: android-mainline\nTag: android-mainline-5.15\n\nTest: Builds, and ran bionic unit tests on flame.\nChange-Id: I86901ea6d89fb0f7384b90a47bef35d194083c24\n"
    },
    {
      "commit": "d7b0bde05fe0170dff95023ad5aa14c0a820988c",
      "tree": "2b2380fd8b617c82e8520501e0afecd26b03801a",
      "parents": [
        "5e30e4402616340a55da6449f5bd950c7b0d7cdc",
        "7edd008d6df106835177b5c7a93b418406172d42"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Sat Oct 30 04:56:21 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Oct 30 04:56:21 2021 +0000"
      },
      "message": "Merge \"Reland: \"Make native bridge libc uninstallable\"\""
    },
    {
      "commit": "7edd008d6df106835177b5c7a93b418406172d42",
      "tree": "4551571f9874ee99a503e21277a51e6c9547dd16",
      "parents": [
        "d8854293d1894bc60c2164de11127a66e07fcd56"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Oct 28 13:20:35 2021 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Oct 29 14:25:57 2021 -0700"
      },
      "message": "Reland: \"Make native bridge libc uninstallable\"\n\nThe native bridge libc.so is overridden by\n//frameworks/libs/native_bridge_support/libc:libc, mark it\ninstallable: false to avoid a collision in the install rules.\nAllows removing BUILD_BROKEN_DUP_RULES from cuttlefish builds.\n\nRelands I5379aa9595a714efdbe1ddc1ff4f65bb45fc67e8 with a fix to\nonly apply to the shared variant.\n\nBug: 204136549\nTest: m checkbuild\nChange-Id: I84abb577e3bb924d39a369670d0b2dbfac45bbc4\n"
    },
    {
      "commit": "d3f05492df1e1c57d39d7647a0afd533bf042a98",
      "tree": "85f1a0a8a629085048b9231c9c3d7102de58eb7f",
      "parents": [
        "3b868a87dea191cc52687b10060975909e6c1431"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Jan 15 15:58:01 2021 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Oct 29 13:03:05 2021 -0700"
      },
      "message": "Update for libunwindstack shared_ptr MapInfos.\n\nBug: 120606663\n\nTest: Malloc debug unit tests pass.\nChange-Id: Ic8fa25c770953ebc0a78d67e54bc0d7b8e0abd87\nMerged-In: Ic8fa25c770953ebc0a78d67e54bc0d7b8e0abd87\n(cherry picked from commit 04233539b49d699972ec16277764513cb170c912)\n"
    },
    {
      "commit": "3b868a87dea191cc52687b10060975909e6c1431",
      "tree": "7a3186788e97c544e72196fd0ea0f584538e6a6f",
      "parents": [
        "a62fd9d9ae674a225433f36f2126a29b01b021dc",
        "035702e36be579ca2c08f3c2d1a8b8054a9c963c"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Oct 29 18:10:59 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 29 18:10:59 2021 +0000"
      },
      "message": "Merge \"Revert \"Make native bridge libc uninstallable\"\""
    },
    {
      "commit": "035702e36be579ca2c08f3c2d1a8b8054a9c963c",
      "tree": "42b5a706c5012e84a7b856f629c6a868108aa16f",
      "parents": [
        "48efa5b8cd2c91f3dc1bcf9c9efd203879e16cfe"
      ],
      "author": {
        "name": "LaMont Jones",
        "email": "lamontjones@google.com",
        "time": "Fri Oct 29 16:18:32 2021 +0000"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Oct 29 18:08:12 2021 +0000"
      },
      "message": "Revert \"Make native bridge libc uninstallable\"\n\nRevert submission 1874144-native_bridge_libc_dup_rules\n\nReason for revert: breaks ndk_translation_all build\nReverted Changes:\nI5379aa959:Make native bridge libc uninstallable\nI2220d6b48:Remove BUILD_BROKEN_DUP_RULES from cuttlefish buil...\nI8e0eaed21:Make installable arch-variant for cc modules\n\nBug: 204136549\nFixes: 204572444\nChange-Id: I57e00a4fb37f756c5190546867a9bf4a2837949c\n"
    },
    {
      "commit": "a62fd9d9ae674a225433f36f2126a29b01b021dc",
      "tree": "d70238665643081aec35d081513b46ec4609ce49",
      "parents": [
        "de6c4cd4e0608a08f9b330daac5836619665858b",
        "48efa5b8cd2c91f3dc1bcf9c9efd203879e16cfe"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Oct 29 14:58:10 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 29 14:58:10 2021 +0000"
      },
      "message": "Merge \"Make native bridge libc uninstallable\""
    },
    {
      "commit": "48efa5b8cd2c91f3dc1bcf9c9efd203879e16cfe",
      "tree": "835ab130214e413d4c9c701e4990a17ccc1dd4c9",
      "parents": [
        "d8854293d1894bc60c2164de11127a66e07fcd56"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Oct 28 13:20:35 2021 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Oct 28 14:44:37 2021 -0700"
      },
      "message": "Make native bridge libc uninstallable\n\nThe native bridge libc.so is overridden by\n//frameworks/libs/native_bridge_support/libc:libc, mark it\ninstallable: false to avoid a collision in the install rules.\nAllows removing BUILD_BROKEN_DUP_RULES from cuttlefish builds.\n\nBug: 204136549\nTest: m checkbuild\nChange-Id: I5379aa9595a714efdbe1ddc1ff4f65bb45fc67e8\n"
    },
    {
      "commit": "7a2386bf89f9bfd4e53eba9304e4239b3fdf0d06",
      "tree": "7a3186788e97c544e72196fd0ea0f584538e6a6f",
      "parents": [
        "d8854293d1894bc60c2164de11127a66e07fcd56"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 26 17:31:03 2021 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 28 09:55:27 2021 -0700"
      },
      "message": "Don\u0027t open /dev/null until we need to.\n\nThis saves a couple of syscalls in the common case, and also lets static\nbinaries run in a chroot without /dev/null as long as\nstdin/stdout/stderr are actually connected to something (which the\ntoybox maintainer tried to do).\n\nTest: manual with strace\nChange-Id: Ic9a28896a07304a3bd428acfd9ddca9d22015f6e\n"
    },
    {
      "commit": "11526e2fc607624dbb8bd4acf2ffdd3a187e9c02",
      "tree": "d2ea11e8eec68b7f022ec5d8482072fa3860a374",
      "parents": [
        "a3c6e7030c128fbcb060ddbd6e89cf5ad2b95d05"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Oct 14 22:44:47 2021 +0000"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Oct 20 21:53:07 2021 +0000"
      },
      "message": "Add execinfo functionality.\n\nBug: 27877410\n\nTest: Add new unit tests.\nChange-Id: Id5d7eb27a23f50e99a04f5ee1ab64047ba269bab\n"
    },
    {
      "commit": "cf59e19e22fc7c4795fd955eeecd1f457d79eba0",
      "tree": "619545ee8e093cad2d79464ff9b43a407d5fcdd4",
      "parents": [
        "ad60768bdfc4680edc07422693381ac152d74e37"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 13 18:25:21 2021 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 18 12:58:47 2021 -0700"
      },
      "message": "Add preadv2/pwritev2 wrappers.\n\nThey\u0027re in glibc, though not in musl.\n\nAlso add basic doc comments to the whole of \u003csys/uio.h\u003e.\n\nBug: http://b/203002492\nTest: treehugger\nChange-Id: Ic607f7f349e5b7c9bf66c25b7bd68f827da530d6\n"
    },
    {
      "commit": "0d7d7ac01facd597b4c5be3cae8c2cad7506a1ed",
      "tree": "4e7197802d3fc4bc68d8c21563d72a80824b0992",
      "parents": [
        "aaf20e105c797791f57569639f0e985e8411bf88"
      ],
      "author": {
        "name": "Liz Kammer",
        "email": "eakammer@google.com",
        "time": "Tue Oct 12 13:42:36 2021 -0400"
      },
      "committer": {
        "name": "Liz Kammer",
        "email": "eakammer@google.com",
        "time": "Tue Oct 12 13:42:36 2021 -0400"
      },
      "message": "Remove libc++demangle from static libs.\n\nThis is implicitly added by Soong with stl\nhttps://cs.android.com/android/platform/superproject/+/master:build/soong/cc/stl.go;l\u003d157;drc\u003dcb0ac95bde896fa2aa59193a37ceb580758c322c\n\nTest: m\nChange-Id: Ie18a7cda8001deb3a0e714db02a50919e631c319\n"
    },
    {
      "commit": "b6d3c782445b08cc0e4ec942dd8ebb3f138dc245",
      "tree": "b3080489d2493da3f7b2e6fcd593545c70f0ddfb",
      "parents": [
        "617c4b5876e6b572f08461fead9e5f519027250d"
      ],
      "author": {
        "name": "Daniele Di Proietto",
        "email": "ddiproietto@google.com",
        "time": "Wed Oct 06 15:19:30 2021 +0100"
      },
      "committer": {
        "name": "Daniele Di Proietto",
        "email": "ddiproietto@google.com",
        "time": "Thu Oct 07 17:25:00 2021 +0100"
      },
      "message": "malloc_heapprofd: Avoid a spurious error log\n\nIn the following scenario:\n\n* Heapprofd wants to profile a process.\n* The process receives the heapprofd signal, so it sets up the ephemeral\n  hooks.\n* The process does not perform any allocation, so the proper heapprofd\n  hook is never installed.\n* Heapprofd terminates.\n* Now heapprofd wants to start a new profiling session.\n* The process receives the heapprofd signal (again).\n\nIn the signal handler, no action is needed at this point. The ephemeral\nhooks are already setup, so, at the next malloc, the proper heapprofd\nhooks will be installed.\n\nBefore this commit, the code logged an error message, but still worked\ncorrectly.\n\nThis commit basically just skips the error_log below.\n\nExample of the error message that is now suppressed:\n\n```\nprocess: heapprofd: failed to transition kInitialState -\u003e\nkInstallingEphemeralHook. current state (possible race): 2\n```\n\nTested by:\n* Running a process that calls malloc on input from stdin.\n* (Optional, tested both cases) Enable GWP-Asan by calling\n  `android_mallopt(M_INITIALIZE_GWP_ASAN, ...`. The call will return\n  success.\n* Attaching heapprofd:\n```\nexternal/perfetto/tools/heap_profile -i 1 -p `adb shell pidof \u003c...\u003e`\n```\n* Detaching heapprofd (CTRL-C). The trace will be empty.\n* (If not enabled before) Enabling GWP-Asan. The call will fail (because\n  GWP-Asan detects heapprofd hooks).\n* Reattaching heapprofd.\n* Triggering some malloc()s in the process. The error log from above\n  will not appear in `adb logcat`.\n* Detaching heapprofd (CTRL-C). The trace will NOT be empty.\n\nBug: 192258849\nChange-Id: I01699b10ecd19e52e1e77f83fcca955ebd885942\n"
    },
    {
      "commit": "8d9297f90537c451e1a1519b02e16cb4f0740518",
      "tree": "bc35499c7b2575a909ea9f14286a77680fb18922",
      "parents": [
        "7b40b4dda0b5b99e69060547dcc281bb0830450a",
        "0cc60afa33c50b4f4c9079528531bddedf278622"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Oct 01 21:00:23 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 01 21:00:23 2021 +0000"
      },
      "message": "Merge \"Add more tests to TEST_MAPPING\""
    },
    {
      "commit": "0cc60afa33c50b4f4c9079528531bddedf278622",
      "tree": "4db2ca6269d0be90d66ee8bd4586a98a6f1199dd",
      "parents": [
        "badcb38d3c039b7f60e16917e7e5a368c82ed210"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Sep 30 14:04:39 2021 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Oct 01 09:25:36 2021 -0700"
      },
      "message": "Add more tests to TEST_MAPPING\n\nTest: treehugger\nChange-Id: I1d7dd32fd7f90a20d61de4701293527f83dc4ec4\n"
    },
    {
      "commit": "5b4913a599de8db2d1395e49e34bb347c78af20b",
      "tree": "6bb5ef9a58fe045a02ba12ca695c5b3f213e0974",
      "parents": [
        "e8cc2c32acd38f394945f704309c5bcca7d47c27",
        "377193745d133b1fe1cba972e48a2d98753fd0c1"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Sep 30 16:45:49 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 30 16:45:49 2021 +0000"
      },
      "message": "Merge \"Treat static binaries \"the same\" for the profiling signals.\""
    },
    {
      "commit": "e8cc2c32acd38f394945f704309c5bcca7d47c27",
      "tree": "6ab6e1fd3ad03a32bde18547452157013b3372cd",
      "parents": [
        "c6b6f5e7ef1d082edf4ac76d8a4fd27cf9c2220a",
        "2aa3f7cb2641b8ecaee00ba68101cb8117dae62b"
      ],
      "author": {
        "name": "Lalit Maganti",
        "email": "lalitm@google.com",
        "time": "Thu Sep 30 10:45:38 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 30 10:45:38 2021 +0000"
      },
      "message": "Merge \"bionic: fix broken end atrace events\""
    },
    {
      "commit": "377193745d133b1fe1cba972e48a2d98753fd0c1",
      "tree": "8508dbe73e0009f82d15e1a6c9c7f2225ab691d6",
      "parents": [
        "e8121199fdd83b81933eb0a558e7ea33b8bdd19e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Sep 29 16:52:20 2021 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Sep 29 17:10:02 2021 -0700"
      },
      "message": "Treat static binaries \"the same\" for the profiling signals.\n\nStrictly this still isn\u0027t quite the same, because they won\u0027t actually be\nprofiled, but at least they won\u0027t *crash* now if they\u0027re sent a\nprofiling signal.\n\nBug: http://b/201497662\nTest: treehugger\nChange-Id: I0728492eed77584cd850d28897056996387e6671\n"
    },
    {
      "commit": "2aa3f7cb2641b8ecaee00ba68101cb8117dae62b",
      "tree": "5607e39182d7e8d94c7b1b232b9e2fa316b93b33",
      "parents": [
        "957d6d513e543699afa0af6219968a59e4ac228f"
      ],
      "author": {
        "name": "Lalit Maganti",
        "email": "lalitm@google.com",
        "time": "Thu Aug 26 15:46:50 2021 +0100"
      },
      "committer": {
        "name": "Lalit Maganti",
        "email": "lalitm@google.com",
        "time": "Wed Sep 29 18:33:27 2021 +0100"
      },
      "message": "bionic: fix broken end atrace events\n\nWhen calling write on an FD for trace_marker, it is expected that the\npointer passed will be paged into memory. If this isn\u0027t the case, the\nkernel will ignore the string passed and instead write \"\u003cfaulted\u003e\" to\nthe ring buffer.\n\nFor end events, we were passing a constant string which resides in\nthe rodata section of the ELF file. If this section is paged out, we\nend up not closing atrace stacks correctly leading to very broken traces.\n\nFor even more context, see the associated bug.\n\nFix this issue by reading the constant string to the stack first\nwhich should mean the string is always paged in.\n\nBug: 197620214\nChange-Id: I6a444ac6fe83a6a9fb696c5621e392eca7e9437a\n"
    },
    {
      "commit": "8f9713e2373b74b5109f6eddf110855ed4697bb2",
      "tree": "02404e6843fdecf0853bf98226a7fd6fc2cfb7a1",
      "parents": [
        "e8121199fdd83b81933eb0a558e7ea33b8bdd19e"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Sep 20 17:25:46 2021 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Sep 20 18:07:07 2021 -0700"
      },
      "message": "Fix broken return code of M_INITIALIZE_GWP_ASAN.\n\nWhen calling android_mallopt using M_INITIALIZE_GWP_ASAN, nothing\nwas being returned. Fix this, add a test, and also refactor the\ncode a bit so dynamic and static share the same code.\n\nTest: Unit tests pass in dynamic and static versions.\nTest: Passed using both jemalloc and scudo.\nChange-Id: Ibe54b6ccabdbd44d2378892e793df393978bc02b\n"
    },
    {
      "commit": "c7fe26aa82ecfdb9a6a5864b08de368fb4ccc166",
      "tree": "a6fd73fd149dcd211dca0888dca3f682f7cf3d3f",
      "parents": [
        "dc448a82b152cbae133c505eab527515140abfcf"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Sep 14 12:26:08 2021 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Sep 14 12:26:08 2021 -0700"
      },
      "message": "Use the BSD license for our bogus fts.h.\n\n...since the implementation is BSD. I missed this in the original code\nreview (and the presubmit hooks were skipped, so the machines didn\u0027t\nnotice).\n\nTest: N/A\nChange-Id: Ia9fe067c68b3ab8045d3f5dfe256f3200f102fbf\n"
    },
    {
      "commit": "dc448a82b152cbae133c505eab527515140abfcf",
      "tree": "8da22e2b05b2a1412f495abd6f8aa7257c089fd8",
      "parents": [
        "406589b9757f62328d01a8702419fcbac08c6d53",
        "de1cf85795c3141ab456baeac391f17919422f77"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 10 21:12:43 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 10 21:12:43 2021 +0000"
      },
      "message": "Merge \"Use lp64 rather than explicitly saying \"arm64,x86_64\".\""
    },
    {
      "commit": "406589b9757f62328d01a8702419fcbac08c6d53",
      "tree": "58c5cf2f4d89cf1c91843e29a432f7a4caaee78a",
      "parents": [
        "41fed4d461446f537015b0e609c7d7cb21c67eff",
        "048f24ed2a0a863a59c0167cfbeff1b8a4376224"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Sep 09 04:15:12 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 09 04:15:12 2021 +0000"
      },
      "message": "Merge changes Ifac9a59e,I213d423a\n\n* changes:\n  Export fts as a static library for use with musl\n  Compile fts.c in libc_openbsd_ndk\n"
    },
    {
      "commit": "048f24ed2a0a863a59c0167cfbeff1b8a4376224",
      "tree": "77ffbd0cc9a05157036d3d3fd42d0d7c19bb79ed",
      "parents": [
        "69bcb8be274db9e683f73814553491f5a23d95b7"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Sep 01 17:26:00 2021 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Sep 08 15:53:10 2021 -0700"
      },
      "message": "Export fts as a static library for use with musl\n\nmusl libc doesn\u0027t provide fts, but elfutils and libabigail need it.\nExport bionic\u0027s fts as a staic library that can be linked into elfutils\nand libabigail when compiling against musl.\n\nfts uses recallocarray, which musl doesn\u0027t provide, so also include\nrecallocarray.c in libfts.a.\n\nRequires minor tweaks to fts.c and a wrapper around fts.h to make them\ncompatible with musl, primarily by providing local definitions of macros\nprovided in bionic\u0027s sys/cdefs.h.\n\nBug: 190084016\nTest: m libfts\nChange-Id: Ifac9a59e7504c0c1f5f8a3a5bd3c19a13980b83c\n"
    },
    {
      "commit": "e791552fbb222c9ae2b4293b34ce50be82e5b353",
      "tree": "ed5df8631acb6d03ec6ad6766c22f8fafa4379e4",
      "parents": [
        "7672be0b3e40aad3da1d64e0ed8de07030745596"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed Sep 08 14:57:46 2021 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed Sep 08 14:57:46 2021 -0700"
      },
      "message": "Add API level define for T.\n\nTest: treehugger\nBug: None\nChange-Id: I7a973bbd7e8d646f45f4d860d564f9f104aab134\n"
    },
    {
      "commit": "69bcb8be274db9e683f73814553491f5a23d95b7",
      "tree": "e07d808598a9a9e9c531abbc4befcf04905754f1",
      "parents": [
        "7672be0b3e40aad3da1d64e0ed8de07030745596"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Sep 08 13:24:16 2021 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Sep 08 13:26:46 2021 -0700"
      },
      "message": "Compile fts.c in libc_openbsd_ndk\n\nfts.c is from openbsd and has compatibility macros to make it compile\nas part of bionic.  Move it into libc_openbsd_ndk where it will\nget the workarounds from -include openbsd-compat.h instead.\n\nTest: m libc\nChange-Id: I213d423af8f010e39460b611e902acbf3561ae7a\n"
    },
    {
      "commit": "de1cf85795c3141ab456baeac391f17919422f77",
      "tree": "7d94130af2240301638f8958c8b7c5304384fc4e",
      "parents": [
        "15681db86e8b350a98efdb6ebe748bb4682090a5"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Sep 07 09:17:14 2021 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Sep 07 09:17:14 2021 -0700"
      },
      "message": "Use lp64 rather than explicitly saying \"arm64,x86_64\".\n\nWe\u0027d missed a couple, but these seem to be the last...\n\nTest: treehugger\nChange-Id: Ic9808c5171b6c826d2d251c14687142280331efd\n"
    },
    {
      "commit": "3a39c0bc431ec36416225d4b9a85fa8cacb16836",
      "tree": "1b477f0081b666ba724c807aacaae89913966524",
      "parents": [
        "563e60e32adf7f427af03075a6fb800e723025f1"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Sep 02 00:03:38 2021 +0000"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Sep 02 00:03:38 2021 +0000"
      },
      "message": "Update to v5.14 kernel headers.\n\nKernel headers coming from:\n\nGit: https://android.googlesource.com/kernel/common/\nBranch: android-mainline\nTag: android-mainline-5.14\n\nTest: Builds, bionic unit tests.\nChange-Id: Iff3424da9fbf7ae89ebeb6daabb34c4aa650901f\n"
    },
    {
      "commit": "4c92da431155174c6bfef91c227fe34becb340c0",
      "tree": "9a2084066c9f3986ee6058f8e9d279b0ca3fbf80",
      "parents": [
        "ec75f703e1487f4d32fed1516fb6b5eab78e1e8e",
        "e07b33d3add0ca6c3e22471b29a835cfd2c293bd"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Aug 06 20:04:09 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Aug 06 20:04:09 2021 +0000"
      },
      "message": "Merge \"Only run the exec once if test passes.\""
    },
    {
      "commit": "e07b33d3add0ca6c3e22471b29a835cfd2c293bd",
      "tree": "4a3af6bc63a0546d1976437225724141e38bf36b",
      "parents": [
        "678cac51d471b6792805748545dc7684b759ba73"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Aug 05 13:26:11 2021 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Aug 05 14:01:52 2021 -0700"
      },
      "message": "Only run the exec once if test passes.\n\nI accidentally made the tests run MAX_RETRIES times instead of\nrunning once when passing, and at most MAX_RETRIES when the\ntest fails. Also, add a bit of randomness to the usleep to try and\navoid tests syncing up on failures.\n\nBug: 193898572\n\nTest: Ran unit tests and verified that a pass doesn\u0027t result in another run.\nTest: Ran three copies of the unit tests at the same time to verify that\nTest: there isn\u0027t a flaky test failure.\nChange-Id: I8b8d3cd05ca7d1e87ce34bf10aeef84f6989fdab\n"
    },
    {
      "commit": "ec75f703e1487f4d32fed1516fb6b5eab78e1e8e",
      "tree": "8f92998c37e0046b51cab01760c7bb583f8a64a5",
      "parents": [
        "a4ffabe79bf6cf6b4adf4f23b86dcf879d03aa86",
        "e9898f393a2c9e96dd23e298f661e6e7121951dd"
      ],
      "author": {
        "name": "Joel Galenson",
        "email": "jgalenson@google.com",
        "time": "Tue Aug 03 14:20:06 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 03 14:20:06 2021 +0000"
      },
      "message": "Merge \"Move the Rust system property bindings into librustutils.\""
    },
    {
      "commit": "a4ffabe79bf6cf6b4adf4f23b86dcf879d03aa86",
      "tree": "b5df3d89614d5e6ce730924a06486fad906d79be",
      "parents": [
        "678cac51d471b6792805748545dc7684b759ba73",
        "3a0ced8539894f66f91371e0e546934ef695c066"
      ],
      "author": {
        "name": "Florian Mayer",
        "email": "fmayer@google.com",
        "time": "Tue Aug 03 07:52:58 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 03 07:52:58 2021 +0000"
      },
      "message": "Merge \"Reland \"Fix GWP hooks not being restored, leading to crashes.\"\""
    },
    {
      "commit": "678cac51d471b6792805748545dc7684b759ba73",
      "tree": "e0fd671672364e5f7276fdfa29a0d6003e114ee4",
      "parents": [
        "bc1b267454cd305d2bbaa0f22914b98a23ef1ffa",
        "4408b8abb0feb5c58648e448dc7bd7134a1cf92c"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jul 30 20:16:35 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jul 30 20:16:35 2021 +0000"
      },
      "message": "Merge changes I6b097079,I6a12d50d\n\n* changes:\n  Enable posix strerror_r test in glibc\n  POSIX strerror_r returns an error number, not -1\n"
    },
    {
      "commit": "3a0ced8539894f66f91371e0e546934ef695c066",
      "tree": "b25c975a37de7f035451e387443f859b54e62ffc",
      "parents": [
        "98115b7494a96dd0b8e6ece7ff5e50704038c906"
      ],
      "author": {
        "name": "Florian Mayer",
        "email": "fmayer@google.com",
        "time": "Tue Jul 20 15:43:37 2021 +0100"
      },
      "committer": {
        "name": "Florian Mayer",
        "email": "fmayer@google.com",
        "time": "Fri Jul 30 17:59:17 2021 +0100"
      },
      "message": "Reland \"Fix GWP hooks not being restored, leading to crashes.\"\n\nIf the DispatchReset fails, the subsequent iteration has the wrong\nidea of what the \"original\" table is, and if a subsequent DispatchReset\nsucceeds it unhooks them.\n\nRepro in https://r.android.com/1767868.\n\nBug: 193012939\nBug: 189776979\nChange-Id: I30445c053fcb785669f75d9c83056926d850edce\n"
    },
    {
      "commit": "695af0da30a37cb7e105c40811656a22a898536c",
      "tree": "c2a24253954884fbfd8112d83aea087a46397d35",
      "parents": [
        "e397e49aa73c4c21cb43c0b302d3df3a7b7fb944"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Jul 30 09:36:57 2021 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Jul 30 09:39:21 2021 -0700"
      },
      "message": "POSIX strerror_r returns an error number, not -1\n\nThe posix spec says strerror_r returns a positive error number,  not\n-1 and set errno.\n\nTest: bionic-unit-tests-static\nChange-Id: I6a12d50d046f9caac299bf3bff63e6c9496c1b6f\n"
    },
    {
      "commit": "e9898f393a2c9e96dd23e298f661e6e7121951dd",
      "tree": "7ab29911b8e3a809fd120f62dcc1cc6128f57237",
      "parents": [
        "bc1b267454cd305d2bbaa0f22914b98a23ef1ffa"
      ],
      "author": {
        "name": "Joel Galenson",
        "email": "jgalenson@google.com",
        "time": "Thu Jul 29 15:45:07 2021 -0700"
      },
      "committer": {
        "name": "Joel Galenson",
        "email": "jgalenson@google.com",
        "time": "Thu Jul 29 15:55:07 2021 -0700"
      },
      "message": "Move the Rust system property bindings into librustutils.\n\nBug: 182498247\nTest: Build\nChange-Id: I688a1c7654d94b349b6903d9e7735656d31e7629\n"
    },
    {
      "commit": "bc1b267454cd305d2bbaa0f22914b98a23ef1ffa",
      "tree": "c3f0a816c8008f4f1a2604fb434ff1de2c31e567",
      "parents": [
        "1e9af0f339f50e72cd45f3c057a19b12df727e7a",
        "b4ab4f6d43d9acfc35b06912a670d9e712b4f29e"
      ],
      "author": {
        "name": "Florian Mayer",
        "email": "fmayer@google.com",
        "time": "Thu Jul 29 10:48:57 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 29 10:48:57 2021 +0000"
      },
      "message": "Merge \"Revert \"Fix GWP hooks not being restored, leading to crashes.\"\""
    },
    {
      "commit": "b4ab4f6d43d9acfc35b06912a670d9e712b4f29e",
      "tree": "6badcd5a33ceebd727ae55f9ae4dfd09f35e948b",
      "parents": [
        "9db8f2bc8758432b5d7ae5975e14311dc1601ebe"
      ],
      "author": {
        "name": "Florian Mayer",
        "email": "fmayer@google.com",
        "time": "Thu Jul 29 09:57:37 2021 +0000"
      },
      "committer": {
        "name": "Florian Mayer",
        "email": "fmayer@google.com",
        "time": "Thu Jul 29 09:57:37 2021 +0000"
      },
      "message": "Revert \"Fix GWP hooks not being restored, leading to crashes.\"\n\nThis reverts commit 9db8f2bc8758432b5d7ae5975e14311dc1601ebe.\n\nReason for revert: b/194806683\n\nChange-Id: If6a91f26af17ae7510417eb0d65a79dc7ae2e04e\n"
    },
    {
      "commit": "d9d9ee84661079e90de02acd06c5809c160814db",
      "tree": "76c454bf516c5c700cf9998fcf51f73135ceedda",
      "parents": [
        "0f75a5a41680f3f5f4a77cc4d2e10d03f49898c0"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Jul 23 17:10:58 2021 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Jul 27 18:39:56 2021 -0700"
      },
      "message": "Allow retry of test if log missing.\n\nRefactor the code a bit to allow retrying if a log message is missing.\nThis is because there is a possibility of a log message getting dropped.\nIf that happens, merely rerun up to three times and pass if the missing\nmessage is present.\n\nAlso fix a race condition that can occur if the LogReader threads are\nbeing terminated but happen to be allocating memory while they are\nin the signal handler. This situation causes aborts in the memory\nallocator or a deadlock. Before this change, the verify_leak*\ntests would fail in less than twenty iterations. After, I could run\nfor hundreds of iterations.\n\nBug: 193898572\n\nTest: Ran unit tests in a loop.\nChange-Id: I0fb5beab6041dcf3e3fd19f6748bb20bb81a2506\n"
    },
    {
      "commit": "0f75a5a41680f3f5f4a77cc4d2e10d03f49898c0",
      "tree": "49efcee45d6c55a895faf33ba53533bfe7422c2f",
      "parents": [
        "a0f3478e75f50fafdd4a54acd8792ec08a11a7dd",
        "9db8f2bc8758432b5d7ae5975e14311dc1601ebe"
      ],
      "author": {
        "name": "Florian Mayer",
        "email": "fmayer@google.com",
        "time": "Tue Jul 27 16:41:30 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jul 27 16:41:30 2021 +0000"
      },
      "message": "Merge \"Fix GWP hooks not being restored, leading to crashes.\""
    },
    {
      "commit": "9db8f2bc8758432b5d7ae5975e14311dc1601ebe",
      "tree": "f47e2ce76ff58b06d06f8467238efc737ed57cab",
      "parents": [
        "98115b7494a96dd0b8e6ece7ff5e50704038c906"
      ],
      "author": {
        "name": "Florian Mayer",
        "email": "fmayer@google.com",
        "time": "Tue Jul 20 15:43:37 2021 +0100"
      },
      "committer": {
        "name": "Florian Mayer",
        "email": "fmayer@google.com",
        "time": "Tue Jul 27 13:00:23 2021 +0100"
      },
      "message": "Fix GWP hooks not being restored, leading to crashes.\n\nIf the DispatchReset fails, the subsequent iteration has the wrong\nidea of what the \"original\" table is, and if a subsequent DispatchReset\nsucceeds it unhooks them.\n\nRepro in https://r.android.com/1767868.\n\nBug: 193012939\nBug: 189776979\nChange-Id: Ie0644412291d3b53dcf89cdd056e542d32822975\n"
    },
    {
      "commit": "a0f3478e75f50fafdd4a54acd8792ec08a11a7dd",
      "tree": "c1f2de437bb8f11c4fc5f60d191d7564ab572bd3",
      "parents": [
        "e397e49aa73c4c21cb43c0b302d3df3a7b7fb944",
        "5d50dbb5f0bfb44708d2378abe4f1ff882983075"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Jul 26 19:31:54 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jul 26 19:31:54 2021 +0000"
      },
      "message": "Merge \"Export kernel headers for musl\""
    },
    {
      "commit": "5d50dbb5f0bfb44708d2378abe4f1ff882983075",
      "tree": "9d6009d607518a6ed4b577b662e112d53ef56566",
      "parents": [
        "3367bf341225650738fae5032d427e885e8cf3fd"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 29 11:35:29 2021 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Jul 23 15:01:58 2021 -0700"
      },
      "message": "Export kernel headers for musl\n\nMusl will reuse bionic\u0027s kernel headers.\n\nBug: 190084016\nTest: m libc_musl\nChange-Id: Ie750556f9a055984eb9bab41fa61faa965f037e5\n"
    },
    {
      "commit": "e397e49aa73c4c21cb43c0b302d3df3a7b7fb944",
      "tree": "c5e785479b81ee233d0ee42ab72a6e8345405b54",
      "parents": [
        "3367bf341225650738fae5032d427e885e8cf3fd",
        "4990c2dcbba84306064b3c9ffa148eafb06f73a3"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Jul 23 21:53:32 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jul 23 21:53:32 2021 +0000"
      },
      "message": "Merge \"Read the log while test runs instead of after.\""
    },
    {
      "commit": "3367bf341225650738fae5032d427e885e8cf3fd",
      "tree": "5f0111f56e886bd5467a209ce9b6a3bf9f96df97",
      "parents": [
        "a67c7fdca8c7d079a8e7b1e4f69bb0e5463f72e6",
        "02f813703ae51a48ba562e9f9cb836f3850c85be"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jul 23 21:18:51 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jul 23 21:18:51 2021 +0000"
      },
      "message": "Merge \"Rename cc_object default_shared_libs to system_shared_libs\""
    },
    {
      "commit": "4990c2dcbba84306064b3c9ffa148eafb06f73a3",
      "tree": "aada3b5b511a31d6bb05af9e8fcf709c89aadade",
      "parents": [
        "a67c7fdca8c7d079a8e7b1e4f69bb0e5463f72e6"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Jul 22 13:17:34 2021 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Jul 23 11:48:29 2021 -0700"
      },
      "message": "Read the log while test runs instead of after.\n\nThese tests can be flaky if something is spamming the log and\nexpiring messages. Previously, the log wasn\u0027t read until the\nforked process was complete. Now, two threads are spawned right\nafter the process forks to read the log while running. This\nshould avoid any problems if the log is being spammed while the\ntest runs.\n\nIn addition, fixed some potential flakiness in the test that might\noccur if the test incorrectly gets stale log data.\n\nBug: 193898572\n\nTest: All unit tests pass on cuttlefish (both 32 bit and 64 bit).\nTest: Forced an abort and verified that the crash log reader sees\nTest: the message.\nTest: Verified that the log reader for the main and crash log properly\nTest: read data.\nTest: Verified the test passes while swamping the log by running\nTest: the log unit tests while running two copies of the system\nTest: tests.\nChange-Id: I68bd92a8c483eac0146ada87dd4201dda0902c49\n"
    },
    {
      "commit": "a67c7fdca8c7d079a8e7b1e4f69bb0e5463f72e6",
      "tree": "061844c307bc3899cbf7c8f5bcdb004faffce896",
      "parents": [
        "e780ad0c2467e2a982ea153053e23285983d073d",
        "4aebf552571b3baeb00748cf8a9001ba427f6eb9"
      ],
      "author": {
        "name": "Joel Galenson",
        "email": "jgalenson@google.com",
        "time": "Fri Jul 23 14:46:55 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jul 23 14:46:55 2021 +0000"
      },
      "message": "Merge changes from topic \"rust-property-bindings\"\n\n* changes:\n  Improve the Rust property bindings.\n  Migrate keystore2\u0027s Rust system library bindings to bionic.\n"
    },
    {
      "commit": "5c49616f70907f7c312af0525cacb0f05373ebab",
      "tree": "3b70454810090db201429ab9335eb19e00fd459b",
      "parents": [
        "2ffa0eb7d3b6be955464f1fb95f1979dd5e46009"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Jul 22 22:26:28 2021 +0000"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Jul 22 22:37:19 2021 +0000"
      },
      "message": "Fix NOTICE file.\n\nTest: Uploads.\nChange-Id: I23fb9413dd62aa06ffa26e5e7fc0f7e26fa8cde4\n"
    },
    {
      "commit": "02f813703ae51a48ba562e9f9cb836f3850c85be",
      "tree": "ca9c300da81ac49d3e336dbeb4fc1a5903f604cd",
      "parents": [
        "2ffa0eb7d3b6be955464f1fb95f1979dd5e46009"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Jul 22 12:02:10 2021 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Jul 22 12:02:10 2021 -0700"
      },
      "message": "Rename cc_object default_shared_libs to system_shared_libs\n\ndefault_shared_libs has been removed, go back to the system_shared_libs\nproperty that now has the same behavior.\n\nBug: 193559105\nTest: m checkbuild\nChange-Id: I9edac93f7e6d9d4b99883b7a7b14ab52942c0ef2\n"
    },
    {
      "commit": "2ffa0eb7d3b6be955464f1fb95f1979dd5e46009",
      "tree": "1bb763b898b0a3166c61ce74dcfd64df9fc4d966",
      "parents": [
        "dc42a98763d954289cf3a20c0add90d0dca79c2e",
        "b5bfe0bd5128a263871fb918248e1a90d523ea49"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jul 22 17:44:32 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 22 17:44:32 2021 +0000"
      },
      "message": "Merge \"Move system_shared_libs into target.bionic clause\""
    },
    {
      "commit": "4aebf552571b3baeb00748cf8a9001ba427f6eb9",
      "tree": "1b5f5d56fbe0b36e8c3781761da13c657d61c36f",
      "parents": [
        "e1f1e79310e522ea627fc5c13d3a282b8d9b1010"
      ],
      "author": {
        "name": "Joel Galenson",
        "email": "jgalenson@google.com",
        "time": "Wed Jul 21 08:47:32 2021 -0700"
      },
      "committer": {
        "name": "Joel Galenson",
        "email": "jgalenson@google.com",
        "time": "Wed Jul 21 15:21:29 2021 -0700"
      },
      "message": "Improve the Rust property bindings.\n\nAdd a utility function to get the current value of a property and\nremove some keystore2-specific strings.\n\nBug: 182498247\nTest: Build\nChange-Id: Ie7e9903546a4d4cd6c54a118c42257a23510dda6\n"
    },
    {
      "commit": "e1f1e79310e522ea627fc5c13d3a282b8d9b1010",
      "tree": "7ade67223198f3097a74abba5a9e77b0a2e46cfa",
      "parents": [
        "dc42a98763d954289cf3a20c0add90d0dca79c2e"
      ],
      "author": {
        "name": "Joel Galenson",
        "email": "jgalenson@google.com",
        "time": "Tue Jul 20 12:49:59 2021 -0700"
      },
      "committer": {
        "name": "Joel Galenson",
        "email": "jgalenson@google.com",
        "time": "Wed Jul 21 15:21:27 2021 -0700"
      },
      "message": "Migrate keystore2\u0027s Rust system library bindings to bionic.\n\nThis is purely a port: it does not add or change any functionality\n(other than renaming the library).\n\nBug: 182498247\nTest: Use library.\nChange-Id: I4cb8f1c22ca4ca5a398116952fb9957d283d235b\n"
    },
    {
      "commit": "8f14b650326b0276269d8c1fa657772bc5953f94",
      "tree": "583a100d33a259d30cdc994bbf8375d86009b63b",
      "parents": [
        "13a960f0ed699137d305a55c2ae22d090b04a67d"
      ],
      "author": {
        "name": "Bowgo Tsai",
        "email": "bowgotsai@google.com",
        "time": "Thu Jul 15 10:13:33 2021 +0000"
      },
      "committer": {
        "name": "Bowgo Tsai",
        "email": "bowgotsai@google.com",
        "time": "Wed Jul 21 09:15:41 2021 +0800"
      },
      "message": "Revert \"Adding system property tracing\"\n\nRevert submission 1403568-sysprop_trace\n\nReason for revert: makes property get/set non-reentrant\nReverted Changes:\nI6f85f3f52:Add systrace tag for system property\nId2b93acb2:Adding system property tracing\nId78992d23:Add systrace tag for system property\nI1ba9fc7bd:Add systrace tag for system property\n\nBug: 193050299\nTest: build and boot a device\nChange-Id: Ic7a83fb01a39113d408ed0c95d27f694d5a2649c\nMerged-In: Ic7a83fb01a39113d408ed0c95d27f694d5a2649c\n(cherry picked from commit 61a5a8380d6417e9b85bb2f6a4a694ef4222031f)\n"
    },
    {
      "commit": "13a960f0ed699137d305a55c2ae22d090b04a67d",
      "tree": "2374eb11c851e991d002e496e4d678154e552630",
      "parents": [
        "98115b7494a96dd0b8e6ece7ff5e50704038c906"
      ],
      "author": {
        "name": "Bowgo Tsai",
        "email": "bowgotsai@google.com",
        "time": "Thu Jul 15 09:46:53 2021 +0000"
      },
      "committer": {
        "name": "Bowgo Tsai",
        "email": "bowgotsai@google.com",
        "time": "Wed Jul 21 09:10:41 2021 +0800"
      },
      "message": "Revert \"bionic_systrace: moving global static variables\"\n\nThis reverts commit 1e1c7845aab0542306f61d8e8c880aca096ea336.\n\nReason for revert: makes property get/set non-reentrant\n\nBug: 193050299\nTest: build and boot a device\nChange-Id: If59e3dc25684a3c2b1d3ff74f995311afe6c6e89\nMerged-In: If59e3dc25684a3c2b1d3ff74f995311afe6c6e89\n(cherry picked from commit 3ec21f527acbaefb5f7a114125bc7a93baa780c7)\n"
    },
    {
      "commit": "a6035ecd416fc9e09098f5474df3a864d0e168c3",
      "tree": "6badcd5a33ceebd727ae55f9ae4dfd09f35e948b",
      "parents": [
        "2e4be55966d0eb6d71260aa65b445141821644de"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Jul 15 12:58:07 2021 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Jul 15 12:58:07 2021 -0700"
      },
      "message": "Avoid undefined compiler behavior\n\nThis is a follow-on to commit 5358cc40ab4288ed00c223f00cf898b7dc1a9484.\nI forgot that there were two places the undefined behavior could occur.\n\nMake the literal unsigned in the other place.\n\nTest: TreeHugger\nBug: 189541929\nChange-Id: Iaef81507ca61e802d277246bf5995157c93d86ce\n"
    },
    {
      "commit": "5358cc40ab4288ed00c223f00cf898b7dc1a9484",
      "tree": "c8792ad92e84eeecb98810615c012b82c8cd0941",
      "parents": [
        "48e981556ef0a2cfed18b716443c907f1843bc37"
      ],
      "author": {
        "name": "Greg Kaiser",
        "email": "gkaiser@google.com",
        "time": "Thu Jul 15 07:45:51 2021 -0700"
      },
      "committer": {
        "name": "Greg Kaiser",
        "email": "gkaiser@google.com",
        "time": "Thu Jul 15 08:34:18 2021 -0700"
      },
      "message": "Avoid undefined compiler behavior\n\nTechnically, shifting a signed value beyond its maximum range is\nundefined behavior in C++.  A bare integer literal is signed, and\ndefaults to \u0027int\u0027.  On platforms where \u0027int\u0027 is 32-bits, we\nshift outside this range with 1 \u003c\u003c 31.\n\nWe make our literal an unsigned integer to avoid this.\n\nTest: TreeHugger\nBug: 189541929\n\nChange-Id: Iade1bcd3f86d025dd6e10c26622d10c26e2c8295\n"
    },
    {
      "commit": "48e981556ef0a2cfed18b716443c907f1843bc37",
      "tree": "945e893b2603dc994557de0f5657fe54a3579dd8",
      "parents": [
        "d8b97f48c103d9b65b328a8f7b8db662f8e964cd",
        "33d73379aad3ed7dcbb9b10f945d3bc6264b79bd"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Jul 15 01:16:45 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 15 01:16:45 2021 +0000"
      },
      "message": "Merge \"Fix race when frees after main thread finishes.\""
    },
    {
      "commit": "d8b97f48c103d9b65b328a8f7b8db662f8e964cd",
      "tree": "0da3f62ffebb8d9bf42ec7ef4fbb79fd7c5a6458",
      "parents": [
        "829b84d2364a1fd62a7ad34acc82c5622229fba4",
        "d27506716af69ede1334cbd5163186c10ab56a0f"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Jul 14 23:59:08 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jul 14 23:59:08 2021 +0000"
      },
      "message": "Merge \"Define sockaddr_storage in bionic\""
    },
    {
      "commit": "33d73379aad3ed7dcbb9b10f945d3bc6264b79bd",
      "tree": "66cd01c7e7f0a281ec4c0b3e18f5efb713d8ed62",
      "parents": [
        "829b84d2364a1fd62a7ad34acc82c5622229fba4"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Jul 02 15:46:18 2021 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Jul 14 16:34:46 2021 -0700"
      },
      "message": "Fix race when frees after main thread finishes.\n\nWhen the main thread is exiting, the code deleted the g_debug global\npointer and destroys the disable pthread key. Unfortunately, if\nmalloc debug was enabled in a way that requires a header for the pointer,\nany frees that occur after the main thread is torn down result in calls\nto the underlying allocator with bad pointers.\nTo avoid this, don\u0027t delete the g_debug pointer and don\u0027t destroy the\ndisable pthread key.\n\nAdded a new system test that allocates a lot of pointers and frees them\nafter letting the main thread finish.\n\nAlso, fix one test that can fail sporadically due to a lack of unwinding\ninformation on arm32.\n\nBug: 189541929\n\nTest: Passes new system tests.\nChange-Id: I1cfe868987a8f0dc880a5b65de6709f44a5f1988\n"
    },
    {
      "commit": "d27506716af69ede1334cbd5163186c10ab56a0f",
      "tree": "583208d77fa67c8bb01c6b9f2e865163b90da725",
      "parents": [
        "a55c81e36eb251a9e4e23bd8bcd50307200ee845"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 29 12:52:26 2021 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Jul 14 14:20:36 2021 -0700"
      },
      "message": "Define sockaddr_storage in bionic\n\nBionic currently renames the kernel\u0027s __kernel_sockaddr_storage\nto sockaddr_storage.  We would like to reuse the bionic kernel\nheaders for musl, but musl defines its own sockaddr_storage,\ncausing redefinition errors when the musl and kernel headers\nare both included.\n\nGive bionic its own definition of sockaddr_storage so the kernel\none can be left as __kernel_sockaddr_storage, avoiding the\nconflict in musl.\n\nSome of the structs in netinet/in.h contain sockaddr_storage members.\nThere are definitions in linux/in.h, but they now use the\n__kernel_sockaddr_storage naming.  To avoid having to copy the structs\nfrom linux/in.h into netinet/in.h, add some #define hackery to\nrename __kernel_sockaddr_storage to sockaddr_storage when including\nlinux/in.h from netinet/in.h.\n\nBug: 190084016\nTest: m checkbuild\nTest: bionic-unit-tests\nChange-Id: I8f654511722b3a4a8e0bb146e4418ebcd370305c\n"
    },
    {
      "commit": "b5bfe0bd5128a263871fb918248e1a90d523ea49",
      "tree": "39363cfa37f32f17918489061d29f96f035af2be",
      "parents": [
        "a55c81e36eb251a9e4e23bd8bcd50307200ee845"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jul 13 16:26:28 2021 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jul 13 16:26:28 2021 -0700"
      },
      "message": "Move system_shared_libs into target.bionic clause\n\nUse target.bionic.system_shared_libs when it is used to limit the\ndefault shared libraries (as opposed to remove them completely).\nThis avoids attempting to add a host dependency on libc when\nsystem_shared_libs is modified to apply to all variants.\n\nBug: 193559105\nTest: m checkbuild\nChange-Id: I8d623321ce5145cf2968f83f78b5cb50711290f4\n"
    },
    {
      "commit": "829b84d2364a1fd62a7ad34acc82c5622229fba4",
      "tree": "b9bb21e2616a2e6d79592355475ad0e705718b92",
      "parents": [
        "a55c81e36eb251a9e4e23bd8bcd50307200ee845",
        "ab1b143efa8e03e66e708636ac7214f5973c9239"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jul 13 16:37:32 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jul 13 16:37:32 2021 +0000"
      },
      "message": "Merge \"Remove obsolete visibility entries from libc_headers\""
    },
    {
      "commit": "df901df77ae79d068d83ea388917805e8bcb97f6",
      "tree": "bfd4ce26d4c6190787234f5ef742eb3cef823447",
      "parents": [
        "2ef1cd3f4430d344d88f1275b850119dc963cfa1",
        "68ec53e141d643068e99950db054e139077dae9a"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jul 12 23:13:59 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jul 12 23:13:59 2021 +0000"
      },
      "message": "Merge \"Support replacing nested kernel structs\""
    },
    {
      "commit": "ab1b143efa8e03e66e708636ac7214f5973c9239",
      "tree": "19ea6b1d7a73b80c37619609dcd15bf00fc8000c",
      "parents": [
        "2ef1cd3f4430d344d88f1275b850119dc963cfa1"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Jul 12 15:57:01 2021 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Jul 12 15:57:01 2021 -0700"
      },
      "message": "Remove obsolete visibility entries from libc_headers\n\ncc_objects get libc headers by default now unless they opt out through\nsystem_shared_libs: [] or default_shared_libs: [], so they no longer\nneed explicit visibility.\n\nFixes: b/153662223\nTest: m nothing\nChange-Id: Ib61a597cbfee4616a632abdfbf4b4f108d35c2b6\n"
    },
    {
      "commit": "2ef1cd3f4430d344d88f1275b850119dc963cfa1",
      "tree": "681b4b52627e62b5d9bcb1d4b868ec9eb32db2ae",
      "parents": [
        "7332139c65ef2361f2e9c90f4cff386cf4735b65",
        "48bf46b968c37cbd76ecd33c98c0f163134beadf"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jul 02 17:58:43 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jul 02 17:58:43 2021 +0000"
      },
      "message": "Merge \"Allow the kernel to upgrade ASYNC mode processes to SYNC mode.\""
    },
    {
      "commit": "48bf46b968c37cbd76ecd33c98c0f163134beadf",
      "tree": "9990b32772203f1424eb4360bc8c814c9587609a",
      "parents": [
        "921b3a4642c2d24e7580ae542ff10e0319a2453d"
      ],
      "author": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Thu Jul 01 15:16:40 2021 -0700"
      },
      "committer": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Thu Jul 01 15:39:32 2021 -0700"
      },
      "message": "Allow the kernel to upgrade ASYNC mode processes to SYNC mode.\n\nOn devices where the performance of ASYNC mode is similar to SYNC\nmode on certain CPUs, OEMs may choose to configure the kernel to\nprefer SYNC mode on those CPUs by writing the value \"sync\" to the\nsysfs node: /sys/devices/system/cpu/cpu\u003cN\u003e/mte_tcf_preferred\n\nThe kernel will only respect the per-CPU preference if the user program\nallows this by specifying the preferred mode as a member of a set of\nallowed modes. Since only kernels with r.android.com/1754670 support\nspecifying multiple modes, fall back to trying to specify a single\nmode if that doesn\u0027t work.\n\nBug: 189966263\nChange-Id: Ie7ada3b073178b7967f0819cbdadc2d8e3a2c648\n"
    },
    {
      "commit": "7332139c65ef2361f2e9c90f4cff386cf4735b65",
      "tree": "1729f83bdef6536eb0dc3b0c46c342511e75bc7d",
      "parents": [
        "30782aa99ba8101b47a213f7333670da73884162",
        "10d9268676036f6a7aa78390dc70b3b0bfda3dbe"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Jul 01 19:00:40 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 01 19:00:40 2021 +0000"
      },
      "message": "Merge \"Add default_shared_libs to crt objects\""
    },
    {
      "commit": "fcc3b4f45d2ce70bfd0201ebd300ff146e465f73",
      "tree": "8c63eb0b11a5486a64c5f1537c5f8da53cc0ffb6",
      "parents": [
        "b4b3166d7b3a8457c22f9d0bf3e4feff5514d64d"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Jul 01 01:30:21 2021 +0000"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Jul 01 01:30:21 2021 +0000"
      },
      "message": "Update to v5.13 kernel headers.\n\nKernel headers coming from:\n\nGit: https://android.googlesource.com/kernel/common/\nBranch: android-mainline\nTag: android-mainline-5.13\n\nTest: Builds, bionic unit tests.\nChange-Id: Ia4360ca4a2808206f64187dcb234d73c5752624b\n"
    },
    {
      "commit": "68ec53e141d643068e99950db054e139077dae9a",
      "tree": "69712d5bf30197b52192131d55bfe81473450b0e",
      "parents": [
        "b4b3166d7b3a8457c22f9d0bf3e4feff5514d64d"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 29 14:13:02 2021 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 29 14:22:30 2021 -0700"
      },
      "message": "Support replacing nested kernel structs\n\nWhen replacing structs with bits/ includes, count the number of\nopening and closing braces to find the end of the struct.\n\nTest: tools/update_all.py\nChange-Id: Ic9712a385da517710ceffccbdb223c89ae0b5f65\n"
    },
    {
      "commit": "b4b3166d7b3a8457c22f9d0bf3e4feff5514d64d",
      "tree": "923bf9437f3b4d2e759b73c4589d38b274a3838f",
      "parents": [
        "d17cf31a927f92ac42f8567dd7dd647279ccdae6",
        "79dbdc3c22d924540c86ed4ea5a7a6945392760b"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jun 25 20:04:28 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 25 20:04:28 2021 +0000"
      },
      "message": "Merge \"Document more clearly that we don\u0027t plan on using faccessat2(2).\""
    },
    {
      "commit": "79dbdc3c22d924540c86ed4ea5a7a6945392760b",
      "tree": "75b1760093a436b58f804a0a7535e0d94d740e4c",
      "parents": [
        "58679c8d6aefb9ce7663665cbc1a676a0a976139"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jun 25 09:16:18 2021 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jun 25 09:16:18 2021 -0700"
      },
      "message": "Document more clearly that we don\u0027t plan on using faccessat2(2).\n\nTest: treehugger\nChange-Id: Idea76ab97865bf26c1f6b16200ba2c7d1fe50ee8\n"
    },
    {
      "commit": "a9d0c104a6da1c17c24d1347688ade7e67f96a16",
      "tree": "9bfe2c2241f00589251ea5a904505c24faf7d7ad",
      "parents": [
        "58679c8d6aefb9ce7663665cbc1a676a0a976139"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jun 24 15:48:31 2021 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jun 24 15:48:31 2021 -0700"
      },
      "message": "Stop documenting native_heapdump_viewer.\n\n...since we\u0027re removing it anyway.\n\nWe recommend Perfetto instead.\n\nBug: https://github.com/android/ndk/issues/435\nTest: treehugger\nChange-Id: If932646d869f7df6bbe147b5dce49abdd9f31612\n"
    },
    {
      "commit": "d8d561c98457409c0003b37b9c1f84bb7d988e04",
      "tree": "514adfe43c69807f2d147f21b094336073fc7857",
      "parents": [
        "e772804d1542632ba35640cb83b50f973eaed25c"
      ],
      "author": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Tue Jun 22 10:18:12 2021 -0700"
      },
      "committer": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Thu Jun 24 01:21:00 2021 +0000"
      },
      "message": "Add definition of M_MEMTAG_TUNING.\n\nBug: 191769584\nTest: N/A\nChange-Id: Ief77f95a04411528563787a9fc6d10738fc5688f\n"
    },
    {
      "commit": "10d9268676036f6a7aa78390dc70b3b0bfda3dbe",
      "tree": "5cdeae097046e09b04a92a668a801898e743ea51",
      "parents": [
        "80c506f854945f86c4bff99688f26b8857b6bbb2"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 22 13:25:46 2021 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Jun 23 16:44:57 2021 -0700"
      },
      "message": "Add default_shared_libs to crt objects\n\ncc_object modules will now honor the default_shared_libs, override\nit to empty to avoid circular dependencies.\n\nBug: 153662223\nTest: m checkbuild\nChange-Id: I02dd9510fcc0b6bf724d9cdd7c3e80c08430a7b9\n"
    },
    {
      "commit": "c849ef106372702bee54df06b2d7569a3055cfa1",
      "tree": "b704864b4d2d154fa5b199651a2643c5842b0afd",
      "parents": [
        "39259a9b19d82fe0eda96d9803872fb9c38a9629"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jun 17 14:41:29 2021 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jun 17 14:41:29 2021 -0700"
      },
      "message": "Improve the \u003csys/select.h\u003e docs.\n\nTest: treehugger\nChange-Id: I00fc6aededc20e89fb46d8dc033bdcb0530a8052\n"
    },
    {
      "commit": "be1c01328082b2dcde5c5ef022db0decddb6e1f5",
      "tree": "dcfde44bbdabd6314c5717a4b3d3fe26e341743f",
      "parents": [
        "33b86cc6c1f98b0f13adbc47e878227bb6924123",
        "26d83ba7abcbfa725794c144411214d16f64b75a"
      ],
      "author": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Wed Jun 09 01:14:29 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jun 09 01:14:29 2021 +0000"
      },
      "message": "Merge \"Disable return PAC in __pthread_start.\""
    },
    {
      "commit": "26d83ba7abcbfa725794c144411214d16f64b75a",
      "tree": "8195cbabb3da6b6bfb4c59072b5e9fc47ceb120b",
      "parents": [
        "921b3a4642c2d24e7580ae542ff10e0319a2453d"
      ],
      "author": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Fri Jun 04 14:35:13 2021 -0700"
      },
      "committer": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Tue Jun 08 16:03:41 2021 -0700"
      },
      "message": "Disable return PAC in __pthread_start.\n\nThis function doesn\u0027t return, but it does appear in stack traces. Avoid\nusing return PAC in this function because we may end up resetting IA,\nwhich may confuse unwinders due to mismatching keys.\n\nBug: 189808795\nChange-Id: I953da9078acd1d43eb7a47fb11f75caa0099fa12\n"
    },
    {
      "commit": "504d0488ad1bd1531e9cff3de4186160f9f47f72",
      "tree": "d3fae9f4e07febb6525edcccadf539f68ff61fc7",
      "parents": [
        "9af7da4ff881fbbdb44915d4083f63fba88f9233"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jun 07 11:20:28 2021 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jun 07 11:20:28 2021 -0700"
      },
      "message": "Mark abort(3) as `nomerge`.\n\nOtherwise, since it\u0027s `noreturn`, clang will merge multiple call sites\nin the same function, destroying information that helps you debug\n_which_ call fired from a tombstone.\n\nBug: https://github.com/android/ndk/issues/1514\nTest: treehugger\nChange-Id: I7930318a813f6a2220266794f16c0e5e72d32869\n"
    },
    {
      "commit": "85c7838bd9cb40949c08d957499357547c7cd687",
      "tree": "15d12ca61ac831cde7292077d09fc70747e83e34",
      "parents": [
        "64be12fbc964bfe0247f69e5c00249f8043d480d"
      ],
      "author": {
        "name": "Florian Mayer",
        "email": "fmayer@google.com",
        "time": "Wed Jun 02 14:43:29 2021 +0100"
      },
      "committer": {
        "name": "Florian Mayer",
        "email": "fmayer@google.com",
        "time": "Wed Jun 02 14:48:53 2021 +0100"
      },
      "message": "Fix dangling pointer in heapprofd API.\n\nWe would dlopen heapprofd_client.so, which has a static initializer [1]\nthat passes a pointer to of its functions to heapprofd_client_api.so.\nIf we dlclose heapprofd_client.so, this pointer is dangling.\n\n[1]: https://cs.android.com/android/platform/superproject/+/master:external/perfetto/src/profiling/memory/malloc_interceptor_bionic_hooks.cc?q\u003dsymbol:g_heap_id\n\nBug: 189332777\nChange-Id: Ia4a9d9dd7c89eceec86c6fac5f4b66de85d7604e\n"
    },
    {
      "commit": "a2b7c3fbece006b466399fff13d5d625665741ec",
      "tree": "d4b0c27b3a58eec62f5f32b7221d5fd46cb66123",
      "parents": [
        "921b3a4642c2d24e7580ae542ff10e0319a2453d"
      ],
      "author": {
        "name": "Lukacs T. Berki",
        "email": "lberki@google.com",
        "time": "Tue May 25 11:04:12 2021 +0200"
      },
      "committer": {
        "name": "Lukacs T. Berki",
        "email": "lberki@google.com",
        "time": "Wed Jun 02 08:12:04 2021 +0200"
      },
      "message": "Remove sort_bss_symbols_by_size .\n\nTest: Presubmits.\nChange-Id: I03b502e75e0964942ec2bf197722c77542e956db\n"
    },
    {
      "commit": "921b3a4642c2d24e7580ae542ff10e0319a2453d",
      "tree": "e1c4dfbc92eb73f6ee63fcefe02880c850d779a6",
      "parents": [
        "e207b4f76425682d2f0eb889bbbf1e3ebca362aa",
        "660ba39b52c16f17838d091bf772705eea4a02ae"
      ],
      "author": {
        "name": "Christian Wailes",
        "email": "chriswailes@google.com",
        "time": "Mon May 24 23:23:29 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon May 24 23:23:29 2021 +0000"
      },
      "message": "Merge \"Move android_reset_stack_guard to LIBC_S\""
    },
    {
      "commit": "ef76860f22e14b088189a01f6096dffddb5de185",
      "tree": "87c1aea83d9f62e4208a3ff48b10803cc118ced7",
      "parents": [
        "23e33cf94ec813094b5719d315b6540ebaf76d76"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 19 09:14:41 2021 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 19 09:14:41 2021 -0700"
      },
      "message": "Turns out we don\u0027t need to say calll any more.\n\nI don\u0027t know when LLVM\u0027s x86 assembler started making the same\nassumptions as GAS used to, but I\u0027m happy to get rid of \"calll\".\n\nTest: treehugger\nChange-Id: I0a924993aebf7d701a846805fea9a015e8feb58a\n"
    },
    {
      "commit": "660ba39b52c16f17838d091bf772705eea4a02ae",
      "tree": "9eb672e837b8f9b31c12706260ffd03928242b3b",
      "parents": [
        "23e33cf94ec813094b5719d315b6540ebaf76d76"
      ],
      "author": {
        "name": "Chris Wailes",
        "email": "chriswailes@google.com",
        "time": "Fri Feb 12 14:47:47 2021 -0800"
      },
      "committer": {
        "name": "Chris Wailes",
        "email": "chriswailes@google.com",
        "time": "Mon May 17 11:42:02 2021 -0700"
      },
      "message": "Move android_reset_stack_guard to LIBC_S\n\nTest: Declare as external and compile\nBug: 168258494\nChange-Id: I32d1c0cc6c150b440baeac458d7753445036b455\n"
    },
    {
      "commit": "23e33cf94ec813094b5719d315b6540ebaf76d76",
      "tree": "eb7cef17f21f1d5dce5d944eef5ee4576e7f1c7d",
      "parents": [
        "453076b8d0aaf231a4eec48950530e2bcd774ccd",
        "5a7f3ef9a8ac3f4548a4739df9910d0905691b98"
      ],
      "author": {
        "name": "Bram Bonné",
        "email": "brambonne@google.com",
        "time": "Mon May 17 13:28:27 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon May 17 13:28:27 2021 +0000"
      },
      "message": "Merge \"Enable RTM_GETLINK restrictions on all apps\""
    },
    {
      "commit": "453076b8d0aaf231a4eec48950530e2bcd774ccd",
      "tree": "dfc0daea1ad44556b777262a980de027ebb13220",
      "parents": [
        "b1270fdd54bb9d5d744c754cd63a225924b73709",
        "92b8d64f41da3c76f039d72168c9d27a5081bc06"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu May 13 09:49:52 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu May 13 09:49:52 2021 +0000"
      },
      "message": "Merge \"Update API of MapInfo from libunwindstack\""
    },
    {
      "commit": "92b8d64f41da3c76f039d72168c9d27a5081bc06",
      "tree": "74f33c183194b9fe9ba8f8968a3b815cf819dfd4",
      "parents": [
        "3e0defac5d546c3a0ed0f5faae1a40502ffac003"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu May 13 00:03:26 2021 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu May 13 01:50:00 2021 +0100"
      },
      "message": "Update API of MapInfo from libunwindstack\n\nUse accessors to for all the fields.\n\nTest: build\nChange-Id: I6ae458002e059ef2f9d73931cc68f2f698f85d7e\n"
    },
    {
      "commit": "559f27828cbc51851978c5781618fe5b3d34e4ba",
      "tree": "4b6cb79ec78207cbe3faa1fab72597db1c436b07",
      "parents": [
        "3e0defac5d546c3a0ed0f5faae1a40502ffac003"
      ],
      "author": {
        "name": "Chris Wailes",
        "email": "chriswailes@google.com",
        "time": "Mon May 03 14:27:12 2021 -0700"
      },
      "committer": {
        "name": "Chris Wailes",
        "email": "chriswailes@google.com",
        "time": "Fri May 07 15:00:55 2021 -0700"
      },
      "message": "Clear the stack frame pointer in _start and __bionic_clone\n\nThis CL adds an instruction to the _start label that clears the frame\npointer.  This allows stack walking code to determine when it has\nreached the end of the stack.\n\nThe __bionic_clone function is similarly modified, for architectures\nthat weren\u0027t already doing both.\n\nTest: bionic-unit-tests\nTest: CtsBionicTestCases\nChange-Id: Iea3949f52c44f7931f9fff2d60d4d9e5c742c120\n"
    },
    {
      "commit": "a9750eda0d2f5604dd8822af631b3bb6eb6e29ed",
      "tree": "4817dd4de00a48f0bb26d7beacfdfbed383307ce",
      "parents": [
        "48166a4eaf2f845d5377ed8869cb87d81fc01121"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon May 03 14:02:49 2021 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon May 03 15:01:39 2021 -0700"
      },
      "message": "Update to v5.12 kernel headers.\n\nKernel headers coming from:\n\nGit: https://android.googlesource.com/kernel/common/\nBranch: android-mainline\nTag: android-mainline-5.12\n\nTest: Boots flame device and runs bionic unit tests.\nTest: Boots acloud device and runs bionic unit tests.\n\nChange-Id: I8ac107ce9d4978be3ef9517b90ad6ecafd06785a\n"
    },
    {
      "commit": "5a7f3ef9a8ac3f4548a4739df9910d0905691b98",
      "tree": "8906311572b91744fc3446ec660e0a7bc313eaec",
      "parents": [
        "48166a4eaf2f845d5377ed8869cb87d81fc01121"
      ],
      "author": {
        "name": "Bram Bonné",
        "email": "brambonne@google.com",
        "time": "Fri Apr 30 15:52:27 2021 +0200"
      },
      "committer": {
        "name": "Bram Bonné",
        "email": "brambonne@google.com",
        "time": "Fri Apr 30 15:52:27 2021 +0200"
      },
      "message": "Enable RTM_GETLINK restrictions on all apps\n\nExtend existing restrictions targeting only apps with API level \u003e\u003d 30 to\nall apps.\n\nActual enforcement happens in SELinux. This change just prevents\nlogspam.\n\nTo be merged when automerge to sc-dev ends.\n\nBug: 170188668\nTest: atest bionic-unit-tests-static\nTest: atest NetworkInterfaceTest\nTest: Connect to Wi-Fi network\nTest: atest CtsSelinuxTargetSdk27TestCases\nTest: atest CtsSelinuxTargetSdk28TestCasesTest: atest\nCtsSelinuxTargetSdk29TestCases\nTest: atest CtsSelinuxTargetSdkCurrentTestCases\n\nChange-Id: If1761354216b23a1e55e6b9606de452899afff0c\n"
    },
    {
      "commit": "a0a4a6c2967b5b3c02c951ea1145f32ed5564ab9",
      "tree": "b2e17733fabd68ce6758d1200c73a4db03a48d12",
      "parents": [
        "4b42ad753e50d3a094c6bfdf3c0c79a0321e0b2f"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Mar 02 10:23:04 2021 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Apr 26 17:45:57 2021 -0700"
      },
      "message": "Replace llndk_library with llndk clause in cc_library\n\nRemove the vestigial llndk_library and replace it with properties\nin the llndk clause of the implementation cc_library.\n\nIn order to reduce duplication of the arch-specific headers used\nby the implementation and LLNDK, rename libc_headers_arch to\nlibc_llndk_headers and hoist the \"include\" directory out of it,\nsince that directory is preproccessed separately for LLNDK\nlibraries.\n\nBug: 170784825\nTest: m checkbuild\nTest: compare out/soong/build.ninja\nChange-Id: I75f0ff9129d910640da55eee6a6387467e6e4a9d\n"
    },
    {
      "commit": "4b42ad753e50d3a094c6bfdf3c0c79a0321e0b2f",
      "tree": "d99ee580359014ee2d6edd8f66bab8ebfa618b0c",
      "parents": [
        "2f62c26bcb7e68978ac5a6d16b883d7bb653b72b",
        "96be371187d26dcba9766c22c540763e020c4328"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Apr 23 02:51:32 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 23 02:51:32 2021 +0000"
      },
      "message": "Merge \"Reorder libc.llndk headers to match libc_headers_arch\""
    },
    {
      "commit": "2f62c26bcb7e68978ac5a6d16b883d7bb653b72b",
      "tree": "3573dc99a4c1af33707cc450e01266f7e06940d4",
      "parents": [
        "2a79326a80d2e2b73cd52509fb67c382d2239a13",
        "dcbacd676f302e94f2d8e571f195d0492c686457"
      ],
      "author": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Thu Apr 22 21:02:42 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 22 21:02:42 2021 +0000"
      },
      "message": "Merge \"Avoid prctl(PR_PAC_RESET_KEYS) on devices without PAC support.\""
    },
    {
      "commit": "dcbacd676f302e94f2d8e571f195d0492c686457",
      "tree": "9508b4b0d735fed76adb303a1f52891494fc57ea",
      "parents": [
        "9cf8871dd98bf69fe46bba056fa05c3c6bf2222d"
      ],
      "author": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Thu Apr 22 12:13:40 2021 -0700"
      },
      "committer": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Thu Apr 22 12:17:01 2021 -0700"
      },
      "message": "Avoid prctl(PR_PAC_RESET_KEYS) on devices without PAC support.\n\nProcesses loaded from vendor partitions may have their own sandboxes\nthat would reject the prctl. Because no devices launched with PAC\nenabled before S, we can avoid issues on upgrading devices by checking\nfor PAC support before issuing the prctl.\n\nBug: 186117046\nChange-Id: I9905b963df01c9007d9fb4527273062ea87a5075\n"
    },
    {
      "commit": "ed80dcd775ffe021246052477425e49680e19c27",
      "tree": "3a23dc67d88221159bd8f54d85aeb0b48dd87f15",
      "parents": [
        "e6b7969dd1f818890e37e8d59303fd3aff99e46c"
      ],
      "author": {
        "name": "Rupert Shuttleworth",
        "email": "ruperts@google.com",
        "time": "Thu Apr 22 01:52:53 2021 -0400"
      },
      "committer": {
        "name": "Rupert Shuttleworth",
        "email": "ruperts@google.com",
        "time": "Thu Apr 22 01:52:53 2021 -0400"
      },
      "message": "Add missing liblog_headers dependency to libc_defaults.\n\nThis unblocks several targets building with Bazel, see https://android-review.googlesource.com/c/platform/build/soong/+/1677125.\n\nTest: bp2build; bazel build //bionic/...\nChange-Id: I4206241fc56cf4df5d5f1e65a367844da85a1360\n"
    },
    {
      "commit": "96be371187d26dcba9766c22c540763e020c4328",
      "tree": "a614da99c7cd5da33ef8ac3350bfc5a3fac7d1bb",
      "parents": [
        "e6b7969dd1f818890e37e8d59303fd3aff99e46c"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Mar 01 18:00:04 2021 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Apr 21 16:29:50 2021 -0700"
      },
      "message": "Reorder libc.llndk headers to match libc_headers_arch\n\nEase later comparisons by making libc.llndk match libc_headers_arch.\n\nBug: 170784825\nTest: m checkbuild\nChange-Id: I90162c0bc5f6f0e79fe974208fde47cca7489fa1\n"
    }
  ],
  "next": "e6b7969dd1f818890e37e8d59303fd3aff99e46c"
}
