)]}'
{
  "log": [
    {
      "commit": "1de6d0bb8a003f8d3b30948029a264a28d59fe9d",
      "tree": "99bd6618c8cc9655b19a8aae88bba64c28516a18",
      "parents": [
        "0ff813fb484662feed81d17c2baa21e08f003f31",
        "02fdd0570e6246381adc2d8ff9c9a990f5b79506"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jul 06 22:20:34 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 06 22:20:34 2017 +0000"
      },
      "message": "Merge \"Make \u003csys/ttydefaults.h\u003e more usable.\""
    },
    {
      "commit": "02fdd0570e6246381adc2d8ff9c9a990f5b79506",
      "tree": "6e3ec64e7a3b24062f097f7d9e456e2f070de2a8",
      "parents": [
        "f45bc14d5497c30bd43e22d025e3b88812b2baa4"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jul 06 10:33:15 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jul 06 10:33:15 2017 -0700"
      },
      "message": "Make \u003csys/ttydefaults.h\u003e more usable.\n\n* TTYDEF_OFLAG referred to the BSD OXTABS constant instead of the Linux XTABS,\n  so references to it wouldn\u0027t compile.\n\n* CEOL was incorrect (compared to `stty -a`).\n\n* ttydefchars wouldn\u0027t compile (removed rather than attempt to fix something\n  of unclear utility).\n\nBug: http://b/63145226\nTest: new test\nChange-Id: I823e5eaab789cafd2eeea03f77ea553346822f74\n"
    },
    {
      "commit": "b9797fe91c77d149e82f13734b6b15d386daa610",
      "tree": "e34e30f17b3bede84c1ca5120ac26d91a1c8058d",
      "parents": [
        "f45bc14d5497c30bd43e22d025e3b88812b2baa4"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jul 05 22:36:20 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jul 05 22:36:20 2017 -0700"
      },
      "message": "Bionic: Add ziparchive test dependency\n\nAdd missing dependency.\n\nBug: 37342627\nTest: m\ntest: mmma bionic\nChange-Id: I43ae69a007f0e8745db5721296f457b3e58206dd\n"
    },
    {
      "commit": "7f6bcc478083e25627838cb5de7e8efbc9468a55",
      "tree": "cc4895cd8c88e88c8c938f6a8ac7b76480706932",
      "parents": [
        "87d1df9f70016725ce100860fdc847a76322636d",
        "e452cb1ff30b3539dc66a18e9b59fe5e8d337ecc"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jun 14 00:44:31 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jun 14 00:44:33 2017 +0000"
      },
      "message": "Merge \"Remove `volatile` from the `__errno` declaration.\""
    },
    {
      "commit": "e452cb1ff30b3539dc66a18e9b59fe5e8d337ecc",
      "tree": "60593768f5b380f5a3a45caa026ea9cb208876c0",
      "parents": [
        "15eaaddef9fffda1209e9cc576b47b0f6e0cb379"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jun 13 14:43:53 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jun 13 16:02:07 2017 -0700"
      },
      "message": "Remove `volatile` from the `__errno` declaration.\n\nThis breaks code that declares `errno` itself for whatever crazy reason:\n\n  b.c:22:12: error: conflicting types for \u0027__errno\u0027\n  extern int errno;\n             ^\n  /usr/local/google/ndkports/toolchain/bin/../sysroot/usr/include/errno.h:47:20: note: expanded from macro \u0027errno\u0027\n  #define  errno   (*__errno())\n                     ^\n  /usr/local/google/ndkports/toolchain/bin/../sysroot/usr/include/errno.h:44:15: note: previous declaration is here\n  volatile int* __errno(void) __attribute_const__;\n                ^\n\nBug: N/A\nTest: built various bits of GNU source\nChange-Id: I27c03bf3bde419a001f98f1ea6c267c847f31271\n"
    },
    {
      "commit": "4b1a3992de7803d4c082867ea1168efeaa85cc5d",
      "tree": "1b6754e8b4fb5da7adb2e5ec33df1844984a3d6f",
      "parents": [
        "2d36be5912f04c29d0cad15bd37849a10a93e74d"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Fri May 19 10:13:08 2017 -0700"
      },
      "committer": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Tue Jun 13 18:49:54 2017 +0000"
      },
      "message": "libc: Sync qsort(3) with FreeBSD revision r318515.\n\nr279663: enhance to handle 32-bit aligned data on 64-bit systems\n\nr279666: qsort(3): small style(9) cleanups.\n\nr288030: Use ANSI C prototypes.  Eliminates -Wold-style-definition\nwarnings.\n\nr318514: Use size_t.\n\nr318515: Reduce the possible recursion level to log2(N) by always\nrecursing on the smaller partition instead.\n\nBug: 38450217\nTest: builds, ./tests/run-on-host.sh 64\nChange-Id: Ieb622e6f54f8f6d6f62e1bdb491d3b5c8e2f9965\n"
    },
    {
      "commit": "5059939c87f4806a8c9f67cfbd1a4f9fe2d4e59c",
      "tree": "982bc3947088a422d6e51f05ee15afff6fb7e5cf",
      "parents": [
        "025fb33c9dbae35ce343d3f15cbf642518f82893"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 25 17:13:32 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 25 19:17:55 2017 -0700"
      },
      "message": "Enable exporting the non-uapi scsi headers.\n\nCallers are supposed to #include \u003cscsi/sg.h\u003e but if we tell soong to add\nbionic/libc/kernel/android/ to the include path, the uapi headers in there\nwould be (unintentionally) accessible as either \u003clinux/name.h\u003e or\n\u003cuapi/linux/name.h\u003e.\n\nBug: N/A (hit while upgrading strace to 4.17)\nTest: builds\nChange-Id: I8d47dd51da688c38f747a255d401dfb2c209c805\n"
    },
    {
      "commit": "7a3681e5b6c39bc2b3b62031ca5941dbf7bc4e63",
      "tree": "78c25e2a38b7efed8db770a623a5cbfb7eaab11d",
      "parents": [
        "ca5e0f49ca5df873a20c996755175b5c9c1e2ed9"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Apr 24 17:48:32 2017 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed May 03 08:50:43 2017 -0700"
      },
      "message": "Move libc_log code into libasync_safe.\n\nThis library is used by a number of different libraries in the system.\nMake it easy for platform libraries to use this library and create\nan actual exported include file.\n\nChange the names of the functions to reflect the new name of the library.\n\nRun clang_format on the async_safe_log.cpp file since the formatting is\nall over the place.\n\nBug: 31919199\n\nTest: Compiled for angler/bullhead, and booted.\nTest: Ran bionic unit tests.\nTest: Ran the malloc debug tests.\nChange-Id: I8071bf690c17b0ea3bc8dc5749cdd5b6ad58478a\n"
    },
    {
      "commit": "d390df1dbc038843889946555c3ea53548dcab5d",
      "tree": "36b185eec9718f38fc9cba087bce96498fd51f43",
      "parents": [
        "dfe0fa4151eeae806e9eb52c337c449cd028c160"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Apr 30 22:56:10 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Apr 30 22:56:10 2017 -0700"
      },
      "message": "Restore ELF32_ST_INFO/ELF64_ST_INFO.\n\nMistakenly removed years ago, along with its genuinely duplicated companions.\nThis patch also redefines one of those rather than use the Linux uapi header\ndefinition, which leads to signed/unsigned warnings in calling code.\n\nBug: https://github.com/android-ndk/ndk/issues/377\nTest: ran tests\nChange-Id: Ib25b17949f04969f12b945ca88ab87d080677cf9\n"
    },
    {
      "commit": "5deddda68e780aaa26e4777378fee10d543eb719",
      "tree": "1db8aa1599a8ad3640683279dd6dbf59b6c86832",
      "parents": [
        "6c8881d99c0a14c2add4fb7857471d2cec8d6976",
        "7c10abb4a47139144de207433f630c4531f3835a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 24 17:52:11 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Apr 24 17:52:13 2017 +0000"
      },
      "message": "Merge \"Add basic tests for \u003clink.h\u003e.\""
    },
    {
      "commit": "ee1e0a34ae01aa01a207f00f0fe6cfb09852e44e",
      "tree": "d5f1778781d90388619c6a23977bad9f9ce6b5a8",
      "parents": [
        "627ed9162538d847ea4e530fd443570d37f57d65"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Apr 20 13:38:49 2017 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Apr 21 20:59:53 2017 -0700"
      },
      "message": "Update static functions/macro definitions.\n\nFix the list of static functions coming from swab.h to match the\nones exported by glibc.\n\nForce the definition of __HAVE_BUILTIN_BSWAP{16,32,64}__ so the headers\nuse the builtin.\n\nAdd a unit test to guarantee that kernel header updates do not break this.\n\nTest: Built and booted angler.\nTest: Built the bionic unit tests for arm, arm64, mips, x86, x86_64.\nTest: Ran the new test on angler and glibc.\n\nChange-Id: I4ce229e3f198c204186d72bf22dd97b5cdf239e4\n"
    },
    {
      "commit": "7c10abb4a47139144de207433f630c4531f3835a",
      "tree": "0f9d3c8e295861c214961b5a3cb7b471e7bb2cde",
      "parents": [
        "e54e64bd605f74936e1b8b6f5bf525b77abba00d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 21 17:15:41 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 21 17:35:06 2017 -0700"
      },
      "message": "Add basic tests for \u003clink.h\u003e.\n\nThe dl_iterate_phdr test is new, but the exidx test is largely copy \u0026 paste\nfrom ndk_translation.\n\nBug: http://b/31556066\nTest: ran tests\nChange-Id: If754f1459ef1d789ee98a89cd2215188edca51da\n"
    },
    {
      "commit": "f1db8372de4cfcc7e7473b0b0dc4b9491084a935",
      "tree": "959040e3858b61e32e6d56b4b70b057db0ff12c8",
      "parents": [
        "791989d250a507e3fc5634eccbf1341d980f2916"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Apr 19 11:58:52 2017 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Apr 19 11:58:52 2017 -0700"
      },
      "message": "Add missing required libraries\n\nTest: m\nChange-Id: Id8c8c69547fbfb0c8efe73b324c8b6dcd52aa8ca\n"
    },
    {
      "commit": "4bd354276757b3faeacb245e441b60d5d7e532aa",
      "tree": "d22ccd4f6aea8a637b6acffde208698511882a53",
      "parents": [
        "6c0468bba71d2f853c2f9517268516ab3331053d"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Apr 10 16:52:25 2017 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Apr 11 16:15:32 2017 -0700"
      },
      "message": "\u0027make bionic-unit-tests\u0027 now builds all the required binaries\n\nTest: make\nChange-Id: Ie2f5dffaa4a09eba6714ced8ab0043fd7446bee5\n"
    },
    {
      "commit": "7d15dc388a5fb3d3e6f5097232d82ab2b9fe7ad2",
      "tree": "4a9b51e2ff05f96694f2e859166f474595158b00",
      "parents": [
        "b1fe870a36d95f3064e45ff6bfedd061a860a179"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Mon Mar 13 17:10:46 2017 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Mar 15 13:30:05 2017 -0700"
      },
      "message": "Add tests for pthread TLS leak.\n\nAdd tests that ensure that threads don\u0027t leak memory mappings after\nthey exit.\n\nBug: http://b/36045112\nTest: /data/nativetest/bionic-unit-tests/bionic-unit-tests --gtest_filter\u003d*leak*\nTest: /data/nativetest64/bionic-unit-tests/bionic-unit-tests --gtest_filter\u003d*leak*\nChange-Id: Id0c1194b5d2bb7d89947b1ade16eb0d768d8c5b7\n"
    },
    {
      "commit": "ba267f45d62f5b33a6bbb96147d88fbab017b4ef",
      "tree": "60de02ea20e7b3aec2047c9891a711dde41c4fb6",
      "parents": [
        "5927b04ce7d9d4727a4a644f8af4040b8dab5d0a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 24 16:19:53 2017 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 24 16:19:53 2017 -0800"
      },
      "message": "Add tests for \u003cendian.h\u003e.\n\nAlso, for the stuff that\u0027s also in \u003cnetinet/in.h\u003e as real functions,\ncheck that they\u0027re there too (and as functions rather than macros,\nsince that was historically not true).\n\nBug: http://b/28432448\nTest: ran tests\nChange-Id: I7e4ae926f7e02de3b6dd38d1953e5b3b43d44f74\n"
    },
    {
      "commit": "3c81d5b361176a553fd791a6377509c376bea97a",
      "tree": "5006c712646675ce86ae1904cf4b7104c89d79f8",
      "parents": [
        "18c009ca96a432b35c76aeb9f62687b2db5153c0"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Nov 17 13:01:47 2016 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Jan 26 15:47:55 2017 -0800"
      },
      "message": "Remove bionic-unit-tests-gcc\n\nTest: mm\nBug: 34747525\nChange-Id: Ib17ac3535b6f3358af7098df0602d19c6e318cb7\n"
    },
    {
      "commit": "16b2a4de143a026b8d467b7d242126adcf67242b",
      "tree": "56e0d6455248408f5c485c8a5403bb970441f7a8",
      "parents": [
        "40250bb6837da0eb0f0882efd07bdaefb3f304b1"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Jan 24 20:43:29 2017 +0000"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Jan 24 12:58:18 2017 -0800"
      },
      "message": "Revert \"Revert \"Remove limit of system property name length\"\"\n\nThis reverts commit 489f58b5eaedd5a80635bb3a7b39e97037c585f6.\nBug: http://b/33926793\nBug: http://b/34670529\nTest: Run bionic-unit-tests --gtest_filter\u003dprop*\n\nChange-Id: Id4e94652dc2310a21f5b7bd3af098bf79df3f380\n"
    },
    {
      "commit": "489f58b5eaedd5a80635bb3a7b39e97037c585f6",
      "tree": "af22a101af7a53336af2669978e9a507f589fbd5",
      "parents": [
        "5c1ce278f31bc6fc338b9b951f1adc7c2b343d7c"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Jan 24 18:39:04 2017 +0000"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Jan 24 18:39:04 2017 +0000"
      },
      "message": "Revert \"Remove limit of system property name length\"\n\nThis reverts commit 5c1ce278f31bc6fc338b9b951f1adc7c2b343d7c.\nBug: http://b/33926793\nBug: http://b/34670529\n\nChange-Id: I0dc4a8ae55576c69b34b2958d8e664f7066b9c54\n"
    },
    {
      "commit": "5c1ce278f31bc6fc338b9b951f1adc7c2b343d7c",
      "tree": "0652006476a923c95c16837640a52f9298322a35",
      "parents": [
        "7844b4c5dbd0be9ea4212a523da2dd6a4804032c"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Dec 03 11:26:38 2015 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Jan 23 11:21:18 2017 -0800"
      },
      "message": "Remove limit of system property name length\n\nThis change introduces new __system_property_read_callback\nmethod to use in place of deprecated __system_property_read\n__system_property_set() and get() should just work but now\ndo not have limit on system property names.\n\nBug: http://b/33926793\nTest: boot device, run adb shell propget\nTest: boot device with old version of init (protocol v1)\nTest: run bionic-unit-tests --gtest_filter\u003dprop*\nChange-Id: I619fb5a7e27a272aac30011579665f6160888bc7\n"
    },
    {
      "commit": "082bec5b419806d694f9a7d0283b2f831d52eea4",
      "tree": "4902863a691f86e4e5236344d11ef172d2f8a2c5",
      "parents": [
        "2d261e8e9e1340151698086e8434f312a73f77f0",
        "0a3637d3eb2424d8e825ad1825f843450a888406"
      ],
      "author": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Wed Jan 18 23:39:07 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 18 23:39:08 2017 +0000"
      },
      "message": "Merge \"Runtime support for CFI\""
    },
    {
      "commit": "0a3637d3eb2424d8e825ad1825f843450a888406",
      "tree": "dc0d4c31cddc2ff06902fcbdf4233f7759258764",
      "parents": [
        "1b2975d54b9c17ced29883aef24490773a4a9fe6"
      ],
      "author": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Wed Jul 06 13:20:59 2016 -0700"
      },
      "committer": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Wed Jan 18 13:13:52 2017 -0800"
      },
      "message": "Runtime support for CFI\n\nControl Flow Integrity support in bionic.\n\nGeneral design:\nhttp://clang.llvm.org/docs/ControlFlowIntegrityDesign.html#shared-library-support\n\nThis CL implements subsections \"CFI Shadow\" and \"CFI_SlowPath\" in the above document.\n\nBug: 22033465\nTest: bionic device tests\nChange-Id: I14dfea630de468eb5620e7f55f92b1397ba06217\n"
    },
    {
      "commit": "2a3b4fa6ec9ab3d4604860b0bdd3766c9f5c44f4",
      "tree": "0e94f5fec708d835d1be78e6a28c10ab39882e3b",
      "parents": [
        "f8a6d4745daafb6aced5cdeb76325c719ca1374b"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Oct 26 17:55:49 2016 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Tue Jan 17 15:11:46 2017 -0800"
      },
      "message": "Rename libdebuggerd_client to libdebuggerd_handler.\n\nBug: http://b/30705528\nTest: debuggerd_test\nChange-Id: I625a9a2e7304d172873ba9344b74efa57ad7bdad\n"
    },
    {
      "commit": "1f553ea5da3a7d501f028ecc3a19c615b94c2766",
      "tree": "869dba2faa7fe51c8228b16366a1afd39d0c45c6",
      "parents": [
        "a970ac50d1cfeed0a01f4b1b6e300dd7fbefa4c4"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Fri Jan 13 12:31:59 2017 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Fri Jan 13 12:34:36 2017 -0800"
      },
      "message": "Switch bionic-unit-tests to libc++_static.\n\nBug: http://b/27549327\nTest: run bionic-unit-tests, bionic-unit-tests-glibc.\nChange-Id: I719899624dec83728a3d5b8169079e5c91c63c04\n"
    },
    {
      "commit": "940d460f59e566f2d84ea3e114074a50996e76b3",
      "tree": "e8e782b4af97446e3938460330631fa4c3b56caa",
      "parents": [
        "74e1fe1cc04f11b05fdc653a992b72c1aa3ff2b5",
        "3f6eee9793e4c41c7f4b15a723c777ae67fb1e51"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 10 01:15:29 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jan 10 01:15:30 2017 +0000"
      },
      "message": "Merge \"Revert \"Revert \"move android_ids into bionic\"\"\""
    },
    {
      "commit": "462ea664cfddefe688965668955c41e1443ac94e",
      "tree": "c13205e7fed3c1e5be716844acba2cb0e064b399",
      "parents": [
        "fb07c36bc061db4ca5d8348ff6bc1e60b6c53191"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Jan 06 14:49:57 2017 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Jan 06 16:16:26 2017 -0800"
      },
      "message": "Fix bionic-unit-tests-static crash\n\nThe crash happens because for static executables call to dlopen\nresults in crash. This change moves dlopen() \u003d\u003d nullptr check\nfrom static variable to a functions so that the dlopen crash only\naffects tests calling dlopen but not the whole executable.\n\nAlso make static tests report crashes to debugerd\n\nTest: run bionic-unit-tests-static (for arm 32 and 64)\nBug: http://b/34129417\nChange-Id: I7c4d8caf2a43250234fe24496b1c95eab572769f\n"
    },
    {
      "commit": "ac4bd2f79316e8ee79e9a69463e5d12d0f792aad",
      "tree": "4588bf97c4a1e218521094fb185c58a7f8c12562",
      "parents": [
        "f27e97956d6705c09f38442423f5e115cbe55f0f"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Nov 21 12:50:38 2016 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Dec 14 11:16:21 2016 -0800"
      },
      "message": "Add test for elf-hash and packed relocations\n\nThis adds CTS test for system libraries to support\nworkaround for http://b/24465209: some apps require\na subset of system libs to have elf-hash and not to\nuse packed relocations.\n\nBug: http://b/32917341\nBug: http://b/24465209\nTest: bionic-unit-tests --gtest_filter\u003dDl*:dl*\nChange-Id: Ia0bc28506b1f1f97d4cf902d73b0769e2815fed3\n"
    },
    {
      "commit": "3f6eee9793e4c41c7f4b15a723c777ae67fb1e51",
      "tree": "8dae7fc7d418fdf69d34057f8b80add179eeb351",
      "parents": [
        "77cb68d9f2621639ec7f4e1b124ceeee5c80a66a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Dec 13 23:47:25 2016 +0000"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Dec 13 23:47:25 2016 +0000"
      },
      "message": "Revert \"Revert \"move android_ids into bionic\"\"\n\nThis reverts commit 77cb68d9f2621639ec7f4e1b124ceeee5c80a66a.\n\nChange-Id: Ibc9f775c4cd418be90fd8a6f192dd72ca5dff09a\n"
    },
    {
      "commit": "77cb68d9f2621639ec7f4e1b124ceeee5c80a66a",
      "tree": "ed8d084df93ed051a0688432dac858a6987f381e",
      "parents": [
        "1a13db5b2675759316a8529873c5d29831a9ba32"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Dec 12 22:11:37 2016 +0000"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Dec 12 22:11:37 2016 +0000"
      },
      "message": "Revert \"move android_ids into bionic\"\n\nThis reverts commit 1a13db5b2675759316a8529873c5d29831a9ba32.\n\nChange-Id: I7f571b3a9d542694d16fb9cf1131ef9e59d330ea\n"
    },
    {
      "commit": "1a13db5b2675759316a8529873c5d29831a9ba32",
      "tree": "8dae7fc7d418fdf69d34057f8b80add179eeb351",
      "parents": [
        "fa1a85d0031c1846f7c2a6137c614f6a12dd2279"
      ],
      "author": {
        "name": "William Roberts",
        "email": "william.c.roberts@intel.com",
        "time": "Fri Apr 08 13:44:19 2016 -0700"
      },
      "committer": {
        "name": "William Roberts",
        "email": "william.c.roberts@intel.com",
        "time": "Wed Nov 30 12:54:08 2016 -0800"
      },
      "message": "move android_ids into bionic\n\nGenerate the android_ids array and include into the\nbuild.\n\nTest: The bionic is built and that core AIDs work as\nexpected with commands like chown, mkdir and init services\nand builtins.\nBug: 27999086\nChange-Id: Ib575bf85326c91801c5674db475dcb9cf44c00dc\nSigned-off-by: William Roberts \u003cwilliam.c.roberts@intel.com\u003e\n"
    },
    {
      "commit": "bd734f07167b9e24cd292e669717795f83d10157",
      "tree": "792553a647477a2a57612c45afaac7df43c80752",
      "parents": [
        "86841573ed240e113adba82e97d586d568b9a8b2",
        "a57ca0da69ab9a3f870a584ba1ddab9af432c639"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Nov 29 23:05:31 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 29 23:05:31 2016 +0000"
      },
      "message": "Merge \"Use icu4c to implement \u003cwctype.h\u003e.\""
    },
    {
      "commit": "a57ca0da69ab9a3f870a584ba1ddab9af432c639",
      "tree": "1e26c4f0e54f3db93ce18f04f49076de6cb4bdee",
      "parents": [
        "a5c16983a65e2169174a0e77a54c0ce650f87b48"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 17 18:18:08 2016 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Nov 29 19:19:30 2016 +0000"
      },
      "message": "Use icu4c to implement \u003cwctype.h\u003e.\n\nPretty useless, because the POSIX APIs are useless for actually\ninternationalization, but it lets us put this to bed for good.\n\nBug: http://b/18492914\nTest: bionic tests\nChange-Id: I4dd0aff66c44b5547039be3ffea806c865b9014a\n"
    },
    {
      "commit": "86841573ed240e113adba82e97d586d568b9a8b2",
      "tree": "a581beccee52a1fdfd1005090779ddbd27ba0912",
      "parents": [
        "11b362d284b49e070813cd459584ea3dabb20b1e",
        "fc8e688c322a28803b62eb5bff3c842a440bb2b5"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Nov 29 19:16:08 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 29 19:16:09 2016 +0000"
      },
      "message": "Merge \"Implement \u003clanginfo.h\u003e.\""
    },
    {
      "commit": "d0b5c3ad65accd2c0298edbdfd527ede63e68ba1",
      "tree": "2c38f769ab809642c585c84a5142f4507e788488",
      "parents": [
        "0dafdd430661b96439b1d154d6ce146fd46f617e"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Nov 25 12:23:11 2016 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Nov 28 13:09:19 2016 -0800"
      },
      "message": "Fix bionic-unit-tests-glibc\n\nAlso add another test for dlsym(RTLD_NEXT, ..)\n\nBug: http://b/33106624\nTest: run bionic-unit-tests-glibc and bionic-unit-tests\nChange-Id: I340165d66bf2360b0e3273d3561a08cb5e7bd025\n"
    },
    {
      "commit": "fc8e688c322a28803b62eb5bff3c842a440bb2b5",
      "tree": "afd7c15b513b9ed246f7b1cbb34de3004c5e53e0",
      "parents": [
        "a5c16983a65e2169174a0e77a54c0ce650f87b48"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Nov 18 16:27:29 2016 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Nov 19 11:46:54 2016 -0800"
      },
      "message": "Implement \u003clanginfo.h\u003e.\n\nPOSIX locale only, as usual.\n\nThe GNU YESSTR and NOSTR extensions return the empty string in the C locale,\nso I haven\u0027t bothered supporting them.\n\nBug: http://b/1401872\nTest: bionic tests\nChange-Id: I6846839e4f9f1812344ed5dce0b93f83c0c20eb3\n"
    },
    {
      "commit": "927877c7d3173c1259732e51428f4ae38dc6bc4f",
      "tree": "fc558a23c5b705ffcfaff7e6e4b2278a27e3d0c2",
      "parents": [
        "708589f5e8244a17d690848eed5f0fbfcce48a26"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Sep 21 11:17:13 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Oct 10 13:56:20 2016 -0700"
      },
      "message": "bionic-unit-tests: remove dependency on ANDROID_DATA\n\nReplace references to ANDROID_DATA enviroment variable with references\nto g_testlib_root.\n\nBug: http://b/22182538\nTest: build and run bionic-unit-tests --gtest_filter\u003ddl*:Dl*\nTest: make cts \u0026\u0026 cts-tradefed run singleCommand cts --skip-preconditions -m CtsBionicTestCases\nChange-Id: I5667e991551cec55b9b664f2f0063039671ff34b\n"
    },
    {
      "commit": "708589f5e8244a17d690848eed5f0fbfcce48a26",
      "tree": "c89c96b86a7248a9e398a00128cd3c4459503a3c",
      "parents": [
        "1c45e6fa47a2ab9b0b9dc8ab05f75023a8ebbd2d"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Sep 19 10:50:28 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Oct 10 04:41:56 2016 -0700"
      },
      "message": "bionic-unit-tests: Create symlinks in runtime\n\nInstead of creating symlinks in build time and then relying\non usage of adb sync (adb push follows symlinks) - create\nthem in test run time.\n\nTest: mm \u0026\u0026 run bionic-unit-tests --gtest_filter\u003ddl*:Dl*\nBug: http://b/22182538\nChange-Id: I9d2a873e3ba303533c14ba5e3b779e4a67925462\n"
    },
    {
      "commit": "7b29495d0a13794a30e90a65460def2bbb9739a6",
      "tree": "1789af07752f7d9b6d5b5e73fb3b1f3d256fe4e3",
      "parents": [
        "6a5f7f5873cd0f03ec0cea101752c567d744cbfc"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Sep 29 14:08:13 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Sep 29 14:37:30 2016 -0700"
      },
      "message": "Update escaping in Android.bp files\n\nStrings like cflags in Android.bp files are parsed by blueprint,\nwritten to build.ninja files, parsed by ninja, and then passed to\n/bin/sh -c.  This had resulted in a combination of blueprint\n(\\\"), ninja ($$), and shell (\\$) escaping being necessary.\n\nSoong has been updated to automatically handle ninja and shell\nescaping, remove extra escaping from Android.bp files.\n\nBug: 31221587\nTest: m -j\nChange-Id: Ib58a51dee8d22296b69ec21768ba6a49dd60e980\n"
    },
    {
      "commit": "c462c28afedbfb3b8e6a36c763b71b904bc0b08f",
      "tree": "00c148463704c18c9a4f4843145018a6e503366f",
      "parents": [
        "76fcad2a6f6b6633c49f4f0b703ef490d2d127fd"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Sep 15 16:25:31 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Sep 15 16:25:31 2016 -0700"
      },
      "message": "Make static library for loader tests\n\n1. Extract bionic loader tests to static library in\norder to link it to bionic cts tests.\n2. Make libpagemap dependency static to reduce dependencies\non internal native libraries.\n\nBug: http://b/22182538\nTest: run bionic-unit-tests --gtest_filter\u003ddl*:Dl*\nChange-Id: I5decd5893e6338c84b3ab23e1d65d70bd75ad880\n"
    },
    {
      "commit": "a36e59bb9973aaae2e3487e0bfadd1f79814097e",
      "tree": "340c2c5c1fceebc214e8c2c2f6f9cb2e875d8640",
      "parents": [
        "dd14725eeb1e5496e92ad777db165b21ad4651f0"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Sep 01 11:37:39 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Sep 02 14:27:47 2016 -0700"
      },
      "message": "Move test libraries under /data/nativetests\n\nMove libraries used in bionic-unit-tests out of system partition to\n/data/nativetests../bionic-loader-test-libs\n\nBug: http://b/22182538\nTest: build bionic and run bionic-unit-tests\nChange-Id: I170177bef782839d0b4970ae4418bf54d0a77836\n"
    },
    {
      "commit": "4156770d845c2e9d92009e2b3fd756367aaeec8d",
      "tree": "cebdba3727158150bb8ad7553d5afc29a743e650",
      "parents": [
        "6d7a1eec4c4d5e31e150ecb5e4f3ca390ab8eaef"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Wed Aug 31 16:35:01 2016 -0700"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Wed Aug 31 16:35:01 2016 -0700"
      },
      "message": "cc_test_library now creates shared libraries too\n\nMake these compile as static libraries by properly declaring their\ndependencies.\n\nI turned off the shared version of libBionicTests because it produces\nthis linker warning (treated as error):\n\nexternal/libcxx/include/sstream:859: warning: relocation refers to\ndiscarded section\n\nChange-Id: I2e1448b47a441b273d208ebd068d0d22e340a0ff\n"
    },
    {
      "commit": "7c59f3f6f3b6dbfcfb261b07062590d2dad2da62",
      "tree": "79e7bb9bd94e4c39cc85acb534df52245d458050",
      "parents": [
        "fe4ab7dc30154f83a45769150392d6b47885c164"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 16 18:14:26 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 18 15:23:38 2016 -0700"
      },
      "message": "Flesh out \u003csys/msg.h\u003e, \u003csys/sem.h\u003e, \u003csys/shm.h\u003e.\n\nAlso fix \u003csys/ipc.h\u003e.\n\nNot useful except to systems/bringup folks for testing. Trivial tests\nadded, and double-checked under strace to see that things look right.\n\nx86 -- which works differently to everything else -- tested on the host.\n\nBug: http://b/27952303\nChange-Id: I328534e994ae9e90755f545478fba03038c0bb94\n"
    },
    {
      "commit": "f6495c78a84b4a797a6faf77f8bd56998c739509",
      "tree": "963ffcb86fadb817451ca92d7a2d99a08e71ba93",
      "parents": [
        "557b3a1194e03339b025b2d2282a0cc34aded7bb"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jul 25 09:20:57 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jul 25 11:13:47 2016 -0700"
      },
      "message": "Stop #define\u0027ing __func__ and __restrict.\n\n__STDC_VERSION__ isn\u0027t defined for __cplusplus, so we\u0027ve been removing\nsuch checks. Some got missed.\n\nStop defining __func__ and just use the __PRETTY_FUNCTION__ GCC extension\nin \u003cassert.h\u003e. Also fix the #if there so that C++ gets __assert2 rather\nthan __assert, and rewrite the cast to work with -I rather than -isystem.\n\nAlso remove __restrict and just always use the __restrict GCC extension.\n\nAdd a trivial test for \u003cassert.h\u003e.\n\nBug: http://b/30353757\nChange-Id: Ie49bb417976293d3a9692b516e28fe3c0ae0a6d9\nTest: ran bionic unit tests.\n"
    },
    {
      "commit": "1291e501739ca1b636a547b183b183611bc7b8b0",
      "tree": "c4245cb544a0e39fe1f24bebffd931b52ed69113",
      "parents": [
        "7101c48f20f2f19dd1d314d23251fb52995a0870"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jul 22 19:52:46 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jul 22 19:52:46 2016 -0700"
      },
      "message": "Remove bionic\u0027s now-unused UniquePtr.\n\nChange-Id: Id77dbdd6d4255ae8317449725ef093be9422407f\n"
    },
    {
      "commit": "2722ebb30b76c9328541c057fa1f5e56a8cedf17",
      "tree": "80d716168a658c6a005efff9b99a3d06fdef4b6b",
      "parents": [
        "48cedda02a9874d59b2b3652d0427abce7fedaab"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Jul 11 16:20:06 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Jul 14 12:30:12 2016 -0700"
      },
      "message": "Convert bionic benchmarks and tests to Android.bp\n\nThe compile-time tests and a few custom libraries for dynamic linker\ntesting are still compiled in make.\n\nAlso converts the make rules to run tests on the host to shell scripts\nin tests/run-on-host.sh and benchmarks/run-on-host.sh\n\nChange-Id: I6f174b3a69d58c4ed74d29f4e79332d483681534\n"
    }
  ]
}
