)]}'
{
  "log": [
    {
      "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": "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": "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.\""
    },
    {
      "commit": "b282a6d4d32b5f88a1042aaab8c208ec4f35235b",
      "tree": "1c91d2e39f6858891dd9c8be7163c2f3b86f043e",
      "parents": [
        "ebdf4c19f9e034d7ec8e0e57539890d5c93eaed1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Mar 20 11:21:46 2019 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Mar 20 11:23:53 2019 -0700"
      },
      "message": "Document various libc behavior changes.\n\nTest: N/A\nChange-Id: I3044c394180058ba500762239b16a4c740caca44\n"
    },
    {
      "commit": "b2a29cb95baa2fe2b133316ba7ef389ce231dbde",
      "tree": "ffe8c62b423b503bfc5eaf4169a6eb92def7be7f",
      "parents": [
        "ebdf4c19f9e034d7ec8e0e57539890d5c93eaed1",
        "021d5224710290337750654866a27ea8f1098ea5"
      ],
      "author": {
        "name": "Haibo Huang",
        "email": "hhb@google.com",
        "time": "Wed Mar 20 17:41:43 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 20 17:41:43 2019 +0000"
      },
      "message": "Merge \"Remove workaround for x86 ifunc\""
    },
    {
      "commit": "976d4b46349773a8b045d998004c87aeaa71ac88",
      "tree": "c48d8ff1c2dec13c92424e40e09198ac1c7235da",
      "parents": [
        "2d020e43fb098dde99d6f9a1c5f4aeebdda914ea"
      ],
      "author": {
        "name": "Vic Yang",
        "email": "victoryang@google.com",
        "time": "Tue Mar 12 13:38:30 2019 -0700"
      },
      "committer": {
        "name": "Vic Yang",
        "email": "victoryang@google.com",
        "time": "Wed Mar 20 10:20:49 2019 -0700"
      },
      "message": "Use std::move() for rvalue-reference setters and ctors\n\nAlso update an rvalue reference to lvalue reference where it\u0027s\nunnecessary to make it clearer.\n\nTest: Build and boot cuttlefish.\nChange-Id: Ib799666ab075523e6446f34c7da2b1eb311f98ab\n"
    },
    {
      "commit": "2d020e43fb098dde99d6f9a1c5f4aeebdda914ea",
      "tree": "8e53ae0dc313d988ad66ea5892f4daf9e5349b08",
      "parents": [
        "ebdf4c19f9e034d7ec8e0e57539890d5c93eaed1"
      ],
      "author": {
        "name": "Vic Yang",
        "email": "victoryang@google.com",
        "time": "Sat Jan 12 21:03:25 2019 -0800"
      },
      "committer": {
        "name": "Vic Yang",
        "email": "victoryang@google.com",
        "time": "Wed Mar 20 10:20:49 2019 -0700"
      },
      "message": "linker: Add support for \"whitelisted\" property in linker config files\n\nIn order to enable no-vendor-variant VNDK, we need a way to restrict a\nnamespace to only a list of whitelisted libraries.  We add a new\n\"whitelisted\" property for this.  If the property is not set, all\nlibraries in the search paths are available in a namespace.  If the\nproperty is set, only the libraries named are available.\n\nBug: 119423884\nTest: Boot with no-vendor-variant VNDK enabled using the new property.\nChange-Id: Id808c1733c8e2c2c3462b04c72461f9698403571\n"
    },
    {
      "commit": "c9e70181adf0c192e5607892225e6b903b41c49f",
      "tree": "bea58fce28597664710e5f0721f07a0bf699b3fb",
      "parents": [
        "73d1fb95793709f06566c93347d1714a3b97bb4f"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Wed Mar 20 22:00:55 2019 +0800"
      },
      "committer": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Wed Mar 20 22:52:34 2019 +0800"
      },
      "message": "Add introduced-in annotation to fdsan\n\nThis commit adds missing INTRODUCTED_IN(29) annotations to fdsan.h.\n\nNote: This is not revealed until recently because API level 29 is added\nin Mar 14 and the prebuilt binary for versioner hasn\u0027t been updated.\n\nTest: ./bionic/tools/versioner/run_tests.py\nChange-Id: Ie7bf555bb47c97d15f0c5fa36a76bc6cd64e206b\n"
    },
    {
      "commit": "73d1fb95793709f06566c93347d1714a3b97bb4f",
      "tree": "b2918a9937a8089beb312fc6faff3060ad249276",
      "parents": [
        "3f68efc9b11d2e300a5a7ce987e904703c33c97a"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Wed Mar 20 21:44:21 2019 +0800"
      },
      "committer": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Wed Mar 20 22:49:38 2019 +0800"
      },
      "message": "Fix get_device_api_level_inlines.h in versioner\n\nThis commit fixes an inline and non-inline mismatch error caused by\n`get_device_api_level_inlines.h`.\n\nVersioner includes both `android/api-level.h` and\n`bits/get_device_api_level_inlines.h` in the test.  When __ANDROID_API__\nis greater than or equal to __ANDROID_API_Q__, `android/api-level.h`\ndeclares a non-inline `android_get_device_api_level()`.  On the\ncontrary, `bits/get_device_api_level_inlines.h` defines a static inline\n`android_get_device_api_level()` function.  These conflicting\ndeclarations result in compilation error.\n\nThis commit fixes the problem by guarding full\n`get_device_api_level_inline.h` with\n`#if defined(__BIONIC_GET_DEVICE_API_LEVEL_INLINE)` so that\n`get_device_api_level_inline.h` can be no-op when it is not properly\nincluded.\n\nNote: This is not revealed until recently because API level 29 is added\nin Mar 14 and the prebuilt binary for versioner hasn\u0027t been updated.\n\nTest: ./bionic/tools/versioner/run_tests.py\nChange-Id: Ia7d5fbdcaf3d98787e60780f6cff2a24016324f5\n"
    },
    {
      "commit": "3f68efc9b11d2e300a5a7ce987e904703c33c97a",
      "tree": "ca4c6c5265d1a085c11c7d0ffac5bfd78b3e475f",
      "parents": [
        "ebdf4c19f9e034d7ec8e0e57539890d5c93eaed1"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Wed Mar 20 18:03:19 2019 +0800"
      },
      "committer": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Wed Mar 20 22:49:03 2019 +0800"
      },
      "message": "Suppress warnings on pthread_create\n\nThis commit suppress warnings on pthread_create because clang-r353983\nwould check the function declaration against the built-in function\ndefined in llvm/tools/clang/include/clang/Basic/Builtins.def and find a\nmismatch.\n\nNote: This is only found by versioner because these files are not system\nheaders from the perspective of versioner.  This warning is ignored in\nnormal builds because bionic headers are system headers in normal\nbuilds.\n\nBug: 126457671\nTest: lunch walleye-userdebug \u0026\u0026 make\nChange-Id: I3f05ba19861f1b9db55c7c55c4496a845802e831\n"
    },
    {
      "commit": "021d5224710290337750654866a27ea8f1098ea5",
      "tree": "ffe8c62b423b503bfc5eaf4169a6eb92def7be7f",
      "parents": [
        "ebdf4c19f9e034d7ec8e0e57539890d5c93eaed1"
      ],
      "author": {
        "name": "Haibo Huang",
        "email": "hhb@google.com",
        "time": "Fri Dec 21 14:54:47 2018 -0800"
      },
      "committer": {
        "name": "Haibo Huang",
        "email": "hhb@google.com",
        "time": "Wed Mar 20 05:37:41 2019 +0000"
      },
      "message": "Remove workaround for x86 ifunc\n\nTest: bionic unit test\nChange-Id: I539a42b01fac705aa342a8d1d79d3607c06fef68\n"
    },
    {
      "commit": "ebdf4c19f9e034d7ec8e0e57539890d5c93eaed1",
      "tree": "532c0cff8323dfafc034a116de95bc18ed5d9bdd",
      "parents": [
        "8b8e7d04615593c366ed32ed21a979896af87135",
        "d75e308e61e99dc62ddaf6b4b554740ad44a2b90"
      ],
      "author": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Wed Mar 20 05:00:57 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 20 05:00:57 2019 +0000"
      },
      "message": "Merge \"Call __hwasan_init_static() during libc startup in statically linked executables.\""
    },
    {
      "commit": "d75e308e61e99dc62ddaf6b4b554740ad44a2b90",
      "tree": "532c0cff8323dfafc034a116de95bc18ed5d9bdd",
      "parents": [
        "8b8e7d04615593c366ed32ed21a979896af87135"
      ],
      "author": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Thu Jan 31 16:27:54 2019 -0800"
      },
      "committer": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Tue Mar 19 21:56:17 2019 -0700"
      },
      "message": "Call __hwasan_init_static() during libc startup in statically linked executables.\n\n__hwasan_init() was segfaulting when called from here because it\nwas calling into libc functions which required more of libc to be\ninitialized. Instead, call __hwasan_init_static(), which does a\nminimal amount of initialization for statically linked executables,\njust enough that we can run instrumented code. __hwasan_init() itself\nwill end up being called later (most likely from a global ctor)\nafter libc is fully initialized.\n\nWe\u0027ll need to wait for LLVM r352816+r352823 to land in our toolchain\nbefore landing this.\n\nChange-Id: I12ffc7e08f6dd161e4ff2088f8d56265af7baedf\n"
    },
    {
      "commit": "8b8e7d04615593c366ed32ed21a979896af87135",
      "tree": "b4ea4f7f2c612e829a3a0c5c9ed9b16c64fb144a",
      "parents": [
        "b62888b70940f173357d50395fee5b2ebee9ddff",
        "505168e53098c8c523449de1fdc419d29717bf1b"
      ],
      "author": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Wed Mar 20 02:53:39 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 20 02:53:39 2019 +0000"
      },
      "message": "Merge \"Annotate vfork for hwasan.\""
    },
    {
      "commit": "505168e53098c8c523449de1fdc419d29717bf1b",
      "tree": "b4ea4f7f2c612e829a3a0c5c9ed9b16c64fb144a",
      "parents": [
        "b62888b70940f173357d50395fee5b2ebee9ddff"
      ],
      "author": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Thu Feb 28 18:44:56 2019 -0800"
      },
      "committer": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Tue Mar 19 23:36:44 2019 +0000"
      },
      "message": "Annotate vfork for hwasan.\n\nCall a hwasan hook in the parent return path for vfork() to let hwasan\nupdate its shadow. See https://github.com/google/sanitizers/issues/925\nfor more details.\n\nBug: 112438058\nTest: bionic-unit-tests\nChange-Id: I9a06800962913e822bd66e072012d0a2c5be453d\n"
    },
    {
      "commit": "b62888b70940f173357d50395fee5b2ebee9ddff",
      "tree": "0efaf04ce45b02026d1bf5c0263d1628c238cef0",
      "parents": [
        "4a8b288704499b0c3e3df2d654fd62ecd1ab21a1",
        "f1ed31ffe12f5ab61493ae672fb4e39cb9671ce5"
      ],
      "author": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Tue Mar 19 23:29:05 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 19 23:29:05 2019 +0000"
      },
      "message": "Merge \"Increase the size of the shadow call stack guard region to 16MB.\""
    },
    {
      "commit": "4a8b288704499b0c3e3df2d654fd62ecd1ab21a1",
      "tree": "d07194e8859043b4609e231f25688fbe583715bd",
      "parents": [
        "60916654cc1ef268dd7999fa24fdb26c0b8ea6d4",
        "9b78aa3529f15190f451a0852c8d58982dbc0721"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Mar 19 15:27:52 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 19 15:27:52 2019 +0000"
      },
      "message": "Merge \"Increase num tries before failing.\""
    },
    {
      "commit": "60916654cc1ef268dd7999fa24fdb26c0b8ea6d4",
      "tree": "23ea132e8a1a48ae93778c9605244521820a0025",
      "parents": [
        "f3df0dae0b37e0bfce6d2a56436a14258cf94346",
        "95252eedf32f38b22784ba6f1097f25d485652f5"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Tue Mar 19 14:08:10 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 19 14:08:10 2019 +0000"
      },
      "message": "Merge \"Add more linker debug.\""
    },
    {
      "commit": "95252eedf32f38b22784ba6f1097f25d485652f5",
      "tree": "e76a8f7fef10ad78fed7fee7c85e1756f84edcb9",
      "parents": [
        "0ab20442e49316899050d3af72257d5f483761d0"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Fri Feb 22 22:48:59 2019 +0000"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Tue Mar 19 14:03:18 2019 +0000"
      },
      "message": "Add more linker debug.\n\n- Show which executable is being linked, which linker config file is\n  being read, and which section in it is being used with, enabled on\n  $LD_DEBUG\u003e\u003d1.\n\n- Show more info to follow the dlopen() process, enabled with \"dlopen\"\n  in the debug.ld.xxx property.\n\nTest: Flash, boot, and look at logcat after \"adb shell setprop debug.ld.all dlopen\"\nBug: 120430775\nChange-Id: I5441c8ced26ec0e2f04620c3d2a1ae860b792154\n"
    },
    {
      "commit": "9b78aa3529f15190f451a0852c8d58982dbc0721",
      "tree": "84c536c0f7059686d8a0d791b2887894be891fc8",
      "parents": [
        "f3df0dae0b37e0bfce6d2a56436a14258cf94346"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Mar 18 20:40:26 2019 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Mar 18 21:45:36 2019 -0700"
      },
      "message": "Increase num tries before failing.\n\nBug: 128872105\n\nTest: Ran the android_mallopt.set_allocation_limit_multiple_threads test\nTest: a thousand times on taimen.\nChange-Id: I67a474c53cd6eda8106feac99aee8e7b0bee1254\n"
    },
    {
      "commit": "f3df0dae0b37e0bfce6d2a56436a14258cf94346",
      "tree": "01e11011c5c93b92b64d39cb0c3af2e2b775a23a",
      "parents": [
        "9d69d4ccaee992c2c64b67ee8b23775fa24c9ba6",
        "149ce930566b435f848968d03d0f7771c2d3e9f9"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Mar 16 06:56:14 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Mar 16 06:56:14 2019 +0000"
      },
      "message": "Merge \"Add missing #include.\""
    },
    {
      "commit": "149ce930566b435f848968d03d0f7771c2d3e9f9",
      "tree": "01e11011c5c93b92b64d39cb0c3af2e2b775a23a",
      "parents": [
        "9d69d4ccaee992c2c64b67ee8b23775fa24c9ba6"
      ],
      "author": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Fri Mar 15 22:43:47 2019 -0700"
      },
      "committer": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Fri Mar 15 22:45:06 2019 -0700"
      },
      "message": "Add missing #include.\n\nFixes sanitizer build.\n\nTest: walleye_hwasan-userdebug builds\nChange-Id: If7890dbf2e715ca89b68f5c39c6ffbd24f15f2c2\n"
    },
    {
      "commit": "9d69d4ccaee992c2c64b67ee8b23775fa24c9ba6",
      "tree": "cf32980883d074bc6458be886949b2c199f6e5dc",
      "parents": [
        "ea6c19a44b27042a4e6de33708799374f7d9d236",
        "1fc5ccfe762f4cf2322a53215934492003dae49e"
      ],
      "author": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Fri Mar 15 21:51:46 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 15 21:51:46 2019 +0000"
      },
      "message": "Merge \"Add a platform API for setting an allocation limit.\""
    },
    {
      "commit": "ea6c19a44b27042a4e6de33708799374f7d9d236",
      "tree": "2e03c7470a8d3e545190a06fa7b5991f50cab463",
      "parents": [
        "ac74615c1c3638d33448f0f6995fb8bc9599f062",
        "5270017ab30fda270cdff4e096adfab539bf90fe"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 15 19:54:57 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 15 19:54:57 2019 +0000"
      },
      "message": "Merge \"Remove __INTRODUCED_IN_FUTURE.\""
    },
    {
      "commit": "1fc5ccfe762f4cf2322a53215934492003dae49e",
      "tree": "b07af2f8b2466d0a7210b2aaacd97af5fe70efbd",
      "parents": [
        "ac74615c1c3638d33448f0f6995fb8bc9599f062"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Feb 15 18:06:15 2019 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Mar 15 10:54:55 2019 -0700"
      },
      "message": "Add a platform API for setting an allocation limit.\n\nIntroduce an M_SET_ALLOCATION_LIMIT enumerator for android_mallopt(),\nwhich can be used to set an upper bound on the total size of all\nallocations made using the memory allocation APIs.\n\nThis is useful for programs such as audioextractor and mediaserver\nwhich need to set such a limit as a security mitigation. Currently\nthese programs are using setrlimit(RLIMIT_AS) which isn\u0027t exactly\nwhat these programs want to control. RLIMIT_AS is also problematic\nunder sanitizers which allocate large amounts of address space as\nshadow memory, and is especially problematic under shadow call stack,\nwhich requires 16MB of address space per thread.\n\nAdd new unit tests for bionic.\n\nAdd new unit tests for malloc debug that verify that when the limit\nis enabled, malloc debug still functions for nearly every allocation\nfunction.\n\nBug: 118642754\nTest: Ran bionic-unit-tests/bionic-unit-tests-static.\nTest: Ran malloc debug tests and perfetto integration tests.\nChange-Id: I735403c4d2c87f00fb2cdef81d00af0af446b2bb\n"
    },
    {
      "commit": "ac74615c1c3638d33448f0f6995fb8bc9599f062",
      "tree": "2ddba3d004516db55ea112b6d171368b95eca01f",
      "parents": [
        "412d49349e0050b1467dbb908cf2dcb64667cc1a",
        "80c5e623f7803aead24ad17357e61124fe702390"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Fri Mar 15 16:41:13 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 15 16:41:13 2019 +0000"
      },
      "message": "Merge \"Clean /bionic\""
    },
    {
      "commit": "80c5e623f7803aead24ad17357e61124fe702390",
      "tree": "2ddba3d004516db55ea112b6d171368b95eca01f",
      "parents": [
        "412d49349e0050b1467dbb908cf2dcb64667cc1a"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Sat Mar 16 01:24:24 2019 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Sat Mar 16 01:27:07 2019 +0900"
      },
      "message": "Clean /bionic\n\nThe path has gone\n\nTest: m\nChange-Id: Iecbde545f84357706da55e4fdb7b421433f945d0\n"
    },
    {
      "commit": "412d49349e0050b1467dbb908cf2dcb64667cc1a",
      "tree": "5f4b8bbe48d12582ecbe145dafe1875bbbd8efae",
      "parents": [
        "4c95542fdf5fad4cb87d4a4085d86cc69c9fbc9f",
        "036e09c36e8c859ee23db7a84adcd9b8563f54c9"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 15 09:02:18 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 15 09:02:18 2019 +0000"
      },
      "message": "Merge \"Don\u0027t install *.mountpoint targets\""
    },
    {
      "commit": "4c95542fdf5fad4cb87d4a4085d86cc69c9fbc9f",
      "tree": "7ad5448616c6f78850f9ab5555b49f00087ec153",
      "parents": [
        "0ab20442e49316899050d3af72257d5f483761d0",
        "1e7a1503392e6d923755ca4efc2a4a40c161d62c"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 15 02:49:15 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 15 02:49:15 2019 +0000"
      },
      "message": "Merge \"Reduce reserved size for DlExtTest.ReservedRecursiveTooSmall test\""
    },
    {
      "commit": "1e7a1503392e6d923755ca4efc2a4a40c161d62c",
      "tree": "e25a8a4395dbc16c2b116297907ce7c9164e4c2f",
      "parents": [
        "10935e063d3db0ff2b61f710b8f34bd92fa861ba"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Thu Mar 14 16:25:45 2019 -0700"
      },
      "committer": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Thu Mar 14 16:25:45 2019 -0700"
      },
      "message": "Reduce reserved size for DlExtTest.ReservedRecursiveTooSmall test\n\nWhen built with clang-r353983, the ReservedRecursiveTooSmall test fail\ndue to the reserved memory is now large enough for android_dlopen_ext.\nReduce the reserved memory size to agree with ReservedTooSmall test.\n\nTest: bionic-unit-tests\nBug: 126457671\nChange-Id: I3e311a3f35b0de5d028fa1b9b3681d5ec32faee8\n"
    },
    {
      "commit": "5270017ab30fda270cdff4e096adfab539bf90fe",
      "tree": "ffd2a39d65baf6c8bc49ff489ea00e438ab26297",
      "parents": [
        "0ab20442e49316899050d3af72257d5f483761d0"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 14 13:34:21 2019 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 14 13:34:21 2019 -0700"
      },
      "message": "Remove __INTRODUCED_IN_FUTURE.\n\nThis hasn\u0027t been particularly useful, we haven\u0027t used it consistently,\nand it has caused trouble.\n\nTest: builds\nChange-Id: Ic5b5b5124af98aa8301e602fd75b0eb72a5fc7f6\n"
    },
    {
      "commit": "0ab20442e49316899050d3af72257d5f483761d0",
      "tree": "b41171ea153c64f5151d92c5ced1afcbca5b345d",
      "parents": [
        "10935e063d3db0ff2b61f710b8f34bd92fa861ba",
        "78e9ebc3b968ee87958cc6e6b1a190b5ecf4ff95"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 14 20:13:27 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 14 20:13:27 2019 +0000"
      },
      "message": "Merge \"The future is now (2019 edition).\""
    },
    {
      "commit": "78e9ebc3b968ee87958cc6e6b1a190b5ecf4ff95",
      "tree": "b41171ea153c64f5151d92c5ced1afcbca5b345d",
      "parents": [
        "10935e063d3db0ff2b61f710b8f34bd92fa861ba"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 14 09:29:52 2019 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 14 09:29:52 2019 -0700"
      },
      "message": "The future is now (2019 edition).\n\nThis year, we accidentally shipped NDK r20beta1 first :-(\n\nBug: https://github.com/android-ndk/ndk/issues/932\nTest: builds\nChange-Id: Id66a16ea09e7928843e61612fbdef09e72610d49\n"
    },
    {
      "commit": "036e09c36e8c859ee23db7a84adcd9b8563f54c9",
      "tree": "4487746e251b08685070460505af39ae875ce90c",
      "parents": [
        "10935e063d3db0ff2b61f710b8f34bd92fa861ba"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Mon Feb 25 10:54:29 2019 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Thu Mar 14 07:35:52 2019 +0900"
      },
      "message": "Don\u0027t install *.mountpoint targets\n\nThe *.mountpoint targets that installs /bionic/lib/lib*.so and\n/bionic/bin/linker* are no longer needed.\n\nNow, /system/lib/lib*.so and /system/bin/linker* are simply symlinks to\nthe corresponding files in the runtime apex. For example,\n\n/system/lib/libc.so -\u003e /apex/com.android.runtime/lib/bionic/libc.so\n\nThis is made possible because we now activate APEXes even before the\ndata partition is mounted. Before the data partition mounting, the\nAPEXes from the system partition are ativated. After the data partition\nis mounted, updated APEXes in the partition (if any) are activated. As a\nresult, the symlink always points to the valid path regardless of\nwhether /data is mounted or not.\n\nBug: 125549215\nTest: device boots\nChange-Id: Ie7d83686abe00b3c436f9f9db75d4244200a0fc9\n"
    },
    {
      "commit": "81b3bdd6815b7a4c9b2c7638ce2ab61796bfae93",
      "tree": "c29e4cd069966a780620610d06d37cb198cdce6b",
      "parents": [
        "432db6cfafae810f94edcfa1b311b14a6e9a8407"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Wed Mar 13 15:22:47 2019 +0000"
      },
      "committer": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Wed Mar 13 15:22:47 2019 +0000"
      },
      "message": "Use the ANDROID_TZDATA_ROOT environment variable\n\nTo mirror device code more closely, look for time zone data using\nANDROID_TZDATA_ROOT on host. For device usecases the path is still\nhardcoded.\n\nBug: 128422035\nTest: build only\nChange-Id: I5762745349338bcc3e3a173c1c9b18ea5a3324dd\n"
    },
    {
      "commit": "10935e063d3db0ff2b61f710b8f34bd92fa861ba",
      "tree": "415d99dda50e82f2bba111c1b0aa80e1537e5ddc",
      "parents": [
        "7a15aa83f496e74456279cbe299eca971b5c441c",
        "92b3e1b37b4391318424898bca8d6e9e961f046a"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Tue Mar 12 22:08:32 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 12 22:08:32 2019 +0000"
      },
      "message": "Merge changes Ia880cd5a,I899c7801\n\n* changes:\n  Cosmetic changes to linker allocator and config\n  Allow building the linker with -O0\n"
    },
    {
      "commit": "bcaa454d32e1b4ccf92467bb263d627695ac9a5b",
      "tree": "65d7d4c493242ecb51bfe1796f133b32538de514",
      "parents": [
        "ff16c0b89b7297bc70353f60afac9bb93d6b0087"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 08 15:20:23 2019 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 12 10:26:39 2019 -0700"
      },
      "message": "bionic tests: use GTEST_SKIP.\n\nAlso be a bit more to the point in our messages, focusing on \"why\" not\n\"what\".\n\nTest: ran tests\nChange-Id: I297806c7a102bd52602dcd2fcf7a2cd34aba3a11\n"
    },
    {
      "commit": "92b3e1b37b4391318424898bca8d6e9e961f046a",
      "tree": "415d99dda50e82f2bba111c1b0aa80e1537e5ddc",
      "parents": [
        "b0e2dd090bc74f36e3f2cafe85f542b785d760df"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Mon Mar 11 17:27:52 2019 -0700"
      },
      "committer": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Tue Mar 12 01:11:24 2019 +0000"
      },
      "message": "Cosmetic changes to linker allocator and config\n\nMake the num_free_blocks calculation clearer. There are\nsizeof(page-\u003ebytes) bytes available for blocks, which is equal to\n(kAllocateSize - 16). The previous calculation overestimates the amount\nof space by 8 or 12 bytes, but that doesn\u0027t change the result because\nboth kAllocateSize and block_size_ are multiples of 16.\n\nBug: none\nTest: boot device, bionic unit tests\nChange-Id: Ia880cd5abc2a7bb4e9e6a8c0441d985f4df8fdc4\n"
    },
    {
      "commit": "b0e2dd090bc74f36e3f2cafe85f542b785d760df",
      "tree": "7d53a90d17baf773c9c9e8179074a21bf9c9a219",
      "parents": [
        "7a15aa83f496e74456279cbe299eca971b5c441c"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Mon Mar 11 17:06:02 2019 -0700"
      },
      "committer": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Mon Mar 11 17:53:21 2019 -0700"
      },
      "message": "Allow building the linker with -O0\n\nThe tlsdesc_resolver_dynamic function is only defined on arm64, but the\ncode was taking its address on all targets. (Apparently the optimizer was\nremoving the entire deferred_tlsdesc_relocs loop?)\n\nBug: none\nTest: bionic unit tests\nTest: add -O0 to cc_defaults in linker/Android.bp, device boots\nChange-Id: I899c78018cbe82aeaca7856c9f7b04300c1d3196\n"
    },
    {
      "commit": "7a15aa83f496e74456279cbe299eca971b5c441c",
      "tree": "e3972f09a14a5ce3f1376bc66308ed5fdfbc64a4",
      "parents": [
        "432db6cfafae810f94edcfa1b311b14a6e9a8407",
        "de207c6fee619e404f574755d6f4bec780a5f7cf"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Mar 11 19:43:56 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 11 19:43:56 2019 +0000"
      },
      "message": "Merge \"DO NOT MERGE - Skip PPRL.190305.001 into master\""
    },
    {
      "commit": "de207c6fee619e404f574755d6f4bec780a5f7cf",
      "tree": "e3972f09a14a5ce3f1376bc66308ed5fdfbc64a4",
      "parents": [
        "432db6cfafae810f94edcfa1b311b14a6e9a8407",
        "1863ecbca365c9fab4bd73488b4137de59a4e891"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Mar 11 11:13:13 2019 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Mar 11 11:13:13 2019 -0700"
      },
      "message": "DO NOT MERGE - Skip PPRL.190305.001 into master\n\nBug: 127812889\nChange-Id: I79cd8227796b7512ecb33f917c6cf19a97d58584\n"
    },
    {
      "commit": "432db6cfafae810f94edcfa1b311b14a6e9a8407",
      "tree": "e3972f09a14a5ce3f1376bc66308ed5fdfbc64a4",
      "parents": [
        "a838c2d163e6e90ca3228c1190d53dfee3a101ea",
        "b39cb3c31db1ca67faadc60ba9c8338168da0b36"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Mar 09 05:40:03 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Mar 09 05:40:03 2019 +0000"
      },
      "message": "Merge \"linker: Handle libraries with disjoint mappings correctly.\""
    },
    {
      "commit": "b39cb3c31db1ca67faadc60ba9c8338168da0b36",
      "tree": "36d5198635cfbb8248b6bd775e6748f0d1a41f7b",
      "parents": [
        "0771b752f1b955e7ded6ccbbf825b0ae93439eb5"
      ],
      "author": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Fri Mar 01 13:12:49 2019 -0800"
      },
      "committer": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Fri Mar 08 18:34:34 2019 -0800"
      },
      "message": "linker: Handle libraries with disjoint mappings correctly.\n\nIt\u0027s possible and sometimes beneficial for a library to have disjoint mappings\nand for other libraries to be mapped into the gap between the mappings using\nANDROID_DLEXT_RESERVED_ADDRESS. See for example the proposal for partitioning\nin lld [1].\n\nBecause the find_containing_library and do_dl_unwind_find_exidx functions use\na simple bounds check to figure out whether a pointer belongs to a library\nthey will, given a pointer into a library mapped into the gap of a library\nwith disjoint mappings, return a pointer to the soinfo for the outer library\ninstead of the inner one, because the outer library will appear before the\ninner one in the solist.\n\nFrom a user perspective this means that we won\u0027t be able to unwind the inner\nlibrary\u0027s frames on 32-bit ARM with libgcc, dladdr() will return information\nfor the outer library given a pointer to the inner one and dlopen() et al will\nuse the linker namespace of the outer library when called from the inner one\n(although they will usually be the same).\n\nTo make this work correctly, make it so that once find_containing_library\nsees a match for the bounds check, it examines the library\u0027s PT_LOADs to\nmake sure that there is a mapping for the given address. This is similar\nto how libgcc and libunwind_llvm already handle finding the PT_GNU_EH_FRAME\non non-ARM32 platforms [2,3]. do_dl_unwind_find_exidx is reimplemented in\nterms of find_containing_library.\n\n[1] http://lists.llvm.org/pipermail/llvm-dev/2019-February/130583.html\n[2] https://github.com/llvm/llvm-project/blob/e739ac0e255597d818c907223034ddf3bc18a593/libunwind/src/AddressSpace.hpp#L523\n[3] https://android.googlesource.com/toolchain/gcc/+/master/gcc-4.9/libgcc/unwind-dw2-fde-dip.c#294\n\nTest: /data/nativetest{,64}/bionic-unit-tests/bionic-unit-tests on walleye-userdebug\nChange-Id: I368fe6ad3c470b3dff80f7d9b04253566d63a7d2\n"
    },
    {
      "commit": "a838c2d163e6e90ca3228c1190d53dfee3a101ea",
      "tree": "087255dc1c0ee97ba183de4a6bf57c6dc1e3742b",
      "parents": [
        "27c6ada3ada55b110ea8f40cc5a8a4b235b61781",
        "d842e43e1d538d535c08b27a71e4912641121924"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Mar 08 21:28:16 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 08 21:28:16 2019 +0000"
      },
      "message": "Merge \"Update to v5.0 kernel headers.\""
    },
    {
      "commit": "27c6ada3ada55b110ea8f40cc5a8a4b235b61781",
      "tree": "41ad945c7814b1b728d789402943d6578d00fc21",
      "parents": [
        "3c40463c65a91094a2f652d6501564a47476d2e8",
        "76dcc478d348d07fa0e74a7f4d4c1e829eaa2bb8"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Mar 08 21:25:53 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 08 21:25:53 2019 +0000"
      },
      "message": "Merge \"Malloc debug: fix mutex deadlock issue\""
    },
    {
      "commit": "3c40463c65a91094a2f652d6501564a47476d2e8",
      "tree": "e96e341d3bf1de752fdb14b251e1897a208d7bd7",
      "parents": [
        "ff16c0b89b7297bc70353f60afac9bb93d6b0087",
        "fa10a3aa9a985ce75267a6c9146f9f418535b540"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Mar 08 21:24:57 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 08 21:24:57 2019 +0000"
      },
      "message": "Merge \"Add malloc_info for sanitizer.\""
    },
    {
      "commit": "fa10a3aa9a985ce75267a6c9146f9f418535b540",
      "tree": "e96e341d3bf1de752fdb14b251e1897a208d7bd7",
      "parents": [
        "ff16c0b89b7297bc70353f60afac9bb93d6b0087"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Mar 08 10:56:17 2019 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Mar 08 11:11:27 2019 -0800"
      },
      "message": "Add malloc_info for sanitizer.\n\nTest: hwasan builds.\nChange-Id: I39267c642af75b1ebb99633f25959638cc39628c\n"
    },
    {
      "commit": "1863ecbca365c9fab4bd73488b4137de59a4e891",
      "tree": "a8a6930da3fad04ed79054576abfbb0c3980e033",
      "parents": [
        "d307fa248c117f82de1a7ec6121b00060857938d",
        "68f7efc044b4ff9813fba79e3e16e5804c4df651"
      ],
      "author": {
        "name": "android-build-team Robot",
        "email": "android-build-team-robot@google.com",
        "time": "Fri Mar 08 18:38:43 2019 +0000"
      },
      "committer": {
        "name": "android-build-team Robot",
        "email": "android-build-team-robot@google.com",
        "time": "Fri Mar 08 18:38:43 2019 +0000"
      },
      "message": "Snap for 5240760 from 68f7efc044b4ff9813fba79e3e16e5804c4df651 to pi-platform-release\n\nChange-Id: Iac928067526678a9d70c44466d67cdf477332e64\n"
    },
    {
      "commit": "76dcc478d348d07fa0e74a7f4d4c1e829eaa2bb8",
      "tree": "0652b53abee71ce853e36b8b0e16c657da7be4da",
      "parents": [
        "ff16c0b89b7297bc70353f60afac9bb93d6b0087"
      ],
      "author": {
        "name": "Iris Chang",
        "email": "iris.chang@mediatek.com",
        "time": "Thu Mar 07 12:32:19 2019 +0800"
      },
      "committer": {
        "name": "Iris Chang",
        "email": "iris.chang@mediatek.com",
        "time": "Fri Mar 08 11:04:36 2019 +0800"
      },
      "message": "Malloc debug: fix mutex deadlock issue\n\nWhen we enable free_track option, one thread is in AddFreed-\u003eRemoveBacktrace\nflow (hold free_pointer_mutex_ first and try to lock frame_mutex_), and\nother thread do fork and enter PrepareFork flow (hold frame_mutex_ first\nand try to lock free_pointer_mutex_), this situation may result in mutex\ndeadlock issue.\n\nBug: 127733115\nTest: build pass and stress test pass\nChange-Id: Ie5fcc4ef6c169372ad73d81978cfb2a726b6c03e\n"
    },
    {
      "commit": "d842e43e1d538d535c08b27a71e4912641121924",
      "tree": "baf4623c943ffdef001d732788c1d3d753716a2a",
      "parents": [
        "ff16c0b89b7297bc70353f60afac9bb93d6b0087"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Mar 07 10:21:59 2019 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Mar 07 11:19:22 2019 -0800"
      },
      "message": "Update to v5.0 kernel headers.\n\nTest: Builds and boots on taimen.\nChange-Id: I13843bf1ab30ea89a50852adc88f2cba8401bded\n"
    },
    {
      "commit": "ff16c0b89b7297bc70353f60afac9bb93d6b0087",
      "tree": "aa0802d01d19ed0891e6b77a732cc72ed5617dcc",
      "parents": [
        "4e167f35d602f9dcede3b74ff3e09e88f3edb398",
        "6c619a0da3f96a26d91c1db48fd3e3be156aabe5"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Mar 07 17:49:28 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 07 17:49:28 2019 +0000"
      },
      "message": "Merge \"Refactor the malloc_info code.\""
    },
    {
      "commit": "6c619a0da3f96a26d91c1db48fd3e3be156aabe5",
      "tree": "aa0802d01d19ed0891e6b77a732cc72ed5617dcc",
      "parents": [
        "4e167f35d602f9dcede3b74ff3e09e88f3edb398"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Mar 01 17:59:51 2019 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Mar 07 08:39:55 2019 -0800"
      },
      "message": "Refactor the malloc_info code.\n\nmalloc_info needs to be per native allocator, but the code treated it\nlike a global function that doesn\u0027t depend on the native memory allocator.\n\nUpdate malloc debug to dump the actual pointers that it has been tracking.\n\nTest: bionic-unit-tests pass.\nTest: malloc debug tests pass.\nTest: malloc hook tests pass.\nChange-Id: I3b0d4d748489dd84c16d16933479dc8b8d79013e\nMerged-In: I3b0d4d748489dd84c16d16933479dc8b8d79013e\n(cherry picked from commit a3656a98b10d2a4a6194a5d9705ad9c2cc5877b0)\n"
    },
    {
      "commit": "4e167f35d602f9dcede3b74ff3e09e88f3edb398",
      "tree": "2fbda87a91cc77ce24cee78c5e7d3f3dc8d7fc45",
      "parents": [
        "b8ef55a4f841cb1e790e97776ee51419ec5d9bd1",
        "ddcf488ef606886eed334a1bc5069de803940890"
      ],
      "author": {
        "name": "vichang",
        "email": "vichang@google.com",
        "time": "Wed Mar 06 23:05:24 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 06 23:05:24 2019 +0000"
      },
      "message": "Merge \"bionic-unit-tests should depend on libandroidicu instead\""
    },
    {
      "commit": "ddcf488ef606886eed334a1bc5069de803940890",
      "tree": "4ca60773d76a637896fcd19f3de66f50d6a9e92e",
      "parents": [
        "e65558a0a4ad1f4aee5d63d0661b02f910e0cbd8"
      ],
      "author": {
        "name": "Victor Chang",
        "email": "vichang@google.com",
        "time": "Wed Mar 06 18:12:07 2019 +0000"
      },
      "committer": {
        "name": "Victor Chang",
        "email": "vichang@google.com",
        "time": "Wed Mar 06 18:29:55 2019 +0000"
      },
      "message": "bionic-unit-tests should depend on libandroidicu instead\n\nbionic has been moved to use libandroidicu instead of libicuuc.\nThis CL updates the unit test\n\nBug: 120659668\nTest: m bionic-unit-tests \u0026\u0026 adb push out/target/product/walleye/data/nativetest/* /data/nativetest \u0026\u0026 adb shell /data/nativetest/bionic-unit-tests/bionic-unit-tests\nChange-Id: I59a0589d18bfd6753215dc07874f3c472bd64cca\n"
    },
    {
      "commit": "b8ef55a4f841cb1e790e97776ee51419ec5d9bd1",
      "tree": "66d2980a1b04626c7e4fc1437e96194b958ea8f8",
      "parents": [
        "0771b752f1b955e7ded6ccbbf825b0ae93439eb5",
        "a22f5d5175df5c42ec86d2c2db250edf1f64084c"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Sat Mar 02 19:11:22 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Mar 02 19:11:22 2019 +0000"
      },
      "message": "Merge \"Make aligned_alloc match the standard.\""
    }
  ],
  "next": "a22f5d5175df5c42ec86d2c2db250edf1f64084c"
}
