)]}'
{
  "log": [
    {
      "commit": "915c5fb9f670cb2b1e646fade1f7ee87ef595eb7",
      "tree": "b4d37899cffac667b13301bcaf1f2707d72863ac",
      "parents": [
        "493322baf1bf658cd3f2807cea8fe0199b3c6e19"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 22 08:40:58 2019 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 22 08:43:57 2019 -0700"
      },
      "message": "libdl.a: make dlerror() always report an error.\n\nSeems only logical, given that all the other calls fail.\n\n(Only thing that\u0027s weird about this is that calling dlerror() usually\nclears the error until you do something else that causes an error, but\nthat doesn\u0027t seem worth the bookkeeping?)\n\nBug: https://github.com/android-ndk/ndk/issues/965\nTest: static unit tests still pass\nChange-Id: I5e5401e148c5857f1dbab9c5a7f4a6fc43d8d626\n"
    },
    {
      "commit": "493322baf1bf658cd3f2807cea8fe0199b3c6e19",
      "tree": "a1de913244f0841070a7c78e92a8aaf1f6f38940",
      "parents": [
        "bdf8528a85b3d27c2564cffab019e542a0f15ade",
        "584bc626b65edc09ca8a23426403e736a67599e9"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 22 15:33:05 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Apr 22 15:33:05 2019 +0000"
      },
      "message": "Merge \"Move libdl and linker to static NOTICE files.\""
    },
    {
      "commit": "bdf8528a85b3d27c2564cffab019e542a0f15ade",
      "tree": "a939ac401fd342180a102ba1129410d7c078406a",
      "parents": [
        "75f7b06454f9a0f0ebc232605e8faec4ac0db4ee",
        "390be50067c03524b420cae83fd97992f26fa754"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 22 14:50:57 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Apr 22 14:50:57 2019 +0000"
      },
      "message": "Merge \"Workaround ASan not knowing about reallocarray.\""
    },
    {
      "commit": "390be50067c03524b420cae83fd97992f26fa754",
      "tree": "a939ac401fd342180a102ba1129410d7c078406a",
      "parents": [
        "75f7b06454f9a0f0ebc232605e8faec4ac0db4ee"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Apr 20 22:18:49 2019 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Apr 20 22:18:49 2019 -0700"
      },
      "message": "Workaround ASan not knowing about reallocarray.\n\nEnsure we call realloc@plt rather than (as was previously happening)\ninlining realloc into reallocarray, which makes the allocation invisible\nto ASan.\n\nBug: http://b/129989984\nTest: objdump\nChange-Id: If8a43cba11aa5a2f2f62bacd02ef6ef4032e0dbb\n"
    },
    {
      "commit": "584bc626b65edc09ca8a23426403e736a67599e9",
      "tree": "8705e7f3b9da6ea58b7d8ee330ef572b8e6e276a",
      "parents": [
        "75f7b06454f9a0f0ebc232605e8faec4ac0db4ee"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 19 14:18:07 2019 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 19 14:18:07 2019 -0700"
      },
      "message": "Move libdl and linker to static NOTICE files.\n\nThe libstdc++ directory has no copyright headers, so it was a no-op\nanyway.\n\nThe interesting part will be switching libc and libm over to genrules...\n\nTest: N/A\nChange-Id: Iec92562af40c451fdcb4a7468984878ec5dba2ce\n"
    },
    {
      "commit": "75f7b06454f9a0f0ebc232605e8faec4ac0db4ee",
      "tree": "31638b745e4947ceb9c070e1ea98b636d3085ab5",
      "parents": [
        "30bcaae2b6bcdeadd42066fe5b6f5a49bd5b9b07",
        "07c5587e56860c899eaf172abd7bbb76505e859c"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Apr 17 23:26:13 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 17 23:26:13 2019 +0000"
      },
      "message": "Merge \"paths.h: /sbin and /system/sbin no longer exist.\""
    },
    {
      "commit": "30bcaae2b6bcdeadd42066fe5b6f5a49bd5b9b07",
      "tree": "cc42b72570ec3ddf386173662392bd5203459374",
      "parents": [
        "032aed9f4b6727bba3b5012d6232544490d35230",
        "8189e77bbb47dbaa1a09d565c62c2fed03e358c3"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Apr 17 17:31:04 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 17 17:31:04 2019 +0000"
      },
      "message": "Merge \"Remove gMallocLeakZygoteChild.\""
    },
    {
      "commit": "032aed9f4b6727bba3b5012d6232544490d35230",
      "tree": "51ea08110c967e522a6649a81aa928bac97535fc",
      "parents": [
        "be128f38d697ebb2f1483208eb27540dbdd6a3b4",
        "782c4858807869528577e26f98f68a2c2d0b5977"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 17 15:11:15 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 17 15:11:15 2019 +0000"
      },
      "message": "Merge \"Generate assembler system call stubs via genrule.\""
    },
    {
      "commit": "be128f38d697ebb2f1483208eb27540dbdd6a3b4",
      "tree": "09feb9f96c0fb05713925f26fb66e30f24a1ec9c",
      "parents": [
        "21cf101f5491400349fa1126ff31247513c25dab",
        "7b9db347ae24008373a5e2030d7b1971fe8f9d61"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 16 23:39:30 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 16 23:39:30 2019 +0000"
      },
      "message": "Merge \"Fix linker compilation with timing enabled\""
    },
    {
      "commit": "07c5587e56860c899eaf172abd7bbb76505e859c",
      "tree": "04910ad759659d2c528b27a1cf661874460113ea",
      "parents": [
        "b9a7c651f178323e27752406f89d741cfb143e61"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 16 15:52:20 2019 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 16 15:52:20 2019 -0700"
      },
      "message": "paths.h: /sbin and /system/sbin no longer exist.\n\nBug: http://b/73660730\nTest: treehugger\nChange-Id: Ie49253304e192b0eafa5747e547371d1d128a6f5\n"
    },
    {
      "commit": "7b9db347ae24008373a5e2030d7b1971fe8f9d61",
      "tree": "09feb9f96c0fb05713925f26fb66e30f24a1ec9c",
      "parents": [
        "21cf101f5491400349fa1126ff31247513c25dab"
      ],
      "author": {
        "name": "Vic Yang",
        "email": "victoryang@google.com",
        "time": "Tue Apr 16 14:54:58 2019 -0700"
      },
      "committer": {
        "name": "Vic Yang",
        "email": "victoryang@google.com",
        "time": "Tue Apr 16 14:54:58 2019 -0700"
      },
      "message": "Fix linker compilation with timing enabled\n\nTest: Build with TIMING set to 1 in linker_debug.h.\nChange-Id: Ia11021f6221bc985abddb379e813e4e353fd7149\n"
    },
    {
      "commit": "21cf101f5491400349fa1126ff31247513c25dab",
      "tree": "3e8cb8c4009756af9ddc49bf35d274226248002f",
      "parents": [
        "b9a7c651f178323e27752406f89d741cfb143e61",
        "7d8c4602fb2e95b9792b556db3f96b96f321d1c9"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 16 21:11:36 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 16 21:11:36 2019 +0000"
      },
      "message": "Merge \"Remove dead script.\""
    },
    {
      "commit": "7d8c4602fb2e95b9792b556db3f96b96f321d1c9",
      "tree": "3e8cb8c4009756af9ddc49bf35d274226248002f",
      "parents": [
        "b9a7c651f178323e27752406f89d741cfb143e61"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 16 12:34:03 2019 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 16 12:34:03 2019 -0700"
      },
      "message": "Remove dead script.\n\nThis is already handled by genrules.\n\nTest: N/A\nChange-Id: I123a971486431cc2b888df515b7bda8e408fa876\n"
    },
    {
      "commit": "782c4858807869528577e26f98f68a2c2d0b5977",
      "tree": "fe65cc99aaabbba2a7963c9f23b8573c81bc0a9e",
      "parents": [
        "b9a7c651f178323e27752406f89d741cfb143e61"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 16 12:31:00 2019 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 16 12:31:00 2019 -0700"
      },
      "message": "Generate assembler system call stubs via genrule.\n\nThere\u0027s no need to check in generated code.\n\nTest: builds \u0026 boots\nChange-Id: Ife368bca4349d4adeb0666db590356196b4fbd63\n"
    },
    {
      "commit": "8189e77bbb47dbaa1a09d565c62c2fed03e358c3",
      "tree": "2c8fc5d8fd1ec1ab881d35519670104ad86283e3",
      "parents": [
        "b9a7c651f178323e27752406f89d741cfb143e61"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Apr 09 16:37:23 2019 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Apr 16 11:22:06 2019 -0700"
      },
      "message": "Remove gMallocLeakZygoteChild.\n\nRemove this global variable and change the setting of it to non-zero\nto a call to android_mallopt.\n\nIn addition, change the initialize function to use pass a bool* instead of\nint*.\n\nBug: 130028357\n\nTest: Ran malloc_debug/malloc_hooks/perfetto tests.\nChange-Id: I20d382bdeaaf38aac6b9dcabea5b3dfab3c945f6\nMerged-In: I20d382bdeaaf38aac6b9dcabea5b3dfab3c945f6\n(cherry picked from commit 5225b342f0810c027df3d09fbbcef4d324b19b93)\n"
    },
    {
      "commit": "b9a7c651f178323e27752406f89d741cfb143e61",
      "tree": "a050cfef3cf7b4513340b94a1ff8b6bdd3060c82",
      "parents": [
        "f7f5ba4cde75758f3ec9c26d77b039b8bf6a26fc",
        "d67b03734d697b97bbe4ec0ff563449a46377bee"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 16 15:43:24 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 16 15:43:24 2019 +0000"
      },
      "message": "Merge \"libc: generate syscall stubs in one big file...\""
    },
    {
      "commit": "d67b03734d697b97bbe4ec0ff563449a46377bee",
      "tree": "a039c0fb3549c880b9e63b8b549367ea62cd9d82",
      "parents": [
        "9586c0f4f421e63342074eeae9806cf11d622703"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 15 14:18:26 2019 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 16 00:54:11 2019 +0000"
      },
      "message": "libc: generate syscall stubs in one big file...\n\n...all the better to switch to a genrule rather than checking in\ngenerated source.\n\nThis also removes all the code in the script to deal with git,\nrather than fix it. We won\u0027t need that where we\u0027re going.\n\nTest: boots\nChange-Id: I468ce019d4232a7ef27e5cb5cfd89f4c2fe4ecbd\n"
    },
    {
      "commit": "f7f5ba4cde75758f3ec9c26d77b039b8bf6a26fc",
      "tree": "0c08395190e7482907230826c9e0a22414124551",
      "parents": [
        "9586c0f4f421e63342074eeae9806cf11d622703",
        "d12d6f67bca790696679db46cdc306eba3122e7c"
      ],
      "author": {
        "name": "Daniel Mentz",
        "email": "danielmentz@google.com",
        "time": "Tue Apr 16 00:47:37 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 16 00:47:37 2019 +0000"
      },
      "message": "Merge changes I48210ea1,I5f717dd1\n\n* changes:\n  clean_header: Run outside of $ANDROID_BUILD_TOP\n  clean_header: Fix error handling for no-such-file case\n"
    },
    {
      "commit": "d12d6f67bca790696679db46cdc306eba3122e7c",
      "tree": "0c08395190e7482907230826c9e0a22414124551",
      "parents": [
        "6d6b4cedd16c3b4d6de114c622739fc5d52f4c57"
      ],
      "author": {
        "name": "Daniel Mentz",
        "email": "danielmentz@google.com",
        "time": "Mon Apr 15 15:19:31 2019 -0700"
      },
      "committer": {
        "name": "Daniel Mentz",
        "email": "danielmentz@google.com",
        "time": "Mon Apr 15 15:19:31 2019 -0700"
      },
      "message": "clean_header: Run outside of $ANDROID_BUILD_TOP\n\nEnable the use case where we run clean_header.py from outside of\n$ANDROID_BUILD_TOP. Previously, this script required the current working\ndirectory to be under $ANDROID_BUILD_TOP. Running it from a different\ndirectory resulted in the following error message:\n\n clean_header.py: error: Not in android tree pointed at by ANDROID_BUILD_TOP (....)\n\nChange-Id: I48210ea1a0033228a9aaa4124d28247b07cee6d4\n"
    },
    {
      "commit": "6d6b4cedd16c3b4d6de114c622739fc5d52f4c57",
      "tree": "f5c3374ff8cc504b3ef829a70c9df822dbf79a3e",
      "parents": [
        "9586c0f4f421e63342074eeae9806cf11d622703"
      ],
      "author": {
        "name": "Daniel Mentz",
        "email": "danielmentz@google.com",
        "time": "Thu Apr 04 11:51:29 2019 -0700"
      },
      "committer": {
        "name": "Daniel Mentz",
        "email": "danielmentz@google.com",
        "time": "Mon Apr 15 15:03:39 2019 -0700"
      },
      "message": "clean_header: Fix error handling for no-such-file case\n\nThe function cleanupFile should always return a single value (as opposed\nto a tuple or list). In addition, if it encounters an error, it is\nexpected to return a value that evaluates to False. As it stands,\nhowever, it returns (None, None) in certain error cases. Change this\nfunction to return None, in those cases.\n\nWe previously saw the following error message, when we tried to run\nclean_header.py on a non-existent file.\n\nTraceback (most recent call last):\n  File \"clean_header.py\", line 208, in \u003cmodule\u003e\n    b.updateGitFiles()\n  File \"utils.py\", line 164, in updateGitFiles\n    self._writeFile(dst)\n  File \"utils.py\", line 136, in _writeFile\n    f.write(self.new_data[dst])\nTypeError: expected a string or other character buffer object\n\nChange-Id: I5f717dd1a4388f598f0fd4bfd5e6129017de9095\n"
    },
    {
      "commit": "9586c0f4f421e63342074eeae9806cf11d622703",
      "tree": "d5ef967d57ed61d6cb5451af506aca5b9da0c166",
      "parents": [
        "e689eb01548df361444a1bb74f2bf6950039a690",
        "adcb515bfcc5b32b2c627216b2c49e10125729c4"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Apr 12 03:11:30 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 12 03:11:30 2019 +0000"
      },
      "message": "Merge \"Move kernel README files to Markdown.\""
    },
    {
      "commit": "e689eb01548df361444a1bb74f2bf6950039a690",
      "tree": "9d1254a124b2dfed06c2950f55cce13bd0c0bae6",
      "parents": [
        "934afc08c8b3498b277841aa861cba192d968703",
        "c4c2e24d5f1e32fbc6c3a7662264d2a2332a9e33"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Apr 12 00:12:19 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 12 00:12:19 2019 +0000"
      },
      "message": "Merge \"\u003cbits/glibc-syscalls.h\u003e: only regenerate when we have new uapi headers.\""
    },
    {
      "commit": "c4c2e24d5f1e32fbc6c3a7662264d2a2332a9e33",
      "tree": "a2fcf672f8f80b75b81b973588caadb9c21428dd",
      "parents": [
        "d1ff49c24afb1bb09925cda295d2bb52d514f879"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Apr 11 14:09:30 2019 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Apr 11 14:19:17 2019 -0700"
      },
      "message": "\u003cbits/glibc-syscalls.h\u003e: only regenerate when we have new uapi headers.\n\nTest: update_all.py\nChange-Id: Iaa92dce263197f5a0e7d2dce5e00a31372dcb3e9\n"
    },
    {
      "commit": "adcb515bfcc5b32b2c627216b2c49e10125729c4",
      "tree": "535c0972449ef1a8f4041ae9c4f120ef415d3cac",
      "parents": [
        "d1ff49c24afb1bb09925cda295d2bb52d514f879"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Apr 11 13:38:25 2019 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Apr 11 13:38:25 2019 -0700"
      },
      "message": "Move kernel README files to Markdown.\n\nTest: N/A\nChange-Id: If987d8a24baf87adba20914896d29c94fc01cbfd\n"
    },
    {
      "commit": "934afc08c8b3498b277841aa861cba192d968703",
      "tree": "6deefb6ac69f13843b31ae78ac6873d5d73f3b2b",
      "parents": [
        "c345d87aab5cac4d9bc44cb1a11ab5f5d8238376",
        "6b6a6c8407e9ecfaefd3bd35d41a8fb48fa3645d"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 11 19:32:42 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 11 19:32:42 2019 +0000"
      },
      "message": "Merge \"Remove seccomp upload hook.\""
    },
    {
      "commit": "6b6a6c8407e9ecfaefd3bd35d41a8fb48fa3645d",
      "tree": "5f3c3ae6d309330047ecab784da63d340e79fe65",
      "parents": [
        "d1ff49c24afb1bb09925cda295d2bb52d514f879"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Apr 11 10:42:19 2019 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Apr 11 10:42:19 2019 -0700"
      },
      "message": "Remove seccomp upload hook.\n\nWe switched to genrules already, and the lack of `set -e` in the script\nmeans that no-one\u0027s even noticed that this script has been failing since\nthen...\n\nTest: N/A\nChange-Id: Ie57cc97ab4e1003a106d4667cd404d22f0ee68a2\n"
    },
    {
      "commit": "c345d87aab5cac4d9bc44cb1a11ab5f5d8238376",
      "tree": "67d39ec7db5503626d82ab3e45d96695ee207a7a",
      "parents": [
        "1b7881a393355fbbb19cc1b263c0f56f95b1eec7",
        "5569650721fd4f19b02c77bbef3c0ce493537699"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 11 14:07:02 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 11 14:07:02 2019 +0000"
      },
      "message": "Merge changes from topic \"apex_libc_malloc\"\n\n* changes:\n  Don\u0027t load libc_malloc_* libs from runtime ns for libc_scudo\n  Load libc_malloc_* libraries from the runtime APEX\n"
    },
    {
      "commit": "5569650721fd4f19b02c77bbef3c0ce493537699",
      "tree": "67d39ec7db5503626d82ab3e45d96695ee207a7a",
      "parents": [
        "3ff116a68cfce57b4d343ae829542a9afdd2184b"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Wed Apr 10 02:29:25 2019 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Thu Apr 11 21:37:59 2019 +0900"
      },
      "message": "Don\u0027t load libc_malloc_* libs from runtime ns for libc_scudo\n\nmalloc_common_dynamic.cpp is compiled into both libc.so and\nlibc_scudo.so. When compiled for libc_scudo.so, it doesn\u0027t try to load\nlibc_malloc_* libs from the runtime linker namespace. This is because,\nunlike libc.so which is shared from the runtime APEX, libc_scudo.so is\ncopied to any APEX that it needs. Furthermore, libdl_android which\nprovides android_get_exported_namespace is not available for vendors. So\nthe vendor variant of libc_scudo.so can\u0027t anyway locate the runtime\nnamespace.\n\nBug: 130213757\nBug: 122566199\nTest: `m libc_scudo libc_scudo` is successful\nTest: inspect the built library to see if it has reference to\nandroid_get_exported_namespace\n\nMerged-In: I4c41de361fdb3fa34b95218923f4ce4e9c010f9e\nChange-Id: I4c41de361fdb3fa34b95218923f4ce4e9c010f9e\n(cherry picked from commit ff94a13d2d0679ea1ceb60464547237bb59362f7)\n"
    },
    {
      "commit": "3ff116a68cfce57b4d343ae829542a9afdd2184b",
      "tree": "a90b7e707bf4cf44bd7bdb594e9149efacd85568",
      "parents": [
        "1b7881a393355fbbb19cc1b263c0f56f95b1eec7"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Tue Apr 02 23:04:52 2019 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Thu Apr 11 21:36:16 2019 +0900"
      },
      "message": "Load libc_malloc_* libraries from the runtime APEX\n\n/system/lib/libc.so is a symlink to libc.so in the runtime APEX.\nlibc_malloc_* libraries are bundled with libc.so because they share\nimplementation details.\n\nHowever, since libc.so is loaded in the default namespace where the\nruntime APEX path (/apex/com.android.runtime/lib) is not accessible,\nlibc.so has been using libc_malloc_* from /system/lib. This is\nwrong because libc.so (from the runtime APEX) and libc_malloc_* (from\nthe platform) may not be in-sync.\n\nlibc.so now uses android_dlopen_ext to load libc_malloc_* libraries\ncorrectly from the \"runtime\" linker namespace.\n\nBug: 122566199\nTest: bionic-unit-tests\n\nMerged-In: I46980fbe89e93ea79a7760c9b8eb007af0ada8d8\nChange-Id: I46980fbe89e93ea79a7760c9b8eb007af0ada8d8\n(cherry picked from commit 4e46ac69c23c8585bce17c2e032986a37bf33aef)\n"
    },
    {
      "commit": "1b7881a393355fbbb19cc1b263c0f56f95b1eec7",
      "tree": "e69497fde336e6749145bfece63d20b6a8e82276",
      "parents": [
        "d1ff49c24afb1bb09925cda295d2bb52d514f879",
        "7ec2c8a9b6f9a050d2ac9e0c35f0a631573f3de6"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Apr 09 01:25:17 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 09 01:25:17 2019 +0000"
      },
      "message": "Merge \"Add malloc benchmarks.\""
    },
    {
      "commit": "7ec2c8a9b6f9a050d2ac9e0c35f0a631573f3de6",
      "tree": "289ddc73370f240d2feabf59fa855d11e04df3ce",
      "parents": [
        "1701d887aca0374c000a018a974227064e77d769"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Apr 05 12:47:39 2019 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Apr 05 14:45:15 2019 -0700"
      },
      "message": "Add malloc benchmarks.\n\nAdding some benchmarks that keep a certain number of allocation\naround. This benchmark should not be used as an absolute for determining\nwhat is a good/bad native allocator. However, it should be used to make\nsure that numbers are not completely changed between allocator versions.\n\nAlso update the malloc sql benchmark to match the same style as these\nnew benchmarks.\n\nBug: 129743239\n\nTest: Ran these benchmarks.\nChange-Id: I1995d98fd269b61d9c96efed6eff3ed278e24c97\n"
    },
    {
      "commit": "d1ff49c24afb1bb09925cda295d2bb52d514f879",
      "tree": "8308e8d1a9e073d1da68bae7bc56fdd4265beab7",
      "parents": [
        "1701d887aca0374c000a018a974227064e77d769",
        "ce584e4fc93978cb44057fce5f556e68519f051e"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Apr 05 18:31:25 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 05 18:31:25 2019 +0000"
      },
      "message": "Merge changes Iba5f74e1,I92b88939\n\n* changes:\n  Fix CtsJniTestCases\n  Fix formatting\n"
    },
    {
      "commit": "1701d887aca0374c000a018a974227064e77d769",
      "tree": "f2ce14c90ebd07dde2d9909ed726684834cc2ae4",
      "parents": [
        "93ea8569495d35c83ff6ef06292159c9056c6cc2",
        "8868d9e9004b4fa2d8139abaaff1baa21ea55dab"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Apr 05 16:45:49 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 05 16:45:49 2019 +0000"
      },
      "message": "Merge \"Move platform-private symbols out of libdl.so\""
    },
    {
      "commit": "93ea8569495d35c83ff6ef06292159c9056c6cc2",
      "tree": "3d98aee98f6405c8746634bd4ffd2e64423d6b61",
      "parents": [
        "5493ddcaa2ebe5dacc849c2d9f73e906796e297b",
        "e4d620bc805aa675924a4f50c7179195126d65a6"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Thu Apr 04 20:38:47 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 04 20:38:47 2019 +0000"
      },
      "message": "Merge changes I59a8bc4a,Ic437d352\n\n* changes:\n  Fix dlsym and dladdr for TLS symbols\n  Fix BionicAllocator comment\n"
    },
    {
      "commit": "5493ddcaa2ebe5dacc849c2d9f73e906796e297b",
      "tree": "84f6f846b3adba4bd9121af03824d9f1e9baa96f",
      "parents": [
        "02accd0ff4396f6fd6e74b662032e0e8fabf0d6c",
        "8c1a14d4f358a8135e0c0632da6d40c37192c0c2"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Apr 04 19:47:52 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 04 19:47:52 2019 +0000"
      },
      "message": "Merge \"Workaround potential access to unmapped stack\""
    },
    {
      "commit": "02accd0ff4396f6fd6e74b662032e0e8fabf0d6c",
      "tree": "ea822570181a3be50c5685fe56643af2fdae660f",
      "parents": [
        "865866ee2b34797e171899707a526743b8fad9a9",
        "e712cd185f34dd154b4672abae76eae262a03c65"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 04 14:59:21 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 04 14:59:21 2019 +0000"
      },
      "message": "Merge \"Fix Bionic dlfcn.dladdr_libc test case for 64bit binary translations\""
    },
    {
      "commit": "e4d620bc805aa675924a4f50c7179195126d65a6",
      "tree": "02318e36d725bc2d9be96ba86cd9cc8ae3bef927",
      "parents": [
        "db6edcca36082a1a7b7e258e5d48f242695d827b"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Mon Apr 01 17:42:14 2019 -0700"
      },
      "committer": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Wed Apr 03 18:19:50 2019 -0700"
      },
      "message": "Fix dlsym and dladdr for TLS symbols\n\n * dlsym: call __tls_get_addr for TLS symbols\n\n * dladdr: skip TLS symbols\n\nBug: b/123772574\nTest: bionic unit tests\nChange-Id: I59a8bc4a7d455e1018b0d577b027b6417c8487cd\n"
    },
    {
      "commit": "865866ee2b34797e171899707a526743b8fad9a9",
      "tree": "c3e3609e17e6ef2801e8f157bf85e94f653d52b6",
      "parents": [
        "96c21e43b41577c4d8f5c3f174eeb384066aedd1",
        "fa9f7f28d4d3df6b1439553ed183efd421981616"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Apr 03 15:19:57 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 03 15:19:57 2019 +0000"
      },
      "message": "Merge \"Fix DLEXT_WRITE_RELRO when loading multiple libs.\""
    },
    {
      "commit": "96c21e43b41577c4d8f5c3f174eeb384066aedd1",
      "tree": "32f2884627cc6c32ceb39a6fa957403d7a7ada1f",
      "parents": [
        "e6fd53b751c253ce9315875bed838a6d549132f3",
        "0d16a316647a8d94a079e14fb2941b127fcea27e"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Apr 03 14:45:47 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 03 14:45:47 2019 +0000"
      },
      "message": "Merge \"Move bionic-unit-tests-static to libclang_rt.builtins\""
    },
    {
      "commit": "0d16a316647a8d94a079e14fb2941b127fcea27e",
      "tree": "32f2884627cc6c32ceb39a6fa957403d7a7ada1f",
      "parents": [
        "e6fd53b751c253ce9315875bed838a6d549132f3"
      ],
      "author": {
        "name": "Pirama Arumuga Nainar",
        "email": "pirama@google.com",
        "time": "Tue Apr 02 22:45:29 2019 -0700"
      },
      "committer": {
        "name": "Pirama Arumuga Nainar",
        "email": "pirama@google.com",
        "time": "Tue Apr 02 22:45:29 2019 -0700"
      },
      "message": "Move bionic-unit-tests-static to libclang_rt.builtins\n\nBug: http://b/129728267\nBug: http://b/117167374\n\nThis test is now built with XOM (because libm now uses XOM) but it\nshould also use libclang_rt.builtins since libgcc is not built with XOM.\n\nTest: bionic-unit-tests-static passes (but used to segfault with XOM\nexceptions without this change).\n\nChange-Id: I0b1dfe52e48db5f5e9386c7722ecd91e155be56f\n"
    },
    {
      "commit": "8c1a14d4f358a8135e0c0632da6d40c37192c0c2",
      "tree": "af9be5a543c0192df1cccedaac674d06bc809f5e",
      "parents": [
        "b656d4a1da35eac817950f906ce1c26259c05e82"
      ],
      "author": {
        "name": "Adrian-CJ Hung",
        "email": "adrian-cj.hung@mediatek.com",
        "time": "Wed Apr 03 10:39:15 2019 +0800"
      },
      "committer": {
        "name": "JeiFeng Lee",
        "email": "linger.lee@mediatek.com",
        "time": "Wed Apr 03 11:50:33 2019 +0800"
      },
      "message": "Workaround potential access to unmapped stack\n\nIssue:\nProcess is crashed near the end (startup_handshake_lock.unlock()) in\npthread_create().\n\nThe newly created child thread passes this handshake_lock unexpectedly\n\u003d\u003e its stack is unmapped \u0026 its associated pthread_internal_t data\nstructure can’t be accessed.\n\nAnalysis:\nThe created child thread should be blocked by startup_handshake_lock.lock()\nand enter __futex_wait_ex()\n\nBut if the parent thread is in the middle of startup_handshake_lock.unlock():\n\n  void unlock() {\n    if (atomic_exchange_explicit(\u0026state, Unlocked, memory_order_seq_cst) \u003d\u003d LockedWithWaiter) {  // \u003d\u003e the state is modified to Unlocked\n\n    // (a) if the child thread is back to running and pass the while() check in Lock::lock()\n    // (b) the child thread executes its start_routine and then pthread_exit\n    // (c) the stack of the child thread (where its pthread_internal_t (so the startup_handshake_lock) is located) will be unmapped\n\n     __futex_wake_ex(\u0026state, process_shared, 1);   // \u003d\u003e when the parent thread is back to running\n                                                   // the “state” \u0026 “process_shared” of startup_handshake_lock can’t be accessed (unmapped)\n                                                   // so the process will be crashed\n    }\n  }\n\nBug: 129744706\nTest: Monkey\nChange-Id: I55175e8c7ebc2b3b52de8a5602def0667076b974\n"
    },
    {
      "commit": "fa9f7f28d4d3df6b1439553ed183efd421981616",
      "tree": "7bc371b05622827a39f375a7c43201c601e72b6d",
      "parents": [
        "e6fd53b751c253ce9315875bed838a6d549132f3"
      ],
      "author": {
        "name": "Torne (Richard Coles)",
        "email": "torne@google.com",
        "time": "Tue Apr 02 17:04:42 2019 -0400"
      },
      "committer": {
        "name": "Torne (Richard Coles)",
        "email": "torne@google.com",
        "time": "Tue Apr 02 18:06:12 2019 -0400"
      },
      "message": "Fix DLEXT_WRITE_RELRO when loading multiple libs.\n\nANDROID_DLEXT_WRITE_RELRO was causing the GNU RELRO sections of\nlibraries to become corrupted if more than one library was being loaded\nat once (i.e. if the root library has DT_NEEDED entries for libraries\nthat weren\u0027t already loaded). The file offset was not being correctly\npropagated between calls, so after writing out the (correct) RELRO data\nto the file, it was mapping the data at file offset 0 for all libraries,\nwhich corrupted the data for all but one of the libraries.\n\nFix this by passing file_offset as a pointer the same way that\nphdr_table_map_gnu_relro does.\n\nBug: 128623590\nTest: tbd\nChange-Id: I196cd336bd5a67454e89fd85487356b1c7856871\n"
    },
    {
      "commit": "e6fd53b751c253ce9315875bed838a6d549132f3",
      "tree": "725f1d300756814d09789914586fea939d4b848b",
      "parents": [
        "4fbe1266433405c89f6b288fbc779728934c067a",
        "c328e4465d12d760f5fbcb2daddf5fa4138f50b1"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Apr 02 19:46:29 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 02 19:46:29 2019 +0000"
      },
      "message": "Merge \"Disable info messages by default for malloc debug.\""
    },
    {
      "commit": "c328e4465d12d760f5fbcb2daddf5fa4138f50b1",
      "tree": "fd91c386332bbe1198cb0bedc11505b76d146057",
      "parents": [
        "4699cf61746d37fc11c8eb8bdfc7eb296a476e4b"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Apr 01 19:31:26 2019 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Apr 02 10:55:21 2019 -0700"
      },
      "message": "Disable info messages by default for malloc debug.\n\nAdd a new option verbose for malloc debug that is not enabled by default.\nThis disables all of the info log messages. It turns out these log\nmessages can add a measurable amount of time and can change the boot up.\n\nBug: 129239269\n\nTest: Adjusted unit tests pass.\nTest: Verified no messages unless verbose option used.\nChange-Id: I805cb7c8ecb44de88119574e59d784877cacc383\n"
    },
    {
      "commit": "4fbe1266433405c89f6b288fbc779728934c067a",
      "tree": "b1c1e17ee405100a72eeca2317b369052244cdb9",
      "parents": [
        "d486e024c63a8f2d86f0d23368d2cfd704e79288",
        "90cca40111d98810ae067664d00a6597e1583520"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 02 03:51:51 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 02 03:51:51 2019 +0000"
      },
      "message": "Merge \"libc: Update symbol_ordering file\""
    },
    {
      "commit": "d486e024c63a8f2d86f0d23368d2cfd704e79288",
      "tree": "a7962dd97a99147e20d9780b87076ba4191b4bea",
      "parents": [
        "4699cf61746d37fc11c8eb8bdfc7eb296a476e4b",
        "fc26d71af1b71491492d0695b14364c8c0e7a93f"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Apr 02 01:37:07 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 02 01:37:07 2019 +0000"
      },
      "message": "Merge \"Create a lib that uses scudo instead of jemalloc.\""
    },
    {
      "commit": "db6edcca36082a1a7b7e258e5d48f242695d827b",
      "tree": "d314d0d7e5a8657bd562deac7c7ba21d78b11f7d",
      "parents": [
        "4699cf61746d37fc11c8eb8bdfc7eb296a476e4b"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Mon Apr 01 16:16:05 2019 -0700"
      },
      "committer": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Mon Apr 01 16:17:59 2019 -0700"
      },
      "message": "Fix BionicAllocator comment\n\nTest: n/a\nBug: none\nChange-Id: Ic437d35231b47553add49e20d7ee451d42db710c\n"
    },
    {
      "commit": "fc26d71af1b71491492d0695b14364c8c0e7a93f",
      "tree": "a7962dd97a99147e20d9780b87076ba4191b4bea",
      "parents": [
        "4699cf61746d37fc11c8eb8bdfc7eb296a476e4b"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Feb 27 18:07:55 2019 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Apr 01 13:02:49 2019 -0700"
      },
      "message": "Create a lib that uses scudo instead of jemalloc.\n\nThe media processes already use scudo as their allocator. However, it\ndoesn\u0027t really correctly replace the normal allocation functions, so create\na set of wrappers that allow us to use scudo closer to how jemalloc is used.\n\nThis is only a temporary change, and should be removed for the next\nrelease of Android. In that version, we will be using standalone\nscudo which won\u0027t require this wrapper code.\n\nBug: 123689570\n\nTest: Ran new bionic unit tests. There are failures, but only with\nTest: extensions that scudo does not support.\n\nChange-Id: I0516c23d654a9b6c69b157c5501245d2e0b3d264\n"
    },
    {
      "commit": "90cca40111d98810ae067664d00a6597e1583520",
      "tree": "b4172efdc32d406d8a2898a08afe9f7325eec942",
      "parents": [
        "4699cf61746d37fc11c8eb8bdfc7eb296a476e4b"
      ],
      "author": {
        "name": "Vic Yang",
        "email": "victoryang@google.com",
        "time": "Mon Apr 01 12:06:11 2019 -0700"
      },
      "committer": {
        "name": "Vic Yang",
        "email": "victoryang@google.com",
        "time": "Mon Apr 01 12:08:50 2019 -0700"
      },
      "message": "libc: Update symbol_ordering file\n\nThere have been several changes since the file was created.  Update the\nfile with latest build.  We also sort the symbols by names when they\nhave the same size so that future updates are easier to review.\n\nBug: 124521408\nTest: Build and inspect symbol ordering\nChange-Id: Iedd885b9a87d882ae278a1f117f40b20d064c384\n"
    },
    {
      "commit": "ce584e4fc93978cb44057fce5f556e68519f051e",
      "tree": "8c2fbb60193db21f6fc6dd76dfe9984a8ab124e4",
      "parents": [
        "4b8b849371e8be2951a1b2a9d1f8cad7874e7c29"
      ],
      "author": {
        "name": "dimitry",
        "email": "dimitry@google.com",
        "time": "Fri Mar 29 05:34:33 2019 +0100"
      },
      "committer": {
        "name": "dimitry",
        "email": "dimitry@google.com",
        "time": "Mon Apr 01 13:17:20 2019 +0200"
      },
      "message": "Fix CtsJniTestCases\n\nThe linker_namespaces test need android_get_LD_LIBRARY_PATH function.\n\nBug: http://b/129479780\nTest: atest CtsJniTestCases\nChange-Id: Iba5f74e1e4b5b1de173150120293102524db2507\n(cherry picked from commit 91b0c68009c6d6efbaab8f268a5c9afb141c5ab4)\n"
    },
    {
      "commit": "8868d9e9004b4fa2d8139abaaff1baa21ea55dab",
      "tree": "c38fe375ecf4d393b983a326238eaca118711e9a",
      "parents": [
        "4699cf61746d37fc11c8eb8bdfc7eb296a476e4b"
      ],
      "author": {
        "name": "dimitry",
        "email": "dimitry@google.com",
        "time": "Tue Mar 19 13:01:42 2019 +0100"
      },
      "committer": {
        "name": "dimitry",
        "email": "dimitry@google.com",
        "time": "Mon Apr 01 13:16:33 2019 +0200"
      },
      "message": "Move platform-private symbols out of libdl.so\n\nSymbols not intended to be accessible from apps are moved to libdl_android.so\n\nTest: bionic-unit-tests\nBug: http://b/129387775\nChange-Id: Ib8ba6147a20cf56550c9a008f66570a2d419565a\n(cherry picked from commit 2d6be9a751685b4c307632bf27e8c100310ad500)\n"
    },
    {
      "commit": "4b8b849371e8be2951a1b2a9d1f8cad7874e7c29",
      "tree": "b316b190cda1b0f4a6bb6a66933423b990c2b5aa",
      "parents": [
        "8868d9e9004b4fa2d8139abaaff1baa21ea55dab"
      ],
      "author": {
        "name": "dimitry",
        "email": "dimitry@google.com",
        "time": "Thu Mar 28 12:43:14 2019 +0100"
      },
      "committer": {
        "name": "dimitry",
        "email": "dimitry@google.com",
        "time": "Mon Apr 01 13:16:33 2019 +0200"
      },
      "message": "Fix formatting\n\nTest: make\nChange-Id: I92b8893997c2fd75002e84070a3ca91fca4b110e\n"
    },
    {
      "commit": "4699cf61746d37fc11c8eb8bdfc7eb296a476e4b",
      "tree": "b6d7dd0e2edd145cb773d3700c4ccafe67019a7e",
      "parents": [
        "0ce5c4440d8e78358c39054942a108fd771d9707",
        "358603a40908415d5fe780f9321ba7d6b9941638"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Sat Mar 30 02:11:13 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Mar 30 02:11:13 2019 +0000"
      },
      "message": "Merge \"Modernise code to use override specifier\""
    },
    {
      "commit": "0ce5c4440d8e78358c39054942a108fd771d9707",
      "tree": "c097293a7d32812038111e1ab4b214c0a0f061c1",
      "parents": [
        "b95c8af8c97dd34454bdf6092cc5e09efe9888ce",
        "bb4cf7b8a7d515faedc651b318755634be00312d"
      ],
      "author": {
        "name": "Daniel Mentz",
        "email": "danielmentz@google.com",
        "time": "Sat Mar 30 00:10:09 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Mar 30 00:10:09 2019 +0000"
      },
      "message": "Merge \"clean_header: Don\u0027t print extraneous newline char\""
    },
    {
      "commit": "bb4cf7b8a7d515faedc651b318755634be00312d",
      "tree": "c097293a7d32812038111e1ab4b214c0a0f061c1",
      "parents": [
        "b95c8af8c97dd34454bdf6092cc5e09efe9888ce"
      ],
      "author": {
        "name": "Daniel Mentz",
        "email": "danielmentz@google.com",
        "time": "Thu Mar 28 18:12:30 2019 -0700"
      },
      "committer": {
        "name": "Daniel Mentz",
        "email": "danielmentz@google.com",
        "time": "Fri Mar 29 15:17:48 2019 -0700"
      },
      "message": "clean_header: Don\u0027t print extraneous newline char\n\nDon\u0027t print an extraneous newline character at the end of the include\nfile if clean_header.py is used in the non-update mode. This is\nnecessary to achieve consistent results in the update and non-update\nmodes.\n\nRunning clean_header in the non-update mode and redirecting the output\nto a file should have the same result as using the update mode and have\nthe script write to the file directly.\n\nChange-Id: I6b176c5365840d66e4499bacd205f1fa77302a2b\n"
    },
    {
      "commit": "b95c8af8c97dd34454bdf6092cc5e09efe9888ce",
      "tree": "a7f1366d72662a525684839cfddc67694737f09f",
      "parents": [
        "3e742cb6133ad37ce28e8f0bffdf70f763ed45a3",
        "316f4a499c4e0e014f59e1207090f84303c5bf7d"
      ],
      "author": {
        "name": "Daniel Mentz",
        "email": "danielmentz@google.com",
        "time": "Fri Mar 29 21:41:35 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 29 21:41:35 2019 +0000"
      },
      "message": "Merge \"clean_header: Write to correct dst_file\""
    },
    {
      "commit": "316f4a499c4e0e014f59e1207090f84303c5bf7d",
      "tree": "a7f1366d72662a525684839cfddc67694737f09f",
      "parents": [
        "3e742cb6133ad37ce28e8f0bffdf70f763ed45a3"
      ],
      "author": {
        "name": "Daniel Mentz",
        "email": "danielmentz@google.com",
        "time": "Thu Mar 28 18:32:29 2019 -0700"
      },
      "committer": {
        "name": "Daniel Mentz",
        "email": "danielmentz@google.com",
        "time": "Fri Mar 29 21:41:15 2019 +0000"
      },
      "message": "clean_header: Write to correct dst_file\n\nWrite to correct dst_file when in update mode. This enables use cases\nlike the following:\n\n../../../bionic/libc/kernel/tools/clean_header.py -k original-kernel-headers/ -d kernel-headers/ -u linux/ion.h\n\nPreviously, we had to cd into kernel-headers/ and then run\n\n../../../../bionic/libc/kernel/tools/clean_header.py -k ../original-kernel-headers/ -d . -u linux/ion.h\n\nbecause the tool didn\u0027t allow the relative path to be different from the\ndestination path.\n\nChange-Id: I8c5e284ce7a6737d77a2f5ead3e7e5db01317425\n"
    },
    {
      "commit": "358603a40908415d5fe780f9321ba7d6b9941638",
      "tree": "4485083508172c6474755333b0edd99ad7c7da0f",
      "parents": [
        "3e742cb6133ad37ce28e8f0bffdf70f763ed45a3"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Fri Mar 29 14:25:16 2019 -0700"
      },
      "committer": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Fri Mar 29 14:27:27 2019 -0700"
      },
      "message": "Modernise code to use override specifier\n\nGenerated by clang-tidy.\n\nTest: m checkbuild\nChange-Id: I8e23da6b8af31b291be2eefe9937ca222ea8a8c3\n"
    },
    {
      "commit": "e712cd185f34dd154b4672abae76eae262a03c65",
      "tree": "e88302cb5b0b5d3d778065b83ec45e516b509cb6",
      "parents": [
        "3e742cb6133ad37ce28e8f0bffdf70f763ed45a3"
      ],
      "author": {
        "name": "Dmytro Chystiakov",
        "email": "dmytro.chystiakov@intel.com",
        "time": "Fri Mar 29 13:49:12 2019 -0700"
      },
      "committer": {
        "name": "Dmytro Chystiakov",
        "email": "dmytro.chystiakov@intel.com",
        "time": "Fri Mar 29 13:49:12 2019 -0700"
      },
      "message": "Fix Bionic dlfcn.dladdr_libc test case for 64bit binary translations\n\n64bit libraries should be located in /system/lib64 directory\ninstead of /system/lib for platforms with emulated arhitecture.\n\nThis patch updated ALTERNATE_PATH_TO_SYSTEM_LIB for 64bit values\n\nTest: run cts -m CtsBionicTestCases -t dlfcn.dladdr_libc\n\nChange-Id: I29d6d36d15d7e61818c7ed1cfd0786745d9ae6a2\nSigned-off-by: Dmytro Chystiakov \u003cdmytro.chystiakov@intel.com\u003e\n"
    },
    {
      "commit": "3e742cb6133ad37ce28e8f0bffdf70f763ed45a3",
      "tree": "0b102abd15cfa127182b8fd6b736ab1b09ae9bb1",
      "parents": [
        "6c5c6afea9c47d85ecada0f1d6d799ab640febf4",
        "ebe1ae7747699ab92e5e94a5f3b500098fa86678"
      ],
      "author": {
        "name": "Pirama Arumuga Nainar",
        "email": "pirama@google.com",
        "time": "Fri Mar 29 15:57:32 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 29 15:57:32 2019 +0000"
      },
      "message": "Merge \"Reserve realtime signal for libprofile-extras\""
    },
    {
      "commit": "6c5c6afea9c47d85ecada0f1d6d799ab640febf4",
      "tree": "6db4ace042a72e561909966f7d6da6c1d5339a01",
      "parents": [
        "14025fd2bf8f9e99d76e886d8289e78cff21f90a",
        "1e3758e7a2aaef92a60237c9cc46d14bf7ebea95"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Mar 28 21:49:26 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 28 21:49:26 2019 +0000"
      },
      "message": "Merge \"Fix double initialization call.\""
    },
    {
      "commit": "1e3758e7a2aaef92a60237c9cc46d14bf7ebea95",
      "tree": "6db4ace042a72e561909966f7d6da6c1d5339a01",
      "parents": [
        "14025fd2bf8f9e99d76e886d8289e78cff21f90a"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Mar 28 09:29:15 2019 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Mar 28 17:12:26 2019 +0000"
      },
      "message": "Fix double initialization call.\n\nThe previous refactor left a double call to the initialization of\nthe loaded hooks. Remove the unnecessary call.\n\nBug: 129239269\n\nTest: All unit tests pass. No double printing of init messages.\nChange-Id: Ie980f2383c75d69f8b06bf9a431bb59caef21188\n"
    },
    {
      "commit": "14025fd2bf8f9e99d76e886d8289e78cff21f90a",
      "tree": "6725e4b5ec7261c8b590b7aa8a1e9f0ba23c207e",
      "parents": [
        "29a89df9e2e056162b60a36194acce26fb2d3036",
        "feb5ed1b54e323142ce3e325e8a37eb7b4ade021"
      ],
      "author": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Thu Mar 28 01:17:33 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 28 01:17:33 2019 +0000"
      },
      "message": "Merge \"Use PR_SET_VMA_ANON_NAME to name the abort message mapping.\""
    },
    {
      "commit": "feb5ed1b54e323142ce3e325e8a37eb7b4ade021",
      "tree": "be56b7578f959f5d43d50090cd2c945258e07624",
      "parents": [
        "2e824e3150c2d36ef6e1e45269f8538a80ff2525"
      ],
      "author": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Wed Mar 27 14:28:57 2019 -0700"
      },
      "committer": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Wed Mar 27 16:50:27 2019 -0700"
      },
      "message": "Use PR_SET_VMA_ANON_NAME to name the abort message mapping.\n\nThis makes it easier for tools to find the mapping. I am planning\nto use this in crashpad to add HWASAN reports to the minidump.\n\nBug: http://crbug.com/crashpad/287\nChange-Id: I600e551ef26d6ff62849319365d77912afa82fde\n"
    },
    {
      "commit": "29a89df9e2e056162b60a36194acce26fb2d3036",
      "tree": "a87d627b7a9435490ea3c99077d2139aadbc464d",
      "parents": [
        "2e824e3150c2d36ef6e1e45269f8538a80ff2525",
        "3cfedf4ff0616e7b4f448ed6577490c12937b9f0"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Mar 27 23:46:09 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 27 23:46:09 2019 +0000"
      },
      "message": "Merge \"param.h: whitespace cleanup\""
    },
    {
      "commit": "2e824e3150c2d36ef6e1e45269f8538a80ff2525",
      "tree": "b9e4885b0f518bf493b70584854ab69e50a1ae86",
      "parents": [
        "1d9a4cbce90e3dfb28341860a075816076170ceb",
        "1167882a8733302ef5996efa714d6b7f266351d6"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Mar 27 20:54:59 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 27 20:54:59 2019 +0000"
      },
      "message": "Merge \"tests: test both upper- and lower-case with strptime %P/%p.\""
    },
    {
      "commit": "1d9a4cbce90e3dfb28341860a075816076170ceb",
      "tree": "33b3aa2c34a29226a84a8eb6ac9d7211a7be01da",
      "parents": [
        "e7ee0731c331f4d2dbcc48a683260091c20665c4",
        "efd25a0fd7b54bace96dd4fef7e1ea4060ec1f40"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Wed Mar 27 20:32:46 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 27 20:32:46 2019 +0000"
      },
      "message": "Merge \"Move x86 and x86_64 libc to use libcrt\""
    },
    {
      "commit": "e7ee0731c331f4d2dbcc48a683260091c20665c4",
      "tree": "768962a7b5f1478b25994dc9d563992ceb5ff478",
      "parents": [
        "ff923681be7867f088a79d83a71a5ba4a78aaef7",
        "109072038a470a77396582a64ddba825fe813b8f"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Mar 27 20:04:49 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 27 20:04:49 2019 +0000"
      },
      "message": "Merge \"Convert new tests to GTEST_SKIP.\""
    },
    {
      "commit": "3cfedf4ff0616e7b4f448ed6577490c12937b9f0",
      "tree": "2cc489dee4fc5fdaed8524521aafdb305a6b4a8b",
      "parents": [
        "ff923681be7867f088a79d83a71a5ba4a78aaef7"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Mar 27 10:20:06 2019 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Mar 27 10:56:16 2019 -0700"
      },
      "message": "param.h: whitespace cleanup\n\nc50b6a2b89136b26a7f511a1a17e05b39f49dabd redefined the powerof2 macro,\nbut in a way that that didn\u0027t meet the clang_format style guidelines.\nChange powerof2 to make clang_format happy.\n\nTest: compiles\nChange-Id: Icd04a17f40413b7a416ddcdc080edbc4d3fac87a\n"
    },
    {
      "commit": "efd25a0fd7b54bace96dd4fef7e1ea4060ec1f40",
      "tree": "5a683664c2394878e5bdd2895f72e179c5d8d96e",
      "parents": [
        "ff923681be7867f088a79d83a71a5ba4a78aaef7"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Wed Mar 27 09:17:29 2019 -0700"
      },
      "committer": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Wed Mar 27 16:54:28 2019 +0000"
      },
      "message": "Move x86 and x86_64 libc to use libcrt\n\nWith __cpu_model visibility issue fixed in libcrt, we can move x86 and\nx86_64 libc to use libcrt as well.\n\nTest: emulator boots\nBug: 122993569\nChange-Id: If71c324180010a57e3e9598d758a4d6ab1a3c369\n"
    },
    {
      "commit": "1167882a8733302ef5996efa714d6b7f266351d6",
      "tree": "a2aef8c58a71e875d8e7a1b92950dd0394a14a79",
      "parents": [
        "ff923681be7867f088a79d83a71a5ba4a78aaef7"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Mar 27 08:56:49 2019 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Mar 27 08:56:49 2019 -0700"
      },
      "message": "tests: test both upper- and lower-case with strptime %P/%p.\n\nTest: ran tests\nChange-Id: I7275808f2f0ae4f02d057542a13350895022910c\n"
    },
    {
      "commit": "109072038a470a77396582a64ddba825fe813b8f",
      "tree": "d3a375f926c47f8a6c2da63f878a5fa53252bb4b",
      "parents": [
        "e08288465ece24860d61788b975a8267a4594379"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Mar 27 08:51:02 2019 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Mar 27 08:51:02 2019 -0700"
      },
      "message": "Convert new tests to GTEST_SKIP.\n\nThese went in while we were waiting for the infrastructure to catch up.\n\nTest: treehugger\nChange-Id: I1179d1aba8f1369d320f82705958b36c6930babf\n"
    },
    {
      "commit": "ff923681be7867f088a79d83a71a5ba4a78aaef7",
      "tree": "0410e1c0d036b886cb97c315a67ebc828a5b64fb",
      "parents": [
        "e08288465ece24860d61788b975a8267a4594379",
        "a1fb15bb67bcdf426c012919c096e7235b551f40"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Mar 27 15:44:54 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 27 15:44:54 2019 +0000"
      },
      "message": "Merge \"strptime: support everything that strftime supports.\""
    },
    {
      "commit": "a1fb15bb67bcdf426c012919c096e7235b551f40",
      "tree": "0410e1c0d036b886cb97c315a67ebc828a5b64fb",
      "parents": [
        "e08288465ece24860d61788b975a8267a4594379"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 26 19:07:40 2019 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 26 19:07:40 2019 -0700"
      },
      "message": "strptime: support everything that strftime supports.\n\nOur strptime was missing `%F`, `%G`, `%g`, `%P`, `%u`, `%V`, and\n`%v`. Most of these are already supported upstream (and I\u0027ve just pulled\ntheir current implementation), but some aren\u0027t. We\u0027re horribly out of\nsync anyway, so I\u0027ll upstream the missing pieces and then try to get us\nback in sync later.\n\nTest: new tests, but originally found by toybox trying to use %F\nChange-Id: Ib1a10801a7a3b9c9189440c3b300109bde535fd9\n"
    },
    {
      "commit": "e08288465ece24860d61788b975a8267a4594379",
      "tree": "95bdb088b066aa9d1ed495244c13b3e644acbdec",
      "parents": [
        "e990078f055314baab073380c58819181203dd63",
        "bcaa454d32e1b4ccf92467bb263d627695ac9a5b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Mar 27 02:05:57 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 27 02:05:57 2019 +0000"
      },
      "message": "Merge \"bionic tests: use GTEST_SKIP.\""
    },
    {
      "commit": "e990078f055314baab073380c58819181203dd63",
      "tree": "cfd8fbb23e07a7949be6d97a8a6e51ac76fc517c",
      "parents": [
        "b0c33ecb99fc92c70f7ab5f000432e53660a41a9",
        "ce491abe24b8a5e7138f05ce8bab3e9701f5f5cb"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Mar 27 01:04:36 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 27 01:04:36 2019 +0000"
      },
      "message": "Merge \"Increase the allocation limit again.\""
    },
    {
      "commit": "b0c33ecb99fc92c70f7ab5f000432e53660a41a9",
      "tree": "8d864694011a6eb5820f38cb01e7da6d88745b49",
      "parents": [
        "fe88d26acaa8bfee2f3035ce039a581d8b798970",
        "8ceb95c5065b6627b3c30c735d3272e0004c4b66"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Mar 26 23:44:19 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 26 23:44:19 2019 +0000"
      },
      "message": "Merge \"Fix running the tests on the host again.\""
    },
    {
      "commit": "ce491abe24b8a5e7138f05ce8bab3e9701f5f5cb",
      "tree": "f9c8299329bcb07a8a5f4071bb27a5a267dc800a",
      "parents": [
        "fe88d26acaa8bfee2f3035ce039a581d8b798970"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Mar 26 15:45:34 2019 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Mar 26 15:47:07 2019 -0700"
      },
      "message": "Increase the allocation limit again.\n\nStill getting a few flakes, so double the allowed tries.\n\nBug: 128872105\n\nTest: Test passes.\nChange-Id: I0fb3d74655eaece6660dec26a2a1d01430ef8fbc\n"
    },
    {
      "commit": "fe88d26acaa8bfee2f3035ce039a581d8b798970",
      "tree": "165583c328389a1f24a786ba6a4b9e90466a3678",
      "parents": [
        "2059021322151b3ea560806558640aa130f13f8d",
        "ba1151c761534392faef9b1148aa554c671e0d91"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Mar 26 22:00:31 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 26 22:00:31 2019 +0000"
      },
      "message": "Merge \"Typo fix in comment. O_CLOEXEC is e, not x.\""
    },
    {
      "commit": "8ceb95c5065b6627b3c30c735d3272e0004c4b66",
      "tree": "cc898b796f189bfb0d0f831298a12c82d36d2649",
      "parents": [
        "2059021322151b3ea560806558640aa130f13f8d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 26 14:47:08 2019 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 26 14:47:08 2019 -0700"
      },
      "message": "Fix running the tests on the host again.\n\nBug: N/A\nTest: ran the tests on the host under glibc\nChange-Id: Id05a896bdd11b231304ed1a08ef24e1a661ee20d\n"
    },
    {
      "commit": "ba1151c761534392faef9b1148aa554c671e0d91",
      "tree": "8c2fea0108e33e699099fe2a3a4b17d86e49e69b",
      "parents": [
        "e65558a0a4ad1f4aee5d63d0661b02f910e0cbd8"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Mar 26 13:01:22 2019 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Mar 26 13:01:22 2019 -0700"
      },
      "message": "Typo fix in comment. O_CLOEXEC is e, not x.\n\nTest: None\nBug: None\nChange-Id: I061fe1d3cac6307d878155f1fabdba70da8e9fd5\n"
    },
    {
      "commit": "2059021322151b3ea560806558640aa130f13f8d",
      "tree": "75a9d37997ce22132ee35d7bde87f7e01d032b74",
      "parents": [
        "b1ddbfdcdcbd583ae36ba31ad65ca4cb62e0733e",
        "3770d9326345dcb3d8c93bddfa0c97256a59c251"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Mar 26 17:32:12 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 26 17:32:12 2019 +0000"
      },
      "message": "Merge \"docs: mention the fact that bionic now uses ifuncs.\""
    },
    {
      "commit": "3770d9326345dcb3d8c93bddfa0c97256a59c251",
      "tree": "75a9d37997ce22132ee35d7bde87f7e01d032b74",
      "parents": [
        "b1ddbfdcdcbd583ae36ba31ad65ca4cb62e0733e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 26 08:52:07 2019 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 26 08:52:07 2019 -0700"
      },
      "message": "docs: mention the fact that bionic now uses ifuncs.\n\nBug: http://b/123296740\nTest: N/A\nChange-Id: I2cdc575270ebf32fd8ac1de21182150f5222cf9f\n"
    },
    {
      "commit": "b1ddbfdcdcbd583ae36ba31ad65ca4cb62e0733e",
      "tree": "91a782f954ce33d5058aa1106f1c8b593ca17efe",
      "parents": [
        "1b6517b60116cbdf3f864c6b8839d1561e77a118",
        "886370c2402e6fcf6ac613a8603f99fff66cd20c"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Mar 26 09:32:16 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 26 09:32:16 2019 +0000"
      },
      "message": "Merge \"Fix internal uses of _PATH_BSHELL.\""
    },
    {
      "commit": "ebe1ae7747699ab92e5e94a5f3b500098fa86678",
      "tree": "198d07f2a5f55ae1f9d906300dcdb38e7e323bad",
      "parents": [
        "e187d92062b3a384f8c4730f93aa6c36e1c74b52"
      ],
      "author": {
        "name": "Pirama Arumuga Nainar",
        "email": "pirama@google.com",
        "time": "Mon Mar 25 22:06:56 2019 -0700"
      },
      "committer": {
        "name": "Pirama Arumuga Nainar",
        "email": "pirama@google.com",
        "time": "Mon Mar 25 22:09:19 2019 -0700"
      },
      "message": "Reserve realtime signal for libprofile-extras\n\nBug: http://b/128524141\n\nThis signal is used by libprofile-extras to trigger flush of gcov\ncoverage data.\n\nTest: libprofile-extras in system/extras/toolchain-extras\nChange-Id: I77dd5b1d67371a9cfaad54ad60254bfb2dd18ba9\n"
    },
    {
      "commit": "1b6517b60116cbdf3f864c6b8839d1561e77a118",
      "tree": "3c775ba1ba9973abca88036ec075742c6a3891bd",
      "parents": [
        "49e7b68ac27eb54cfd52455f58b6daf54dca04f5",
        "c50b6a2b89136b26a7f511a1a17e05b39f49dabd"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Mar 26 03:43:23 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 26 03:43:23 2019 +0000"
      },
      "message": "Merge \"Make powerof2 macro ubsan safe\""
    },
    {
      "commit": "886370c2402e6fcf6ac613a8603f99fff66cd20c",
      "tree": "55973f92a11704c20bc09aa8a74c2094c7b1c2a7",
      "parents": [
        "ebdf4c19f9e034d7ec8e0e57539890d5c93eaed1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 21 21:11:41 2019 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 25 17:28:22 2019 -0700"
      },
      "message": "Fix internal uses of _PATH_BSHELL.\n\nWe regressed on this recently: code under the upstream-* directories has\n_PATH_BSHELL defined as a call to __bionic_get_shell_path(). In our own\ncode, we may as well just call it directly.\n\nBug: https://issuetracker.google.com/129030706\nTest: ran tests\nChange-Id: Ic2423f521272be95e67f94771772fe8072636ef0\n"
    },
    {
      "commit": "49e7b68ac27eb54cfd52455f58b6daf54dca04f5",
      "tree": "2d44b9b1e095133b39e1ad4f51a9622cdef0d101",
      "parents": [
        "e187d92062b3a384f8c4730f93aa6c36e1c74b52",
        "137b6f36ef5fea86e5b672188323e87dc0d66781"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 25 23:48:47 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 25 23:48:47 2019 +0000"
      },
      "message": "Merge \"popen: stop using _fwalk.\""
    },
    {
      "commit": "c50b6a2b89136b26a7f511a1a17e05b39f49dabd",
      "tree": "6a4a41a1dd913590f47b4035175557d1aa6f026c",
      "parents": [
        "e187d92062b3a384f8c4730f93aa6c36e1c74b52"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Mar 21 14:04:33 2019 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Mon Mar 25 13:51:33 2019 -0700"
      },
      "message": "Make powerof2 macro ubsan safe\n\nSubtracting one from the smallest value expressable by the provided\nvariable could cause an underflow operation. In particular, this is\nproblematic when code similar to:\n\n  uint64_t foo \u003d 0;\n  if (powerof2(foo)) {\n    ...;\n  }\n\nis run with integer sanitization enabled. The macro would subtract one\nfrom zero, underflowing and triggering the sanitizer.\n\nMake the powerof2() macro ubsan safe, by explicitly handling underflows.\n\nNote: This change DOES NOT make powerof2() accurate. We continue to\nfalsely return \"true\" for 0 and negative numbers (see attached tests).\n\nFound while investigating Bug: 122975762\nTest: see added testcase\nTest: atest ziparchive-tests\n\nChange-Id: I5408ce5c18868d797bcae8f115ddb7c4c1ced81e\n"
    },
    {
      "commit": "137b6f36ef5fea86e5b672188323e87dc0d66781",
      "tree": "2d44b9b1e095133b39e1ad4f51a9622cdef0d101",
      "parents": [
        "e187d92062b3a384f8c4730f93aa6c36e1c74b52"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 25 11:18:36 2019 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 25 11:18:36 2019 -0700"
      },
      "message": "popen: stop using _fwalk.\n\nWe don\u0027t need this now that popen always uses O_CLOEXEC, and it\u0027s unsafe\nbecause _fwalk takes a lock. (In \u003c\u003d P, the equivalent code walked the\nlist without a lock in the child.)\n\nBug: http://b/129156634\nTest: ran tests\nChange-Id: Ic9cee7eb59cfc9397f370d1dc47ea3d3326179ca\n"
    },
    {
      "commit": "e187d92062b3a384f8c4730f93aa6c36e1c74b52",
      "tree": "9c64a574dc60ce0873236837d009a8666a1c11d2",
      "parents": [
        "118ab10d750bd9faab2dadf66df546a2c44afd3b",
        "8de6b46ad8af95db0e51568277ed0ad5e9dcda5a"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 22 22:24:11 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 22 22:24:11 2019 +0000"
      },
      "message": "Merge \"Disable malloc_info test under HWASan.\""
    },
    {
      "commit": "8de6b46ad8af95db0e51568277ed0ad5e9dcda5a",
      "tree": "9c64a574dc60ce0873236837d009a8666a1c11d2",
      "parents": [
        "118ab10d750bd9faab2dadf66df546a2c44afd3b"
      ],
      "author": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Fri Mar 22 13:22:28 2019 -0700"
      },
      "committer": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Fri Mar 22 13:23:18 2019 -0700"
      },
      "message": "Disable malloc_info test under HWASan.\n\nHWASan does not implement malloc_info.\n\nTest: bionic-unit-tests with SANITIZE_TARGET\u003dhwaddress\nChange-Id: I61d50d9110fbca1784ed39950ed6c5540ca0c9a7\n"
    },
    {
      "commit": "118ab10d750bd9faab2dadf66df546a2c44afd3b",
      "tree": "b5784f4ec328c77716eb946f36e6d4096b53c15d",
      "parents": [
        "4848b6d7c3e02380bda520b34b70db51bcb62ed5",
        "ced659ec92723cf8b2dfa1e7a70b2c132a8791fd"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Fri Mar 22 19:59:55 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 22 19:59:55 2019 +0000"
      },
      "message": "Merge \"Add /product/bin to path\""
    },
    {
      "commit": "4848b6d7c3e02380bda520b34b70db51bcb62ed5",
      "tree": "829912f5998411ee6490466c847c14375a289d27",
      "parents": [
        "d992e1e9fa314e6ecdc4e035d68657e2da3ebd9d",
        "976d4b46349773a8b045d998004c87aeaa71ac88"
      ],
      "author": {
        "name": "Vic Yang",
        "email": "victoryang@google.com",
        "time": "Thu Mar 21 19:00:25 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 21 19:00:25 2019 +0000"
      },
      "message": "Merge \"Use std::move() for rvalue-reference setters and ctors\""
    },
    {
      "commit": "d992e1e9fa314e6ecdc4e035d68657e2da3ebd9d",
      "tree": "e659f29afb4a627d807d3b765506801f658d5663",
      "parents": [
        "11f0d718369ec06daaa4343d3c77260b0aaf02f2",
        "e6be532ed6ae157d408fbcdc7e6074f0b48e764c"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Mar 21 18:34:35 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 21 18:34:35 2019 +0000"
      },
      "message": "Merge \"Update kernel headers to v5.0.3.\""
    },
    {
      "commit": "11f0d718369ec06daaa4343d3c77260b0aaf02f2",
      "tree": "90ca408c60591b5808ac29a25d4b583e748001a1",
      "parents": [
        "6b330ac55db03390b5ce48a3633fe0c636fa17ff",
        "81b3bdd6815b7a4c9b2c7638ce2ab61796bfae93"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Thu Mar 21 17:43:45 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 21 17:43:45 2019 +0000"
      },
      "message": "Merge \"Use the ANDROID_TZDATA_ROOT environment variable\""
    },
    {
      "commit": "e6be532ed6ae157d408fbcdc7e6074f0b48e764c",
      "tree": "9ae787f755590bb52a6aa825c119fc81089898fc",
      "parents": [
        "b2a29cb95baa2fe2b133316ba7ef389ce231dbde"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Mar 20 15:33:33 2019 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Mar 21 15:31:06 2019 +0000"
      },
      "message": "Update kernel headers to v5.0.3.\n\nTest: Build and boot taimen.\nChange-Id: I6ed881b5dc6dc7d0a6cc56edcd09b42ddd185b62\nMerged-In: I6ed881b5dc6dc7d0a6cc56edcd09b42ddd185b62\n"
    },
    {
      "commit": "6b330ac55db03390b5ce48a3633fe0c636fa17ff",
      "tree": "51db628bc66734363e97395c08ad15f30139d77d",
      "parents": [
        "e6b66400424551e317a8ff7dd840ccd573db1188",
        "2d020e43fb098dde99d6f9a1c5f4aeebdda914ea"
      ],
      "author": {
        "name": "Vic Yang",
        "email": "victoryang@google.com",
        "time": "Thu Mar 21 04:30:47 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 21 04:30:47 2019 +0000"
      },
      "message": "Merge \"linker: Add support for \"whitelisted\" property in linker config files\""
    },
    {
      "commit": "e6b66400424551e317a8ff7dd840ccd573db1188",
      "tree": "7b104c377ac26a63aad31acc47e656efdb1589fe",
      "parents": [
        "4486e57c7d3e0fb5cac0887b7bc39e76224ea0fe",
        "c9e70181adf0c192e5607892225e6b903b41c49f"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Thu Mar 21 01:50:30 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 21 01:50:30 2019 +0000"
      },
      "message": "Merge changes Ie7bf555b,Ia7d5fbdc,I3f05ba19\n\n* changes:\n  Add introduced-in annotation to fdsan\n  Fix get_device_api_level_inlines.h in versioner\n  Suppress warnings on pthread_create\n"
    },
    {
      "commit": "4486e57c7d3e0fb5cac0887b7bc39e76224ea0fe",
      "tree": "1c3cb7bcf48f38e76a56ce3d560c146b6cccb782",
      "parents": [
        "b2a29cb95baa2fe2b133316ba7ef389ce231dbde",
        "b282a6d4d32b5f88a1042aaab8c208ec4f35235b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 21 00:46:51 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 21 00:46:51 2019 +0000"
      },
      "message": "Merge \"Document various libc behavior changes.\""
    }
  ],
  "next": "b282a6d4d32b5f88a1042aaab8c208ec4f35235b"
}
