)]}'
{
  "log": [
    {
      "commit": "1f6adf5863b53c8a9139eef256e87d998f7130d4",
      "tree": "a3117011b35b66f8b5446bd6592fe9af56c3383f",
      "parents": [
        "de70b72b4f408a7100000e632e9b887347a531b3",
        "8dff0bb66bd48ef9f5ce472d94c99e5b656ba083"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jan 17 22:15:33 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 17 22:15:33 2019 +0000"
      },
      "message": "Merge \"Allow more leeway to fix time.clock_gettime flakiness.\""
    },
    {
      "commit": "de70b72b4f408a7100000e632e9b887347a531b3",
      "tree": "1eaf5553b9b978ab171b3110b15b0c3a551384ce",
      "parents": [
        "d4f8f4e20b90dc8ea01ca651ee691506e1c589ee",
        "f9d2299ee2c05477f72dd137f4abddb68b91d8b2"
      ],
      "author": {
        "name": "Martijn Coenen",
        "email": "maco@google.com",
        "time": "Thu Jan 17 20:49:19 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 17 20:49:19 2019 +0000"
      },
      "message": "Merge \"Update getpwnam() tests to correctly handle new app zygote uids.\""
    },
    {
      "commit": "8dff0bb66bd48ef9f5ce472d94c99e5b656ba083",
      "tree": "26d5b4029a9f35eceb7e4daaef4e0b07e0bf9cc1",
      "parents": [
        "ca305a39e50d92dc572f50f00262b3dbb0dece9d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 17 12:32:32 2019 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 17 12:32:32 2019 -0800"
      },
      "message": "Allow more leeway to fix time.clock_gettime flakiness.\n\nBug: http://b/121156651\nTest: ran tests\nChange-Id: Ic949763e56c46f05ed2565ca4465a15c7ecf768c\n"
    },
    {
      "commit": "f9d2299ee2c05477f72dd137f4abddb68b91d8b2",
      "tree": "aba2725b8e73ca67fec1a98b7468f89bb98b3afb",
      "parents": [
        "ca305a39e50d92dc572f50f00262b3dbb0dece9d"
      ],
      "author": {
        "name": "Martijn Coenen",
        "email": "maco@google.com",
        "time": "Wed Jan 16 16:25:40 2019 +0100"
      },
      "committer": {
        "name": "Martijn Coenen",
        "email": "maco@google.com",
        "time": "Thu Jan 17 13:36:47 2019 +0100"
      },
      "message": "Update getpwnam() tests to correctly handle new app zygote uids.\n\nThe UID range [90000..98999] is used for isolated processes that are\nspawned from an application zygote. Otherwise they are identical to\nregular isolated processes in the [99000..99999] range. Fix the tests to\nmatch the new range.\n\nBug: 111434506\nTest: atest bionic-unit-tests-static\nChange-Id: Id0352f2cf0d21edb04d95f01ea2548e95b62317a\n"
    },
    {
      "commit": "d4f8f4e20b90dc8ea01ca651ee691506e1c589ee",
      "tree": "20bb21fd5ba68b6e15814be306140df8c355daff",
      "parents": [
        "5bccde719f9586b3c18ab2ef1eee5ca81e2cc9ac",
        "ae4d10bf4ab7168ac585f65895c623d027b1e740"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Thu Jan 17 12:31:57 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 17 12:31:57 2019 +0000"
      },
      "message": "Merge \"Add __attribute__((unused)) to __BIONIC_ERROR_FUNCTION_VISIBILITY\""
    },
    {
      "commit": "5bccde719f9586b3c18ab2ef1eee5ca81e2cc9ac",
      "tree": "78ce555c6dc7cb920f5e7c9f21fbcc6e40df4f50",
      "parents": [
        "05ca47512c94d919ba72862920985992a5ed2905",
        "de853ffa7fd84e3e2b27ef9cc546d4d4ba300488"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jan 17 04:16:43 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 17 04:16:43 2019 +0000"
      },
      "message": "Merge \"Fix fd leak in android_dlopen_ext.\""
    },
    {
      "commit": "de853ffa7fd84e3e2b27ef9cc546d4d4ba300488",
      "tree": "166b02d35bb3e34f2cfc0dff4dd55a6a87dbb36f",
      "parents": [
        "b21fc16a22cec7056a5231568e1eac636c115b19"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Thu Jan 17 00:18:44 2019 +0000"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Thu Jan 17 00:48:18 2019 +0000"
      },
      "message": "Fix fd leak in android_dlopen_ext.\n\nIt can happen e.g. if android_dlopen_ext is called with an absolute path to\na file that is not accessible in the current namespace. The first\nload_library call in find_library_internal will then open the file and\nassign its fd to the task and return false. Then linked namespaces are\nsearched, and load_library gets called again and opens the same file and\noverwrites the fd in the task without closing it first. (In one of the later\ncalls the namespace config might very well allow the file to be loaded and\nthe android_dlopen_ext call eventually returns successfully, and the process\ncontinues with the leaked fd.)\n\nThe code could perhaps be changed to avoid opening the file repeatedly in\nthese cases, but the LoadTask class should arguably keep its state clean\nanyway.\n\nBug: 113373927\nTest: Flash and boot device with (and without) http://r.android.com/812674,\n  which moves libart.so to the runtime namespace and thus makes it load\n  /system/framework/*/boot*.oat files across the namespace boundary from\n  runtime to default.\nChange-Id: Iae91b7c743c5f3f973506153ba52898ae72e6fee\n"
    },
    {
      "commit": "05ca47512c94d919ba72862920985992a5ed2905",
      "tree": "db0ad52a5f638da9e334de9ba6738400fe1f9268",
      "parents": [
        "aef4a49a3ff28b2c510546643ccf1e4adaa04ea2",
        "606191fd613a374391a321b30094fa120defab98"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jan 16 23:46:31 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 16 23:46:31 2019 +0000"
      },
      "message": "Merge \"Revert \"Expose more symbols temporarily\"\""
    },
    {
      "commit": "aef4a49a3ff28b2c510546643ccf1e4adaa04ea2",
      "tree": "8984fbcb2d3b99d1d3ee48da25010c0911cbd3c6",
      "parents": [
        "21709b785df589e9be3ee2f68260c1bbf7c92796",
        "4809755c0f62ff993c9ec1187553760708389a60"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jan 16 23:23:25 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 16 23:23:25 2019 +0000"
      },
      "message": "Merge changes I221b1342,I1d1276da,I89b128df,Icb348a11,Ifb3b2d8d\n\n* changes:\n  Add a __bionic_get_tls_segment function\n  Factor out ScopedRWLock into its own header\n  Build the linker with -D_USING_LIBCXX\n  Provide a stub aeabi.read_tp on other archs\n  Remove TLS_SLOT_TSAN(8)\n"
    },
    {
      "commit": "21709b785df589e9be3ee2f68260c1bbf7c92796",
      "tree": "966d943e77ae44f09009c562d0fefb60612abd49",
      "parents": [
        "37a7f711eb36ad7326eae55560985a3754fcc546",
        "82aea781365f911e29386479a1da24c7664d78b7"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Wed Jan 16 22:36:53 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 16 22:36:53 2019 +0000"
      },
      "message": "Merge \"Use TLS_SLOT_THREAD_ID macro in vfork.S\""
    },
    {
      "commit": "606191fd613a374391a321b30094fa120defab98",
      "tree": "b5fe2ff27c290da1b5ceef3a4a7d32345a2405b6",
      "parents": [
        "b21fc16a22cec7056a5231568e1eac636c115b19"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Thu Jan 17 04:03:49 2019 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Thu Jan 17 04:04:42 2019 +0900"
      },
      "message": "Revert \"Expose more symbols temporarily\"\n\nThis reverts commit 220f51e5669571aaae66a47a5f29866792359fd7.\n\nThe internal modules that were using extra symbols are all fixed.\n\nBug: 120266448\nTest: m ndk_translation_all in cf_x86_phone\nChange-Id: I561b16de1c320d2624e7cf8e6211e0c70edc823d\n"
    },
    {
      "commit": "37a7f711eb36ad7326eae55560985a3754fcc546",
      "tree": "28cdb0103bac91d9c916ab86b90dc3bb10b0db4a",
      "parents": [
        "702c325933356c17069fc48cb86a196a5cdf7a1e",
        "3a538a4861362602ba7d0bda4e7abbb82db3a2c0"
      ],
      "author": {
        "name": "Florian Mayer",
        "email": "fmayer@google.com",
        "time": "Wed Jan 16 18:48:41 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 16 18:48:41 2019 +0000"
      },
      "message": "Merge \"Do not run heapprofd_initialize twice concurrently.\""
    },
    {
      "commit": "702c325933356c17069fc48cb86a196a5cdf7a1e",
      "tree": "d43ad6559fa3d59f302f2b9509bab62614175650",
      "parents": [
        "b21fc16a22cec7056a5231568e1eac636c115b19",
        "6903fb81e1da87d2123c6f610cd536080190ffd0"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jan 16 17:52:48 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 16 17:52:48 2019 +0000"
      },
      "message": "Merge \"libc: Sort symbols by size to reduce dirty pages\""
    },
    {
      "commit": "4809755c0f62ff993c9ec1187553760708389a60",
      "tree": "3ddec18dc7c6367fecdf25d21c6f4158823cd71a",
      "parents": [
        "c86576c1fb242e721f0d02cd63810922b1d85384"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Sun Jan 06 18:24:10 2019 -0800"
      },
      "committer": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Wed Jan 16 01:11:26 2019 -0800"
      },
      "message": "Add a __bionic_get_tls_segment function\n\nThe function searches for a TLS segment in a ElfXX_Phdr table.\n\nBug: http://b/78026329\nTest: bionic unit tests\nChange-Id: I221b13420d1a2da33fc2174b7dd256589f6ecfdb\n"
    },
    {
      "commit": "82aea781365f911e29386479a1da24c7664d78b7",
      "tree": "98d93d63c4233ea77fbadce21c7c54f2b3b7e5a6",
      "parents": [
        "ca305a39e50d92dc572f50f00262b3dbb0dece9d"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Thu Jan 03 00:06:17 2019 -0800"
      },
      "committer": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Wed Jan 16 01:11:26 2019 -0800"
      },
      "message": "Use TLS_SLOT_THREAD_ID macro in vfork.S\n\nNo functional change intended.\n\nBug: none\nTest: bionic unit tests\nChange-Id: I7ee0a2b3f0e3807abe88bfa34ef3cd56c150a8f6\n"
    },
    {
      "commit": "c86576c1fb242e721f0d02cd63810922b1d85384",
      "tree": "b67974ee704c29588359ba4ed1122c6771d45fb5",
      "parents": [
        "9ee8069046d587a4da2a67feb24ede9e9ea73edf"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Wed Jan 09 03:09:42 2019 -0800"
      },
      "committer": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Wed Jan 16 01:11:26 2019 -0800"
      },
      "message": "Factor out ScopedRWLock into its own header\n\nBug: http://b/78026329\nTest: bionic unit tests\nChange-Id: I1d1276da835bc8ecac7a7abb714d639a1ee58007\n"
    },
    {
      "commit": "9ee8069046d587a4da2a67feb24ede9e9ea73edf",
      "tree": "6cd909f2caabfa80c8656542d8ac63c3eac5c2bf",
      "parents": [
        "073fffde090f3d68ce997b6f4c376a58d2a9fc40"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Tue Jan 15 16:10:36 2019 -0800"
      },
      "committer": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Wed Jan 16 01:11:26 2019 -0800"
      },
      "message": "Build the linker with -D_USING_LIBCXX\n\nThis macro is necessary for using stdatomic.h and \u003catomic\u003e in the same\nlibc++-based program. \u003catomic\u003e is used implicitly by other STL headers,\nand stdatomic.h is used (or will be used) in headers shared with libc.\nlibc only has access to stdatomic.h because it can\u0027t use an STL.\n\nBug: http://b/78026329\nTest: bionic unit tests\nChange-Id: I89b128df08b478287ef4e2867319e74dbcc30d4e\n"
    },
    {
      "commit": "073fffde090f3d68ce997b6f4c376a58d2a9fc40",
      "tree": "0eb622b140e97f3110398129ac3aabe31c8ec6a7",
      "parents": [
        "2e724175acab8f0b9752bb55acb42a4915eb3d01"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Wed Jan 09 15:55:41 2019 -0800"
      },
      "committer": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Wed Jan 16 01:11:26 2019 -0800"
      },
      "message": "Provide a stub aeabi.read_tp on other archs\n\nUsing \"#if defined(...)\" inside the test body seems to be the convention.\n\nBug: none\nTest: bionic-unit-tests\nChange-Id: Icb348a1184e630c5e199129bbe2090fd1e490fa5\n"
    },
    {
      "commit": "2e724175acab8f0b9752bb55acb42a4915eb3d01",
      "tree": "f4c143afc2020212bed23f37cba0aaf16ea71a54",
      "parents": [
        "82aea781365f911e29386479a1da24c7664d78b7"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Tue Jan 15 20:33:27 2019 -0800"
      },
      "committer": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Wed Jan 16 01:11:26 2019 -0800"
      },
      "message": "Remove TLS_SLOT_TSAN(8)\n\nAs of the switch to clang-r346389c, it has been replaced with\nTLS_SLOT_SANITIZER(6). lld reserves 8 words beyond the TP on arm/arm64, so\nBionic can\u0027t use anything beyond 7.\n\nThe DTV and bionic_tls slots on x86 haven\u0027t been part of a release yet,\nand they should be strictly internal to Bionic anyway, so shift them down.\n\nBug: http://b/78026329\nTest: bionic unit tests\nChange-Id: Ifb3b2d8d85efe1417ee9a10b657b665ec6f2fd3d\n"
    },
    {
      "commit": "ae4d10bf4ab7168ac585f65895c623d027b1e740",
      "tree": "502263e1afa0a6e2ba237549a881e6164ad297f2",
      "parents": [
        "ca305a39e50d92dc572f50f00262b3dbb0dece9d"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Wed Jan 16 13:21:22 2019 +0800"
      },
      "committer": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Wed Jan 16 15:41:33 2019 +0800"
      },
      "message": "Add __attribute__((unused)) to __BIONIC_ERROR_FUNCTION_VISIBILITY\n\nThis commit adds `__attribute__((unused))` to\n`__BIONIC_ERROR_FUNCTION_VISIBILITY`, so that `open()`, `openat()`,\n`snprintf()`, and `sprintf()` don\u0027t raise `-Werror,-Wunused-function`\nwhen `_FORTIFY_SOURCE` is enabled.\n\nThese errors were hidden because the include directories were passed\nwith `-isystem` (instead of `-I`) and clang did not report\n`-Wunused-function` from `-isystem`.\n\nBug: 119086738\nTest: make checkbuild\nChange-Id: I0de71efdbacd90c5c6a419fc0368c92e8efdfd63\n"
    },
    {
      "commit": "b21fc16a22cec7056a5231568e1eac636c115b19",
      "tree": "becbd67ea40cd4bc2ce001227583421096f061a2",
      "parents": [
        "ca305a39e50d92dc572f50f00262b3dbb0dece9d",
        "86a4837a8eef99b2363dbcf1158a56bb203c2745"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Jan 15 20:09:07 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jan 15 20:09:07 2019 +0000"
      },
      "message": "Merge \"Update to v4.20.1 kernel headers.\""
    },
    {
      "commit": "86a4837a8eef99b2363dbcf1158a56bb203c2745",
      "tree": "becbd67ea40cd4bc2ce001227583421096f061a2",
      "parents": [
        "ca305a39e50d92dc572f50f00262b3dbb0dece9d"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Jan 10 14:14:59 2019 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Jan 15 07:33:14 2019 -0800"
      },
      "message": "Update to v4.20.1 kernel headers.\n\nThis includes one manual change:\n\nIn the file bionic/libc/kernel/uapi/linux/in.h, the macro IN_BADCLASS\nwas not definied correctly. Change the macro from:\n\n  #define IN_BADCLASS(a) ((((long int) (a)) \u003d\u003d 0xffffffff)\n\nto:\n\n  #define IN_BADCLASS(a) (((long int) (a)) \u003d\u003d (long int)0xffffffff)\n\nThis change is being pushed to the upstream kernels.\n\nTest: Builds and boots.\nChange-Id: Ia304773a9dc6789b34d9769d73742384d6afb571\nMerged-In: Ia304773a9dc6789b34d9769d73742384d6afb571\n(cherry picked from commit 967fb01cce73591281e7804e2c0fa9f83b618f5b)\n"
    },
    {
      "commit": "6903fb81e1da87d2123c6f610cd536080190ffd0",
      "tree": "d4513155300f4a848d973b41744dc53aec12ca92",
      "parents": [
        "ca305a39e50d92dc572f50f00262b3dbb0dece9d"
      ],
      "author": {
        "name": "Vic Yang",
        "email": "victoryang@google.com",
        "time": "Mon Jan 14 11:34:39 2019 -0800"
      },
      "committer": {
        "name": "Vic Yang",
        "email": "victoryang@google.com",
        "time": "Mon Jan 14 11:43:41 2019 -0800"
      },
      "message": "libc: Sort symbols by size to reduce dirty pages\n\nBy sorting symbols by size, small symbols are grouped together and we\nusually have less dirty pages at runtime.  On cuttlefish, this results\nin 20KB less dirty pages just after libc is loaded.\n\nBug: 112073665\nTest: Build libc and check symbol ordering.\nTest: Compare runtime private dirty memory usage on cuttlefish.\nChange-Id: Ic8fa996f81adb5a8cbc4b97817d2b94ef0697a2a\n"
    },
    {
      "commit": "ca305a39e50d92dc572f50f00262b3dbb0dece9d",
      "tree": "5010a8cc0a5beede7857940f872e8bf4fec46501",
      "parents": [
        "2242cca714786c1eddee6fe6a9c48142128da3c1",
        "62d8d9fc8fe48e451704ebf889c3ac6109ce9742"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Sun Jan 13 16:22:59 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sun Jan 13 16:22:59 2019 +0000"
      },
      "message": "Merge \"Track movement of ICU .dat file\""
    },
    {
      "commit": "2242cca714786c1eddee6fe6a9c48142128da3c1",
      "tree": "fe566eac57d2354c8b6bf27fc9db698fe57ea6be",
      "parents": [
        "98564b8c743a5fdea7b8bb7c016921f208b9e1bb",
        "45d1349c638426d99a5319e7be3dbb7c36ece7eb"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Sat Jan 12 00:57:12 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Jan 12 00:57:12 2019 +0000"
      },
      "message": "Merge changes I65430637,Ib75d9dab\n\n* changes:\n  Reorganize static TLS memory for ELF TLS\n  pthread_key.cpp: factor out get_thread_key_data\n"
    },
    {
      "commit": "45d1349c638426d99a5319e7be3dbb7c36ece7eb",
      "tree": "fe566eac57d2354c8b6bf27fc9db698fe57ea6be",
      "parents": [
        "27d59338b98bba7f33eb223c4f2e1df4c3b96774"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Thu Jan 03 02:51:30 2019 -0800"
      },
      "committer": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Fri Jan 11 15:34:22 2019 -0800"
      },
      "message": "Reorganize static TLS memory for ELF TLS\n\nFor ELF TLS \"local-exec\" accesses, the static linker assumes that an\nexecutable\u0027s TLS segment is located at a statically-known offset from the\nthread pointer (i.e. \"variant 1\" for ARM and \"variant 2\" for x86).\nBecause these layouts are incompatible, Bionic generally needs to allocate\nits TLS slots differently between different architectures.\n\nTo allow per-architecture TLS slots:\n - Replace the TLS_SLOT_xxx enumerators with macros. New ARM slots are\n   generally negative, while new x86 slots are generally positive.\n - Define a bionic_tcb struct that provides two things:\n    - a void* raw_slots_storage[BIONIC_TLS_SLOTS] field\n    - an inline accessor function: void*\u0026 tls_slot(size_t tpindex);\n\nFor ELF TLS, it\u0027s necessary to allocate a temporary TCB (i.e. TLS slots),\nbecause the runtime linker doesn\u0027t know how large the static TLS area is\nuntil after it has loaded all of the initial solibs.\n\nTo accommodate Golang, it\u0027s necessary to allocate the pthread keys at a\nfixed, small, positive offset from the thread pointer.\n\nThis CL moves the pthread keys into bionic_tls, then allocates a single\nmapping per thread that looks like so:\n - stack guard\n - stack [omitted for main thread and with pthread_attr_setstack]\n - static TLS:\n    - bionic_tcb [exec TLS will either precede or succeed the TCB]\n    - bionic_tls [prefixed by the pthread keys]\n    - [solib TLS segments will be placed here]\n - guard page\n\nAs before, if the new mapping includes a stack, the pthread_internal_t\nis allocated on it.\n\nAt startup, Bionic allocates a temporary bionic_tcb object on the stack,\nthen allocates a temporary bionic_tls object using mmap. This mmap is\ndelayed because the linker can\u0027t currently call async_safe_fatal() before\nrelocating itself.\n\nLater, Bionic allocates a stack-less thread mapping for the main thread,\nand copies slots from the temporary TCB to the new TCB.\n(See *::copy_from_bootstrap methods.)\n\nBug: http://b/78026329\nTest: bionic unit tests\nTest: verify that a Golang app still works\nTest: verify that a Golang app crashes if bionic_{tls,tcb} are swapped\nMerged-In: I6543063752f4ec8ef6dc9c7f2a06ce2a18fc5af3\nChange-Id: I6543063752f4ec8ef6dc9c7f2a06ce2a18fc5af3\n(cherry picked from commit 1e660b70da625fcbf1e43dfae09b7b4817fa1660)\n"
    },
    {
      "commit": "27d59338b98bba7f33eb223c4f2e1df4c3b96774",
      "tree": "a2e26b90699a20f5919577a2f5782e661369b5a5",
      "parents": [
        "98564b8c743a5fdea7b8bb7c016921f208b9e1bb"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Thu Jan 03 02:51:30 2019 -0800"
      },
      "committer": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Fri Jan 11 15:33:57 2019 -0800"
      },
      "message": "pthread_key.cpp: factor out get_thread_key_data\n\nThis change makes it easier to move the location of the pthread keys\n(e.g. into the bionic_tls struct).\n\nBug: http://b/78026329\nTest: bionic unit tests\nTest: disassembly of libc.so doesn\u0027t change\nMerged-In: Ib75d9dab8726de96856af91ec3daa2c5cdbc2178\nChange-Id: Ib75d9dab8726de96856af91ec3daa2c5cdbc2178\n(cherry picked from commit ecad24fad97c3fab6ab7820ce204558940203ffb)\n"
    },
    {
      "commit": "98564b8c743a5fdea7b8bb7c016921f208b9e1bb",
      "tree": "a92f91ad3351af94be0387d3644e81f933d695ef",
      "parents": [
        "688028d7a5b9c6ac5f38b216504d0880bbf6d0e9",
        "220f51e5669571aaae66a47a5f29866792359fd7"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jan 11 16:59:15 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 11 16:59:15 2019 +0000"
      },
      "message": "Merge changes from topic \"move_bionic_to_apex\"\n\n* changes:\n  Expose more symbols temporarily\n  Add stubs variants for bionic libs\n"
    },
    {
      "commit": "688028d7a5b9c6ac5f38b216504d0880bbf6d0e9",
      "tree": "866fe7133ad635ea4a746baba16fb9a518b5d3d0",
      "parents": [
        "19f2ed2d1d963a6e1eb4969ab50cc51256046ae1",
        "48fe0aef16faffb01b68d522aa59455b402edc67"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Jan 11 06:03:19 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 11 06:03:19 2019 +0000"
      },
      "message": "Merge \"Update kernel headers with new parser.\""
    },
    {
      "commit": "48fe0aef16faffb01b68d522aa59455b402edc67",
      "tree": "866fe7133ad635ea4a746baba16fb9a518b5d3d0",
      "parents": [
        "19f2ed2d1d963a6e1eb4969ab50cc51256046ae1"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Jan 10 15:59:33 2019 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Jan 10 17:33:56 2019 -0800"
      },
      "message": "Update kernel headers with new parser.\n\nTest: Builds.\nChange-Id: I3f0714d53ac893ccc3e66f7a92d0ea7a6737f1c3\n"
    },
    {
      "commit": "19f2ed2d1d963a6e1eb4969ab50cc51256046ae1",
      "tree": "a3725f316644d8bf059aa3515e1b1e0630bd62da",
      "parents": [
        "9dd7d2e640c00d03bced58eb0e4827d96b0afff7",
        "4282833dfc7dde443bf3e0c3d69ff82b05f54a0b"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Jan 11 01:31:58 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 11 01:31:58 2019 +0000"
      },
      "message": "Merge \"Fix notice file.\""
    },
    {
      "commit": "4282833dfc7dde443bf3e0c3d69ff82b05f54a0b",
      "tree": "a3725f316644d8bf059aa3515e1b1e0630bd62da",
      "parents": [
        "9dd7d2e640c00d03bced58eb0e4827d96b0afff7"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Jan 10 16:07:44 2019 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Jan 10 16:07:44 2019 -0800"
      },
      "message": "Fix notice file.\n\nThe only 2019 android copyright is coming from a test file, which is\nnot included in our normal notice.\n\nTest: Can upload.\nChange-Id: Ie22332f927b99c28eb71c1daf5615adfef8c5d11\n"
    },
    {
      "commit": "9dd7d2e640c00d03bced58eb0e4827d96b0afff7",
      "tree": "02b20f115dd08ff1c74ea551b3dd908d81ed1b81",
      "parents": [
        "43889f5e2c05cc4c324d3b8fc186077ac02b0170",
        "658b16fd9078882730861cc2c29cb44828989e52"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Jan 10 23:48:36 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 10 23:48:36 2019 +0000"
      },
      "message": "Merge \"Rewrite removeVarsAndFuncs.\""
    },
    {
      "commit": "658b16fd9078882730861cc2c29cb44828989e52",
      "tree": "bff861d3acba602010b5f3043a605f34ad13e1d6",
      "parents": [
        "e7964158cedf37b50e42ab1988e67eb2154c74f2"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Jan 08 14:58:07 2019 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Jan 10 15:15:15 2019 -0800"
      },
      "message": "Rewrite removeVarsAndFuncs.\n\nThe current version has these bugs:\n- Adding a semicolon after a function results in the removal of structures\n  following the function.\n- Function like macros get removed on accident rather than on purpose.\n- It removes extern \"C\" { completely, which might not be a bug, but doesn\u0027t\n  seem right.\n\nI couldn\u0027t easily fix any of these problems because the code depends heavily\non the header being correct.\n\nNew unit tests added for the function to cover all of these cases.\n\nA follow-on CL will include the updated headers.\n\nBug: 112290385\n\nTest: Passes all new unit tests.\nTest: When run on the current kernel headers, the generated headers are\nTest: nearly the same, missing data is being added.\nChange-Id: Ib22a5f2e78873544e8a9d54e385af1156b2a72bb\n"
    },
    {
      "commit": "62d8d9fc8fe48e451704ebf889c3ac6109ce9742",
      "tree": "26aeb76ebc556f75f6da0307315e6eae8e695af6",
      "parents": [
        "43889f5e2c05cc4c324d3b8fc186077ac02b0170"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Tue Dec 11 20:30:00 2018 +0000"
      },
      "committer": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Wed Jan 09 15:27:02 2019 +0000"
      },
      "message": "Track movement of ICU .dat file\n\nTrack movement of ICU .dat file into the runtime module\n\nThis reverts commit b9e7b699a2e22333e4f844e2d37d222f4c5451c5.\nThis is a reapply of commit 68c6bd8b43f03f7d2ffc81d3490a754e21803a30\n\nBug: 120853401\nBug: 119293618\nTest: build / boot\nChange-Id: I69e0dde2756da64ac0b17f1726145dccacf5961f\n"
    },
    {
      "commit": "43889f5e2c05cc4c324d3b8fc186077ac02b0170",
      "tree": "a002729ff0884d15a7335ff54bf06a9edf124ae3",
      "parents": [
        "c14d46f0862a83491801d8b060b786f1b16ff117",
        "466e0ecb88a5cbdd0528ff22e81fa7c028ee9799"
      ],
      "author": {
        "name": "Tim Murray",
        "email": "timmurray@google.com",
        "time": "Wed Jan 09 03:20:43 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 09 03:20:43 2019 +0000"
      },
      "message": "Merge \"Remove some PR_SET_VMAs during pthread_create\""
    },
    {
      "commit": "466e0ecb88a5cbdd0528ff22e81fa7c028ee9799",
      "tree": "30b39f313e493754173eabb9667153b53ad9de3c",
      "parents": [
        "5d89fbd207ce5ab09c6ae54193d82b8495c839c5"
      ],
      "author": {
        "name": "Tim Murray",
        "email": "timmurray@google.com",
        "time": "Tue Jan 08 11:01:18 2019 -0800"
      },
      "committer": {
        "name": "Tim Murray",
        "email": "timmurray@google.com",
        "time": "Tue Jan 08 13:27:41 2019 -0800"
      },
      "message": "Remove some PR_SET_VMAs during pthread_create\n\nPR_SET_VMA takes mmap_sem, which can cause contention and reduce\nperformance any time many threads are created at the same time,\nlike app startup.\n\nTest: camera launch performance\nBug: 122471935\nChange-Id: If7fa7ad99654c01d503f694976fd92bfd30d2afd\n"
    },
    {
      "commit": "c14d46f0862a83491801d8b060b786f1b16ff117",
      "tree": "7dba7a9be86b7cf986d85e7203cdc131cfe81876",
      "parents": [
        "5d89fbd207ce5ab09c6ae54193d82b8495c839c5",
        "45024fefe7507574faa0653b92c04536b36eb6ab"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Tue Jan 08 21:19:01 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jan 08 21:19:01 2019 +0000"
      },
      "message": "Merge \"Add ARM EABI function __aeabi_read_tp\""
    },
    {
      "commit": "5d89fbd207ce5ab09c6ae54193d82b8495c839c5",
      "tree": "705568822d710e2641d4008067845a64b4575f23",
      "parents": [
        "e7964158cedf37b50e42ab1988e67eb2154c74f2",
        "2e967fcbab846cb21412ab0a72b3bcc6ad0ce482"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Tue Jan 08 10:06:54 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jan 08 10:06:54 2019 +0000"
      },
      "message": "Merge \"Update the \"host\" bionic code tzdata lookup logic\""
    },
    {
      "commit": "45024fefe7507574faa0653b92c04536b36eb6ab",
      "tree": "40f657c63af98330eee9d1c2236bc7f522ad8b65",
      "parents": [
        "e7964158cedf37b50e42ab1988e67eb2154c74f2"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Sun Dec 30 21:10:26 2018 -0800"
      },
      "committer": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Mon Jan 07 20:30:35 2019 -0800"
      },
      "message": "Add ARM EABI function __aeabi_read_tp\n\nBy default, Clang uses this arm32 function to read the thread pointer,\neither for ELF TLS or via __builtin_thread_pointer(). It\u0027s probably better\nto inline the cp15 access using -mtp\u003dcp15, but that\u0027s not the default yet.\n\nSee https://reviews.llvm.org/D34878?id\u003d114573.\n\nBug: http://b/78026329\nTest: bionic unit tests\nChange-Id: I93b8926075f0b2cea8df9ef518d54f2820a8ff5b\n"
    },
    {
      "commit": "2e967fcbab846cb21412ab0a72b3bcc6ad0ce482",
      "tree": "a4181b96bcdf2e64583caa61bdf531d3121b9c9e",
      "parents": [
        "c975355066daf0b3012d236aa4e726b0d3d7e06a"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Fri Dec 14 16:02:07 2018 +0000"
      },
      "committer": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Mon Jan 07 21:08:37 2019 +0000"
      },
      "message": "Update the \"host\" bionic code tzdata lookup logic\n\nThe \"if defined(__ANDROID__)\" else branch is there to support\nbionic when running on host environments.\n\nThe code now checks the\n${ANDROID_RUNTIME_ROOT}/etc/tz/tzdata path as well.\n\nThis is similar to the current on-device expectations.\n\nEventually, we may remove the /system / ANDROID_ROOT cases.\n\nBug: 119293618\nTest: build only\nChange-Id: I8310f7b5a1c14567a648673970c636c7c84ff818\n"
    },
    {
      "commit": "e7964158cedf37b50e42ab1988e67eb2154c74f2",
      "tree": "e68d469568ce8b112569aba525fd4ca5f2d59f69",
      "parents": [
        "c975355066daf0b3012d236aa4e726b0d3d7e06a",
        "6b55cc36d3a74cd96abcc1592362fc8df4576b0a"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jan 07 01:08:36 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jan 07 01:08:36 2019 +0000"
      },
      "message": "Merge \"dir.${section}: downgrade \"can\u0027t resolve\" diag\""
    },
    {
      "commit": "6b55cc36d3a74cd96abcc1592362fc8df4576b0a",
      "tree": "e68d469568ce8b112569aba525fd4ca5f2d59f69",
      "parents": [
        "c975355066daf0b3012d236aa4e726b0d3d7e06a"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Fri Jan 04 14:58:26 2019 -0800"
      },
      "committer": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Fri Jan 04 15:05:44 2019 -0800"
      },
      "message": "dir.${section}: downgrade \"can\u0027t resolve\" diag\n\nWhen parsing a dir.${section} line in ld.config.txt, the linker uses\nrealpath() to resolve each directory path. If realpath() fails, the linker\nuses the non-resolved path instead. Previously, it issued a warning to\nstderr and logcat, but realpath() is expected to fail on /postinstall when\nrunning a binary in /data/local/tmp, so downgrade the warning to an INFO()\nnotice.\n\nBug: http://b/120996057\nTest: copy ping to /data/local/tmp, run it, verify no errors\nTest: bionic unit tests\nChange-Id: I2104084e12ea18840230997408559299bf3bddac\n"
    },
    {
      "commit": "220f51e5669571aaae66a47a5f29866792359fd7",
      "tree": "02b7b20c23f7fe8b7e54511617791be30c5703a5",
      "parents": [
        "c45fe9f7bd49b110f63b5928d00cf33a7b515d04"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Fri Dec 28 23:27:02 2018 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Fri Jan 04 22:29:36 2019 +0900"
      },
      "message": "Expose more symbols temporarily\n\nFollowing additional symbols are temporarily exposed from the runtime APEX\nto satisfy the dependencies from other non-AOSP modules. This will be\nreverted when the modules are built with the boostrap bionic libraries.\n\nBug: 120266448\nTest: m\nChange-Id: I39ac40a40545723ea2aeb185b9cd293d511f802f\n"
    },
    {
      "commit": "c45fe9f7bd49b110f63b5928d00cf33a7b515d04",
      "tree": "71c0df52796a2e3b24e1983897f019101e6bcf3e",
      "parents": [
        "c975355066daf0b3012d236aa4e726b0d3d7e06a"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Thu Dec 13 18:26:48 2018 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Fri Jan 04 22:29:36 2019 +0900"
      },
      "message": "Add stubs variants for bionic libs\n\nBionic libs are part of the runtime APEX (com.android.runtime). In order\nto be able to update the runtime APEX independetly from the platform, we\nhave to prevent things outside of the APEX from using bionic symbols\nthat are not guaranteed to be stable. Otherwise, platform could break\nwhen a symbol is removed from the libs via the APEX update.\n\nTo achive this goal, this change adds stubs variant to the bionic libs.\nWith this, things outside of the runtime APEX (i.e. other APEXes and the\nplatform) are built with the stubs variants that provide only the\nsymbols that are guaranteed to be stable.\n\nThe set of symbols are basically the same as the symbols available to\nNDK clients. However, there are a few additional symbols that are not\navailable for NDK but should be made available for platform components.\nThey are marked with \"# apex\" tag. Symbols with that tag are not exposed\nto apps (via NDK stubs) or vendors (via LLNDK stubs).\n\nNote that the stubs is a build-time only artifact. It is used just to\nbreak the build when private symbols are used outside of the runtime\nAPEX. At runtime, the real library in the APEX is used.\n\nBug: 120266448\nTest: m\nTest: m bionic-unit-tests\nChange-Id: I7b8d75830c81d7d7d54e2fca21a85b3417531b47\n"
    },
    {
      "commit": "c975355066daf0b3012d236aa4e726b0d3d7e06a",
      "tree": "4700ca36208c7fae3bf48ac76290f44fe81fee7f",
      "parents": [
        "d14d83032c5aeaac49d861683b46a8bedea50195",
        "0b0ee0c634a631693c5d8c8f2d2d42f6ff7ccf7f"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Fri Jan 04 03:56:40 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 04 03:56:40 2019 +0000"
      },
      "message": "Merge \"libc_shared_globals: add a constexpr ctor\""
    },
    {
      "commit": "0b0ee0c634a631693c5d8c8f2d2d42f6ff7ccf7f",
      "tree": "4700ca36208c7fae3bf48ac76290f44fe81fee7f",
      "parents": [
        "d14d83032c5aeaac49d861683b46a8bedea50195"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Fri Dec 14 17:34:05 2018 -0800"
      },
      "committer": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Thu Jan 03 17:11:27 2019 -0800"
      },
      "message": "libc_shared_globals: add a constexpr ctor\n\nHaving a constexpr constructor should guarantee that the static\n`globals` variable in __libc_shared_globals is initialized statically\n(as opposed to dynamically), which is important because\n__libc_shared_globals is called very early (before the linker has\nrelocated itself). With the constructor, though, the fields can safely\nhave in-line default initializers.\n\nBug: none\nTest: bionic unit tests\nChange-Id: Icde821557369625734a4d85d7ff55428bad5c247\n"
    },
    {
      "commit": "d14d83032c5aeaac49d861683b46a8bedea50195",
      "tree": "6ad9296b5373effbb36bc655d837b78925aac0bc",
      "parents": [
        "82d4bae5d47512de18601131bcbd0da8fafe6905",
        "ecb95b8a15d3d49fe55614b0ffdd044a60e8d48e"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jan 03 00:55:06 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 03 00:55:06 2019 +0000"
      },
      "message": "Merge \"Check return value of scandir in icu.cpp\""
    },
    {
      "commit": "82d4bae5d47512de18601131bcbd0da8fafe6905",
      "tree": "b6f399861b21c3dcb6e3350e145eb1330fa0b565",
      "parents": [
        "07468a811ed6795addeb243fb82423edae86c0aa",
        "2ccb2f04e03e5b2ee88a4404a68dcd08f414688e"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jan 03 00:18:10 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 03 00:18:10 2019 +0000"
      },
      "message": "Merge \"Add generic TLS linker reloc macros\""
    },
    {
      "commit": "ecb95b8a15d3d49fe55614b0ffdd044a60e8d48e",
      "tree": "a6d6049c5585f5d7fc4f3d87130a06c1bcae36ab",
      "parents": [
        "7bd54ade8d12762ef6bdb0096f3838261f14eee5"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Jan 02 15:25:22 2019 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Jan 02 15:30:50 2019 -0800"
      },
      "message": "Check return value of scandir in icu.cpp\n\nWe could cause illegal memory access due to not checking the scanddir\nreturn value.\n\nTest: run linux-bionic dex2oat to build boot.oat\nBug: 119332362\nChange-Id: Ic5824e0373b9b99d8f892b4fcf22e742c6f792da\n"
    },
    {
      "commit": "2ccb2f04e03e5b2ee88a4404a68dcd08f414688e",
      "tree": "c0b00fd1f7e603a95361177d10c3986b23189b59",
      "parents": [
        "76e7fd4e26e93a2921f0fd691551f0c8dca014a7"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Tue Jan 01 01:49:41 2019 -0800"
      },
      "committer": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Wed Jan 02 14:36:26 2019 -0800"
      },
      "message": "Add generic TLS linker reloc macros\n\nBug: http://b/78026329\nTest: build bionic\nChange-Id: I7f9d3a250f27c31d0b8d9a3a306468fdf723f9c8\n"
    },
    {
      "commit": "07468a811ed6795addeb243fb82423edae86c0aa",
      "tree": "3ef0bc9b779720484cefe8e04b31bfd908b9fc05",
      "parents": [
        "49c631a746c530ee05666ca440616aa8b15e61e0",
        "770032ddfa31f6ed18e6ec85013b7939cd291eb0"
      ],
      "author": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Jan 02 22:29:13 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 02 22:29:13 2019 +0000"
      },
      "message": "Merge \"Fix/suppress bionic google-explicit-constructor warnings\""
    },
    {
      "commit": "49c631a746c530ee05666ca440616aa8b15e61e0",
      "tree": "4aa3c3c63dd425c0779fa95414efe06be9c1a270",
      "parents": [
        "7bd54ade8d12762ef6bdb0096f3838261f14eee5",
        "76e7fd4e26e93a2921f0fd691551f0c8dca014a7"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jan 02 22:27:41 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 02 22:27:41 2019 +0000"
      },
      "message": "Merge \"Fix modify_stack_protector flake\""
    },
    {
      "commit": "770032ddfa31f6ed18e6ec85013b7939cd291eb0",
      "tree": "28dc26ae8a6b3623e79d1bb2b19fd5362477843c",
      "parents": [
        "7bd54ade8d12762ef6bdb0096f3838261f14eee5"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Jan 02 10:59:48 2019 -0800"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Jan 02 11:04:05 2019 -0800"
      },
      "message": "Fix/suppress bionic google-explicit-constructor warnings\n\n* Add explicit to conversion constructors/operators\n\nBug: 28341362\nTest: make with WITH_TIDY\u003d1 DEFAULT_GLOBAL_TIDY_CHECKS\u003d-*,google-explicit-constructor\nChange-Id: Id1ad0327c1b8c6f094bcbb3ae599bc1f716b3f2f\n"
    },
    {
      "commit": "76e7fd4e26e93a2921f0fd691551f0c8dca014a7",
      "tree": "4aa3c3c63dd425c0779fa95414efe06be9c1a270",
      "parents": [
        "7bd54ade8d12762ef6bdb0096f3838261f14eee5"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Tue Jan 01 16:20:12 2019 -0800"
      },
      "committer": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Tue Jan 01 19:46:41 2019 -0800"
      },
      "message": "Fix modify_stack_protector flake\n\nThe previous test would fail to crash if the first byte of the canary was\nalready NUL (1 of 256 runs assuming uniform canary distribution).\n\nBug: http://b/121156651\nTest: bionic unit tests\n"
    },
    {
      "commit": "7bd54ade8d12762ef6bdb0096f3838261f14eee5",
      "tree": "1e5c44234cb3973421b22570ed324db7c6a117ed",
      "parents": [
        "0ec6aa0f22bd6ef8eda41aa4cac8cf2b8a8e50ee",
        "78da73adad81ae6656d165c884384256d82f5a3e"
      ],
      "author": {
        "name": "Haibo Huang",
        "email": "hhb@google.com",
        "time": "Sat Dec 22 04:54:23 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Dec 22 04:54:23 2018 +0000"
      },
      "message": "Merge \"libc: Optimize ARM memcmp by using NEON.\""
    },
    {
      "commit": "78da73adad81ae6656d165c884384256d82f5a3e",
      "tree": "1e5c44234cb3973421b22570ed324db7c6a117ed",
      "parents": [
        "0ec6aa0f22bd6ef8eda41aa4cac8cf2b8a8e50ee"
      ],
      "author": {
        "name": "Kyle Repinski",
        "email": "repinski23@gmail.com",
        "time": "Thu Apr 30 02:13:56 2015 -0500"
      },
      "committer": {
        "name": "Haibo Huang",
        "email": "hhb@google.com",
        "time": "Sat Dec 22 01:04:27 2018 +0000"
      },
      "message": "libc: Optimize ARM memcmp by using NEON.\n\nBecause NEON_UNALIGNED_ACCESS has never been defined, it has gone unused.\nThis change enables NEON optimization if __ARM_NEON__ is defined.\n\nTest: bionic-benchmarks-32 BM_string_memcmp\n\nOn Nextbit Robin (MSM8992), here are the results\n\nBefore:\n                                       iterations      ns/op\nBM_string_memcmp/8                            50M         28    0.277 GiB/s\nBM_string_memcmp/64                           50M         54    1.169 GiB/s\nBM_string_memcmp/512                           5M        444    1.151 GiB/s\nBM_string_memcmp/1024                          2M        885    1.156 GiB/s\nBM_string_memcmp/8Ki                         200k       7401    1.107 GiB/s\nBM_string_memcmp/16Ki                        200k      14469    1.132 GiB/s\nBM_string_memcmp/32Ki                        100k      28726    1.141 GiB/s\nBM_string_memcmp/64Ki                         50k      57480    1.140 GiB/s\n\nAfter:\n                                       iterations      ns/op\nBM_string_memcmp/8                            50M         22    0.351 GiB/s\nBM_string_memcmp/64                         1000k         17    3.688 GiB/s\nBM_string_memcmp/512                          20M        105    4.848 GiB/s\nBM_string_memcmp/1024                         10M        190    5.367 GiB/s\nBM_string_memcmp/8Ki                        1000k       1496    5.475 GiB/s\nBM_string_memcmp/16Ki                       1000k       2746    5.966 GiB/s\nBM_string_memcmp/32Ki                        500k       5481    5.978 GiB/s\nBM_string_memcmp/64Ki                        200k      10971    5.973 GiB/s\n\nChange-Id: I3c76ce7fa2796872e0171d5502b0ebd6e2893339\n"
    },
    {
      "commit": "3a538a4861362602ba7d0bda4e7abbb82db3a2c0",
      "tree": "98e7af7633c140b50b94aee048da55826e845367",
      "parents": [
        "c49776bffc92c623c0bbb9d517252bf95bf9b652"
      ],
      "author": {
        "name": "Florian Mayer",
        "email": "fmayer@google.com",
        "time": "Thu Dec 20 11:23:50 2018 +0000"
      },
      "committer": {
        "name": "Florian Mayer",
        "email": "fmayer@google.com",
        "time": "Thu Dec 20 11:31:02 2018 +0000"
      },
      "message": "Do not run heapprofd_initialize twice concurrently.\n\nChange-Id: Ib3fd479ca690c90ca35d98386a1d3ec942715fa3\n"
    },
    {
      "commit": "0ec6aa0f22bd6ef8eda41aa4cac8cf2b8a8e50ee",
      "tree": "64ad0f34ce4db83c49d710df57e65f4d10688ae4",
      "parents": [
        "727a6ebcfb96740bda52ae972a246bf1a3a4109a",
        "b233fab925ca9b8370e83c2577610b26cb143619"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Dec 19 18:14:15 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Dec 19 18:14:15 2018 +0000"
      },
      "message": "Merge \"Fix handling of libs with a ro map and a rx map.\""
    },
    {
      "commit": "b233fab925ca9b8370e83c2577610b26cb143619",
      "tree": "c769a8eaf1e5fbb4e32c437d82f2433b65a6668e",
      "parents": [
        "0c499a69e3d8b858f53a7410285416c0cb30f83b"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Dec 18 16:44:42 2018 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Dec 18 17:45:46 2018 -0800"
      },
      "message": "Fix handling of libs with a ro map and a rx map.\n\nWhen the linker was changed so that it put a read-only map and\nread-execute map, this code incorrectly computed the relative pc and\noffset. Modify to look for the actual start map in this case.\n\nAlso, change the load_base name to load_bias.\n\nBug: 120613266\n\nTest: Dumped logcat while dumping backtraces.\n\nChange-Id: I6628694c5222ea34d63217af3d138707d4900004\n"
    },
    {
      "commit": "727a6ebcfb96740bda52ae972a246bf1a3a4109a",
      "tree": "ceab309ffa6ba0f91e97ac88cb2949b741e5f57f",
      "parents": [
        "3b3e09aad026c187a4f20436618ab36a9851aa35",
        "72a54a41a7ef0b1bc5a27e923b6d5b993a5271e0"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Dec 19 01:33:36 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Dec 19 01:33:36 2018 +0000"
      },
      "message": "Merge \"Make stdlib.getloadavg more resiliant.\""
    },
    {
      "commit": "3b3e09aad026c187a4f20436618ab36a9851aa35",
      "tree": "6d52faaa14bc61f7bdc68691f2644c9fd13b93d6",
      "parents": [
        "0c499a69e3d8b858f53a7410285416c0cb30f83b",
        "910a2a83a4fcc88628f3bc6900e57f040ec3ba15"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Dec 19 01:32:39 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Dec 19 01:32:39 2018 +0000"
      },
      "message": "Merge \"Fix sys_prctl.pr_cap_ambient.\""
    },
    {
      "commit": "910a2a83a4fcc88628f3bc6900e57f040ec3ba15",
      "tree": "6d52faaa14bc61f7bdc68691f2644c9fd13b93d6",
      "parents": [
        "0c499a69e3d8b858f53a7410285416c0cb30f83b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Dec 18 15:19:40 2018 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Dec 18 15:19:40 2018 -0800"
      },
      "message": "Fix sys_prctl.pr_cap_ambient.\n\nThis test didn\u0027t clear errno before testing it, so was sensitive to\nwhatever code had run before. Since I\u0027d already added the code to dump\nthe exact kernel version before realizing the actual bug, I\u0027ve left that\nin too.\n\nBug: http://b/121156651\nTest: ran tests\nChange-Id: I38482036cb6f035c0c98c27eb64d17829f29b09a\n"
    },
    {
      "commit": "72a54a41a7ef0b1bc5a27e923b6d5b993a5271e0",
      "tree": "0bfa4bf6c2fa17343cf9fe9d6d03dcbf933d19df",
      "parents": [
        "0c499a69e3d8b858f53a7410285416c0cb30f83b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Dec 18 14:47:25 2018 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Dec 18 14:47:25 2018 -0800"
      },
      "message": "Make stdlib.getloadavg more resiliant.\n\nUsing rint(3) gave us a step where if one side was 1.4 and the other\nwas 1.5, that would be 1 and 2 respectively. So instead use a simple\ndifference. Also log more detail in case this doesn\u0027t fix the flakiness.\n\nBug: http://b/121156651\nTest: ran tests\nChange-Id: Ib5b2eb05d2b1eb8c4a10b182a8703510a3ef0cea\n"
    },
    {
      "commit": "0c499a69e3d8b858f53a7410285416c0cb30f83b",
      "tree": "ff77fad7072d7ca2014ce5464e3cafd37e6df5e7",
      "parents": [
        "22549b331ca1ecff0c136caed7ca51a8b26a6874",
        "d19b3c527427770164437d258744828acadb6e42"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Dec 18 19:21:01 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 18 19:21:01 2018 +0000"
      },
      "message": "Merge \"Generate the per-arch .map files at build time.\""
    },
    {
      "commit": "22549b331ca1ecff0c136caed7ca51a8b26a6874",
      "tree": "03fefa6604c0a44fd01944cbb1a0e835eae7338e",
      "parents": [
        "9ea997a2ac4eeb26230e65d2b680ebff6fe0b8a4",
        "0dafa8a3a57e27cf8c38ea85f9a86f2007c06c74"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Dec 18 16:34:46 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 18 16:34:46 2018 +0000"
      },
      "message": "Merge \"Increase 2ms to 5ms to reduce flake.\""
    },
    {
      "commit": "0dafa8a3a57e27cf8c38ea85f9a86f2007c06c74",
      "tree": "03fefa6604c0a44fd01944cbb1a0e835eae7338e",
      "parents": [
        "9ea997a2ac4eeb26230e65d2b680ebff6fe0b8a4"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Dec 17 16:04:45 2018 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Dec 17 16:04:45 2018 -0800"
      },
      "message": "Increase 2ms to 5ms to reduce flake.\n\nBug: http://b/121156651\nTest: ran tests\nChange-Id: Ief699cacf920b144bf66821cf0ac73930fae9274\n"
    },
    {
      "commit": "d19b3c527427770164437d258744828acadb6e42",
      "tree": "d7628a87508447e39dd5a090481b357ad9ca5876",
      "parents": [
        "9ea997a2ac4eeb26230e65d2b680ebff6fe0b8a4"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 06 16:04:08 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Dec 17 12:26:42 2018 -0800"
      },
      "message": "Generate the per-arch .map files at build time.\n\nWe shouldn\u0027t be checking in these generated files...\n\nBug: N/A\nTest: ran tests\nChange-Id: Ib67c1ba839eacd7acebd713e1dcd4dd2c25d67f0\n"
    },
    {
      "commit": "9ea997a2ac4eeb26230e65d2b680ebff6fe0b8a4",
      "tree": "66c30adc7228beadba6cbdb3f91171e7e9cc3ab7",
      "parents": [
        "2bbd49be8449baf024e96a47d49f7f223a96fab7",
        "259429bd855daa54fc6ebf57982778db58e0331f"
      ],
      "author": {
        "name": "Vic Yang",
        "email": "victoryang@google.com",
        "time": "Fri Dec 14 00:56:56 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 14 00:56:56 2018 +0000"
      },
      "message": "Merge \"Further improve of linker memory allocators\""
    },
    {
      "commit": "2bbd49be8449baf024e96a47d49f7f223a96fab7",
      "tree": "de3db27dfd7f779094a0cbfaabd1784451d22df5",
      "parents": [
        "1e10cdc916e5e5db2364ad58b7432bfb808b6487",
        "5493851e1bd92fd64bcaeee53492584564c6e7cc"
      ],
      "author": {
        "name": "Vic Yang",
        "email": "victoryang@google.com",
        "time": "Fri Dec 14 00:56:33 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 14 00:56:33 2018 +0000"
      },
      "message": "Merge \"Reduce LinkerSmallObjectAllocator memory overhead\""
    },
    {
      "commit": "1e10cdc916e5e5db2364ad58b7432bfb808b6487",
      "tree": "2165b5502b32a3642f4b3abefb687b3d18c67bf1",
      "parents": [
        "c87fb3ed8262d8a1cf5289a4d230873460e3ad82",
        "37a2e611339ed888df2af3f872f26ce180c61722"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Dec 13 21:38:14 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 13 21:38:14 2018 +0000"
      },
      "message": "Merge \"Suppress cert-dcl16-c clang-tidy warnings\""
    },
    {
      "commit": "37a2e611339ed888df2af3f872f26ce180c61722",
      "tree": "969fc12f4fc451a26adb2f7524cf400f6be7fb0b",
      "parents": [
        "c49776bffc92c623c0bbb9d517252bf95bf9b652"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Dec 13 11:49:34 2018 -0800"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Dec 13 11:49:34 2018 -0800"
      },
      "message": "Suppress cert-dcl16-c clang-tidy warnings\n\nBug: 120614316\nTest: make with WITH_TIDY\u003d1 DEFAULT_GLOBAL_TIDY_CHECKS\u003d-*,cert-dcl16-c\nChange-Id: Iab21f41806d81268ebc13bb9605920b4b8e825c9\n"
    },
    {
      "commit": "c87fb3ed8262d8a1cf5289a4d230873460e3ad82",
      "tree": "0b209f0b6825d111911a939a4db689633da7301f",
      "parents": [
        "c49776bffc92c623c0bbb9d517252bf95bf9b652",
        "e4788d4c7e842b0ca24363ebc5544a16c9e3b185"
      ],
      "author": {
        "name": "Haibo Huang",
        "email": "hhb@google.com",
        "time": "Thu Dec 13 19:23:08 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 13 19:23:08 2018 +0000"
      },
      "message": "Merge \"No ifunc for strcmp and strlen\""
    },
    {
      "commit": "259429bd855daa54fc6ebf57982778db58e0331f",
      "tree": "af7d15d8070f717f5c8144e20fe2f0928f8dcc54",
      "parents": [
        "5493851e1bd92fd64bcaeee53492584564c6e7cc"
      ],
      "author": {
        "name": "Vic Yang",
        "email": "victoryang@google.com",
        "time": "Tue Dec 04 23:59:57 2018 -0800"
      },
      "committer": {
        "name": "Vic Yang",
        "email": "victoryang@google.com",
        "time": "Wed Dec 12 17:39:07 2018 -0800"
      },
      "message": "Further improve of linker memory allocators\n\nThis includes:\n  - Blocks allocated by small object allocators are now aligned to\n    their block size.\n  - Remove redundant free_blocks_cnt and allocated_blocks_cnt, as they\n    sum up to a fixed number.\n  - Remove a redundant padding word in small_object_page_info on 32-bit\n    platform.\n\nTest: Build and boot cuttlefish.\nChange-Id: Ib922d7af739e3709e8a162c7f68e7f99bf95a914\n"
    },
    {
      "commit": "5493851e1bd92fd64bcaeee53492584564c6e7cc",
      "tree": "b2e7eadce5ab178aa5d53e5618bc0219d0d9bd55",
      "parents": [
        "c49776bffc92c623c0bbb9d517252bf95bf9b652"
      ],
      "author": {
        "name": "Vic Yang",
        "email": "victoryang@google.com",
        "time": "Sun Dec 02 23:46:26 2018 -0800"
      },
      "committer": {
        "name": "Vic Yang",
        "email": "victoryang@google.com",
        "time": "Wed Dec 12 15:53:55 2018 -0800"
      },
      "message": "Reduce LinkerSmallObjectAllocator memory overhead\n\nThe current implementation of LinkerSmallObjectAllocator keeps record\nof pages in a vector, which uses its own page(s).  This is at least a\npage overhead per LinkerSmallObjectAllocator.\n\nThis change removes the page record vector by managing the pages in a\ndoubly linked list.\n\nWe also fix a bug where we are actually keeping up to 2 free pages\ninstead of just one.\n\nThe memory used by small objects when running \u0027dd\u0027, before this change:\n    72 KB  [anon:linker_alloc_small_objects]\n    28 KB  [anon:linker_alloc_vector]\n\nAfter this change:\n    60 KB  [anon:linker_alloc_small_objects]\n\nTest: Boot cuttlefish and check memory used by linker.\nChange-Id: I3468fa4d853c78b4bc02bfb84a3531653f74fb17\n"
    },
    {
      "commit": "e4788d4c7e842b0ca24363ebc5544a16c9e3b185",
      "tree": "0b209f0b6825d111911a939a4db689633da7301f",
      "parents": [
        "c49776bffc92c623c0bbb9d517252bf95bf9b652"
      ],
      "author": {
        "name": "Haibo Huang",
        "email": "hhb@google.com",
        "time": "Tue Dec 11 20:28:02 2018 -0800"
      },
      "committer": {
        "name": "Haibo Huang",
        "email": "hhb@google.com",
        "time": "Wed Dec 12 04:28:29 2018 +0000"
      },
      "message": "No ifunc for strcmp and strlen\n\nThis is a workaround to unbreak bank apps\n\nBug: 120254692\nTest: Run broken apps\nChange-Id: I47a655e9648a6d5f50856f712d8e1cf2be24b440\n"
    },
    {
      "commit": "c49776bffc92c623c0bbb9d517252bf95bf9b652",
      "tree": "186ed8b5eb2a1c053aea3552f5793459eac427ed",
      "parents": [
        "b0a55fbf748c8564daabd51a7d95113576040efb",
        "c2edae3f863f7c04d3b543c608319584527f2435"
      ],
      "author": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Dec 12 03:00:08 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Dec 12 03:00:08 2018 +0000"
      },
      "message": "Merge \"Fix cert-dcl16-c clang-tidy warnings in tests.\""
    },
    {
      "commit": "b0a55fbf748c8564daabd51a7d95113576040efb",
      "tree": "24c89222f658608e5042dbeb29aec32f92bf91b0",
      "parents": [
        "913f808c0f502d64ca542ceab984c9d40eb97eed",
        "4825c6d8146245e06c39d616c9dc91b6ae401cd1"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Wed Dec 12 02:02:03 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Dec 12 02:02:03 2018 +0000"
      },
      "message": "Merge \"Reserve TLS_SLOT_SANITIZER with value 6.\""
    },
    {
      "commit": "c2edae3f863f7c04d3b543c608319584527f2435",
      "tree": "cc1107f059e84a994d83a99fe1ffd1380ac0863b",
      "parents": [
        "913f808c0f502d64ca542ceab984c9d40eb97eed"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Dec 11 15:16:24 2018 -0800"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Dec 11 15:16:24 2018 -0800"
      },
      "message": "Fix cert-dcl16-c clang-tidy warnings in tests.\n\nBug: 120614316\nTest: make with WITH_TIDY\u003d1 DEFAULT_GLOBAL_TIDY_CHECKS\u003d-*,cert-dcl16-c\nChange-Id: I2606dc4cdfff9c2691ed60d529971e16adb3a9ae\n"
    },
    {
      "commit": "913f808c0f502d64ca542ceab984c9d40eb97eed",
      "tree": "b5a25e8c53eacbfb54433f39c68e89300889b5f7",
      "parents": [
        "7c2c34cb246d6d44f8c37c3480dba0325b738f44",
        "37754cdef681dde87f74ece0712e7c93b18ee368"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Tue Dec 11 22:35:16 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 11 22:35:16 2018 +0000"
      },
      "message": "Merge \"Move errno to a pthread_internal_t field.\""
    },
    {
      "commit": "7c2c34cb246d6d44f8c37c3480dba0325b738f44",
      "tree": "626e36b91de8d45dbcafc39e8574e852017fa8eb",
      "parents": [
        "24bddbe949235a3fa01e93e6f19951df4705c6c1",
        "0218e92329224dd4b32a040f51996742e8825593"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Dec 11 21:11:53 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 11 21:11:53 2018 +0000"
      },
      "message": "Merge \"Fix performance-for-range-copy warnings\""
    },
    {
      "commit": "4825c6d8146245e06c39d616c9dc91b6ae401cd1",
      "tree": "363bfa4f7a29fdcccdb9a6e484694d7621394585",
      "parents": [
        "37754cdef681dde87f74ece0712e7c93b18ee368"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Tue Dec 11 12:59:00 2018 -0800"
      },
      "committer": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Tue Dec 11 13:02:56 2018 -0800"
      },
      "message": "Reserve TLS_SLOT_SANITIZER with value 6.\n\nThis slot will replace TLS_SLOT_TSAN, which needs to be removed for ELF\nTLS compatibility. The platform has both slots reserved until compiler-rt\ncan be updated. See:\n - https://reviews.llvm.org/D53906\n - discussion on AOSP change Idf25d2ee457a5d26d0bdd6281cee72c345c8b755\n\nBug: http://b/78026329\nTest: m\nChange-Id: Ifd5aeb5711dc88266e7350cb022146dd87cfd7be\n"
    },
    {
      "commit": "37754cdef681dde87f74ece0712e7c93b18ee368",
      "tree": "2e94cb9012c50e2a6315f08994ff983e0095c15a",
      "parents": [
        "8b475e598d6c1252271849e41fb0e30e105a0ab3"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Fri Dec 07 01:47:00 2018 -0800"
      },
      "committer": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Tue Dec 11 12:59:23 2018 -0800"
      },
      "message": "Move errno to a pthread_internal_t field.\n\nThis change is intended to allow native-bridge to use independent\nTLS memory for host and guest environments, while still sharing a\nthread-local errno between the two.\n\nBug: http://b/78026329\nTest: bionic unit tests\nChange-Id: I838cd321e159add60760bc12a8aa7e9ddc960c33\nMerged-In: I838cd321e159add60760bc12a8aa7e9ddc960c33\n(cherry picked from commit a9c7c55462392a6b974761831744f6d80ca162df)\n"
    },
    {
      "commit": "24bddbe949235a3fa01e93e6f19951df4705c6c1",
      "tree": "3cc51cd55cee9d2bbb2acefe7b930af541ae20a4",
      "parents": [
        "681d8eb5cab3461c91c04faa38cc418c3e120d3d",
        "b9e7b699a2e22333e4f844e2d37d222f4c5451c5"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Tue Dec 11 20:20:14 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 11 20:20:14 2018 +0000"
      },
      "message": "Merge \"Revert \"Track movement of ICU .dat file\"\""
    },
    {
      "commit": "b9e7b699a2e22333e4f844e2d37d222f4c5451c5",
      "tree": "3ebeb19b4e6d4da4aac3bbcedf8be3dc03180923",
      "parents": [
        "68c6bd8b43f03f7d2ffc81d3490a754e21803a30"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Tue Dec 11 20:09:51 2018 +0000"
      },
      "committer": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Tue Dec 11 20:11:58 2018 +0000"
      },
      "message": "Revert \"Track movement of ICU .dat file\"\n\nThis reverts commit 68c6bd8b43f03f7d2ffc81d3490a754e21803a30.\n\nReason for revert: Broke ART test environments and emulator devices.\n\nBug: 119293618\nChange-Id: I1b0531d13c6565ce83801d93c78813af592eec1a\n"
    },
    {
      "commit": "0218e92329224dd4b32a040f51996742e8825593",
      "tree": "626e36b91de8d45dbcafc39e8574e852017fa8eb",
      "parents": [
        "2f1a8dbd10fba5c1b97f8b57c2bc26eaddd25577"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Dec 11 10:22:11 2018 -0800"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Dec 11 10:22:11 2018 -0800"
      },
      "message": "Fix performance-for-range-copy warnings\n\nBug: 30413223\nTest: make with WITH_TIDY\u003d1 DEFAULT_GLOBAL_TIDY_CHECKS\u003d-*,performance*\nChange-Id: I41cc70d161468c5586ca8be3185578e65681a9c5\n"
    },
    {
      "commit": "681d8eb5cab3461c91c04faa38cc418c3e120d3d",
      "tree": "693e7ffcdaafe29113565a77219fc5c6f1e4661c",
      "parents": [
        "2f1a8dbd10fba5c1b97f8b57c2bc26eaddd25577",
        "68c6bd8b43f03f7d2ffc81d3490a754e21803a30"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Tue Dec 11 14:03:28 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 11 14:03:28 2018 +0000"
      },
      "message": "Merge \"Track movement of ICU .dat file\""
    },
    {
      "commit": "2f1a8dbd10fba5c1b97f8b57c2bc26eaddd25577",
      "tree": "3cc51cd55cee9d2bbb2acefe7b930af541ae20a4",
      "parents": [
        "4e33c4ff9b7e29a923b00a42669bef88c76f93fe",
        "a50e51ac966579a384c72e3b2ed680e5c9f8fed1"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Mon Dec 10 17:37:33 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Dec 10 17:37:33 2018 +0000"
      },
      "message": "Merge \"Find tzdata in the runtime module before /system\""
    },
    {
      "commit": "68c6bd8b43f03f7d2ffc81d3490a754e21803a30",
      "tree": "20fc35686690fa2316207b9853bad5330af7870f",
      "parents": [
        "4e33c4ff9b7e29a923b00a42669bef88c76f93fe"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Tue Nov 13 10:23:02 2018 +0000"
      },
      "committer": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Sun Dec 09 15:01:43 2018 +0000"
      },
      "message": "Track movement of ICU .dat file\n\nTrack movement of ICU .dat file into the runtime module.\n\nBug: 119293618\nTest: build / boot\nChange-Id: I595c0c94ea7f693810fbe323d7966d9fdf4a07e6\n"
    },
    {
      "commit": "4e33c4ff9b7e29a923b00a42669bef88c76f93fe",
      "tree": "3ebeb19b4e6d4da4aac3bbcedf8be3dc03180923",
      "parents": [
        "b0f293ce52ba095e325ab68e49403d401891ee3a",
        "9268977f2d4e553342dffc9f1a20d72bd813821c"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Sat Dec 08 16:41:48 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Dec 08 16:41:48 2018 +0000"
      },
      "message": "Merge \"Track move of APEX module tz files under etc/tz\""
    },
    {
      "commit": "b0f293ce52ba095e325ab68e49403d401891ee3a",
      "tree": "85bf3bef4830eb42d9e7792fdcfd6d4b18680c42",
      "parents": [
        "8b475e598d6c1252271849e41fb0e30e105a0ab3",
        "efea995eb49316f716648c08f3b56276c1c1df4f"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Dec 08 04:20:32 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Dec 08 04:20:32 2018 +0000"
      },
      "message": "Merge \"DO NOT MERGE\""
    },
    {
      "commit": "efea995eb49316f716648c08f3b56276c1c1df4f",
      "tree": "85bf3bef4830eb42d9e7792fdcfd6d4b18680c42",
      "parents": [
        "8b475e598d6c1252271849e41fb0e30e105a0ab3",
        "796198ff347ffc5ee9cd47171ce490d01b314370"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Fri Dec 07 17:47:18 2018 -0800"
      },
      "committer": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Fri Dec 07 17:47:18 2018 -0800"
      },
      "message": "DO NOT MERGE\n\nMerge pie-platform-release (PPRL.181205.001, history only) into master\n\nBug: 120502534\nChange-Id: I4d8ac790868a56f65fd9805d06646a15918f4657\n"
    },
    {
      "commit": "a50e51ac966579a384c72e3b2ed680e5c9f8fed1",
      "tree": "449c8157060a023e98e765fc14f82fc855362b87",
      "parents": [
        "9268977f2d4e553342dffc9f1a20d72bd813821c"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Mon Nov 12 18:45:57 2018 +0000"
      },
      "committer": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Fri Dec 07 09:14:03 2018 +0000"
      },
      "message": "Find tzdata in the runtime module before /system\n\nLook for the tzdata file in the runtime module before looking\nin /system. It is still an open question how the removal of\ntzdata will be handled, if at all. Until it is worked out it\nwill be duplicated.\n\nBug: 119293618\nBug: 119390260\nTest: build / boot\nChange-Id: I7e14ef41d0ec226caa595c56be61df5ecf50c382\n"
    },
    {
      "commit": "8b475e598d6c1252271849e41fb0e30e105a0ab3",
      "tree": "85bf3bef4830eb42d9e7792fdcfd6d4b18680c42",
      "parents": [
        "42635c98a18e1ee89a22bc499db122f921a46f61",
        "34583c1089755406877cde9ebd9f75f73858a9bc"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Thu Dec 06 22:18:56 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 06 22:18:56 2018 +0000"
      },
      "message": "Merge \"Move dlerror out of a TLS slot and into a pthread_internal_t member.\""
    },
    {
      "commit": "42635c98a18e1ee89a22bc499db122f921a46f61",
      "tree": "edede0b55e6f641f970a5e34ecbc86bfa636a93f",
      "parents": [
        "5c92d9e858f36b78c02a650b98003c35a764c8ac",
        "fe21bbacfcdaf14d9bf5b10939cb73b77cc368ac"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Dec 06 17:13:06 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 06 17:13:06 2018 +0000"
      },
      "message": "Merge \"Add Android Runtime APEX bin directory to Bionic default shell search path.\""
    },
    {
      "commit": "fe21bbacfcdaf14d9bf5b10939cb73b77cc368ac",
      "tree": "49ca190005ff639228f07163c84d7a8d8342ad8b",
      "parents": [
        "aabebb277283383a293b021bca6bba46347de6b4"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Dec 04 19:30:00 2018 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Dec 06 17:03:47 2018 +0000"
      },
      "message": "Add Android Runtime APEX bin directory to Bionic default shell search path.\n\nInsert `/apex/com.android.runtime/bin` before `/system/bin` in the\ndefault shell search path (`_PATH_DEFPATH`).\n\nTest: Device boot test with Android Runtime APEX.\nTest: Device boot test without Android Runtime APEX.\nTest: cts-tradefed run cts --m vm-tests-tf\nTest: cts-tradefed run cts --m CtsSimpleperfTestCases\nTest: adb root \u0026\u0026 cts-tradefed run cts --m CtsBionicTestCases\nBug: 113373927\nBug: 119949783\nChange-Id: I45fd6ccb939c7e99eb6bda740a7187774c1e930d\n"
    },
    {
      "commit": "5c92d9e858f36b78c02a650b98003c35a764c8ac",
      "tree": "3618a82b233b7466559e9ac06927950f220d6675",
      "parents": [
        "31105c8dd8f4b57b3244aca23ba377c1190f3a6b",
        "c0c0ef6da6c383413b1e0d42f983c5fc88a015f3"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Dec 06 14:39:30 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 06 14:39:30 2018 +0000"
      },
      "message": "Merge \"Introduce filegroups for libc sources\""
    },
    {
      "commit": "9268977f2d4e553342dffc9f1a20d72bd813821c",
      "tree": "1b717cfb4fbdb5867160d72d06f97e4486df2dda",
      "parents": [
        "31105c8dd8f4b57b3244aca23ba377c1190f3a6b"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Thu Dec 06 14:33:12 2018 +0000"
      },
      "committer": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Thu Dec 06 14:33:12 2018 +0000"
      },
      "message": "Track move of APEX module tz files under etc/tz\n\nThe same prebuilts will be used in both runtime and time zone\nmodules. Having the rules put the files in etc/tz/ will make\nthem more appropriate for the runtime module.\n\nBug: 119026403\nTest: build /boot only\nChange-Id: Ia1370457e9d1547b35ed56bb385213d3727c8b9a\n"
    },
    {
      "commit": "34583c1089755406877cde9ebd9f75f73858a9bc",
      "tree": "084d100ac5071fedbd93741a283a6452d35fdb8d",
      "parents": [
        "31105c8dd8f4b57b3244aca23ba377c1190f3a6b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Nov 13 15:30:07 2018 -0800"
      },
      "committer": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Thu Dec 06 05:19:57 2018 +0000"
      },
      "message": "Move dlerror out of a TLS slot and into a pthread_internal_t member.\n\nBug: N/A\nTest: boots, tests pass.\nChange-Id: Idf25d2ee457a5d26d0bdd6281cee72c345c8b755\n"
    },
    {
      "commit": "31105c8dd8f4b57b3244aca23ba377c1190f3a6b",
      "tree": "108e24ae000853205f5b5fe21ca9417bee282229",
      "parents": [
        "a6bc0e3c28687130bfa987ade471cb4fd065b261",
        "9131b4abfd54927eb19c1b2cf60d94de0ec13fec"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Dec 06 02:43:58 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 06 02:43:58 2018 +0000"
      },
      "message": "Merge \"Remove cruft.\""
    }
  ],
  "next": "a6bc0e3c28687130bfa987ade471cb4fd065b261"
}
