)]}'
{
  "log": [
    {
      "commit": "3d24d2b0883ea828443fd7c36d1b262410618aca",
      "tree": "90ddca40aa1d86f1c182462d5b3386a4375dcc3f",
      "parents": [
        "a5c9c7c56542b6471575148b8a3654078b180940"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 05 13:53:01 2019 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 05 16:31:08 2019 -0700"
      },
      "message": "Add memfd_create(2) and mlock2(2).\n\nThese are old enough now that the latest devices will have kernels that\nsupport them.\n\nAlso add basic doc comments to \u003csys/mman.h\u003e.\n\nTest: treehugger\nChange-Id: I1b5ff5db0b6270f5c374287cac1d6a751a0259f5\n"
    },
    {
      "commit": "9a5bdd6d4564d4a7f7c5f149a493d53a1ac12b01",
      "tree": "a7dcd7806557422521757eae3179edae025424eb",
      "parents": [
        "fd56f554190bfa1ad8c58bc0d8cae14510864973"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 05 08:40:52 2019 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 05 08:56:40 2019 -0700"
      },
      "message": "Update seccomp whitelist.\n\nrenameat2 is now exposed, my comment about timerfd was nonsense, and\nit\u0027s worth documenting when and where the various syscalls appeared.\n\nBug: http://b/127675384\nTest: treehugger\nChange-Id: I84662398d39678df3ee7ce39add670337ff8abea\n"
    },
    {
      "commit": "fd56f554190bfa1ad8c58bc0d8cae14510864973",
      "tree": "a0ef659d48c9207ac9b2c388655cf26ec297836e",
      "parents": [
        "8aac028212a924c6f3793dda1e43fb1a08a225fa",
        "05b675e8bfec6e33138fd2e1b2e0e16afe745b37"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 02 21:53:18 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Aug 02 21:53:18 2019 +0000"
      },
      "message": "Merge \"Add renameat2.\""
    },
    {
      "commit": "05b675e8bfec6e33138fd2e1b2e0e16afe745b37",
      "tree": "2de2c98f748581531eaa6b0bb92adbe30f891f36",
      "parents": [
        "c2a722f5d77911afd199f452b03d9c15fbe645f8"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 17 13:01:06 2019 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 02 09:09:59 2019 -0700"
      },
      "message": "Add renameat2.\n\nBug: http://b/127675384\nTest: new tests\nChange-Id: Ia2e3d5679180391ca98e62fa429fa11cbf167507\n"
    },
    {
      "commit": "ee7bc3002dc3127faac110167d28912eb0e86a20",
      "tree": "050269ba857b3c03fd1279fee818d3183e00cbf4",
      "parents": [
        "c2a722f5d77911afd199f452b03d9c15fbe645f8"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 31 18:39:00 2019 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 01 15:16:58 2019 +0000"
      },
      "message": "seccomp: add the \"64-bit time for 32-bit processes\" system calls.\n\nThe cuttlefish folks are hitting this because the VDSO clock_gettime\nfalls back to the clock_gettime64 system call when given an invalid\nclock.\n\nBug: http://b/138781460\nTest: examined the generated .cpp files.\nChange-Id: I98b311cd8652716eb6d45fb99308fdf952e79ba3\n"
    },
    {
      "commit": "c2a722f5d77911afd199f452b03d9c15fbe645f8",
      "tree": "e0d113ebe7e518c6edb6b09196b76ae26340f0c3",
      "parents": [
        "876c6f03f9b05b0268c8d3b2d47dfb1dbeb3807c",
        "30feb645f959d3e898292f4016c58e7ae5dec958"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Wed Jul 31 20:50:58 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jul 31 20:50:58 2019 +0000"
      },
      "message": "Merge changes I99d2faae,Ie98b7624\n\n* changes:\n  Enable traditional TLS accesses on arm64\n  Renumber arm64 TLS to match GNU values\n"
    },
    {
      "commit": "30feb645f959d3e898292f4016c58e7ae5dec958",
      "tree": "2483c36caa9596ea02fc9587783ebee1c00f5e68",
      "parents": [
        "6d601458de0b6485743bc23732f200d91b999537"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Tue Jul 30 17:30:08 2019 -0700"
      },
      "committer": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Tue Jul 30 20:55:54 2019 -0700"
      },
      "message": "Enable traditional TLS accesses on arm64\n\nHandle generic DTPMOD/DTPREL relocations on arm64. Expose __tls_get_addr.\n\nBug: http://b/123385182\nTest: manual -- compile code using arm64 gcc -mtls-dialect\u003dtrad\nChange-Id: I99d2faae35d1ebffc1be8de50b4a1f5e21b14348\n"
    },
    {
      "commit": "6d601458de0b6485743bc23732f200d91b999537",
      "tree": "20780394ee652a73c1e793a267b115af00cdf554",
      "parents": [
        "c16468b66178fd1e2ea9469298db05f5bf43b20b"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Tue Jul 30 16:30:46 2019 -0700"
      },
      "committer": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Tue Jul 30 16:30:46 2019 -0700"
      },
      "message": "Renumber arm64 TLS to match GNU values\n\nThe AArch64 ELF specification originally specified these relocations:\n\n  R_AARCH64_TLS_DTPREL64          1028\n  R_AARCH64_TLS_DTPMOD64          1029\n\nHowever, the GNU toolchain implemented them as:\n\n  R_AARCH64_TLS_DTPMOD64          1028\n  R_AARCH64_TLS_DTPREL64          1029\n\nThe AArch64 ELF specification has been updated to replace the relocations\nwith R_AARCH64_TLS_IMPDEF1 and with R_AARCH64_TLS_IMPDEF2, where each\nimplementation can choose which interpretation it implements, but with a\nsuggestion to follow the GNU behavior.\n\nAlso: remove the 64 suffixes from the TLS relocations. The newest version\nof the AArch64 ELF specification (version f) also omits the suffixes, as\ndo the glibc headers.\n\nBug: http://b/123385182\nBug: https://bugs.llvm.org/show_bug.cgi?id\u003d40507\nTest: build device, it boots\nChange-Id: Ie98b7624752982973f0ac969d646454a86784cab\n"
    },
    {
      "commit": "876c6f03f9b05b0268c8d3b2d47dfb1dbeb3807c",
      "tree": "79a9279b17e3d86fb51a08feac34d689815344b2",
      "parents": [
        "e7c3cb1dc72a7aabcabd45cec79cb6593c3be72a",
        "49c733cc49d245ebe72be6433a280fae8c41bb40"
      ],
      "author": {
        "name": "Pirama Arumuga Nainar",
        "email": "pirama@google.com",
        "time": "Tue Jul 30 05:08:18 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jul 30 05:08:18 2019 +0000"
      },
      "message": "Merge \"Fix clang header dependency for versioner\""
    },
    {
      "commit": "49c733cc49d245ebe72be6433a280fae8c41bb40",
      "tree": "2306002b6b213ad9e98e119f4fe9c356c90ef931",
      "parents": [
        "6b2532e19a76e9b809d2e52e677b1f2004159443"
      ],
      "author": {
        "name": "Pirama Arumuga Nainar",
        "email": "pirama@google.com",
        "time": "Thu Jul 25 21:16:33 2019 -0700"
      },
      "committer": {
        "name": "Pirama Arumuga Nainar",
        "email": "pirama@google.com",
        "time": "Mon Jul 29 15:44:46 2019 -0700"
      },
      "message": "Fix clang header dependency for versioner\n\nVersioner is now a prebuilt in prebuilts/clang-tools and that project\nhas the Clang headers packaged with it.  Use that dependency instead of\nexternal/clang/lib/Headers.  Use the linux-x86 path for both Linux and\nDarwin since they are both the same.\n\nTest: presubmit\nChange-Id: I01ad4c05fe3301a2fdad3662377f78694af6cd81\n"
    },
    {
      "commit": "03ff4365ec38c2a3c1009f94d49af963c7d82aee",
      "tree": "d659a3aa4e8006f98c9bcb136f79712e8f7fac66",
      "parents": [
        "c16468b66178fd1e2ea9469298db05f5bf43b20b"
      ],
      "author": {
        "name": "Vic Yang",
        "email": "victoryang@google.com",
        "time": "Mon Jun 24 16:11:37 2019 -0700"
      },
      "committer": {
        "name": "Vic Yang",
        "email": "victoryang@google.com",
        "time": "Mon Jul 29 13:26:33 2019 -0700"
      },
      "message": "Use the new sort_bss_symbols_by_size option for libc\n\nInstead of maintaining a symbol ordering file, using the new\nsort_bss_symbols_by_size property allows for symbol sorting at build\ntime.\n\nBug: 135754984\nTest: Build and check the resulting libc.so has its bss symbols sorted.\nChange-Id: I4a1cd6774dfe61b73f454bdf95b535db1f9fb1ac\n"
    },
    {
      "commit": "d5c0a508bc02da51899fde9f20f7b91fd6f9cb89",
      "tree": "4ae4e0b1340f3fe925a1c1df503ed041dc89b1c0",
      "parents": [
        "4f40d47a02c3c4ea2e2c7430473496ceffd3faec",
        "03cef383ba4be80992c12fae25dd1fd9be0ce2e0"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Wed Jul 24 20:46:32 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jul 24 20:46:32 2019 +0000"
      },
      "message": "Merge \"Name stack+tls VMAs with PR_SET_VMA_ANON_NAME\""
    },
    {
      "commit": "4f40d47a02c3c4ea2e2c7430473496ceffd3faec",
      "tree": "1e0d057b8da35434d712eae6899854a20abfa780",
      "parents": [
        "21f1d484bb5dcb9b89855afd3b02377c6e7344d8",
        "7b50f7d51e62d8a6e32704cdb36e087debccbccd"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jul 24 01:10:58 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jul 24 01:10:58 2019 +0000"
      },
      "message": "Merge \"Add missing nothrow attribute\""
    },
    {
      "commit": "7b50f7d51e62d8a6e32704cdb36e087debccbccd",
      "tree": "bc581b3cf0fb04f1b9844df58f6f9ade88c5bfb4",
      "parents": [
        "6b2532e19a76e9b809d2e52e677b1f2004159443"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Tue Jul 23 15:01:39 2019 -0700"
      },
      "committer": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Tue Jul 23 15:03:16 2019 -0700"
      },
      "message": "Add missing nothrow attribute\n\nThe upcoming compiler update emits warning about the missing nothrow\nattribute:\n\n  bionic/libc/bionic/jemalloc.h:33:5: error: \u0027je_mallctl\u0027 is missing exception specification \u0027__attribute__((nothrow))\u0027 [-Werror,-Wmissing-exception-spec]\n  int je_mallctl(const char *name, void *oldp, size_t *oldlenp, void *newp, size_t newlen);\n      ^\n                                                                                           __attribute__((nothrow))\n  external/jemalloc_new/include/jemalloc/jemalloc.h:230:38: note: previous declaration is here\n  JEMALLOC_EXPORT int JEMALLOC_NOTHROW    je_mallctl(const char *name,\n                                          ^\n  external/jemalloc_new/include/jemalloc/jemalloc_rename.h:12:22: note: expanded from macro \u0027je_mallctl\u0027\n  #  define je_mallctl je_mallctl\n\nTest: build with clang r365631\nBug: 131328001\nChange-Id: Ia8b6f47d38e5a003b6282f10724b65b1f971ba84\n"
    },
    {
      "commit": "6883b0807b46074f6fe231df9f2d5d597f83d2bb",
      "tree": "cfcbd3b6164bc44efcdbf75b0fa38081f544341e",
      "parents": [
        "6b2532e19a76e9b809d2e52e677b1f2004159443"
      ],
      "author": {
        "name": "Florian Mayer",
        "email": "fmayer@google.com",
        "time": "Mon Jul 22 13:54:32 2019 +0100"
      },
      "committer": {
        "name": "Florian Mayer",
        "email": "fmayer@google.com",
        "time": "Tue Jul 23 16:38:00 2019 +0100"
      },
      "message": "Reserve signal for java heap dumps.\n\nWe will put instrumentation in ART to write out Java heap memory\ninformation on receipt of this signal.\n\nBug: 136210868\nTest: Flash blueline-userdebug and boot\n\nChange-Id: I63173a4051c46b8569faaf3064e1db1dbd0ea3fe\n"
    },
    {
      "commit": "03cef383ba4be80992c12fae25dd1fd9be0ce2e0",
      "tree": "878b2d62e79384dd4fa822f44ab8091526f97f00",
      "parents": [
        "9cf76012aa5edc11050920ab1b65817c1be1a112"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Mon Jun 17 17:57:19 2019 -0700"
      },
      "committer": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Tue Jul 23 02:06:51 2019 +0000"
      },
      "message": "Name stack+tls VMAs with PR_SET_VMA_ANON_NAME\n\nBionic creates a single thread mapping to hold a thread\u0027s stack and static\nTLS memory. Use PR_SET_VMA_ANON_NAME to name this region\n\"stack_and_tls:tid\". dumpsys meminfo can report this region as \"Stack\"\nmemory.\n\nThe main thread\u0027s memory is instead named stack_and_tls:main, and the VMA\nis renamed to stack_and_tls:main in a post-fork child.\n\nFor the main thread, and threads using pthread_attr_setstack, Bionic still\ncreates the stack_and_tls mapping, but it only has TLS memory in it.\n\nBug: http://b/134795155\nTest: run \"dumpsys meminfo\" and verify that this CL increases the reported\n  stack memory usage from about 4MB to 21MB.\nChange-Id: Id1f39ff083329e83426130b4ef94222ffacb90ae\nMerged-In: Id1f39ff083329e83426130b4ef94222ffacb90ae\n"
    },
    {
      "commit": "6b2532e19a76e9b809d2e52e677b1f2004159443",
      "tree": "b1ecaf599a4ccc49fc7dbf3bb50cc8dc90db42cc",
      "parents": [
        "5a8482ef8f2a6304016d25f27a0f83e7ec43df52",
        "76e2b15ad42bba62b8f9ac98885e5465f866de11"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Fri Jul 19 18:01:06 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jul 19 18:01:06 2019 +0000"
      },
      "message": "Merge \"Change stdatomic.h check from defined(_USING_LIBCXX) to __has_include(\u003catomic\u003e)\""
    },
    {
      "commit": "5a8482ef8f2a6304016d25f27a0f83e7ec43df52",
      "tree": "96c37ea0436969037c8d71161b36a541f86252b9",
      "parents": [
        "91b0430a0812d81a0ffd571a18a8d2aa07508137",
        "777b34dcc3e1a13ddcff75ed533a740fd262a4a9"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Fri Jul 19 18:00:41 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jul 19 18:00:41 2019 +0000"
      },
      "message": "Merge \"Load /etc/{passwd,group} from all partitions\""
    },
    {
      "commit": "91b0430a0812d81a0ffd571a18a8d2aa07508137",
      "tree": "a4169a69315c7db5bdd5edbb23c5ee28e7ba2476",
      "parents": [
        "8b6d5d4ff78a90274fcf0a707bddf7311d1c3337",
        "6b5cb034e3c99b642707259aae5ec44d76bbc4bb"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Fri Jul 19 09:18:47 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jul 19 09:18:47 2019 +0000"
      },
      "message": "Merge \"Add bionic_libc_private_headers for use by art\""
    },
    {
      "commit": "9782b8707484addc0c90b641422e583e95ab7b35",
      "tree": "6c76c9f4832eae6764ee9425fc8f50bd19fa7c79",
      "parents": [
        "9cf76012aa5edc11050920ab1b65817c1be1a112"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Jul 18 13:36:50 2019 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Jul 18 21:11:22 2019 +0000"
      },
      "message": "Move to the libc++ demangler.\n\nBug: 136138882\n\nTest: Ran malloc debug tests.\nTest: Ran an app with backtrace_full and verified demangling working in\nTest: log file.\nTest: Enabled leak checking and verified that the logs include properly\nTest: demangled.\nChange-Id: Ic4fd9f1522451e867048ac1bea59d8c5ed0d3577\n"
    },
    {
      "commit": "76e2b15ad42bba62b8f9ac98885e5465f866de11",
      "tree": "2dc22703a65099f5a48a18e2d342cda5b89f1f74",
      "parents": [
        "9cf76012aa5edc11050920ab1b65817c1be1a112"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Thu Jul 18 13:15:47 2019 -0700"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Thu Jul 18 13:57:39 2019 -0700"
      },
      "message": "Change stdatomic.h check from defined(_USING_LIBCXX) to __has_include(\u003catomic\u003e)\n\nThe previous check was causing some problems with platform builds\nusing the NDK.  The new check is more accurate.\n\nMove the C definitions from stdatomic.h to bits/stdatomic.h since\nwith the new check, we no longer can use the #undef trick to test\nthem.\n\nTest: build platform NDK with stdatomic.h in pthread.h header\nTest: stdatomic bionic-unit-tests\nChange-Id: Ia0bc3cc8344f2ba4e6e55a52248fb6efee799d1d\n"
    },
    {
      "commit": "6b5cb034e3c99b642707259aae5ec44d76bbc4bb",
      "tree": "01d3aa0ea139ef7dad7fba8f647e122272b0f6c3",
      "parents": [
        "9cf76012aa5edc11050920ab1b65817c1be1a112"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Jul 18 14:36:26 2019 +0100"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Jul 18 14:48:44 2019 +0100"
      },
      "message": "Add bionic_libc_private_headers for use by art\n\nThis avoids art having a direct reference to bionic directories which\nwould prevent the bionic module from being unbundled from the runtime\nmodule.\n\nBug: 134379140\nTest: m droid\nChange-Id: I9545767b76341fd01166b675bdd156f620d4f262\n"
    },
    {
      "commit": "9cf76012aa5edc11050920ab1b65817c1be1a112",
      "tree": "a3b400079cf34ff50d9c1e7bff471d3c06ef68c6",
      "parents": [
        "09ecb00b861464b4a68e593852cd1cfd937e6b34",
        "40f69aefb2680905230c9edc46dc083d3a6c4ec1"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Jul 17 21:11:15 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jul 17 21:11:15 2019 +0000"
      },
      "message": "Merge \"Update notice\""
    },
    {
      "commit": "40f69aefb2680905230c9edc46dc083d3a6c4ec1",
      "tree": "6239bd2f757a6920564ccfe426e503a9d9aa355b",
      "parents": [
        "59cc0b314205c905645dbf75b57a1b944ca9673a"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Jul 17 10:49:51 2019 -0700"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Jul 17 10:56:16 2019 -0700"
      },
      "message": "Update notice\n\n4ed2f475d845948de7201e40271a4977a02c49ef added new items for NOTICE,\nbut didn\u0027t update the NOTICE file.\n\nTest: none\nChange-Id: I558271dc4520d9685dd164ba9f0b6db13d125014\n"
    },
    {
      "commit": "800c1a97079c22d0c0d5dd35168916a298e5cd86",
      "tree": "053b71b7b926464cc2d04b0dd397139d79394476",
      "parents": [
        "59cc0b314205c905645dbf75b57a1b944ca9673a"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Jul 17 10:45:18 2019 -0700"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Jul 17 10:46:47 2019 -0700"
      },
      "message": "Fix pthread_cond_clockwait() when cond is initialized with CLOCK_MONOTONIC\n\nA bit of over-reliance on implementing pthread_cond_clockwait() in\nterms of existing functions ended up with a bug that if the condition\nvariable was initialized to use CLOCK_MONOTONIC, then\npthread_cond_clockwait() would do the wrong thing.\n\nThis change corrects that and adds a test for this case.\n\nTest: new and existing tests pthread_cond unit tests\nChange-Id: I708d5dfbef95a67678db56dceda011f2f8fd1c5c\n"
    },
    {
      "commit": "59cc0b314205c905645dbf75b57a1b944ca9673a",
      "tree": "ae9f4dbc228a05e4793ea01c9b5d4cfff4610c64",
      "parents": [
        "f99fc25482112b891a436f221ee310f0da31d70d",
        "45f0a3b64249ad296b09e7ba123fb921fc8e62da"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jul 17 01:03:48 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jul 17 01:03:48 2019 +0000"
      },
      "message": "Merge \"Clear pointer tags as required for HWASAN for globals.\""
    },
    {
      "commit": "3975431aba96b2d3ccf52098c6392ab4627e69bd",
      "tree": "8f47863ffe57450e81dab82d3cb0e140aa6b096b",
      "parents": [
        "7e958d0ce0b4acb3c34b84a13b14bfbe6b11d410",
        "4ed2f475d845948de7201e40271a4977a02c49ef"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 16 23:00:24 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jul 16 23:00:24 2019 +0000"
      },
      "message": "Merge \"Add avx2 version of wmemset in binoic\""
    },
    {
      "commit": "45f0a3b64249ad296b09e7ba123fb921fc8e62da",
      "tree": "e51366660b603fda4f6ccc0b041ee27b0c8da649",
      "parents": [
        "7e958d0ce0b4acb3c34b84a13b14bfbe6b11d410"
      ],
      "author": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Tue Jul 16 11:18:07 2019 -0700"
      },
      "committer": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Tue Jul 16 13:38:38 2019 -0700"
      },
      "message": "Clear pointer tags as required for HWASAN for globals.\n\nA future version of HWASAN will set pointer tags when taking the address of\na global. This means that we need to untag pointers in a couple of cases\nwhere potential global pointers are passed to an interface that expects\nuntagged pointers:\n\n- The WriteProtected class, whose only instances are globals, passes its\n  own address to mprotect. However, our device kernels do not currently\n  untag pointers passed to mprotect (the proposed upstream kernel patches\n  do, however, untag these pointers), so once HWASAN starts tagging global\n  pointers, this will start failing.\n- The shadow_load function loads from a shadow that corresponds to the\n  address space bounds of loaded binaries. Since these address space\n  bounds are untagged, the pointer needs to be untagged to match.\n\nTest: boots\nChange-Id: I3f11ce6eb7261752e5ff6d039d04dd45516b236f\n"
    },
    {
      "commit": "4ed2f475d845948de7201e40271a4977a02c49ef",
      "tree": "cd416a37c71f1a539a8185f2cfce5750896d53fb",
      "parents": [
        "cfede4fdd1f98549a933c48622d6866c0afeaae6"
      ],
      "author": {
        "name": "Shalini Salomi Bodapati",
        "email": "shalini.salomi.bodapati@intel.com",
        "time": "Thu Jun 13 09:54:08 2019 +0530"
      },
      "committer": {
        "name": "Shalini Salomi Bodapati",
        "email": "shalini.salomi.bodapati@intel.com",
        "time": "Tue Jul 16 18:06:57 2019 +0530"
      },
      "message": "Add avx2 version of wmemset in binoic\n\nTest: ./tests/run-on-host.sh 64\nChange-Id: Id2f696cc60a10c01846ca3fe0d3a5d513020afe3\nSigned-off-by: Shalini Salomi Bodapati \u003cshalini.salomi.bodapati@intel.com\u003e\n"
    },
    {
      "commit": "69010802d037dbc10377416bd9cc696fa34b9384",
      "tree": "cfe3d6b0d956daf3e68ee542bb8d855604d433c7",
      "parents": [
        "c80af7f146df928dadee254467d6f0fc4401585f"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Tue May 07 20:33:05 2019 -0700"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Mon Jul 15 09:06:19 2019 -0700"
      },
      "message": "Implement new clock wait functions\n\npthread_cond_clockwait\npthread_mutex_clocklock\npthread_rwlock_clockrdlock\npthread_rwlock_clockwrlock\nsem_clockwait\n\nBug: 35756266\nTest: new unit tests\nChange-Id: I71bd25eeec6476134b368d5bdf2f729d0bba595e\n"
    },
    {
      "commit": "c80af7f146df928dadee254467d6f0fc4401585f",
      "tree": "3f4b564bf22f66f656dc60010fb05a2ab6d23f7f",
      "parents": [
        "34d11e52af5e7809418977d9f22d3aa2fb1c2d16",
        "33e079900d51475c4ea70c8a1b2a0a01a1bce88d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jul 12 16:25:17 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jul 12 16:25:17 2019 +0000"
      },
      "message": "Merge \"Explicitly add open/stat64 to the seccomp common whitelist.\""
    },
    {
      "commit": "34d11e52af5e7809418977d9f22d3aa2fb1c2d16",
      "tree": "7aedaff8c3e614af784a98a87d8d2cd206d95b45",
      "parents": [
        "7d961a16e9f86c2d91ae48c6ba8093ed97a88656",
        "e1d121bef66565ea970872c326634eb7f7eb7acb"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jul 11 23:39:38 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 11 23:39:38 2019 +0000"
      },
      "message": "Merge \"Avoid calling snprintf in bionic_trace_begin.\""
    },
    {
      "commit": "33e079900d51475c4ea70c8a1b2a0a01a1bce88d",
      "tree": "484f7528ebee1d5575b40b4f32a42a4e7cc609cf",
      "parents": [
        "7d10422499a323874084dbed969418db436fd771"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jul 11 14:59:12 2019 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jul 11 14:59:12 2019 -0700"
      },
      "message": "Explicitly add open/stat64 to the seccomp common whitelist.\n\nThey\u0027re used by 32-bit sanitizers. We used to get these for free (as the\ncomment says), but the place we got them from changed. Just be explicit.\n\nLonger-term we should fix how we build the sanitizers to only use the\ncanonical system calls, like they already do for arm64.\n\nBug: https://issuetracker.google.com/136777266\nTest: builds\nChange-Id: If80a8d47aa345aaaa8bed32b44f020e06e504d49\n"
    },
    {
      "commit": "e1d121bef66565ea970872c326634eb7f7eb7acb",
      "tree": "2ea3900a513d535b2eb8b6fa0af6c2371c5ba9e1",
      "parents": [
        "7b85fb0d393c3119501779176b532b37182b0584"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Jul 11 13:00:26 2019 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Jul 11 13:00:26 2019 -0700"
      },
      "message": "Avoid calling snprintf in bionic_trace_begin.\n\nsnprintf always calls free (on a null pointer) in its epilogue, which\nresults in infinite recursion if free calls a function that calls\nbionic_trace_begin (e.g. when perfetto attempts to lock a mutex in\nRecordFree).\n\nBug: http://b/137284735\nTest: treehugger\nChange-Id: I51c5b32e8f4e394be4602e06c7b94797df73c37b\n"
    },
    {
      "commit": "777b34dcc3e1a13ddcff75ed533a740fd262a4a9",
      "tree": "446292463b481d20f44b5878a2cc342f88202fbc",
      "parents": [
        "78977053a715113c9a0d0d7f44193025e4c1312e"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Sun Feb 17 09:38:23 2019 -0800"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Thu Jul 11 10:31:02 2019 -0700"
      },
      "message": "Load /etc/{passwd,group} from all partitions\n\nNote that unlike the oem_ range that is used for the vendor\npartitions, we do not create oem_\u003cn\u003e entries for these new reserved\nranges; they will only appear in getpwent()/getgrent() if there is an\nentry in the corresponding passwd/group file.\n\nBug: 73062966\nTest: can load AIDs from partitions other than vendor\nTest: bionic-unit-tests\nChange-Id: Ifcbbf202894adff948eaaba2a59e25c993611140\n"
    },
    {
      "commit": "78977053a715113c9a0d0d7f44193025e4c1312e",
      "tree": "17770292e36247e01052bcc7876b50b352f6e38e",
      "parents": [
        "7d10422499a323874084dbed969418db436fd771",
        "aeddbcfb2cbd118b5f97c0e586bcf19862ad5247"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Jul 09 17:16:53 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jul 09 17:16:53 2019 +0000"
      },
      "message": "Merge \"Update to kernel headers v5.2.\""
    },
    {
      "commit": "3d0bafb945bc9e39ddc84a0167e713b8e70dc135",
      "tree": "9a5a3fa2e79b7220dc7203d908002970e8eb7455",
      "parents": [
        "7b85fb0d393c3119501779176b532b37182b0584"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Jul 08 14:54:58 2019 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Jul 08 15:15:01 2019 -0700"
      },
      "message": "Do not check tcache clear when doing a purge.\n\nOn systems where the tcache is disabled, the tcache clear option will\nfail, and not really do a purge.\n\nBug: 137037462\nBug: 136236080\n\nTest: Built taimen as malloc svelte and verified the M_PURGE mallopt\nTest: call failed before this fix and passes afterwards.\nChange-Id: Ib30e5f3e083a9c6d046adff30f2aa7eacaf6df10\n"
    },
    {
      "commit": "aeddbcfb2cbd118b5f97c0e586bcf19862ad5247",
      "tree": "3d6892bde9527578ed8cd3a6eabb539ffed7dd4b",
      "parents": [
        "7b85fb0d393c3119501779176b532b37182b0584"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Jul 08 12:45:46 2019 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Jul 08 13:54:11 2019 -0700"
      },
      "message": "Update to kernel headers v5.2.\n\nTest: Booted a taimen, ran unit bionic unit tests.\nChange-Id: I3522c59793bbcef98ea515996a481d92f14b8816\n"
    },
    {
      "commit": "b2bd7c575eaa91e35ff40450bb4c514a2088a5d7",
      "tree": "5fb50cf4d67d37debd5af8b9bcfae58889ec7f9e",
      "parents": [
        "05407d81f8a1ecb2ee3b9dd9f487664906b076c4",
        "5c6a3f9fbc7fda25cd0cd647cb891a5cfa2dc513"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jun 24 15:04:25 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jun 24 15:04:25 2019 +0000"
      },
      "message": "Merge \"libnetd_client: support hooking sendto/sendmsg/sendmmsg too.\""
    },
    {
      "commit": "36bc9227725cf8cc7c4a4dc9e6d2f6ff091d949c",
      "tree": "88662bb0785efe4a1891ba96afdfcd605924dbdc",
      "parents": [
        "b42a488512422740df1d33157b59759076d7825d",
        "261b7f4867f623f3f31609e7574411df43c409e2"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Fri Jun 21 00:18:44 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 21 00:18:44 2019 +0000"
      },
      "message": "Merge changes I33957ad4,I02f8f87d,Iba04e486\n\n* changes:\n  fortify: replace bzero/bcmp defines\n  fortify: add __mempcpy_chk\n  fortify: fix overflow checks in unistd\n"
    },
    {
      "commit": "261b7f4867f623f3f31609e7574411df43c409e2",
      "tree": "8eeaa7fbbcf467c6bf7f5ce4e595faeb54946beb",
      "parents": [
        "849c0b9f51b65da9f3ac7a3222da9ae00893acfd"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Mon Jun 10 16:32:07 2019 -0700"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Thu Jun 20 13:05:23 2019 -0700"
      },
      "message": "fortify: replace bzero/bcmp defines\n\n__builtin_*_chk will emit warnings when things are trivially broken.\nEmitting errors instead is probably better (and we can be a bit smarter\nabout how we emit code for trivially safe cases.)\n\nBug: 131861088\nTest: checkbuild + bionic-unit-tests on blueline\nChange-Id: I33957ad419922d0760304758ecb9bc8ad33e0b64\n"
    },
    {
      "commit": "3bdeae781fe313cbc89303e171b23eda9c45e952",
      "tree": "139b62cbec32eddb39d235f253cdd89d8f4f429b",
      "parents": [
        "b8b79b75ef6f2814a7f22f37b0924d292c404c0a",
        "26d25a22e27fff4c23669d0dd66e3a09d869857d"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Thu Jun 20 17:20:52 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jun 20 17:20:52 2019 +0000"
      },
      "message": "Merge changes I557309b3,If5f47e0e\n\n* changes:\n  fortify: add even more warnings\n  fortify: fix up a few diagnostics; add __wur to realpath\n"
    },
    {
      "commit": "5c6a3f9fbc7fda25cd0cd647cb891a5cfa2dc513",
      "tree": "d97844a5cecb7dce7534dceee796bbc1259f4b21",
      "parents": [
        "9894ec459637c5c805b8e03d0a0a7f3ff5d6c1d3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jun 13 14:24:45 2019 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jun 20 08:32:24 2019 -0700"
      },
      "message": "libnetd_client: support hooking sendto/sendmsg/sendmmsg too.\n\nSamsung has asked for this for KNOX.\n\nTest: treehugger\nChange-Id: Iffaace9f8cb265ce8c911472989c9829cbf91a42\n"
    },
    {
      "commit": "50080a29f7327fcd009344844bb9e643b2d6b9c3",
      "tree": "41756be57e12ffe374147c12b954cfe01b44140c",
      "parents": [
        "745137c827f6e593ddf1c01783ca41a676ddd172"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jun 19 12:47:53 2019 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jun 19 15:38:42 2019 -0700"
      },
      "message": "Remove the ___ hack.\n\nPlain __ for generated syscalls didn\u0027t mean it was a hidden symbol, it\njust meant \"please don\u0027t use this\". We added ___ to signify that a\nhidden symbol should be generated, but then we added the map files\nanyway so you now have to explicitly export symbols. Given that, this\nconvention serves no particular purpose so we may as well just use the\nnicer names have everything look the same.\n\nTest: treehugger\nChange-Id: If424e17a49c36f4be545f5d283c4561a6ea9c7ea\n"
    },
    {
      "commit": "745137c827f6e593ddf1c01783ca41a676ddd172",
      "tree": "aedeee9ea7b28e0dc2a27fd546872f3e8deb8dc3",
      "parents": [
        "1b297b9e5a939e0e8b8d9906e481afcaad640f46",
        "323431bc274046ca77c020019916009c22e0cd00"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Jun 18 20:10:01 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jun 18 20:10:01 2019 +0000"
      },
      "message": "Merge \"Fix overflow check in malloc_limit\""
    },
    {
      "commit": "323431bc274046ca77c020019916009c22e0cd00",
      "tree": "486ed76d2ac2ef625e6fd872e2752816872594f1",
      "parents": [
        "5c0d6677ee2015620fbe8f24f0f016c7c13b5cc7"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Jun 13 12:24:40 2019 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Jun 18 10:15:28 2019 -0700"
      },
      "message": "Fix overflow check in malloc_limit\n\nBug: 135201859\n\nChange-Id: I78dcc497cb100ab1d5f4144e2774437891719ca3\n"
    },
    {
      "commit": "849c0b9f51b65da9f3ac7a3222da9ae00893acfd",
      "tree": "1b118a1406ebeddc7786d35a4f06ebfa5b38b42e",
      "parents": [
        "74519e7aa58a19c0ed352b660f2e732148ae2f8a"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Mon Jun 10 16:22:09 2019 -0700"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Thu Jun 13 23:29:37 2019 -0700"
      },
      "message": "fortify: add __mempcpy_chk\n\nBug: 131861088\nTest: mma + bionic-unit-tests on blueline\nChange-Id: I02f8f87d5db0ba5fecec410da32f6ffa2c98ef57\n"
    },
    {
      "commit": "26d25a22e27fff4c23669d0dd66e3a09d869857d",
      "tree": "011652aa9deaa56d906ec40c46046af980443883",
      "parents": [
        "8c0ec114c58a76efcc1c195a03a36675b0967e39"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Thu Jun 06 17:45:05 2019 -0700"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Thu Jun 13 23:26:02 2019 -0700"
      },
      "message": "fortify: add even more warnings\n\nBug: 131861088\nTest: mma\nChange-Id: I557309b3e25b54321ee1fe0207f18b6e840bf76e\n"
    },
    {
      "commit": "2356c93d391c1948b3abb7602da3d97bd8b289f2",
      "tree": "a490fc205ecbbd2f21b93f0102a806ccc1a075de",
      "parents": [
        "77f99aaf58b944b23f2cfb38fce08a98feabe93f"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Thu Jun 06 17:18:13 2019 -0700"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Thu Jun 13 23:26:02 2019 -0700"
      },
      "message": "fortify: add bit checking for open(at)?64 functions\n\nThis also adds _2-variants for these functions, for extra glorious\nchecking\n\nBug: 131861088\nTest: mma\nChange-Id: I80475ff4bb220c0c47894e9532426f53412f176f\n"
    },
    {
      "commit": "74519e7aa58a19c0ed352b660f2e732148ae2f8a",
      "tree": "453ed154af17c6a52f33c86f4835c02cbc8bc437",
      "parents": [
        "26d25a22e27fff4c23669d0dd66e3a09d869857d"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Thu Jun 06 17:54:00 2019 -0700"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Thu Jun 13 23:26:02 2019 -0700"
      },
      "message": "fortify: fix overflow checks in unistd\n\nWe should only be calling _real versions of the functions that use this\nif the input size is verifiably \u003c\u003d SSIZE_MAX. Otherwise, just fall\nthrough to _chk and let that handle it.\n\nBug: 131861088\nTest: mma \u0026\u0026 bionic-unit-tests\nChange-Id: Iba04e486ef91ea1b3539ab6df6260429264e66b4\n"
    },
    {
      "commit": "8c0ec114c58a76efcc1c195a03a36675b0967e39",
      "tree": "4af082b223bc257266533c0bee0a6ceb4a68b2cf",
      "parents": [
        "2356c93d391c1948b3abb7602da3d97bd8b289f2"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Thu Jun 06 17:23:32 2019 -0700"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Thu Jun 13 23:26:02 2019 -0700"
      },
      "message": "fortify: fix up a few diagnostics; add __wur to realpath\n\nAs it says on the box.\n\nSince realpath isn\u0027t a function definition, any attributes it provides\nhere just add to the \"regular\" realpath.\n\n__wur is being added to realpath because it returns NULL on failure, and\nthe contents of the input buffer are undefined in that case. A blueline\ncheckbuild showed 0 complaints about this new __wur, so it seems\nharmless to add.\n\nBug: 131861088\nTest: mma\nChange-Id: If5f47e0e290d86df69c0888711e29775c390fca4\n"
    },
    {
      "commit": "77f99aaf58b944b23f2cfb38fce08a98feabe93f",
      "tree": "ddcadad346c394fa7d1d7b15d488e988e5feaaf0",
      "parents": [
        "1eb5976d7505f299754040e19792a0de94abccbc"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Thu Jun 06 14:14:52 2019 -0700"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Thu Jun 13 23:26:02 2019 -0700"
      },
      "message": "fortify: add diagnostics for str* functions\n\nThis CL allows us to diagnose string functions that get an explicit size\npassed into them, and string functions that are trivially misused.\n\nBug: 131861088\nTest: mma\nChange-Id: I894aec99420a75c6474cfd7d5010f0cf2f10ab21\n"
    },
    {
      "commit": "41636ca1ac511e0c478017e5812511aa518bca58",
      "tree": "5cb686b3291a041a18b0c5518cffeff50e6e9625",
      "parents": [
        "1069236349eb7a730fcc4aebd14a579cfe49f661"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Mon Jun 10 12:20:21 2019 +0100"
      },
      "committer": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Mon Jun 10 15:09:15 2019 +0100"
      },
      "message": "Remove bionic refs to runtime module tz files\n\nThe tzdata file is being removed from the runtime mainline module\nin an upcoming commit. This commit removes the bionic references\nto it.\n\nThis commit also contains general comment tidy-ups.\n\nBug: 132168458\nTest: build only\nChange-Id: I83cd9ff756b36e1d1222b7830f97c8bde2885ce4\n"
    },
    {
      "commit": "738a6c92e5f0d13b83697b1b610e4e884b8b8487",
      "tree": "0f6e4d113252cd30c3b6aa6bd3973e8cd8e4eae3",
      "parents": [
        "400b073ee38ecc2a38234261b221e3a7afc0498e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jun 06 09:56:06 2019 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jun 06 09:57:54 2019 -0700"
      },
      "message": "\u003carpa/nameser.h\u003e: fix INTRODUCED_IN API level.\n\nHistorical research (see bug) suggests that these functions were all in\n22. The map file believed this with one (presumably typoed) exception,\nbut the header file didn\u0027t match the map file. It looks like the map was\ncorrect (modulo the one typo), so fix up all the disagreement.\n\nBug: http://b/113618851\nTest: treehugger\nChange-Id: Ia579f4e6163206abfac79aa54dc98c792f00ee86\n"
    },
    {
      "commit": "6cfd9a10711e1c1719af4ad358f891b2e794d56e",
      "tree": "a13c69f67f469df512798e019099c18614a27c4b",
      "parents": [
        "94a68e1274812f2661591ac18e7cb1e969a66fef",
        "cd3155dd1798bea110a7d96fcd8ea174f1c38d14"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Wed Jun 05 00:58:35 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jun 05 00:58:35 2019 +0000"
      },
      "message": "Merge \"Clean up no_libgcc\""
    },
    {
      "commit": "1b61d78fc158fa127e3c2ed714bdf818dc3cc343",
      "tree": "8269949795bd573b5d8728dabedda02ce361c6b3",
      "parents": [
        "44c29535cc472108f98e03575aa902bbe4ccee05"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jun 04 10:38:34 2019 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jun 04 10:38:34 2019 -0700"
      },
      "message": "Build 32-bit ARM assembler with -mno-restrict-it.\n\nWe\u0027re not going to change this code, ARM\u0027s not going to break it.\nSilence the warnings.\n\nBug: http://b/114120867\nTest: treehugger\nChange-Id: Ie25ef44706c952efc5d54012391bee19af095818\n"
    },
    {
      "commit": "cd3155dd1798bea110a7d96fcd8ea174f1c38d14",
      "tree": "c1aa04bb83cc64d69a8e49cdf11cf849e766f8c2",
      "parents": [
        "44c29535cc472108f98e03575aa902bbe4ccee05"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Sun Jun 02 11:41:15 2019 -0700"
      },
      "committer": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Mon Jun 03 16:04:01 2019 -0700"
      },
      "message": "Clean up no_libgcc\n\nThis property is getting removed.\n\nTest: build\nChange-Id: Ib7b8cb189b21b55da6305f6644b0b029b41e8e4b\n"
    },
    {
      "commit": "44c29535cc472108f98e03575aa902bbe4ccee05",
      "tree": "c5c58d8207e07b6f3dc89471e9da775f3385a184",
      "parents": [
        "f6bac5944703765a4c46243b0fcf4a6e3b151b53",
        "dfde0eeee169f4a7e28f91e6f0d2902cc6d9ecc0"
      ],
      "author": {
        "name": "Mitch Phillips",
        "email": "mitchp@google.com",
        "time": "Thu May 30 22:24:06 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu May 30 22:24:06 2019 +0000"
      },
      "message": "Merge \"Change SANITIZE_TARGET refs from \u0027coverage\u0027 to \u0027fuzzer\u0027.\""
    },
    {
      "commit": "dfde0eeee169f4a7e28f91e6f0d2902cc6d9ecc0",
      "tree": "49ec307ef79ee3641dd10ac811dba5f7fa127a64",
      "parents": [
        "cfede4fdd1f98549a933c48622d6866c0afeaae6"
      ],
      "author": {
        "name": "Mitch Phillips",
        "email": "mitchp@google.com",
        "time": "Wed May 01 14:26:13 2019 -0700"
      },
      "committer": {
        "name": "Mitch Phillips",
        "email": "mitchp@google.com",
        "time": "Thu May 30 16:49:13 2019 +0000"
      },
      "message": "Change SANITIZE_TARGET refs from \u0027coverage\u0027 to \u0027fuzzer\u0027.\n\nCleanup of references to \u0027coverage\u0027 in build files. Part of a larger\ncleanup to make fuzzing work again in the Android build tree.\n\nAlso fixed a test issue with emulated TLS with the new changes, and\nremoved libc.so fuzzer support until a linked bug is fixed\n(b/132640749).\n\nBug: 121042685\nTest: With all patches in the bug merged: mmma bionic\nChange-Id: I592352fe9210ff811a2660a88cbbfe48d70a1e57\nMerged-In: I592352fe9210ff811a2660a88cbbfe48d70a1e57\n"
    },
    {
      "commit": "6b116d1bbff7a422557886484db54d705a26d2e8",
      "tree": "f90012c32573c71d7e1e181baa1ba14f3fb2cad3",
      "parents": [
        "c3c492965995a2bd5cfe12846f5038c4d7d2c91e"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Thu Apr 25 10:34:07 2019 -0700"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed May 29 15:54:50 2019 -0700"
      },
      "message": "Make \u0027app\u0027 users/groups more accurate\n\nIn an attempt to make bionic\u0027s reporting of users and groups more\naccurate, this change makes the user / group functions do the\nfollowing:\n\n1) Fail to query a uid/gid for a secondary user when the uid/gid\n   doesn\u0027t exist.  Currently bionic would return successfully but with\n   a empty string for the name.\n2) Fail to query a platform uid/gid, except a limited pre-allocated\n   set for a secondary user, as these are not used by second users.\n3) Fail to query uids for all users for the GID-only app ranges:\n   CACHE_GID, EXT_GID, EXT_CACHE_GID, SHARED_GID.\n4) Fail to query gids in SHARED_GID range for secondary users, as\n   these GIDs are only allocated for the first user.\n5) Use \"u#_a#_ext\" and u#_a#_ext_cache\" for EXT_GID and EXT_CACHE_GID\n   ranges.  This both allows querying based on these names and\n   returning these names for the appropriate uids/gids.\n\nThis also consolidates the tests for better readability.\n\nTest: these unit tests, boot\n\nChange-Id: I59a1af0792e7806d423439582e56ce7f9f801c94\n"
    },
    {
      "commit": "9fc9509b52d3c82de4379ccecab80f0fabef485e",
      "tree": "e1aa3774e116573119369640e6882631721f78da",
      "parents": [
        "fc5535074d29dc41fc59fdd4c0283752cf83c9e8"
      ],
      "author": {
        "name": "Florian Mayer",
        "email": "fmayer@google.com",
        "time": "Wed May 29 10:31:17 2019 +0100"
      },
      "committer": {
        "name": "Florian Mayer",
        "email": "fmayer@google.com",
        "time": "Wed May 29 10:31:17 2019 +0100"
      },
      "message": "Log when trying to profile non profilable app.\n\nChange-Id: I91b489d3ff78ab7153ae1a7854ae448e87a6e8da"
    },
    {
      "commit": "fc5535074d29dc41fc59fdd4c0283752cf83c9e8",
      "tree": "21805fd9bec5562a45f868fe83711385767c1354",
      "parents": [
        "cfede4fdd1f98549a933c48622d6866c0afeaae6",
        "cc9b100e97ec6b9c7268c465d8e4ab5ab4be9c5f"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Tue May 28 23:34:11 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 28 23:34:11 2019 +0000"
      },
      "message": "Merge \"Overalign the TLS segment using crtbegin\""
    },
    {
      "commit": "cfede4fdd1f98549a933c48622d6866c0afeaae6",
      "tree": "b1267525c6c1cc922af54b16053ec52d04e67603",
      "parents": [
        "497d7169d47f47a62e01f2bc85755a364645117d",
        "c03d5964d00e381c654f79713a7a0ccff262f9ce"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri May 24 06:48:27 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri May 24 06:48:27 2019 +0000"
      },
      "message": "Merge changes Ic2d48c93,I981ac9bd\n\n* changes:\n  fortify: s/([gl])eq/\\1e/g\n  fortify: more use of __builtin_constant_p\n"
    },
    {
      "commit": "497d7169d47f47a62e01f2bc85755a364645117d",
      "tree": "c040ded19a9f66174b8110a21e7ee244a87e2345",
      "parents": [
        "30d4c6fb06b343d591e85a16345bf6b927420ea1",
        "705de3c6398d53b780d731008bafc3c2dafbbf85"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri May 24 05:44:56 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri May 24 05:44:56 2019 +0000"
      },
      "message": "Merge \"Disable malloc debug when asan enabled.\""
    },
    {
      "commit": "30d4c6fb06b343d591e85a16345bf6b927420ea1",
      "tree": "90927d1bbd57bd720a5f0191bd6443324a26a1c1",
      "parents": [
        "c2e2ebda5a799595d4139a3ef1780cceccb042f7",
        "a1a09b211ec2f931d119937ca574d4befe2e303f"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri May 24 02:29:06 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri May 24 02:29:06 2019 +0000"
      },
      "message": "Merge \"fortify: use __builtin_constant_p for more short-circuits\""
    },
    {
      "commit": "a743f31981d3f5b8fa3025c52896586d7cb91817",
      "tree": "2be90de10dd3acfee17503b3615a7142bb696b06",
      "parents": [
        "32e8d4fa718d748aa6bea82ad00a57ba99b54f30",
        "5da5dd5215b1dc2e12e0908a1c74fe0b7672835d"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Fri May 24 00:43:26 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri May 24 00:43:26 2019 +0000"
      },
      "message": "Merge \"fortify: Migrate trivial cases to dynamic check macros\""
    },
    {
      "commit": "c03d5964d00e381c654f79713a7a0ccff262f9ce",
      "tree": "cfc2581b8946d24c1d3dcfe89e3247f8151424df",
      "parents": [
        "d9865e7734d1d3465795aaf4529c96f4237e856f"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Thu May 23 15:22:01 2019 -0700"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Thu May 23 15:22:01 2019 -0700"
      },
      "message": "fortify: s/([gl])eq/\\1e/g\n\nFollow-up from review comments in\nhttps://android-review.googlesource.com/c/platform/bionic/+/961600\n\nBug: 131861088\nTest: mma\nChange-Id: Ic2d48c935ced3c7e875923810f4e9970e7439e51\n"
    },
    {
      "commit": "d9865e7734d1d3465795aaf4529c96f4237e856f",
      "tree": "a448e41d2a75381be89a9688d5212351a4b66b4c",
      "parents": [
        "a1a09b211ec2f931d119937ca574d4befe2e303f"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Mon May 13 17:20:04 2019 -0700"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Thu May 23 15:01:55 2019 -0700"
      },
      "message": "fortify: more use of __builtin_constant_p\n\nThis converts all of stdio to short-circuit _chk functions in trivially\nsafe cases.\n\nBug: 131861088\nTest: checkbuild on internal master. blueline bionic tests pass + it\n      boots.\nChange-Id: I981ac9bd19112492d5a47dc5277526426b9af710\n"
    },
    {
      "commit": "a1a09b211ec2f931d119937ca574d4befe2e303f",
      "tree": "3f88fa5b1ec886051e1fbeee5616782b224e985e",
      "parents": [
        "5da5dd5215b1dc2e12e0908a1c74fe0b7672835d"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Mon May 13 17:16:20 2019 -0700"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Thu May 23 15:01:54 2019 -0700"
      },
      "message": "fortify: use __builtin_constant_p for more short-circuits\n\nThis also lets us retire our |__enable_if| version of |strlen|, which\nshould catch strictly fewer cases where we can fold the string\u0027s length\nto a constant than |__builtin_constant_p| inside of |strlen|.\n\nBug: 131861088\nTest: checkbuild on internal master. blueline bionic tests pass + it\n      boots.\nChange-Id: I21b750a24f7d1825591a88d12a385be03a0a7ca3\n"
    },
    {
      "commit": "cc9b100e97ec6b9c7268c465d8e4ab5ab4be9c5f",
      "tree": "85dc96054ea9f86358a62cd55f320a82056d0b8b",
      "parents": [
        "933bd3ae66de82bc0a9d2b985e058295c08065f9"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Tue May 21 15:38:20 2019 -0700"
      },
      "committer": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Thu May 23 14:21:55 2019 -0700"
      },
      "message": "Overalign the TLS segment using crtbegin\n\nAndroid\u0027s current lld build has a hack that overaligns TLS segments, but\nit broke glibc when it produced TLS segments where (p_vaddr % p_align) was\nnon-zero. Move the hack into Bionic\u0027s crtbegin instead. It will emit a\n0-sized, 64-byte alignment TLS segment into executables that don\u0027t use\nTLS, but that should be harmless.\n\nThis variant of the hack is compatible with the gold and lld linkers. The\nld.bfd linker will optimize the .tdata output section out if its size is\nzero, preventing the overalignment in an executable that only has .tbss\nsections. This problem could be fixed by adding a \". \u003d .;\" statement\ninside .tdata in ld.bfd\u0027s linker script.\n\nSee discussion on https://reviews.llvm.org/D61824.\n\nBug: https://bugs.llvm.org/show_bug.cgi?id\u003d41527\nTest: bionic unit tests, boot a device\nChange-Id: I34df8b5594b6518d4590e4861e3d0b74d6fa754e\n"
    },
    {
      "commit": "32e8d4fa718d748aa6bea82ad00a57ba99b54f30",
      "tree": "54eeddd80dd1eb6f30e7ee36bd2b1cc4cac55794",
      "parents": [
        "b07c1973d1dbf20a24685e9ff9e1598b371b8159",
        "ff7179350a1023bdef62ee34ae061804f5fc0353"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu May 23 21:17:31 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu May 23 21:17:31 2019 +0000"
      },
      "message": "Merge \"fortify: inline #defined strings\""
    },
    {
      "commit": "b07c1973d1dbf20a24685e9ff9e1598b371b8159",
      "tree": "5c1f3bb836ac27f91ba22816a1f371429d4fed61",
      "parents": [
        "0c0afe17e9260be4c8093d18a2ab5c79635bad6f",
        "5273dc588a39579b7b48baa38323994d9b12c49a"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu May 23 21:17:22 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu May 23 21:17:22 2019 +0000"
      },
      "message": "Merge \"fortify: use a macro in diagnose_if\""
    },
    {
      "commit": "5da5dd5215b1dc2e12e0908a1c74fe0b7672835d",
      "tree": "2ae61ffd9c9baf2d89c28bcc544e13a83394e07c",
      "parents": [
        "ff7179350a1023bdef62ee34ae061804f5fc0353"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Thu May 09 14:32:43 2019 -0700"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Thu May 23 13:39:04 2019 -0700"
      },
      "message": "fortify: Migrate trivial cases to dynamic check macros\n\n|__builtin_constant_p| has become more flexible in clang. In particular,\nit\u0027s no longer forcibly lowered before inlining, so we can actually use\nit on function parameters (or |__bos(param)|).\n\nThis CL tweaks things so that trivially safe calls to FORTIFY\u0027ed\nfunctions compile into direct calls to those functions, rather than to\ntheir _chk counterparts. This will be the most impactful with things\nlike |memset|, |memcpy|, etc., since clang has way more flexibility\nabout how to lower those than it does with |__memset_chk|,\n|__memcpy_chk|, ...\n\nAs noted in the comments, the spelling of the new macros is meant to\nmatch closely with the spelling of our |__bos_static| macros used in\n|diagnose_if|.\n\nThis isn\u0027t a full cleanup of all of the cases in which we can do this.\nJust a start on the super simple cases.\n\nBug: 131861088\nTest: m checkbuild; blueline boots.\n\nChange-Id: I696f42ce4a65231e0c4a78a4c5133a6be1cb7708\n"
    },
    {
      "commit": "ff7179350a1023bdef62ee34ae061804f5fc0353",
      "tree": "3cc3d597326c8f73216c78e2946d6aa54601123f",
      "parents": [
        "5273dc588a39579b7b48baa38323994d9b12c49a"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Thu May 09 13:54:22 2019 -0700"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Thu May 23 13:38:09 2019 -0700"
      },
      "message": "fortify: inline #defined strings\n\nThese were originally #defined so we could share them between our\nGCC and clang FORTIFY implementations. Since we no longer have a GCC\nFORTIFY, #defining them is sort of pointless.\n\nBug: 131861088\nTest: mma\nChange-Id: I2ae4e0bdebbed16c946f5df7cc38c471881b481e\n"
    },
    {
      "commit": "5273dc588a39579b7b48baa38323994d9b12c49a",
      "tree": "b1df0b2c9616d944b03359c99f5f5d8eb46f8e30",
      "parents": [
        "f8813d14aa5eb70fa0cf95b36b5f68a4f631c123"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Thu May 09 13:46:57 2019 -0700"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Thu May 23 13:38:09 2019 -0700"
      },
      "message": "fortify: use a macro in diagnose_if\n\nOur diagnose_if conditions are repetitive. It\u0027s potentially convenient\nto hide that behind a macro. There\u0027s an upcoming refactor to our\nrun-time checks; having static checks look super similar is convenient,\nand makes correctness (hopefully) slightly more obvious.\n\nBug: 131861088\nTest: checkbuild on internal master.\nChange-Id: Ic39a3b6bf020734c1bef6be144f61ef81466aafe\n"
    },
    {
      "commit": "17e7c7526502a5a59c2ac704b578022777ed2ed8",
      "tree": "bd11f57df9424c3903d1d33029612a300d785ecb",
      "parents": [
        "933bd3ae66de82bc0a9d2b985e058295c08065f9"
      ],
      "author": {
        "name": "Pirama Arumuga Nainar",
        "email": "pirama@google.com",
        "time": "Wed May 22 22:14:57 2019 -0700"
      },
      "committer": {
        "name": "Pirama Arumuga Nainar",
        "email": "pirama@google.com",
        "time": "Wed May 22 22:18:37 2019 -0700"
      },
      "message": "Disable native_coverage for scudo-related libraries\n\nBug: http://b/133379274\nBug: http://b/133322197\n\nTest: coverage-enabled mediaextractor, which uses scudo, no longer\ncrashes during llvm_gcov_init.\n\nChange-Id: I85a0cc91a2fbd8433823769c3032ec2591424e55\n"
    },
    {
      "commit": "705de3c6398d53b780d731008bafc3c2dafbbf85",
      "tree": "1118ec9cf1ce812c4d02d482a3b0f1a311036e32",
      "parents": [
        "d277334059f5c0c08ea312cad84f003c0d9f3519"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed May 22 13:39:57 2019 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed May 22 17:16:37 2019 -0700"
      },
      "message": "Disable malloc debug when asan enabled.\n\nBug: 123312263\n\nTest: Verified with asan enabled, malloc debug does not initialize.\nTest: Ran tests on non-asan build and verify they pass.\nChange-Id: I3c37c170bf6c1de42740972f2113ae991351d931\n"
    },
    {
      "commit": "933bd3ae66de82bc0a9d2b985e058295c08065f9",
      "tree": "0342104b4733e3f98ac1ebe1a9a4032e348eb8b4",
      "parents": [
        "d277334059f5c0c08ea312cad84f003c0d9f3519",
        "24f97eb27bc131801ed9d0d2b367d4164424ac77"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed May 22 19:09:12 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 22 19:09:12 2019 +0000"
      },
      "message": "Merge \"Update to kernel headers to v5.1.3.\""
    },
    {
      "commit": "d277334059f5c0c08ea312cad84f003c0d9f3519",
      "tree": "5a8a9e61a99820913c1cbc66c7534ad29688957a",
      "parents": [
        "e1276ba53867e3620aeb17abbfa6c8a02abe7eaa",
        "b9667b51a8e9831baa1e54362b1f614a911e4e76"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue May 21 22:51:26 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 21 22:51:26 2019 +0000"
      },
      "message": "Merge \"Export some symbols for vendor libmemunreachable\""
    },
    {
      "commit": "e1276ba53867e3620aeb17abbfa6c8a02abe7eaa",
      "tree": "18b13edea80d0b0513f217a1b33a72f2d3066322",
      "parents": [
        "03345ed54a12f1b11b0566ff1d079a485f117b6e",
        "c57c5bdb7f8c46e8ed8621cfdd400f6263c59197"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue May 21 18:29:33 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 21 18:29:33 2019 +0000"
      },
      "message": "Merge \"pwd/grp: fix pwd _r reentrancy, new tests, clean up\""
    },
    {
      "commit": "24f97eb27bc131801ed9d0d2b367d4164424ac77",
      "tree": "d29644f8a9f2f26955130172c416f58e91b87fa5",
      "parents": [
        "72aafad9506d65c8c0f957cae4b664402cc0e8ab"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon May 20 12:58:13 2019 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon May 20 12:58:13 2019 -0700"
      },
      "message": "Update to kernel headers to v5.1.3.\n\nTest: Builds and boots taimen.\nTest: Ran bionic unit tests.\nChange-Id: Ieaca8709d568f075df8cac60c9da2c0ed1916963\n"
    },
    {
      "commit": "0c0f6fb29361aa858944593ee2801e6fc8ce663f",
      "tree": "a82b8cea8b95ebfcdd23e75cff3c3b237d02c431",
      "parents": [
        "b43f0b799365eab49c8f173fd3b6eef664e33e9d"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri May 17 16:22:56 2019 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri May 17 17:52:51 2019 -0700"
      },
      "message": "Keep .debug_frame on arm 32.\n\nThe arm exidx unwind information can be sparse and clang is producing\nfunctions that cannot be properly represented. The .debug_frame includes\nextra unwind information that covers the cases that are not complete, so\ndo not remove it. For example, the __strchr_chk function has a push\nin the middle of the function, so any crash before that instruction will\nnot unwind properly.\n\nThis does increase the size of libc.so, but only by about 80,000 bytes.\n\nBug: 132992102\n\nTest: Verified the .debug_frame exists in libc.so only for arm32.\nTest: Used the unwind_reg_info to verify that __str_chk gets proper\nTest: unwind info. Also use unwind_reg_info on some assembler functions\nTest: to make sure that there is no overlapping information.\nChange-Id: If9a6de15b3adf08a93c4563da8c89846e4dd059b\n"
    },
    {
      "commit": "b9667b51a8e9831baa1e54362b1f614a911e4e76",
      "tree": "8cd85f5d36203311abe54a0aa1b977b59d9ad7f0",
      "parents": [
        "72aafad9506d65c8c0f957cae4b664402cc0e8ab"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri May 17 13:45:18 2019 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri May 17 14:26:31 2019 -0700"
      },
      "message": "Export some symbols for vendor libmemunreachable\n\nAdd the malloc symbols used by libmemunreachable to the VNDK, and\nmake libc_malloc_debug_backtrace vendor_available.\n\nBug: 132302484\nTest: m checkbuild\nChange-Id: Ide555195afa084c13eaeaf0eab6ff90787b5f2d0\n"
    },
    {
      "commit": "bff53b2617161dd8b7c49109d836cb520174e64d",
      "tree": "43fba600c2e0796e2edfd3b6485efa4cd89c0244",
      "parents": [
        "3d64506c02674668cfcd89278f006f17ab22d9bd"
      ],
      "author": {
        "name": "Jake Weinstein",
        "email": "jake@aospa.co",
        "time": "Sat May 06 23:22:58 2017 -0400"
      },
      "committer": {
        "name": "Haibo Huang",
        "email": "hhb@google.com",
        "time": "Thu May 16 04:37:26 2019 +0000"
      },
      "message": "libc: import ARM strcmp from newlib\n\n* Current version is also based on newlib, but an older revision\n\n* The Krait and A9 specific changes no longer seem relevant, so\n  let\u0027s use A15 directly.\n\nTested on OnePlus 3 (MSM8996):\n\nBefore (Krait strcmp):\n                                       iterations      ns/op\nBM_string_strcmp/8                          1000k         24    0.322 GiB/s\nBM_string_strcmp/64                           20M        123    0.519 GiB/s\nBM_string_strcmp/512                           2M        920    0.556 GiB/s\nBM_string_strcmp/1024                       1000k       1818    0.563 GiB/s\nBM_string_strcmp/8Ki                         200k      14405    0.569 GiB/s\nBM_string_strcmp/16Ki                        100k      28762    0.570 GiB/s\nBM_string_strcmp/32Ki                         50k      57526    0.570 GiB/s\nBM_string_strcmp/64Ki                         10k     114959    0.570 GiB/s\n\nAfter:\n                                       iterations      ns/op\nBM_string_strcmp/8                          1000k         28    0.284 GiB/s\nBM_string_strcmp/64                           20M        107    0.596 GiB/s\nBM_string_strcmp/512                           2M        800    0.639 GiB/s\nBM_string_strcmp/1024                       1000k       1579    0.649 GiB/s\nBM_string_strcmp/8Ki                         200k      12469    0.657 GiB/s\nBM_string_strcmp/16Ki                        100k      24931    0.657 GiB/s\nBM_string_strcmp/32Ki                         50k      49843    0.657 GiB/s\nBM_string_strcmp/64Ki                         20k      99635    0.658 GiB/s\n\nTest: bionic-benchmarks BM_string_memcmp\nChange-Id: Icb3bfb0a381bcc1e10885ca5e9547842c3f620d7\n"
    },
    {
      "commit": "c57c5bdb7f8c46e8ed8621cfdd400f6263c59197",
      "tree": "b17c8c66479542bb4ece09f81ae616b3e91bf605",
      "parents": [
        "84c29cc446e580cdfcb3e104f8c052d57d599120"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Tue May 14 17:02:28 2019 -0700"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed May 15 15:49:34 2019 -0700"
      },
      "message": "pwd/grp: fix pwd _r reentrancy, new tests, clean up\n\ngetpwnam_r() and getpwuid_r() clobber the storage used by getpwnam()\nand getpwuid().  This isn\u0027t likely to be a big issue, but since we do\nthis right for the group functions, fix this as well as add a test.\nBoth use more space in buf than is actually required, but well below\ntheir sysconf() suggested values, so we accept that to keep the code\nconcise.\n\nAdd tests for dealing with unaligned input buffers, particularly for\ngetgrnam_r() and getgrgid_r(), as they require alignment but this\nwasn\u0027t being tested.\n\nRefactor common initialization code for both passwd and group state\nstructs.\n\nRemove extraneous null pointer checks; the values they were testing\nwere offsets of a previous pointer, so guaranteed to never actually be\nnull.  If the underlying pointer is actually null, we\u0027re beyond repair\nanyway, so accept that we\u0027ll crash.\n\nTest: pwd/grp unit tests\n\nChange-Id: I60c4d00e9ab3cf55daf8314c5029fd914025b696\n"
    },
    {
      "commit": "93f79a1a5b9a19f4e8755b8da8ca8f19a08b341a",
      "tree": "4755f120d9402f96c4dae459cffe2fdccb0be706",
      "parents": [
        "235ccfd19be5caa8028f6a6e12fe3da195fcea6e",
        "34033155210f5b9bd449a7db8a6220dcbc44386d"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed May 15 20:26:46 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 15 20:26:46 2019 +0000"
      },
      "message": "Merge \"Annotate no_return and returns_twice functions.\""
    },
    {
      "commit": "34033155210f5b9bd449a7db8a6220dcbc44386d",
      "tree": "84bf1e0ea17ab7cf118827fbc1b8f32a41b68ff2",
      "parents": [
        "2c02e45f4b4ad997ea681993601c9f67bf96a2ca"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Mon May 13 13:15:50 2019 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Mon May 13 13:17:51 2019 -0700"
      },
      "message": "Annotate no_return and returns_twice functions.\n\nWhen building the bionic tests, we use -fno-builtins, which turns off\nclang\u0027s recognition of vfork as a magical function that can return\ntwice. Explicitly annotate our returns_twice functions to ensure that\nwe generate correct code even in -fno-builtins (and while we\u0027re at it,\nannotate the no_return functions as well, so we generate faster code).\n\nBug: http://b/131856005\nTest: treehugger\nChange-Id: I465f8042a965f0c7c03caa5f17af67deea8f5d9d\n"
    },
    {
      "commit": "23c056dbcbc1e2bc624809a9e3ee2286409db361",
      "tree": "e6f700a30ecda842d66bc6034731ca44fffbf71f",
      "parents": [
        "f15a00b1ecc285dcf433fd38a9f05e4fe0030d85"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue May 07 16:02:49 2019 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed May 08 15:43:25 2019 -0700"
      },
      "message": "Add removed platform functions used by apps.\n\nAdded get_malloc_leak_info and free_malloc_leak_info for arm 32 bit\nonly so that the kindle app will continue to run.\n\nBug: 132175052\n\nTest: Ran kindle app, read pdf file. Verified libKindleReaderJNI.so\nTest: is loaded in memory properly.\nChange-Id: Ib1ea3a37b3729f9bcc2739c5f3a584ea8f66d200\nMerged-In: Ib1ea3a37b3729f9bcc2739c5f3a584ea8f66d200\n(cherry picked from commit 235f35a26632c4c3c748f8079950bcd35f676b79)\n"
    },
    {
      "commit": "f15a00b1ecc285dcf433fd38a9f05e4fe0030d85",
      "tree": "b1708d850be1a3f4518dd86ab4b18339481f214f",
      "parents": [
        "1a60589b97a0e2dfeebf21d1589f6555fd6ddf2d",
        "d269fcc935b276502b9e47a575d76693fe1b8455"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue May 07 22:28:50 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 07 22:28:50 2019 +0000"
      },
      "message": "Merge \"Avoid using malloc debug code after exit.\""
    },
    {
      "commit": "d269fcc935b276502b9e47a575d76693fe1b8455",
      "tree": "cb9e09297fb247d3d8511565e25a930336b6bc72",
      "parents": [
        "9433a0299e2493303776713072f0744d18c705dc"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon May 06 19:03:59 2019 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue May 07 13:16:58 2019 -0700"
      },
      "message": "Avoid using malloc debug code after exit.\n\nI wrote a new unit test that would fail on the old version of the\ncode.\n\nOn a walleye big cpu, this costs about 40ns-50ns (going from ~430ns to ~480ns).\nI think this is an acceptable performance degradation.\n\nBug: 131867816\n\nTest: New unit tests pass.\nChange-Id: I4c0f4373fb0694bf29c3824dbb1224a8a17e211e\n"
    },
    {
      "commit": "31c7309dc6d4385f120ec30dae3c0adcb5a7db1d",
      "tree": "aa78473ec4f6af2e1c5cb34848806a11ec98e8dc",
      "parents": [
        "78e42d81ec89d3cd73ed4e8613947c8bdf8341fc"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue May 07 10:03:02 2019 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue May 07 10:03:02 2019 -0700"
      },
      "message": "Add SEEK_DATA and SEEK_HOLE constants.\n\nWithout pulling in \u003clinux/fs.h\u003e, the UAPI source of these constants,\nbecause it\u0027s full of pollution, in particular a macro called BLOCK_SIZE\nthat breaks a lot of stuff.\n\nTest: treehugger\nChange-Id: I7258ec57e91c67645c2b4d0ce44850d757c4bb12\n"
    },
    {
      "commit": "78e42d81ec89d3cd73ed4e8613947c8bdf8341fc",
      "tree": "af755077cc7bf2860c96135dc9a3b72ae4494e8a",
      "parents": [
        "0633e569bc44271b68e6980cff51d1c89a7c23ae",
        "7f048808203bb4e1c01f50793b424364cd669f06"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue May 07 11:30:58 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 07 11:30:58 2019 +0000"
      },
      "message": "Merge \"Enable native_bridge_support\""
    },
    {
      "commit": "0633e569bc44271b68e6980cff51d1c89a7c23ae",
      "tree": "b336d36d43925e8cd1bd5d13756edf37b4f29752",
      "parents": [
        "af1467b2cd11f5567406db2a638257a79779d2a5",
        "f6d221eeed66c975fb05589a171fe4a05c0d35f7"
      ],
      "author": {
        "name": "Florian Mayer",
        "email": "fmayer@google.com",
        "time": "Tue May 07 10:34:05 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 07 10:34:05 2019 +0000"
      },
      "message": "Merge \"Match maximum command line size for startup tracing.\""
    },
    {
      "commit": "f61ca222483e9ee83dc9a4cb7cc1f6563bc4b8c3",
      "tree": "d6c12c7be933e57cfb155994f6e8409deaa318c9",
      "parents": [
        "2c02e45f4b4ad997ea681993601c9f67bf96a2ca",
        "c485cdb0249415b8aee5968b2b8854921e152854"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Mon May 06 23:38:49 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon May 06 23:38:49 2019 +0000"
      },
      "message": "Merge \"Revert fwalk/sfp locking to fix concurrent reads\""
    },
    {
      "commit": "7f048808203bb4e1c01f50793b424364cd669f06",
      "tree": "a6165b26a6c255448370e195b95d360bfcb0ffae",
      "parents": [
        "2c02e45f4b4ad997ea681993601c9f67bf96a2ca"
      ],
      "author": {
        "name": "dimitry",
        "email": "dimitry@google.com",
        "time": "Fri May 03 15:57:34 2019 +0200"
      },
      "committer": {
        "name": "dimitry",
        "email": "dimitry@google.com",
        "time": "Mon May 06 17:13:51 2019 +0200"
      },
      "message": "Enable native_bridge_support\n\nEnable native bridge support for bionic libraries.\nMakes it possible to use them in binaries for translated\narchitectures.\n\nBug: http://b/77159578\nTest: make\nChange-Id: Iccd4ad7aecfa5260cc15f09ca975d2e18987278a\n"
    },
    {
      "commit": "c485cdb0249415b8aee5968b2b8854921e152854",
      "tree": "160af7094ea713aa83b280f594e4c834c4316bb3",
      "parents": [
        "0cd818a377157326ce326e8a48ea00882d1d1d06"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Tue Apr 30 14:47:34 2019 -0700"
      },
      "committer": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Sat May 04 00:28:00 2019 -0700"
      },
      "message": "Revert fwalk/sfp locking to fix concurrent reads\n\nThe locking can fail in a couple of ways:\n\n - A concurrent fread from an unbuffered or line-buffered file flushes\n   the output of other line-buffered files, and if _fwalk locks every\n   file, then the fread blocks until other file reads have completed.\n\n - __sfp can initialize a file lock while _fwalk is locking/unlocking it.\n\nFor now, revert to the behavior Bionic had in previous releases. This\ncommit reverts the file locking parts of commit\n468efc80da2504f4ae7de8b5e137426d44dda9d7.\n\nBug: http://b/131251441\nBug: http://b/130189834\nTest: bionic unit tests\nChange-Id: I9e20b9cd8ccd14e7962f7308e174f08af72b56c6\n"
    },
    {
      "commit": "f6d221eeed66c975fb05589a171fe4a05c0d35f7",
      "tree": "647f7e16d39e3736f83618537541566e4062b0ae",
      "parents": [
        "1eb6d36ba8666dace9a6f0c1db354750b331bf24"
      ],
      "author": {
        "name": "Florian Mayer",
        "email": "fmayer@google.com",
        "time": "Fri May 03 16:24:52 2019 +0100"
      },
      "committer": {
        "name": "Florian Mayer",
        "email": "fmayer@google.com",
        "time": "Fri May 03 17:37:47 2019 +0100"
      },
      "message": "Match maximum command line size for startup tracing.\n\nFix too small buffer for the startup property not accounting for the\nprefix.\n\nBug: 131893397\n\nChange-Id: Iad2398bc09c61b1144430bcbef58e5a832b85b0a\n"
    },
    {
      "commit": "db9706afc376f74938e4060fa030913e87bb2be1",
      "tree": "22e9605dd1edde31191b9ed8e2a39907deca56f0",
      "parents": [
        "1eb6d36ba8666dace9a6f0c1db354750b331bf24"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu May 02 18:33:11 2019 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri May 03 07:21:45 2019 -0700"
      },
      "message": "Fix malloc_info missing large allocs.\n\nAlso change the names of some of the functions to make it very obvious\nthat the functions being called are in je code.\n\nWrite new test to make sure mallinfo and malloc_info match.\n\nBug: 131864803\n\nTest: New unit tests pass (along with all other bionic unit tests).\nChange-Id: I26eda7e64f57a8c56cc8d70e3ed6a29dcb87f630\nMerged-In: I26eda7e64f57a8c56cc8d70e3ed6a29dcb87f630\n(cherry picked from commit 125d32cb469d8e31f656543c3ad7b82154bc1689)\n"
    },
    {
      "commit": "1eb6d36ba8666dace9a6f0c1db354750b331bf24",
      "tree": "62e2f8421f231c1fdd53b65ef13455a43add3bab",
      "parents": [
        "911fbfc2591168863a5f8a99ce15b9b9f35702b0",
        "0f710fd59346312b4e351e9d3c956bc804ff02b2"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed May 01 22:22:46 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 01 22:22:46 2019 +0000"
      },
      "message": "Merge \"Make purging clear the current thread cache too.\""
    },
    {
      "commit": "0f710fd59346312b4e351e9d3c956bc804ff02b2",
      "tree": "d5ff9f3dd4757b7ff3d309f79096f41372154322",
      "parents": [
        "0cd818a377157326ce326e8a48ea00882d1d1d06"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed May 01 13:26:46 2019 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed May 01 13:26:46 2019 -0700"
      },
      "message": "Make purging clear the current thread cache too.\n\nBug: 131362671\n\nTest: Ran bionic unit tests.\nTest: Wrote a test that did a purge and verified that the tcache-\u003encached\nTest: number went from 3 to 0. Also verified that mallinfo reflects the\nTest: cached entries being flushed.\nChange-Id: I64e35618fa3b523cf29bdaceedef676abe440dd3\n"
    }
  ],
  "next": "4fa9b8cd2e4ffb37e79a5acd4109d18925b1ff02"
}
