)]}'
{
  "log": [
    {
      "commit": "d73a49e91e373cbcf4d044ec79ee7ed7b56dd7ca",
      "tree": "e488c86e6ded1b98a04479aab7123c770bc4f0fd",
      "parents": [
        "b87e85aac399414aeacdc372df4f6900760c7aee"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Oct 19 16:03:44 2018 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Nov 13 10:32:33 2018 -0800"
      },
      "message": "Move to jemalloc5.\n\nBug: 62621531\n\nTest: Builds and boots. All unit tests pass.\nChange-Id: I09d106cc3b658885b9155d6838f8df61498d3f85\n"
    },
    {
      "commit": "5d427bcb08d74112701cc6c6bf46d7344ea07cc7",
      "tree": "9e9091c92ff108909d0ff2ff7091a01a075cbcf7",
      "parents": [
        "e9bd18ac0c1413473211bbd427c12275b92c9f0e"
      ],
      "author": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Wed Nov 07 14:48:29 2018 -0800"
      },
      "committer": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Mon Nov 12 13:42:28 2018 -0800"
      },
      "message": "bionic: Add shadow call stack guard region field to pthread_internal_t.\n\nLanding this change separately to the change that implements SCS\nbecause it needs to land at the same time as an internal change. This\nwill simplify the situation in case SCS needs to be reverted again.\n\nChange-Id: Ibe18750829665b6dcf6e36628a5e5bbdd1a0dd4f\nMerged-In: Ibe18750829665b6dcf6e36628a5e5bbdd1a0dd4f\n"
    },
    {
      "commit": "f71edfad1c95baf226af86fba949621349ab8041",
      "tree": "a276b2434eb651c081b2f3bd5b44f1c315826859",
      "parents": [
        "40538268d43d82409a93637960f2da3c1226840a"
      ],
      "author": {
        "name": "Haibo Huang",
        "email": "hhb@google.com",
        "time": "Mon Nov 12 10:06:56 2018 -0800"
      },
      "committer": {
        "name": "Haibo Huang",
        "email": "hhb@google.com",
        "time": "Mon Nov 12 10:10:31 2018 -0800"
      },
      "message": "Separate libc_common to two targets\n\nAdds libc_common_static and libc_common_shared targets. So that static\nand shared objects can use different libraries.\n\nIn following changes I\u0027ll add dynamic dispatch code to\nlibc_common_shared.\n\nTest: compile and run bionic unit test.\nChange-Id: I056742fdf8af76ed7deb274c515951656b176fcb\n"
    },
    {
      "commit": "8251d4419fa8040e894685b6d065637701730fa6",
      "tree": "1bb9ee0da642a011e90e0106446faa91f062dc14",
      "parents": [
        "b9de32f6f06efe11f33c16c9ec77df10fdf0cea1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Nov 09 13:55:21 2018 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Nov 09 13:57:34 2018 -0800"
      },
      "message": "Add lp32 and lp64 shorthands to SYSCALLS.TXT.\n\nBug: N/A\nTest: updating the generated stubs is a no-op\nChange-Id: I7f6f9bcfd8c054f0a2d7e5f488eacb88cefb8d15\n"
    },
    {
      "commit": "b9de32f6f06efe11f33c16c9ec77df10fdf0cea1",
      "tree": "fe2c853ae92fd84230dc9a81609347037881753a",
      "parents": [
        "8fd93e6ea5af395c60d1bfcc0165f0535a30c2dd",
        "f945716bf95b577513d3af65d7cac0d694c4a09f"
      ],
      "author": {
        "name": "Ken Chen",
        "email": "cken@google.com",
        "time": "Fri Nov 09 03:28:44 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 09 03:28:44 2018 +0000"
      },
      "message": "Merge \"Free memory when it is no more used\""
    },
    {
      "commit": "f945716bf95b577513d3af65d7cac0d694c4a09f",
      "tree": "b96c99a681ffcdf89a97ce3c269b8018784a50d1",
      "parents": [
        "8178c417f68dac9c2d1a6b44dbca1e6b85e5b081"
      ],
      "author": {
        "name": "Ken Chen",
        "email": "cken@google.com",
        "time": "Thu Nov 08 17:28:11 2018 +0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 08 13:29:13 2018 -0800"
      },
      "message": "Free memory when it is no more used\n\nMemory leak happen when Android data framework updates identical DNS\ninformation to netd.\n\n(cherrypick of c466fe95dc641d879683700aea4233ffd42bc762.)\n\nBug: 115595601\nTest: netd_unit_test, netd_integration_test\nChange-Id: Idcc0956729286563603f482258f488a1ccd75e6a\n"
    },
    {
      "commit": "8fd93e6ea5af395c60d1bfcc0165f0535a30c2dd",
      "tree": "1eb55e9ad8050b4cc76c5177a02d4e1da7872c45",
      "parents": [
        "bf925b0580b63f0746303eb234d2684aadc29dc0",
        "f90687c4ec2eba944fa697eff2ccaf9e3b8ee480"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Nov 08 21:24:51 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 08 21:24:51 2018 +0000"
      },
      "message": "Merge \"Increase the size of the signal stack on 64-bit.\""
    },
    {
      "commit": "f90687c4ec2eba944fa697eff2ccaf9e3b8ee480",
      "tree": "c4ef71eeb0bce234bd0a4ad8dac35e8778de7b75",
      "parents": [
        "0c39bd468d3aa19b3e27937b36b101cc4aa65dab"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Tue Nov 06 14:47:27 2018 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Nov 08 21:24:31 2018 +0000"
      },
      "message": "Increase the size of the signal stack on 64-bit.\n\nThe signal stack is sufficiently large for a single invocation of the\nsignal handler, but in cases where the signal handler needs to recurse,\n(e.g. if our address space is limited by RLIMIT_AS), it\u0027s too small for\nus to get to the part where we recognize that we\u0027ve recursed and bail\nout.\n\nBug: http://b/118772392\nTest: /data/nativetest64/debuggerd_test/debuggerd_test64 --gtest_filter\u003dCrasherTest.seccomp_crash_oom\nChange-Id: Ic7a2cf8b01b3f7ea7f4a2318a3ec22a0c3649da6\n"
    },
    {
      "commit": "bf925b0580b63f0746303eb234d2684aadc29dc0",
      "tree": "527d9e983d5b0d4ce4bc11d5424c6104ca8573d0",
      "parents": [
        "d495e0b777a101e6a146e9cc87abf522bc64f687",
        "eadf50601bd968889a0cdb022abf29e2374c39b1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 08 20:09:49 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 08 20:09:49 2018 +0000"
      },
      "message": "Merge \"Remove obsolete workaround.\""
    },
    {
      "commit": "10265a8cbe36fecf59e7630ebf1132b8ecc0902d",
      "tree": "d3befccaa8f0209e72b99e39e15e4ba7affe29d2",
      "parents": [
        "b3fe0136d85f889ba467ea3e259bd18805c06762",
        "fd522d01321df225c5e376063dd5154d1e7bc8c5"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Thu Nov 08 08:18:59 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 08 08:18:59 2018 +0000"
      },
      "message": "Merge \"Finalize the name of the apex package\""
    },
    {
      "commit": "b3fe0136d85f889ba467ea3e259bd18805c06762",
      "tree": "0e01f063363e40df54e89141e666056eedd1283e",
      "parents": [
        "bbd465a230401b41fa6c1375ea5ab139f7fede7e",
        "56794421fc41e5ed28b7546634051458159bbfd4"
      ],
      "author": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Nov 08 04:59:14 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 08 04:59:14 2018 +0000"
      },
      "message": "Merge \"Revert \"Disable lld, libc_malloc_debug failed to boot.\"\""
    },
    {
      "commit": "56794421fc41e5ed28b7546634051458159bbfd4",
      "tree": "5b4352c5e0ddacfac7785f290f08a7535b0631ad",
      "parents": [
        "0e87940961f999aad65834abf7a09e86b569ed3b"
      ],
      "author": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Nov 07 22:02:27 2018 +0000"
      },
      "committer": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Nov 07 23:49:37 2018 +0000"
      },
      "message": "Revert \"Disable lld, libc_malloc_debug failed to boot.\"\n\nThis reverts commit 0e87940961f999aad65834abf7a09e86b569ed3b.\n\nReason for revert: This should have been fixed.\nBug: 78118944\n\nChange-Id: I796ff2420ec3682dd54a059175a8428868b75c23\n"
    },
    {
      "commit": "fd522d01321df225c5e376063dd5154d1e7bc8c5",
      "tree": "9291f83cf39f696cf9cbd89d80c9581ae7cf8ccf",
      "parents": [
        "0c39bd468d3aa19b3e27937b36b101cc4aa65dab"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Wed Nov 07 15:42:43 2018 +0000"
      },
      "committer": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Wed Nov 07 15:42:43 2018 +0000"
      },
      "message": "Finalize the name of the apex package\n\nThe package name in the manifest.json is changing to\nremove apex so the hardcoded path must change.\n\nBug: 119026403\nTest: build\nChange-Id: I906b595a1325b40f8af8c37d7d08cd543c988cc8\n"
    },
    {
      "commit": "eadf50601bd968889a0cdb022abf29e2374c39b1",
      "tree": "5e7bda5df8b37967bb2163b49b8b1217ad3f0f24",
      "parents": [
        "0c39bd468d3aa19b3e27937b36b101cc4aa65dab"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jul 16 11:55:20 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Nov 06 11:17:34 2018 -0800"
      },
      "message": "Remove obsolete workaround.\n\nBug: b/37423073\nTest: builds\nChange-Id: Ib0ad58abc7303967a80bb933501cc1247bb36385\n"
    },
    {
      "commit": "8178c417f68dac9c2d1a6b44dbca1e6b85e5b081",
      "tree": "ac31cd7fcd74e5b7beb05807bae4f288a6dbdf90",
      "parents": [
        "0c39bd468d3aa19b3e27937b36b101cc4aa65dab"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Nov 05 13:34:36 2018 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Nov 06 11:15:17 2018 -0800"
      },
      "message": "ART isn\u0027t using the ART-specific linker features any more.\n\nBug: N/A\nTest: ran tests\nChange-Id: Ide3c295035687019608a2c4716a4a21cb889d121\n"
    },
    {
      "commit": "0c39bd468d3aa19b3e27937b36b101cc4aa65dab",
      "tree": "da08c84bb3e7623629aa6574020f74f8a8902062",
      "parents": [
        "6d1c5cab94f9fb7423198f950fb94dc7e31c4ddd",
        "833cbe4b1c12e31fbbaf99df88f7e2ad23da6610"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Mon Nov 05 08:20:42 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 05 08:20:42 2018 +0000"
      },
      "message": "Merge \"Add bionic/libc/include to exported_include_dirs\""
    },
    {
      "commit": "6d1c5cab94f9fb7423198f950fb94dc7e31c4ddd",
      "tree": "473411ff281ffc2f2a35a92d01df3c28a7e3a4e6",
      "parents": [
        "9ffd39cdeaf399f53950d2f578f148a88d08e396",
        "7dfeaf896d598f823eda79a238fc9902ba7d4c06"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Fri Nov 02 22:34:50 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 02 22:34:50 2018 +0000"
      },
      "message": "Merge \"Changes to support loading tz data from APEX\""
    },
    {
      "commit": "833cbe4b1c12e31fbbaf99df88f7e2ad23da6610",
      "tree": "ebd94e76888aec68397e40a39142adeb0542243f",
      "parents": [
        "38b8255866860aef8b514cacb21c242e10a33107"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Fri Oct 19 17:57:54 2018 +0800"
      },
      "committer": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Fri Nov 02 13:21:03 2018 +0800"
      },
      "message": "Add bionic/libc/include to exported_include_dirs\n\nThis commit adds \"include\" (full path: \"bionic/libc/include\") to\nexported_include_dirs for libc.  Without this change,\nheader-abi-checker will strip all functions from ABI dumps.\n\nBug: 117963950\nTest: libc.so.lsdump has a non-empty functions array\nChange-Id: I192a4ec0251f1320ced56c6201818076ebd2a2da\n"
    },
    {
      "commit": "8d65a81fb6f485658bbce9c2376424947c9f01f4",
      "tree": "71ff04f831b8d3fb35c0d960dbdee66810c57373",
      "parents": [
        "e2833f27c17e87021dae45c0d45025afd51f1e7e"
      ],
      "author": {
        "name": "nuccachen",
        "email": "nuccachen@google.com",
        "time": "Wed Sep 12 16:36:50 2018 +0800"
      },
      "committer": {
        "name": "nuccachen",
        "email": "nuccachen@google.com",
        "time": "Thu Nov 01 16:40:34 2018 +0800"
      },
      "message": "getnameinfo: Don\u0027t add flag NI_NUMERICHOST for well-known prefix address\n\nCurrently, getnameinfo() will never issue a reverse DNS lookup if the first\nbyte of the IPv6 address is 0x00. This means it is not possible to do a\nreverse DNS lookup for a NAT64 address if the NAT64 prefix is the well-known\nprefix. Make this possible by treating the well-known prefix specially. This\nis not needed for unicast NAT64 prefixes because they do not start with 0x00.\n\nBug: 78545619\nTest: netd_{unit,integration}_test pass\nTest: bionic-unit-tests --gtest_filter\u003d\u0027net*\u0027 pass\nChange-Id: I176d30dcf411a5ffe1eec110db99cd73b48e956f\n"
    },
    {
      "commit": "6f3a56bb18628243b6dbe470222e56bb56ed10ae",
      "tree": "53a7886e2e1f2c7766986c5eafe3f631fe6027ce",
      "parents": [
        "5c7bece8ca071118cceb42306ca568df495d09c7",
        "7b13dd918e6e2c1638e6b137f27c80979a4ecd3f"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Nov 01 01:32:00 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 01 01:32:00 2018 +0000"
      },
      "message": "Merge \"Revert \"bionic: Allocate a shadow call stack for each thread.\"\""
    },
    {
      "commit": "d6ac79300d2dc777b1df7345e68d5ad04e5e666c",
      "tree": "ead635dee8fef370464d8ca155e833e7c2402a58",
      "parents": [
        "6a5dcd678645df1c1d1987fc7389347765b28f53",
        "25c34e0feba2d0c49971016117a5af4fb8d32c1e"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Oct 30 23:31:15 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 30 23:31:15 2018 +0000"
      },
      "message": "Merge \"Reverse two pthread_internal_t fields\""
    },
    {
      "commit": "7dfeaf896d598f823eda79a238fc9902ba7d4c06",
      "tree": "ff60ccd8afccda2a11152affb576d6a7136d9bb7",
      "parents": [
        "e898a17e8f2bf30506642be8106b1f8a6de61151"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Tue Oct 30 20:19:35 2018 +0000"
      },
      "committer": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Tue Oct 30 20:19:35 2018 +0000"
      },
      "message": "Changes to support loading tz data from APEX\n\nThe changes needed to pick up time zone data files from\na mounted APEX directory. Code that looks for time zone\ndata now looks in a new location after checking for\ndata installed by the time zone updates via APK feature.\n\nThis hasn\u0027t been tested in combination with a real APEX but\nit shouldn\u0027t do anything bad if the new path does not exist.\n\nBug: 115612964\nTest: CTS: run cts-dev -m CtsBionicTests\nTest: Build / boot without APEX support\nChange-Id: I56ae50e26f2cbfa0e537029a0e6f679fa2394327\n"
    },
    {
      "commit": "25c34e0feba2d0c49971016117a5af4fb8d32c1e",
      "tree": "46b26664f7fd968f0009981b5f25878239227d41",
      "parents": [
        "f284a475441f612a0b48067a8bc7a59c72c4b47a"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Mon Oct 29 16:31:51 2018 -0700"
      },
      "committer": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Tue Oct 30 12:30:21 2018 -0700"
      },
      "message": "Reverse two pthread_internal_t fields\n\nThe golang runtime currently expects to find the pthread key data after\nthe tls slots.\n\nBug: http://b/78026329\nBug: http://b/118381796\nTest: run a golang-based app, bionic unit tests\nChange-Id: Idc777d809b803093e1c81d9a2ce4eafcc7d61f8d\nMerged-In: Idc777d809b803093e1c81d9a2ce4eafcc7d61f8d\n(cherry picked from commit a2c30723dac6b570247ac1bc7190850616f4db93)\n"
    },
    {
      "commit": "9ce28844db7cf80ee8cf7c88dab23b666eaab739",
      "tree": "a6dc35217992637cf0102c4beba99c6fdcd1ffdc",
      "parents": [
        "e898a17e8f2bf30506642be8106b1f8a6de61151"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Oct 25 12:11:39 2018 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Oct 30 09:21:16 2018 -0700"
      },
      "message": "Update to v4.19 kernel headers.\n\nTest: Builds and boots.\nChange-Id: I99a9ed79666e143b47f02ca4e59eed94f69b7e4a\n(cherry picked from commit a981e2e52e2e95a65fa9c9b6fb16dcb4c83dd576)\n"
    },
    {
      "commit": "e898a17e8f2bf30506642be8106b1f8a6de61151",
      "tree": "d257168fc36fe3dec7549bdccb8570f1fade9b97",
      "parents": [
        "f284a475441f612a0b48067a8bc7a59c72c4b47a",
        "176a47594e118a02d7c003ef3eb955ccc6781539"
      ],
      "author": {
        "name": "Florian Mayer",
        "email": "fmayer@google.com",
        "time": "Tue Oct 30 11:34:17 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 30 11:34:17 2018 +0000"
      },
      "message": "Merge \"Allow to re-initialize heapprofd.\""
    },
    {
      "commit": "7b13dd918e6e2c1638e6b137f27c80979a4ecd3f",
      "tree": "b7f8343a6fc3767bd968b68ba8b6be74466d027a",
      "parents": [
        "da1bc79f937225b1a048d9e5a03eca81680a17fd"
      ],
      "author": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Mon Oct 29 21:48:38 2018 +0000"
      },
      "committer": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Mon Oct 29 21:48:59 2018 +0000"
      },
      "message": "Revert \"bionic: Allocate a shadow call stack for each thread.\"\n\nThis reverts commit da1bc79f937225b1a048d9e5a03eca81680a17fd.\n\nReason for revert: Caused OOM in media process\n\nBug: 112907825\nBug: 118593766\nChange-Id: I545663871d75889b209b9fd2131cdaa97166478f\n"
    },
    {
      "commit": "f284a475441f612a0b48067a8bc7a59c72c4b47a",
      "tree": "47d3953dcd5c84de7b57e01fae11d3c0cab606dd",
      "parents": [
        "debcd02d184822df57e7dc69066933dd44092235",
        "da1bc79f937225b1a048d9e5a03eca81680a17fd"
      ],
      "author": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Mon Oct 29 21:05:25 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Oct 29 21:05:25 2018 +0000"
      },
      "message": "Merge \"bionic: Allocate a shadow call stack for each thread.\""
    },
    {
      "commit": "da1bc79f937225b1a048d9e5a03eca81680a17fd",
      "tree": "0334b394fff71fc1263d82515dde5c8c16a5dda8",
      "parents": [
        "c89a3971e94c30611c885e4c440eae2fd9937948"
      ],
      "author": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Thu Sep 06 22:20:44 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 29 19:55:18 2018 +0000"
      },
      "message": "bionic: Allocate a shadow call stack for each thread.\n\nBug: 112907825\nChange-Id: I7c1479a0cd68696739bf6aa5e0700ba4f2a137ec\nMerged-In: I7c1479a0cd68696739bf6aa5e0700ba4f2a137ec\n"
    },
    {
      "commit": "176a47594e118a02d7c003ef3eb955ccc6781539",
      "tree": "6eed1c373fe16aaa14b078133f8089a5433cc1e2",
      "parents": [
        "d84f8b5eb24f0e55645fd6a35d39611d2ffa74ff"
      ],
      "author": {
        "name": "Florian Mayer",
        "email": "fmayer@google.com",
        "time": "Tue Oct 23 11:48:34 2018 +0100"
      },
      "committer": {
        "name": "Florian Mayer",
        "email": "fmayer@google.com",
        "time": "Mon Oct 29 12:24:15 2018 +0000"
      },
      "message": "Allow to re-initialize heapprofd.\n\nWithout this change, any process can only be profiled by heapprofd\nonce.\n\nChange-Id: I2d0f50eebcc3b219750354ccdc4ea22a2e39c4b6\n"
    },
    {
      "commit": "debcd02d184822df57e7dc69066933dd44092235",
      "tree": "903e862004d9db9b22ad0e6fdd5d10649150bdbb",
      "parents": [
        "90856af78be11457f9b4a32ad8dad4946ae30bb3",
        "f2484aaed779c0ef03661d6d473ee64e3b0503cd"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Sat Oct 27 04:42:02 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Oct 27 04:42:02 2018 +0000"
      },
      "message": "Merge \"Fix handling of #elif.\""
    },
    {
      "commit": "f2484aaed779c0ef03661d6d473ee64e3b0503cd",
      "tree": "bc6f0851c48e30bce36d872f7b390de8a01ddcc3",
      "parents": [
        "c89a3971e94c30611c885e4c440eae2fd9937948"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Oct 25 19:41:45 2018 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Oct 26 22:42:26 2018 +0000"
      },
      "message": "Fix handling of #elif.\n\nWhen a construct like:\n\nif defined(something)\n  blocks1\nelif 1\n  blocks2\nelse\n  blocks3\nendif\n\nThe parser would put the first clause but then simply omit the elif and\nput all of blocks2 without a terminating #endif. The code also did\nsomething similar when the #else was an #endif.\n\nAlso convert all of the unit tests to real unit tests and only run\nthem if you run cpp.py by itself. Added new unit tests to cover the\nnew cases.\n\nTest: Ran cpp.py unit tests.\nTest: Reran update_all.py and verified nothing changed, and that running\nTest: it on the new kernel headers that exposed this problem.\nChange-Id: Ie168511303c4e15afdb60c37baef75a966ca29a8\n"
    },
    {
      "commit": "90856af78be11457f9b4a32ad8dad4946ae30bb3",
      "tree": "08afc2097c20cfe956ccb87f71b54cc3b2519e3b",
      "parents": [
        "2bfe37afc8a3efc28a2e59e94952c61740783b84",
        "25bcf59cb3f60f84856fca66c854f223f55645d9"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Fri Oct 26 01:33:06 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 26 01:33:06 2018 +0000"
      },
      "message": "Merge changes I70ea4b23,Iedcfe36b,I3f21fc71,Ie99c0eef\n\n* changes:\n  libc: Match header annotations to version script\n  versioner: Build SymbolDatabase from version scripts\n  versioner: Add 28 to version list\n  libc: Add default __STRING implementation\n"
    },
    {
      "commit": "2bfe37afc8a3efc28a2e59e94952c61740783b84",
      "tree": "48c955a9a899eb5ebf85475cf004dbade956dc4d",
      "parents": [
        "04164f6d055c1052325a665bc9aa4837a5d2c1ae",
        "29d6dbc906f51f127700fd9e2d1e1170456f2382"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Oct 26 00:49:21 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 26 00:49:21 2018 +0000"
      },
      "message": "Merge \"Move Bionic slots to the end of pthread_internal_t\""
    },
    {
      "commit": "29d6dbc906f51f127700fd9e2d1e1170456f2382",
      "tree": "09bdf2be3f29c92de8ac17f8ee27691d26356640",
      "parents": [
        "a2af8bea8c6c4b6ce6883bf92cbce922e0d9f458"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Fri Oct 19 20:35:23 2018 -0700"
      },
      "committer": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Thu Oct 25 23:31:17 2018 +0000"
      },
      "message": "Move Bionic slots to the end of pthread_internal_t\n\nWith ELF TLS, the static linker assumes that an executable\u0027s TLS segment\nis at a known offset from the thread pointer (i.e. __get_tls()). The\nsegment can be located prior to the TP (variant 2, x86[_64], sparc) or\nafter it (variant 1, arm{32,64}, ppc, mips, ia64, riscv).\n\nWe can\u0027t make our pthread_internal_t exactly follow the ordinary arm64\nABI (at least) because TP[5] is used for clang\u0027s -fstack-protector on\nAndroid. Instead, reserve extra space after the TP (up to 16 words), which\nwill be followed by the executable\u0027s TLS segment.\n\nBug: http://b/78026329\nTest: boot device, bionic unit tests\nChange-Id: I0f3b270b793f9872ba0effeac03f4dec364438d6\nMerged-In: I0f3b270b793f9872ba0effeac03f4dec364438d6\n(cherry picked from commit f397317e96928ef24b980d5c73d08829c0e70cd4)\n"
    },
    {
      "commit": "5e62b34c0d6fa545b487b9b64fb4a04a0589bc13",
      "tree": "e08ee44067b3b636ace11b21ec8d63a08d4d2a19",
      "parents": [
        "c89a3971e94c30611c885e4c440eae2fd9937948"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 25 11:00:00 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 25 11:00:00 2018 -0700"
      },
      "message": "Clean up bionic_macros.h a bit.\n\nUse \u003candroid-base/macros.h\u003e instead where possible, and move the bionic\nmacros out of the way of the libbase ones. Yes, there are folks who manage\nto end up with both included at once (thanks OpenGL!), and cleaning that\nup doesn\u0027t seem nearly as practical as just making this change.\n\nBug: N/A\nTest: builds\nChange-Id: I23fc544f39d5addf81dc61471771a5438778895b\n"
    },
    {
      "commit": "25bcf59cb3f60f84856fca66c854f223f55645d9",
      "tree": "d6fec62968dde66878d994c25e57ba2c69020a9a",
      "parents": [
        "9c123230e22d8fe9f691a72cc74def92d302a021"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Tue Oct 23 21:32:37 2018 +0800"
      },
      "committer": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Thu Oct 25 14:54:44 2018 +0800"
      },
      "message": "libc: Match header annotations to version script\n\nAccording to `libc.map.txt`, `pselect64()` was introduced since API\nlevel 28. This commit adds the annotations to `sys/select.h`.\n\nBug: 113263746\nTest: ./bionic/tools/versioner/run_tests.py\nChange-Id: I70ea4b23cef92857f1654cebb660e0219238fc95\n"
    },
    {
      "commit": "6032c38fb3d23a4d38cbc6eb4e180d58d7ef5300",
      "tree": "b7f8343a6fc3767bd968b68ba8b6be74466d027a",
      "parents": [
        "0ba6644b3e52752168798658fc61e26ac9508ab2",
        "2d0b28bc0da1ade2de2b72093dbdb740028fce7c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 24 16:31:21 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 24 16:31:21 2018 +0000"
      },
      "message": "Merge \"Add getloadavg(3).\""
    },
    {
      "commit": "8daea556e97b1e3b1fd2cf5b213300148ad6dd1a",
      "tree": "bb225ce17779f3ee9ed89b8cb494675cbae650e1",
      "parents": [
        "7562f1ab87e4b51042d185345248f1a54885489a"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Oct 23 11:17:24 2018 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Oct 23 13:43:48 2018 -0700"
      },
      "message": "Comment the M_PURGE option.\n\nTest: Compiles.\nChange-Id: Ib9e6f9a3f4b57a930a1ec5c149d273663f97a443\n"
    },
    {
      "commit": "2d0b28bc0da1ade2de2b72093dbdb740028fce7c",
      "tree": "75a1b66144e65f7141e3cf9ddaaae0049b07ca11",
      "parents": [
        "7562f1ab87e4b51042d185345248f1a54885489a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 23 11:23:00 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 23 11:23:00 2018 -0700"
      },
      "message": "Add getloadavg(3).\n\nLets us build ninja with bionic.\n\nBug: N/A\nTest: ran tests\nChange-Id: I97eef1247d794b58a2b9aee4851551632e5a4e48\n"
    },
    {
      "commit": "7562f1ab87e4b51042d185345248f1a54885489a",
      "tree": "afe954f94bcad00b6733697e4ce4734a54d3eb05",
      "parents": [
        "d84f8b5eb24f0e55645fd6a35d39611d2ffa74ff",
        "ac578f2587a3bd91b6357fe6cfbef25a627eecde"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Oct 23 16:36:16 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 23 16:36:16 2018 +0000"
      },
      "message": "Merge \"malloc: add M_PURGE mallopt flag\""
    },
    {
      "commit": "aede30d316fae9399c52b26e70f7e71fdb965412",
      "tree": "04c581d4e7a48e9932bed134511c72ffb79063cd",
      "parents": [
        "a8a716e42a8e6b8f28abf2b2f8f93b1e8579423d"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Tue Oct 23 15:03:43 2018 +0800"
      },
      "committer": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Tue Oct 23 21:47:34 2018 +0800"
      },
      "message": "libc: Add default __STRING implementation\n\nThis commit defines a default `__STRING()` definition.  There should be\na default definition because the unit test cases of versioner will\ninclude `android/versioning.h` directly.  We cannot include\n`sys/cdefs.h` in `android/versioning.h` either because that will lead to\ncircular inclusion.\n\nBug: 113263746\nTest: ./bionic/tools/versioner/run_tests.py\nChange-Id: Ie99c0eef4414fd687347baf3a2d295468877464f\n"
    },
    {
      "commit": "d4e51a155a08d28c874d47e97ad53f222a64ba1c",
      "tree": "e643f524cf424605e46f72f7ddcfb46aaba1abbe",
      "parents": [
        "a8a716e42a8e6b8f28abf2b2f8f93b1e8579423d"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Thu Oct 11 23:50:24 2018 -0700"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Mon Oct 22 17:15:22 2018 -0700"
      },
      "message": "Change crtbrand for host bionic\n\nFixes a build error when PLATFORM_SDK_VERSION is not set.\n\nBug: 31559095\nTest: attempt to build host bionic\nChange-Id: I9cbdcea206ef1239c330a5adafbfa5cc797fef5e\n"
    },
    {
      "commit": "ac578f2587a3bd91b6357fe6cfbef25a627eecde",
      "tree": "f192df82f45783ee7d50f737ef6012fbdb4881e8",
      "parents": [
        "a8a716e42a8e6b8f28abf2b2f8f93b1e8579423d"
      ],
      "author": {
        "name": "Tim Murray",
        "email": "timmurray@google.com",
        "time": "Mon Oct 15 16:26:56 2018 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Oct 22 16:25:28 2018 -0700"
      },
      "message": "malloc: add M_PURGE mallopt flag\n\nAdd a new mallopt flag that purges any pending decaying pages.\n\nTest: boots and works\nbug 117795621\n\nChange-Id: Ib250ae2b705b6a368c1efb801d6a7be54e075acb\n(cherry pciekd from commit 5083e833a650ebe510ed52603ce5c8cd4374c48e)\n"
    },
    {
      "commit": "f7f71e3c7b70c0369cf04cedbd988f55f88918fb",
      "tree": "8872ac6e3608cd8d6feb74621a8c6ed3e8da0632",
      "parents": [
        "7ff7d03286dcf8abc6b4bd0455c428256493c96d"
      ],
      "author": {
        "name": "Florian Mayer",
        "email": "fmayer@google.com",
        "time": "Fri Aug 31 15:36:48 2018 -0700"
      },
      "committer": {
        "name": "Florian Mayer",
        "email": "fmayer@google.com",
        "time": "Thu Oct 18 21:38:06 2018 +0100"
      },
      "message": "Add RT signal to load heapprofd library.\n\nTests: Ran malloc_debug_unit_tests\nTests: Flashed to walleye, sent signal, observed\n  \"Unable to open shared library: heapprofd.so\".\n\nChange-Id: Ia8ce216837e29e3edbda8789ca28023d53fa1fda\n"
    },
    {
      "commit": "7ff7d03286dcf8abc6b4bd0455c428256493c96d",
      "tree": "54e9ee60ee1a9268eb490ae69eeb5c5467324556",
      "parents": [
        "89376008975d88e771c048db57ac749d9d4ace55",
        "ddf757e35eb36d684b16273f0ddfe2d387983e8e"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Oct 18 17:47:17 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 18 17:47:17 2018 +0000"
      },
      "message": "Merge \"Properly fail with ESRCH when pthread_killing an exited thread.\""
    },
    {
      "commit": "ddf757e35eb36d684b16273f0ddfe2d387983e8e",
      "tree": "411e728f73fa9e3b5c1fc8b065823d68cae94307",
      "parents": [
        "773c697f815d43182adf1eb430f4899255088d6b"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Oct 17 15:23:03 2018 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Oct 17 17:35:56 2018 -0700"
      },
      "message": "Properly fail with ESRCH when pthread_killing an exited thread.\n\nPreviously, we were callign tgkill(pid, 0, signal) instead, which would\nfail with EINVAL instead.\n\nTest: bionic-unit-tests\nChange-Id: I25b127dcf347e0223274502b0516a950b6c2093e\n"
    },
    {
      "commit": "eb6143037423a241ba8035304936149b300f7a5d",
      "tree": "add55935abdf6bc16c16c6edc111b376a3e3c933",
      "parents": [
        "ecf0c7515d4416ab4bf708b303ab7beab79a6f2b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 17 14:27:36 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 17 14:27:36 2018 -0700"
      },
      "message": "Don\u0027t #define __ANDROID_NDK__ for the platform build!\n\nCaused an ODR violation trying to build current ToT of toybox.\n\nBug: N/A\nTest: can successfully build code with `#ifdef __ANDROID_NDK__`\nChange-Id: Ia80b8889b267779ee01f6257744e1794db0ebc65\n"
    },
    {
      "commit": "ecf0c7515d4416ab4bf708b303ab7beab79a6f2b",
      "tree": "92b6dc61bdab2f239e88013207c63b15569ec29f",
      "parents": [
        "daf746b15507337bd451ccbbc092b56dc4780b72",
        "92a9116100f766f4df5c9e3efbb9ad2a402af06c"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Oct 15 23:56:22 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Oct 15 23:56:22 2018 +0000"
      },
      "message": "Merge \"strerror: add missing ERFKILL and EHWPOISON.\""
    },
    {
      "commit": "daf746b15507337bd451ccbbc092b56dc4780b72",
      "tree": "dd6a6fba46302af75b0fe54b117bdb7a51e353a0",
      "parents": [
        "3a47adadadb470e61ab3ce765b438a21998b212b",
        "cc953e08f4c48af050a92c4d9fb365ae81c5e59b"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Oct 15 21:05:44 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Oct 15 21:05:44 2018 +0000"
      },
      "message": "Merge \"fdsan: reset va_list between varargs traversals\""
    },
    {
      "commit": "92a9116100f766f4df5c9e3efbb9ad2a402af06c",
      "tree": "2684d5a475e4da56ebc63c726386f3e177adccb9",
      "parents": [
        "4e29cdec23762fd6e26b3ca4f87ce35213b0db1f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 15 13:12:19 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 15 13:12:19 2018 -0700"
      },
      "message": "strerror: add missing ERFKILL and EHWPOISON.\n\nThere\u0027s little value to having strings for these, but we may as well\nfor consistency. There\u0027s no ELASTERRNO constant we can use to check\nwhether we\u0027ve fallen behind again, but these were added in 2009 and\n2011 respectively, so we\u0027re not likely to have to deal with any more\nnew errno values any time soon...\n\nBug: http://b/117755069\nTest: ran tests\nChange-Id: I5b7155c22cad92c2fe03a0b4c7cae415c37fa186\n"
    },
    {
      "commit": "cc953e08f4c48af050a92c4d9fb365ae81c5e59b",
      "tree": "4e3629a5c9e3a4ffdb3fba3620f2deda2308dc2c",
      "parents": [
        "a2af8bea8c6c4b6ce6883bf92cbce922e0d9f458"
      ],
      "author": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Fri Oct 12 15:04:26 2018 -0700"
      },
      "committer": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Mon Oct 15 10:41:34 2018 -0700"
      },
      "message": "fdsan: reset va_list between varargs traversals\n\nWhen error_level !\u003d ANDROID_FDSAN_ERROR_LEVEL_FATAL, fdsan_error()\ntraverses the varargs twice.  Each traversal needs its own\nva_start()/va_end() pair.  Otherwise async_safe_format_buffer_va_list()\nwill start consuming arguments where async_safe_format_log_va_list()\nstopped, ironically causing the sanitizer runtime to perform bad memory\naccesses.\n\nTest: debuggerd_test32\nTest: debuggerd_test64\n\nChange-Id: Ic85ca94501e55e9a435410fab89edb273c381a5a\nSigned-off-by: Greg Hackmann \u003cghackmann@google.com\u003e\n"
    },
    {
      "commit": "bc4f411138105d28eee984df848b568e30402574",
      "tree": "9b8eaacad4c8af66f787f4bf71dc5f266bbfcba6",
      "parents": [
        "a2af8bea8c6c4b6ce6883bf92cbce922e0d9f458"
      ],
      "author": {
        "name": "Haibo Huang",
        "email": "hhb@google.com",
        "time": "Wed Oct 10 13:46:48 2018 -0700"
      },
      "committer": {
        "name": "Haibo Huang",
        "email": "hhb@google.com",
        "time": "Fri Oct 12 23:55:06 2018 +0000"
      },
      "message": "Add support for A76 in bionic\n\nA76 still uses A55 as little core. It should be ok to use the same\nsetting as A75 for now.\n\nBug: 117125298\nTest: run bionic tests\nChange-Id: Idfd15424c20ae60becb6539f6ae855f3e7c264cd\n"
    },
    {
      "commit": "391af2cefea88abe7eccff8edd0ae06c653bef5e",
      "tree": "c2c1e6d8f45fc5c7e67efda4c6e7d809c90b1902",
      "parents": [
        "069d5aef90e1a322fb9e9ff7e922f8505fe81c8c",
        "8f639a40966c630c64166d2657da3ee641303194"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Oct 11 01:04:57 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 11 01:04:57 2018 +0000"
      },
      "message": "Merge \"Allow invoking the linker on an executable.\""
    },
    {
      "commit": "8f639a40966c630c64166d2657da3ee641303194",
      "tree": "96e03d65a4efa6613941b748ed2c11b64a8dec1b",
      "parents": [
        "cb8ed207d2bb6113a80fc7f27cd0beb8897f5192"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Mon Oct 01 23:10:05 2018 -0700"
      },
      "committer": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Wed Oct 10 14:31:06 2018 -0700"
      },
      "message": "Allow invoking the linker on an executable.\n\nThe executable can be inside a zip file using the same syntax used for\nshared objects: path.zip!/libentry.so.\n\nThe linker currently requires an absolute path. This restriction could be\nloosened, but it didn\u0027t seem important? If it allowed non-absolute paths,\nwe\u0027d need to decide how to handle:\n - foo/bar      (relative to CWD?)\n - foo          (search PATH / LD_LIBRARY_PATH, or also relative to CWD?)\n - foo.zip!/bar (normalize_path() requires an absolute path)\n\nThe linker adjusts the argc/argv passed to main() and to constructor\nfunctions to hide the initial linker argument, but doesn\u0027t adjust the auxv\nvector or files like /proc/self/{exe,cmdline,auxv,stat}. Those files will\nreport that the kernel loaded the linker as an executable.\n\nI think the linker_logger.cpp change guarding against (g_argv \u003d\u003d NULL)\nisn\u0027t actually necessary, but it seemed like a good idea given that I\u0027m\ndelaying initialization of g_argv until after C++ constructors have run.\n\nBug: http://b/112050209\nTest: bionic unit tests\nChange-Id: I846faf98b16fd34218946f6167e8b451897debe5\n"
    },
    {
      "commit": "069d5aef90e1a322fb9e9ff7e922f8505fe81c8c",
      "tree": "e2173ce90d91808306d78cc20c178a9ce4191300",
      "parents": [
        "d3aa44f7e973374c5b0fdb83b5276da069289cae",
        "baf20fc9122740ff2baa34d28001e8bdfac9568c"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Oct 10 20:38:46 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 10 20:38:46 2018 +0000"
      },
      "message": "Merge \"Block TIMER_SIGNAL in sigprocmask(SIG_SETMASK, ...).\""
    },
    {
      "commit": "d3aa44f7e973374c5b0fdb83b5276da069289cae",
      "tree": "682f2f1f8653f6790efe0df63ea3eebd44d67894",
      "parents": [
        "cb8ed207d2bb6113a80fc7f27cd0beb8897f5192",
        "82ab481123c171d2029bb0a7767d649b576ee2f8"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 10 16:40:46 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 10 16:40:46 2018 +0000"
      },
      "message": "Merge \"Add _SC_UIO_MAXIOV as a synonym for _SC_IOV_MAX.\""
    },
    {
      "commit": "baf20fc9122740ff2baa34d28001e8bdfac9568c",
      "tree": "8e6f717de9cef90828010497ef80ab454c0eb4c6",
      "parents": [
        "773c697f815d43182adf1eb430f4899255088d6b"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Mon Oct 08 17:28:07 2018 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Tue Oct 09 16:27:22 2018 -0700"
      },
      "message": "Block TIMER_SIGNAL in sigprocmask(SIG_SETMASK, ...).\n\nPreviously, we were zeroing out the reserved signals, when we actually\nwanted to have TIMER_SIGNAL always be blocked, and the other signals\nalways be unblocked. This resulted in process termination when a\nSIGEV_THREAD timer callback calls sigprocmask(SIG_SETMASK, ...) with\nany signal mask value, and then subsequently fails to complete its\ncallback and reach the sigtimedwait in bionic before the next timer\niteration triggers.\n\nAdd a how argument to filter_reserved_signals to appropriately\nblock/unblock our reserved signals.\n\nBug: http://b/116783733\nTest: bionic-unit-tests32/64\nChange-Id: Ie5339682cdeb914711cd4089cd26ee395704d0df\n"
    },
    {
      "commit": "82ab481123c171d2029bb0a7767d649b576ee2f8",
      "tree": "3227b9e82293bb449edfb52e1c753a45e044a4fd",
      "parents": [
        "773c697f815d43182adf1eb430f4899255088d6b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 09 13:56:06 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 09 13:56:06 2018 -0700"
      },
      "message": "Add _SC_UIO_MAXIOV as a synonym for _SC_IOV_MAX.\n\nglibc and musl both have these as synonyms for one another, so we may\nas well do the same and get backwards compatibility on old OS releases.\n\nBug: N/A\nTest: ran tests\nChange-Id: I6bf38ea446560e1b11022ff539f07eb67c157049\n"
    },
    {
      "commit": "5de9a31c058dca200c8e11b17d7a78ee0b27699b",
      "tree": "00018fd10f34bd8ad4ba7d9f3e4ace9c48b218bb",
      "parents": [
        "269bb496c56dcf268831e02df035040162f30590"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Tue Oct 02 18:13:28 2018 -0700"
      },
      "committer": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Mon Oct 08 13:27:16 2018 -0700"
      },
      "message": "Add async_safe_format_fd_va_list\n\nBug: none\nTest: bionic unit tests\nChange-Id: I8c6b2d1d118f4182dd7bf1cbfba78f20b3cefc79\n"
    },
    {
      "commit": "00dda09c08a525db748348ff55e0ad1854605da8",
      "tree": "dd1a33e69ab50ac3a928d57092541ee8ee908dcf",
      "parents": [
        "9ebcb013b192a9f882a2c06f83b39c682be74a64"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Oct 05 14:54:48 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Oct 05 14:54:48 2018 -0700"
      },
      "message": "\u003csys/param.h\u003e: pollute the namespace with \u003cendian.h\u003e.\n\nglibc does, and autoconf relies on that for its AC_C_BIGENDIAN test.\n\nBug: N/A\nTest: N/A\nChange-Id: I3acaaf0d7a69e8ed4e64239e4fe7f21c7001e717\n"
    },
    {
      "commit": "9ebcb013b192a9f882a2c06f83b39c682be74a64",
      "tree": "0a8443abe77338077b1ad2774f1f2c5e55ceceaf",
      "parents": [
        "4b7c5cca7fbd0330cdfef41c97f1401824e78fba",
        "dd6763a6c677687ad06727af037ed9a7b018c773"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Oct 05 21:04:15 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 05 21:04:15 2018 +0000"
      },
      "message": "Merge \"Another round of documentation.\""
    },
    {
      "commit": "dd6763a6c677687ad06727af037ed9a7b018c773",
      "tree": "51170c743639731a7e5a1a7540eb3f68870cb893",
      "parents": [
        "9df26193c8adc43a7ac1ba807e70d0b0772712c0"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 04 16:35:13 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 04 16:35:13 2018 -0700"
      },
      "message": "Another round of documentation.\n\nBug: N/A\nTest: N/A\nChange-Id: I1b818fbb36ddd6d084dee56828290c2717a0c9b0\n"
    },
    {
      "commit": "6774cc5b9901097fcf9311e6cd91d0465919b77f",
      "tree": "78d4b889ec421cf2282d2441e6378ce9b670cb11",
      "parents": [
        "9df26193c8adc43a7ac1ba807e70d0b0772712c0"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Oct 04 08:41:10 2018 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Oct 04 08:41:10 2018 -0700"
      },
      "message": "Add new parameter for creation of MapInfo object.\n\nBug: 109657296\n\nTest: Unit tests pass.\nChange-Id: Ie33b50234fa9ba2c5107c3eb0da36a466bba1589\n"
    },
    {
      "commit": "8d63ae128fd3e28cabc32528b92666e2c0b73e32",
      "tree": "eaff6ffe9847c60da40aa910c607824c017efb45",
      "parents": [
        "928ce8eb645977d2fd3478e1e00789eaabb76d0a",
        "22917f63ee9ff25f629167b4a54f7d8be37da505"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 02 16:57:11 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 02 16:57:11 2018 +0000"
      },
      "message": "Merge \"Make fclose/pclose distinct.\""
    },
    {
      "commit": "22917f63ee9ff25f629167b4a54f7d8be37da505",
      "tree": "a44ac1fae0dc4cc1f405096ef6cfd6e981afd5db",
      "parents": [
        "7208139406adbd40782ccd7554e1a21458da2b37"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 01 14:21:07 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 01 16:17:37 2018 -0700"
      },
      "message": "Make fclose/pclose distinct.\n\nI failed to convince the compiler/linker to just refrain (via factoring out,\nattribute `noinline`, or meddling with `--icf\u003dnone`), but luckily I noticed\nthat we should have CHECK_FP in each function for a better error message,\nand the distinct error messages keep the two functions apart.\n\n(Also add a missing CHECK_FP to `clearerr_unlocked`.)\n\nBug: http://b/116969207\nTest: manual with a modified `crasher`\nChange-Id: Ic122e90e94f7e22f486be57d3dac7137a225d682\n"
    },
    {
      "commit": "ddf92a1ba505a8bc01228438a200cf6a9994836e",
      "tree": "f7d797c69b46a4bceb57c61dd4a47cfbe38207ad",
      "parents": [
        "6b755755bc627311b351c6480a4cd9354e84c01b",
        "fa5f61c8d9a8f80734d4ffc0f9d8ec4ac3a062b9"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Sep 27 23:23:34 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 27 23:23:34 2018 +0000"
      },
      "message": "Merge \"Always return /vendor/bin/sh as shell for OEM ids in getpwnam() etc.\""
    },
    {
      "commit": "6b755755bc627311b351c6480a4cd9354e84c01b",
      "tree": "efd8675c0ee4be6e1bc4e231adc6f463712ce8bf",
      "parents": [
        "7208139406adbd40782ccd7554e1a21458da2b37",
        "ab17944178d8ac26114009746cc64b11ff6f4d81"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Sep 27 23:23:19 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 27 23:23:19 2018 +0000"
      },
      "message": "Merge \"Disable STL for crt objects\""
    },
    {
      "commit": "fa5f61c8d9a8f80734d4ffc0f9d8ec4ac3a062b9",
      "tree": "7727156aee5b2784c3699386edde5483213c90d5",
      "parents": [
        "8d11bea6c57cf62171f4157e0f2061ada4c19b10"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Thu Sep 27 13:19:02 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 27 20:29:49 2018 +0000"
      },
      "message": "Always return /vendor/bin/sh as shell for OEM ids in getpwnam() etc.\n\nDuring the review of the script that generates /vendor/etc/passwd, it\nwas suggested that the shell be /vendor/bin/sh instead of the typical\n/system/bin/sh.  This has subsequently caused bionic unit tests to\nfail, since they always check that the shell is set to /system/bin/sh.\n\nIn the spirit of that review, libc is modified to return\n/vendor/bin/sh for the OEM AID ranges and the test is updated to\nexpect this.\n\nTest: bionic unit tests\nChange-Id: Ie7c1c48fde8a71b3df1aa0ef112d42ab7bd3baec\n"
    },
    {
      "commit": "ab17944178d8ac26114009746cc64b11ff6f4d81",
      "tree": "532b2c04cb81221caca30a29f93307a76f6c5e0e",
      "parents": [
        "e4e3de819d05481422f8bb9925486118924bf4a1"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Sep 27 11:03:22 2018 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Sep 27 11:03:22 2018 -0700"
      },
      "message": "Disable STL for crt objects\n\ncc_objects are getting support for STL headers, disable them for\ncrt objects to avoid a circular dependency through libc++.\n\nTest: m checkbuild\nChange-Id: I4e0f4a2193ce98ec4b8802492add9014ec0dba98\n"
    },
    {
      "commit": "b177085ce7219562eecf77f2e8de49f8f2605005",
      "tree": "573947a27714273f7d78e9c6f85c9fd30e63dba9",
      "parents": [
        "e4e3de819d05481422f8bb9925486118924bf4a1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Sep 18 12:52:42 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Sep 26 14:24:18 2018 -0700"
      },
      "message": "Add reallocarray(3).\n\nOriginally a BSD extension, now in glibc too. We\u0027ve used it internally\nfor a while.\n\n(cherry-pick of e4b13f7e3ca68edfcc5faedc5e7d4e13c4e8edb9.)\n\nBug: http://b/112163459\nTest: ran tests\nChange-Id: I813c3a62b13ddb91ba41e32a5a853d09207ea6bc\nMerged-In: I813c3a62b13ddb91ba41e32a5a853d09207ea6bc\n"
    },
    {
      "commit": "8f5589faf2c7247ddd442325b189a85f5cdb06b3",
      "tree": "51423b044473d8f4df6742efe3e2aca7a850c7f0",
      "parents": [
        "8d11bea6c57cf62171f4157e0f2061ada4c19b10",
        "64f8e7b1cce912b3fb3cdf790e24709d0c5d3dcf"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Sep 21 01:06:32 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 21 01:06:32 2018 +0000"
      },
      "message": "Merge \"Remove unused NetBSD compatibility cruft.\""
    },
    {
      "commit": "8d11bea6c57cf62171f4157e0f2061ada4c19b10",
      "tree": "c1fe1c9403ae608daa5b855e2931f3f84cd14148",
      "parents": [
        "ce9d653b38868a73260d141acbf3ddd8c5d8e178",
        "13e8dcbdc9f0b3d95cac1a234730061c9b1ae6f4"
      ],
      "author": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Thu Sep 20 21:39:55 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 20 21:39:55 2018 +0000"
      },
      "message": "Merge \"[hwasan] Tweak process and thread initialization.\""
    },
    {
      "commit": "64f8e7b1cce912b3fb3cdf790e24709d0c5d3dcf",
      "tree": "1bd69cfaade6a25030e28adc052cfef49ddf543f",
      "parents": [
        "ce9d653b38868a73260d141acbf3ddd8c5d8e178"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 20 13:27:41 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 20 13:27:41 2018 -0700"
      },
      "message": "Remove unused NetBSD compatibility cruft.\n\nBug: N/A\nTest: builds\nChange-Id: I5c472c7b5c570c739363b4a454251ebf0324d43c\n"
    },
    {
      "commit": "ce9d653b38868a73260d141acbf3ddd8c5d8e178",
      "tree": "1f1367d6c59031427eb9b7911439f1f1d7ea722b",
      "parents": [
        "a02d631163860c795cac7a0428ad8abb9ed3b747",
        "d747bb8f3f7061786db9ed77430a572361f263af"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Sep 20 19:22:03 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 20 19:22:03 2018 +0000"
      },
      "message": "Merge changes from topics \"fdsan_ziparchive_type\", \"fdsan_java_socket\"\n\n* changes:\n  fdsan: improve documentation.\n  fdsan: add type for libziparchive\u0027s ZipArchive.\n  fdsan: add types for Java sockets.\n"
    },
    {
      "commit": "13e8dcbdc9f0b3d95cac1a234730061c9b1ae6f4",
      "tree": "0c17f125a779e03f9911ce092e16b0ada1aa2920",
      "parents": [
        "a02d631163860c795cac7a0428ad8abb9ed3b747"
      ],
      "author": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Wed Sep 19 16:29:12 2018 -0700"
      },
      "committer": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Thu Sep 20 12:20:12 2018 -0700"
      },
      "message": "[hwasan] Tweak process and thread initialization.\n\nMake sure that TLS_SLOT_TSAN is always available and correctly set up in\nHWASan-instrumented functions by setting up the tls register and running hwasan\ninitialization (__hwasan_init in the main thread and __hwasan_thread_enter in\nsecondary) early enough.\n\nThis is needed to accomodate a change in HWASan: https://reviews.llvm.org/D52249\n\nBug: 112438058\nTest: boot with SANITIZE_TARGET\u003dhwaddress, run bionic-tests\nChange-Id: Icd909a4ea0da6c6c1095522bcc28debef5f2c63d\n"
    },
    {
      "commit": "15711c1dd097badf5aaaf07b46137c0191015857",
      "tree": "264ff4e1183c407b0414c7d2348ebf7c8b44ffc8",
      "parents": [
        "655f80e37fb808175e4e4b8cebd9cb7b952cd76e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Sep 18 14:28:48 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Sep 18 14:28:48 2018 -0700"
      },
      "message": "Remove dead code.\n\nI stumbled across this because I was looking at the various locks in libc.\n\nBug: N/A\nTest: ran tests\nChange-Id: I77c9954f49aaae7519ea7f4917bbe6f138b841ad\n"
    },
    {
      "commit": "5fa9df8efc96667564cc5289b176592bd7882953",
      "tree": "8ab3d295b163dfc47d4214c059c7e40596a6ea1c",
      "parents": [
        "d527cf1f993f43d23c0cc171d46849c6e427c493"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Sep 07 12:47:00 2018 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Tue Sep 18 13:23:31 2018 -0700"
      },
      "message": "fdsan: add type for libziparchive\u0027s ZipArchive.\n\nTest: debuggerd `pidof system_server` | grep \" fd \"\nChange-Id: I6a9a4306ecffe3899e4cc7285a0eb33efaa62616\n"
    },
    {
      "commit": "d527cf1f993f43d23c0cc171d46849c6e427c493",
      "tree": "f15e7e05ac4716845f56849b9ec4923421699f9e",
      "parents": [
        "431d2ff1418cf94c36437f35b1f55b81e2e1d976"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Sep 07 12:46:02 2018 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Mon Sep 17 17:31:58 2018 -0700"
      },
      "message": "fdsan: add types for Java sockets.\n\nTest: art/tools/run-libcore-tests.sh\nChange-Id: If61211bc4ae225c3f89db989a167f9dc4fce375a\n"
    },
    {
      "commit": "74cdb253bae513197c5f96545b3c87cd3920e841",
      "tree": "3773374247e7963341ac8a3e107ddf0403b0c886",
      "parents": [
        "56deeb7336e91ef717e5b1c5d5ef2ed0f4ed8b5b"
      ],
      "author": {
        "name": "Robert Sesek",
        "email": "rsesek@google.com",
        "time": "Tue Sep 11 19:20:34 2018 -0400"
      },
      "committer": {
        "name": "Robert Sesek",
        "email": "rsesek@google.com",
        "time": "Tue Sep 11 19:20:34 2018 -0400"
      },
      "message": "Move pipe, open, and getdents from the APP to COMMON seccomp whitelist.\n\nThese system calls are required by Breakpad for crash reporting.\nWebViews are spawned from the webview_zygote, which itself is spawned\nfrom the app_process zygote. The webview_zygote gets the SYSTEM seccomp\npolicy applied because it is not an app, and so the WebView sandboxed\nprocesses inherit that policy.\n\nIn Ifd8a85b0de2eb6f2a76a6458570fc03b020a90ab, these system calls were\nmoved from COMMON to APP, which breaks Breakpad/crash reporting for\nWebView sandboxed processes.\n\nBug: 112572914\nTest: `am start com.android.settings/.SettingsLicenseActivity`\nTest: Get the pid of the sandboxed_process0 for the license viewer.\nTest: Send the process SIGABRT and check logcat for \"google-breakpad\"\n      error messages.\n\nChange-Id: I1cf56ae85b1a67ec91e979bc7e0f941726a9cc0e\n"
    },
    {
      "commit": "fb4eaa019e9a6eeb576f63cb2eeffe14fb8749ea",
      "tree": "95b80beb47b8b4c11bd4b7556aa4725e1bc83456",
      "parents": [
        "431d2ff1418cf94c36437f35b1f55b81e2e1d976"
      ],
      "author": {
        "name": "Bernie Innocenti",
        "email": "codewiz@google.com",
        "time": "Fri Sep 07 21:26:58 2018 +0900"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 07 10:29:18 2018 -0700"
      },
      "message": "Improve netd detection\n\nThe alleged improvement consists in making the detection actually work\nwhen netd is spawned by init, which of course uses the full path.\nI had tested the previous logic by running netd from the shell, which\nworked because argv[0] was just set to \"netd\". My bad -_-\n\nTest: flash, boot and grep logcat for \"Skipping libnetd_client init\"\nChange-Id: Ie5f11436dfa2a9347721147dc2b980144452404a\n"
    },
    {
      "commit": "431d2ff1418cf94c36437f35b1f55b81e2e1d976",
      "tree": "5bf4a6b36eb2642960c9ac8cb57dc8e9937346d5",
      "parents": [
        "dca7d3fae5ce4cd9d989990a67efc8e755ac26d9",
        "ce934e3d9be9700946ba51a39ba966faf3867a93"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 07 15:40:45 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 07 15:40:45 2018 +0000"
      },
      "message": "Merge \"Add android_get_device_api_level.\""
    },
    {
      "commit": "dca7d3fae5ce4cd9d989990a67efc8e755ac26d9",
      "tree": "b33f282a3ea237f280967c90dac3dfbc4fb81a29",
      "parents": [
        "8a8bf193b007907beb83e0ec4e6af534267d852d",
        "6ba6694ec24052de9fdfa8a51c148aebe68a9fd0"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Fri Sep 07 09:46:08 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 07 09:46:08 2018 +0000"
      },
      "message": "Merge \"libc: Add membarrier to common seccomp allowed list\""
    },
    {
      "commit": "dc91d900ae83e95a1531e57c72841f037ce6f063",
      "tree": "17676ea62e4fdae738f63ba5f53c3b60226ef4e3",
      "parents": [
        "e15e93a247ce566b6ca3d6c65583676255fb0f8a",
        "6d93c6077893c44a7d958b154a3b6bcc75fd04d6"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Sep 07 01:32:14 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 07 01:32:14 2018 +0000"
      },
      "message": "Merge \"bionic: Add magic to abort message\""
    },
    {
      "commit": "e15e93a247ce566b6ca3d6c65583676255fb0f8a",
      "tree": "4997ecd5c4bf13713d1efd8ee5739313505504e5",
      "parents": [
        "0326f063b5b275bf0721b942b06a04b7ec719e16",
        "f340a56d1c7aa469ccb4150521aba19f5c73dcf0"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 06 23:45:18 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 06 23:45:18 2018 +0000"
      },
      "message": "Merge \"Use strerror_r(3) for the printf family %m.\""
    },
    {
      "commit": "6d93c6077893c44a7d958b154a3b6bcc75fd04d6",
      "tree": "416e05480e036ab80851775ce0e1713f027dfd4c",
      "parents": [
        "8f2298e73f4d930b58a8466fd7264e9a88c96d99"
      ],
      "author": {
        "name": "Luis Hector Chavez",
        "email": "lhchavez@google.com",
        "time": "Wed Aug 22 07:39:26 2018 -0700"
      },
      "committer": {
        "name": "Luis Hector Chavez",
        "email": "lhchavez@google.com",
        "time": "Thu Sep 06 15:18:21 2018 -0700"
      },
      "message": "bionic: Add magic to abort message\n\nThis change adds a 128-bit magic value just before the abort message\n(and its length). This allows Chrome OS crash collector (which cannot\nreliably correlate a crash with its corresponding tombstone) to extract\nthe abort message from the core dump.\n\nBug: 62387553\nTest: /data/nativetest{,64}/debuggerd_test/*\nTest: /data/nativetest{,64}/bionic-unit-tests{,-static}/*\n\nChange-Id: I69ff021d773b3a10081ab16ddf6f23233320fb02\n"
    },
    {
      "commit": "a2a114ba262cc8a34e6de757b034cf157fda9704",
      "tree": "2afd4a28ae3841f7a74c5c34b6fc79e55b43eb6a",
      "parents": [
        "1e4a4134fb9e0e03a8b76391261d5620a2f23eec",
        "b16e9ce7b8a604110768b783d6ffa70aaa921d71"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Sep 06 21:35:09 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 06 21:35:09 2018 +0000"
      },
      "message": "Merge \"Annotate siglongjmp for HWASan.\""
    },
    {
      "commit": "ce934e3d9be9700946ba51a39ba966faf3867a93",
      "tree": "0db870d9253699cf6084818dabbe8f0a46bec6fc",
      "parents": [
        "74934aaf10d629de477095f0b92c467849f89638"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 06 13:26:08 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 06 14:19:46 2018 -0700"
      },
      "message": "Add android_get_device_api_level.\n\nBug: http://b/113615412\nTest: ran tests\nChange-Id: I0a7ae336c96c9ed6543b6935cbc242d14d4a4a67\n"
    },
    {
      "commit": "f340a56d1c7aa469ccb4150521aba19f5c73dcf0",
      "tree": "cc41e09773b753e85fb7a503cd257cf808fea7c0",
      "parents": [
        "74934aaf10d629de477095f0b92c467849f89638"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 06 10:42:40 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 06 10:42:40 2018 -0700"
      },
      "message": "Use strerror_r(3) for the printf family %m.\n\nThere\u0027s TLS space used for unknown errno values, and a call to printf\nshouldn\u0027t clobber that. No-one will ever hit this in real life, but\nsince it\u0027s easily fixed...\n\nBug: http://b/112776560\nTest: ran tests\nChange-Id: I8c2437f2e5214e652119791d4e162a197b049d5b\n"
    },
    {
      "commit": "6ba6694ec24052de9fdfa8a51c148aebe68a9fd0",
      "tree": "4bd9d36b53e1000f99501edf68c372f4b7e219d9",
      "parents": [
        "1e4a4134fb9e0e03a8b76391261d5620a2f23eec"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Thu Aug 30 11:10:23 2018 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Thu Sep 06 16:36:09 2018 +0100"
      },
      "message": "libc: Add membarrier to common seccomp allowed list\n\nAllows ART JIT use membarrier to invalidate instruction\npipelines.\n\nBug: 66095511\nTest: bionic-unit-tests\nChange-Id: I8cf83929f00baf5a3c440a899d2667a992bda8e2\n"
    },
    {
      "commit": "b16e9ce7b8a604110768b783d6ffa70aaa921d71",
      "tree": "25cda93ac5b39b6ec889f811e9b0deba894aae93",
      "parents": [
        "23cfc34790f171bc05f149fc5f7bde3102f169af"
      ],
      "author": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Fri Aug 31 13:02:06 2018 -0700"
      },
      "committer": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Wed Sep 05 13:37:14 2018 -0700"
      },
      "message": "Annotate siglongjmp for HWASan.\n\nHWASan needs to re-tag the newly unallocated stack space to match SP.\n\nBug: 112438058\nTest: SANITIZE_TARGET\u003dhwaddress\n\nChange-Id: I4dddef542d802d63bdea59e32a03425a2c4f870b\n"
    },
    {
      "commit": "74934aaf10d629de477095f0b92c467849f89638",
      "tree": "d1256648a11d0e70828cc6dad6654160bf593557",
      "parents": [
        "6c7c06712e453d617336972a2e2919e9ef001dc8",
        "654cd8331b3dafb2027a3062104c6e9934af1935"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Sep 05 18:47:44 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 05 18:47:44 2018 +0000"
      },
      "message": "Merge \"Add the %m GNU extension to printf/wprintf.\""
    },
    {
      "commit": "198fb7b6dff1c0ee381f00ba7f125c4d3eba4127",
      "tree": "9663f508ff896ca0051b3af9a2ac96f04152d18f",
      "parents": [
        "04432c328f1f146efcdc7ab99571c2468400b21e",
        "1b2ecee5da5241832c0b6a053a5ef658e9c76f5c"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Sep 05 15:22:59 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 05 15:22:59 2018 +0000"
      },
      "message": "Merge \"Prevent netd from using the libnetd_client wrappers\""
    },
    {
      "commit": "1b2ecee5da5241832c0b6a053a5ef658e9c76f5c",
      "tree": "0701e68804f8038f7dc5a7c9da40e3e919a4bc9c",
      "parents": [
        "3e5a32ce2c24969932634d84e2755755094fa582"
      ],
      "author": {
        "name": "Bernie Innocenti",
        "email": "codewiz@google.com",
        "time": "Wed Sep 05 10:53:17 2018 +0900"
      },
      "committer": {
        "name": "Bernie Innocenti",
        "email": "codewiz@google.com",
        "time": "Wed Sep 05 17:43:42 2018 +0900"
      },
      "message": "Prevent netd from using the libnetd_client wrappers\n\nNetd looping connections to itself via the libnetd_client connect()\nwrapper has always unintended, although it worked until now. Once we\nmove the resolver into netd, the frequency of connect() calls will\nincrease, which makes it less acceptable.\n\nThere are several ways to detect if the calling process is netd.\nChecking both uid \u003d\u003d 0 and the argv[0] \u003d\u003d netd makes it hard for\nnon-system components to spoof as netd.\n\nTest: flash a device and check that netd logs the \"Skipping...\" message\nTest: atest netd_integration_test\nChange-Id: I9506facb4aa3094b16a98a913a1e2394056ce91a\n"
    },
    {
      "commit": "c69757a2d57ff3662f101584cfa4c29b3d75a893",
      "tree": "b4700a1364822dcdfd9579a7079f979a47c31351",
      "parents": [
        "0425a2db079b296329c9f925108a781e43226868",
        "f5693c688da161b147de961bc6db0ccc574b8666"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Sep 04 21:59:54 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 04 21:59:54 2018 +0000"
      },
      "message": "Merge \"Generalize abort\u0027s inline_tgkill, use it in fdsan.\""
    },
    {
      "commit": "0425a2db079b296329c9f925108a781e43226868",
      "tree": "4f9610ce19c219939802ae9965c37f746908b47c",
      "parents": [
        "fc85c3c8476fe2490b027840994db4ff009631e0",
        "00d087c629185f8237488aaa992ebbf491841a68"
      ],
      "author": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Tue Sep 04 20:28:44 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 04 20:28:44 2018 +0000"
      },
      "message": "Merge \"(arm64) Extend branch range in __memcpy_chk.\""
    },
    {
      "commit": "f5693c688da161b147de961bc6db0ccc574b8666",
      "tree": "a186766ee17cb35fba1156e8c0710c26a66c5827",
      "parents": [
        "fc85c3c8476fe2490b027840994db4ff009631e0"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Aug 31 14:07:40 2018 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Aug 31 16:39:23 2018 -0700"
      },
      "message": "Generalize abort\u0027s inline_tgkill, use it in fdsan.\n\nConvert abort\u0027s inline_tgkill to do the equivalent of\npthread_sigqueue(pthread_self(), ...), so that we can use it in fdsan\nas well.\n\nTest: bionic-unit-tests\nTest: debuggerd_test32\nTest: debuggerd_test64\nChange-Id: I92a7b84e2f00ce021b4043ed8a3bd8683d77fe9c\n"
    },
    {
      "commit": "00d087c629185f8237488aaa992ebbf491841a68",
      "tree": "158a86c72599fbf10d1400053583249844d415d6",
      "parents": [
        "23cfc34790f171bc05f149fc5f7bde3102f169af"
      ],
      "author": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Fri Aug 31 14:27:32 2018 -0700"
      },
      "committer": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Fri Aug 31 15:02:12 2018 -0700"
      },
      "message": "(arm64) Extend branch range in __memcpy_chk.\n\nConditional branch has limited range (1MB) and can not be extended by\nthe linker. The current distance (in walleye build) is 500KB, about\nhalf of the maximum. HWASan pushes it over the limit.\n\nReplace conditional branch with regular branch, which has longer\nrange (26 vs 19 bits offset) and can be extended in the linker if\nneeded.\n\nBug: 112437884\nBug: 12231437\nTest: SANITIZE_TARGET\u003dhwaddress\n\nChange-Id: Idc083fb557ab3a859541beb009809992406a6703\n"
    },
    {
      "commit": "ab6a0802affb5c8050516c8dafc120906eca7e64",
      "tree": "8ef9fe80562b1b9f645f56419f92afdcac8dacd7",
      "parents": [
        "98b933a4b653f07d1e1f68d4f49aa98e6c60bb19"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Aug 30 17:37:52 2018 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Aug 30 17:37:52 2018 -0700"
      },
      "message": "fdsan: add type for ART\u0027s FdFile.\n\nBug: http://b/113558485\nTest: none\nChange-Id: I9bc874d8689cc54563f2a5878d324b27ad85060e\n"
    },
    {
      "commit": "654cd8331b3dafb2027a3062104c6e9934af1935",
      "tree": "82562a68054fbcbe65259cd594290278ca94f8fc",
      "parents": [
        "003521af4760215c9c3b8ba80c88dd3b3c87ab67"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 30 16:00:42 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 30 16:00:42 2018 -0700"
      },
      "message": "Add the %m GNU extension to printf/wprintf.\n\nAnd remove the local hack from syslog(3).\n\nBug: http://b/112776560\nTest: ran tests\nChange-Id: I5807e729a978df26187ea0ee255bba4ca74220c8\n"
    },
    {
      "commit": "222ce95c8ab6bb01ced9652c904536adf72d9dc4",
      "tree": "a1b07a272b4d3604abe87cc5ee8ee930cd41af8c",
      "parents": [
        "003521af4760215c9c3b8ba80c88dd3b3c87ab67"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 30 09:26:43 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 30 09:26:43 2018 -0700"
      },
      "message": "Remove ARM/MIPS fenv duplication.\n\nBug: http://b/32709207\nTest: ran tests\nChange-Id: I58d354e9f8b1e6023427ba271bf39e4e24b7f8ab\n"
    }
  ],
  "next": "003521af4760215c9c3b8ba80c88dd3b3c87ab67"
}
