)]}'
{
  "log": [
    {
      "commit": "db6ab3d5ecfe9934cb91a09bc4ccdbf2d15b49fc",
      "tree": "09f7a5f2644cc262e0b5c8e426e30480524a56a4",
      "parents": [
        "82d746fb39465e78088aeb11a5dc178cf264d0c0"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Jun 27 11:02:51 2017 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Jun 27 11:02:51 2017 -0700"
      },
      "message": "Enable dlfcn.dt_runpath_absolute_path in glibc tests\n\ndlfcn.dt_runpath_absolute_path no longer fails when\nrunning bionic-unit-tests on glibc\n\nBug: http://b/25320359\nTest: bionic-unit-tests-glibc --gtest_filter\u003ddlfcn.dt*\nChange-Id: Ia0ecf43293cb0fed28516fd8cb87e7f5f2d6e648\n"
    },
    {
      "commit": "8ad40936597c94901b6acb0b21bfe0e2a0689224",
      "tree": "d228db0e344a21109b07276e5282c841daa88269",
      "parents": [
        "0bd23e47067126677537a2b5bedd22dce54d92e5"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jun 15 15:12:29 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jun 15 15:12:29 2017 -0700"
      },
      "message": "Add #defines for some key enums.\n\nBuilding ruby actually trips over both of these:\n\n* if the RTLD_ constants aren\u0027t #defined, it uses its own incorrect values.\n\n* if the REG_ constants aren\u0027t #defined, it confuses x86 with x86-64.\n\nIn all other places where we have enums in our headers, we already match\nexisting glibc practice.\n\nBug: http://b/62531921\nTest: builds\nChange-Id: I5b3aab25a1a24611bdc58f2eda4104a78e9f841c\n"
    },
    {
      "commit": "c42b4bb097c6a89bd9016bcbeed08a436d591d27",
      "tree": "3dd769dedd1f764d7a549e5a6d268d2f3bd63870",
      "parents": [
        "846924ae9583991a99a5924b2542c992d4bc094e"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed May 03 11:01:00 2017 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed May 03 11:01:00 2017 -0700"
      },
      "message": "Remove known failures from arm ifunc tests\n\nSince clang does not produce IRELATIVE relocations\nthis test started passing when we switched away from gcc\nThis is still a problem because it now leads to\nsituation where static ifuncs become globally visible\nbut this is a different problem.\n\nTest: bionic-unit-tests --gtest_filer\u003ddl*\nChange-Id: Id27ba5093b88519c00acbc43ab8a991a671a9f51\n"
    },
    {
      "commit": "21975b2861d859fb580ddfba50d323740486b7bc",
      "tree": "5e8ed0d7e814959c24cd7bc404ff04e7e4e5419f",
      "parents": [
        "87a47e1bb202a26918993487db8dc82229833ef8"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue May 02 16:31:56 2017 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue May 02 16:35:20 2017 -0700"
      },
      "message": "Add ifunc for variable test-case\n\nAlso move ifunc tests to clang and c++.\n\nTest: bionic-unit-tests --gtest_filter\u003ddlfcn.ifunc*\nChange-Id: I008c4fc01470c8e4d314003c03a2b63ff9bf7fd8\n"
    },
    {
      "commit": "b8ab61804cec48e4ca585f4508fb1b7c6c5a04c5",
      "tree": "4a1045e4b9e30c52e6c3886de8474c0aeb2c8996",
      "parents": [
        "12021ce9cf1ec1bc47cded3402ac9a3aa7b9b396"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Apr 05 16:20:29 2017 -0700"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Apr 05 16:37:07 2017 -0700"
      },
      "message": "Move scopeguard into android::base\n\nTest: boot bullhead, bionic unit tests\nChange-Id: I223249684867655ecb53713b10da41d3014f96ae\n"
    },
    {
      "commit": "fc32dcb128efe35442830e2dcfa378f1d50fef1c",
      "tree": "26c42db2eb5afa8db73ad23f0fad0b7e06ad9b39",
      "parents": [
        "e98d1e68ce37bb9238e3c50ea6b01d1057adb2eb"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Mar 24 10:58:23 2017 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Mar 24 10:58:23 2017 -0700"
      },
      "message": "Disable compat_elf_hash_and_relocation_tables test for x86\n\nBug: http://b/36571076\nTest: run bionic-unit-tests on fugu\nChange-Id: I2f901bc99e55f15b06fe6a5b0d7a125d1b8241a8\n"
    },
    {
      "commit": "35c8e3b1251af62897a9babd693e2b1be5676160",
      "tree": "3cc1d7cfe239740c04f29d35058048bea7b47c9f",
      "parents": [
        "5f41ce25c60df2012b58846940dfac58dce50e59"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Feb 27 12:17:47 2017 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Feb 27 14:16:04 2017 -0800"
      },
      "message": "Fix greylist exception to account for linked namespaces\n\nDo not load second copy of libraries that are supposed to\nbe provided by linked namespaces. Also do not print\nerror in the log if caller tries to open shared library\nusing absolute path for apps targeting N+.\n\nBug: http://b/35454141\nBug: http://b/26833548\nBug: http://b/35338922\nTest: run bionic-unit-tests --gtest_filter\u003ddl*\nChange-Id: Icf3aeedff18d287d2ba0b3df3808b100f3ef5f7a\n"
    },
    {
      "commit": "ec90e24d33837e107b45e7c98b2f5fb4bc115a5e",
      "tree": "da59fda3b0eac92d43fe86dc457506a11382953c",
      "parents": [
        "132768084e24119c337e56fd110b97a23e5593c2"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Feb 10 11:04:20 2017 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Feb 10 16:11:51 2017 -0800"
      },
      "message": "loader: fix d-tor call order\n\nIn the case when there are multiple dependencies on\nthe same library in the local_group the unload may\nin some situations (covered now by tests) result\ncalling d-tors for some libraries prematurely.\n\nIn order to have correct call order loader checks if this\nis last dependency in local group before adding it to BFS\nqueue.\n\nBug: http://b/35201832\nTest: bionic-unit-tests --gtest_filter\u003ddl*:Dl*\nTest: bionic-unit-tests-glibc --gtest_filter\u003ddl*\nChange-Id: I4c6955b9032acc7147a51d9f09b61d9e0818700c\n"
    },
    {
      "commit": "ea8f396c59f824993044d9474c2dc04423003c59",
      "tree": "eb39d5e37d3a442b7c2d4f4c3705922b380cd47e",
      "parents": [
        "2bfb8c9180603bac97dca2d8e359f71bb11f7126"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Feb 09 13:31:57 2017 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Feb 09 14:07:05 2017 -0800"
      },
      "message": "Add test checking init/fini call order\n\nThis test is checking that loader complies with the order described in\nhttp://www.sco.com/developers/gabi/latest/ch5.dynamic.html#init_fini\n\nBug: http://b/35201832\nTest: bionic-unit-tests --gtest_filter\u003ddl*:Dl*\nTest: bionic-unit-tests-glibc --gtest_filter\u003ddl*\nChange-Id: I4cdf878c043112442c191e82aa9f5d5077e4d8c4\n"
    },
    {
      "commit": "14b9d7199c1b147ef6ce6e522ff14413930d2127",
      "tree": "3a03404800caf92653df79769628d373c5949ead",
      "parents": [
        "18c009ca96a432b35c76aeb9f62687b2db5153c0"
      ],
      "author": {
        "name": "Victor Khimenko",
        "email": "khim@google.com",
        "time": "Wed Jan 25 19:59:16 2017 +0100"
      },
      "committer": {
        "name": "Victor Khimenko",
        "email": "khim@google.com",
        "time": "Wed Jan 25 20:57:48 2017 +0100"
      },
      "message": "Fix bionic-unit-tests in arch with binary translator\n\nIf binary translator is involved then libc is not place in /system/lib\nor /system/lib64.  It\u0027s placed into /syste/lib/arm, /system/lib/arm64,\netc.  FUGU is an example of such an architecture.\n\nSupport both cases by picking right path at runtime.\n\nTest: run bionic-unit-tests --gtest_filter\u003ddlfcn.dladdr_libc\nChange-Id: I8345c0f6c19376ebe5106f9670fd2addeb9b9080\n"
    },
    {
      "commit": "01c888c857f6f19837c5db581be83cc06f13fa1c",
      "tree": "3001b40a30181a5a1f95d219feb2ceba87a75333",
      "parents": [
        "7844b4c5dbd0be9ea4212a523da2dd6a4804032c"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Jan 23 14:48:21 2017 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Jan 23 14:52:07 2017 -0800"
      },
      "message": "Mark ifunc tests failing on arm as known failures\n\nBug: http://b/27930475\nTest: run bionic-unit-tests on arm and arm64\nChange-Id: I5084b6a5ef4b56ca9985da63a5e6896f771810f0\n"
    },
    {
      "commit": "59dd61573fe815893b0ea08b96231c4d237802a0",
      "tree": "5e879fef12c5a253f0165b6d0883b6798387021d",
      "parents": [
        "22ef13ff9d071f887b8445ca353ea89dedb815c8",
        "ac4bd2f79316e8ee79e9a69463e5d12d0f792aad"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Dec 15 18:27:22 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 15 18:27:22 2016 +0000"
      },
      "message": "Merge \"Add test for elf-hash and packed relocations\""
    },
    {
      "commit": "d5b578ac15330d7a872c198427628b723e0cc1cb",
      "tree": "2b80ee4a73c9014f68a9accb0bc660e5112b97e2",
      "parents": [
        "1adb683447c7a7cc46745fb0dfcbbb0d7e31380a"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Dec 14 15:16:56 2016 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Dec 14 15:16:56 2016 -0800"
      },
      "message": "Add test for empty symbol lookup\n\nCheck that dlsym(handle, \"\") fails.\n\nBug: http://b/33530622\nTest: bionic-unit-tests --gtest_filter\u003ddlfcn*\nTest: bionic-unit-tests-glibc --gtest_filter\u003ddlfcn*\nChange-Id: Iae572bd1d9b798be619c5018de2a5450bf37977e\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": "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": "c7365eb2fa996e72c5ea7f4e20222d6b48b9c6e0",
      "tree": "96bf78a1a50323dde10b2329b88ffa88f15029ab",
      "parents": [
        "3613c20c59f931caa7d5411e4350306a4d6ad1e0"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Nov 17 12:38:09 2016 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Nov 17 14:23:24 2016 -0800"
      },
      "message": "Improve dlerror_concurrent test\n\nAdd a test to check if result is thread-local, not only buffer.\n\nTest: run bionic-unit-tests\nChange-Id: Ia95f88c0d76aa86f7f439836393abd67a57dd396\n"
    },
    {
      "commit": "816676e70da0e00761b0d23f512ea3571211b3ae",
      "tree": "8be0a547c1c6def6d16b81b212c8d3188241711f",
      "parents": [
        "d8244214751f9b48e60e69910c4e7175f8fab1ac"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Oct 19 11:00:28 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Oct 19 14:21:42 2016 -0700"
      },
      "message": "Add test for libraries with textrels\n\nMake sure android fails to load them.\n\nBug: http://b/30795430\nTest: bionic-unit-tests --gtest_filter\u003ddlfcn.dlopen_invalid*\nTest: cts-tradefed run singleCommand cts --skip-preconditions -m CtsBionicTestCases\nChange-Id: Id0ebdf336b2f297007479ceb1bbccf778a7ca3f2\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": "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": "44a654446e77549a0e988778ea0b738c4790e156",
      "tree": "e0d52b29c1be31d12c6702225ed7520b89ab0bd2",
      "parents": [
        "061446c2df4ac5f06d10da755d5977abdcb152b9"
      ],
      "author": {
        "name": "Nikola Veljkovic",
        "email": "Nikola.Veljkovic@imgtec.com",
        "time": "Tue Aug 16 20:47:40 2016 +0200"
      },
      "committer": {
        "name": "Nikola Veljkovic",
        "email": "Nikola.Veljkovic@imgtec.com",
        "time": "Tue Aug 16 18:52:06 2016 +0000"
      },
      "message": "[mips] Add missing linker shdr tests\n\nTest: bionic-unit-tests for mips, mips64.\nChange-Id: I8ed5f03df8d129e74fa04be2b203bd113a381888\n"
    },
    {
      "commit": "3b2d331e77143ce63ad7f404ab6669c03178eff4",
      "tree": "9e22d232e0fae6f84fd31d8f5b8b890296d12399",
      "parents": [
        "52848b02b37eae075fd5f3cbc9087f49cd0173d4",
        "559583469cd6425cdf3f63bcfc453d7d885ce131"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Aug 15 23:23:26 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Aug 15 23:23:26 2016 +0000"
      },
      "message": "Merge \"linker: add test for zeroed out shdr_table_\""
    },
    {
      "commit": "4154b77285ee97186a9d81ef72cbad91f6b8ba0f",
      "tree": "c85baee79559721c3c393f3a4f33cd03f57cd101",
      "parents": [
        "63ccb1bdac7b70b59d7f4187919d7b291e1a3f36",
        "46230445172d3cd72c38102d57f5a1b725c80367"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Aug 15 22:01:30 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Aug 15 22:01:30 2016 +0000"
      },
      "message": "Merge \"linker: add test for zero shdr offset\""
    },
    {
      "commit": "559583469cd6425cdf3f63bcfc453d7d885ce131",
      "tree": "b4f97018d077943756709fbcb2738ebfffe59250",
      "parents": [
        "46230445172d3cd72c38102d57f5a1b725c80367"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Aug 15 14:06:04 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Aug 15 14:06:04 2016 -0700"
      },
      "message": "linker: add test for zeroed out shdr_table_\n\nBug: http://b/30795430\nChange-Id: I86b658d01b64670d3e702ddb1d3f9db4f75d784f\nTest: bionic-unit-tests --gtest_filter\u003ddlfcn.dlopen_invalid*\n"
    },
    {
      "commit": "63ccb1bdac7b70b59d7f4187919d7b291e1a3f36",
      "tree": "5c7ce1d6702b5f33a4a4af1ebb078543ee2f03f4",
      "parents": [
        "228e747b6c40da2945310cda214b829f7de8cb60",
        "293d5132d0a48a699efa6b1675eb3e2f73dd04da"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Aug 15 21:00:46 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Aug 15 21:00:47 2016 +0000"
      },
      "message": "Merge \"[MIPS] Fix bionic test build\""
    },
    {
      "commit": "46230445172d3cd72c38102d57f5a1b725c80367",
      "tree": "7a29c4208375355d93ddd1ad8d0eca2c5f46f688",
      "parents": [
        "228e747b6c40da2945310cda214b829f7de8cb60"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Aug 15 13:40:53 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Aug 15 13:42:47 2016 -0700"
      },
      "message": "linker: add test for zero shdr offset\n\nBug: http://b/30795430\nChange-Id: I03853257c4b632ad9daaf1e90f9620678397cff0\nTest: bionic-unit-tests --gtest_filter\u003ddlfcn.dlopen_invalid*\n"
    },
    {
      "commit": "293d5132d0a48a699efa6b1675eb3e2f73dd04da",
      "tree": "260ea9e5c189a227d323833e4cd7722269d6191f",
      "parents": [
        "21482db6e134749d43a2985d5b33397bc1a54852"
      ],
      "author": {
        "name": "Lazar Trsic",
        "email": "Lazar.Trsic@imgtec.com",
        "time": "Mon Aug 15 15:58:42 2016 +0200"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Aug 15 12:48:20 2016 -0700"
      },
      "message": "[MIPS] Fix bionic test build\n\nGroup of libtest_invalid* libraries does not exists for mips architecture,\nso disable relevant tests.\n\nChange-Id: I3a4fef94933eb33654c4274aa249ea5d61d6cf9b\n"
    },
    {
      "commit": "8bdf70e6e481d4ff0c1097f738d8e857a43c1b16",
      "tree": "055f58375e7da9739c65a93c17411ac8c56508d7",
      "parents": [
        "c9a95613a95b1a275ff897594abb89786ae387ed"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Aug 15 11:30:45 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Aug 15 11:30:45 2016 -0700"
      },
      "message": "linker: add test for empty shdr table\n\nBug: http://b/30795430\nChange-Id: Id839c22f88276f31e0615bc2a67d75e27a9aa7c6\nTest: run bionic-unit-tests --gtest_filter\u003ddlfcn.dlopen_invalid*\n"
    },
    {
      "commit": "c9a95613a95b1a275ff897594abb89786ae387ed",
      "tree": "c83add2071e92bae785f4a65c84423b6c7b85bc9",
      "parents": [
        "0deb70cd04aef99b12d9596615c661a87cf6b95c"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Aug 15 10:27:47 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Aug 15 10:29:50 2016 -0700"
      },
      "message": "linker: add test for zero shstrndx\n\nBug: http://b/30166532\nBug: http://b/30795430\nTest: bionic-unit-tests --gtest_filter\u003ddlfcn.dlopen_invalid*\nChange-Id: I4cec73635cf403df9dd60b9a294d2298bb0abe3d\n"
    },
    {
      "commit": "cb86c3128f5e59348d91f2edfa2de908d69cd384",
      "tree": "103fb76e4b9f41d17e12c3398bded90475669607",
      "parents": [
        "972e3d0787cf177450cdc1b52e177c747b94caba"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Aug 12 15:28:42 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Aug 12 15:28:42 2016 -0700"
      },
      "message": "linker: add test for zero e_shentsize\n\nBug: http://b/30166532\nBug: http://b/30795430\nChange-Id: I249c081563f0ca7bcc799d8445a53683616eaa4e\nTest: run bionic-unit-tests --gtest_filter\u003ddlfcn.dlopen_invalid*\n"
    },
    {
      "commit": "972e3d0787cf177450cdc1b52e177c747b94caba",
      "tree": "1c7fe58e2c8a7c40c0f5b124b4c0bdc7136ce1c6",
      "parents": [
        "4a77fa3dcd9a6da622c77e25a3537f3a6a594863"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Aug 12 14:25:50 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Aug 12 14:48:15 2016 -0700"
      },
      "message": "Add test for misaligned section header\n\nMake sure linker does not crash when dlopening\nelf-file with odd section header offset.\n\nBug: http://b/30795430\nBug: http://b/30687964\nTest: bionic-unit-tests --gtest_filter\u003ddlfcn.dlopen_invalid*\nChange-Id: If59cb6da85b8752a69dc5687de85f9a9b74c92b4\n"
    },
    {
      "commit": "9700babc051f5839b4fc861587d63bf06bab6324",
      "tree": "9a98bffcda9eb741b937947d781e8bdf33025b93",
      "parents": [
        "3e35b26704b17139f6cd49d66d1be8e1a74d43dc"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Aug 10 18:54:06 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Aug 11 17:24:47 2016 -0700"
      },
      "message": "linker: disallow W + E PT_LOAD segments\n\nNo mapped segment from the elf file can be writable and\nexecutable at the same time. This commit adds a check\nfor malformed PT_LOAD segments in the elf-files.\n\nBug: http://b/30146890\nTest: run bionic-unit-tests --gtest_filter\u003ddlfcn.*\nChange-Id: Ia23acbe5a48780b65d7e4a50bbe024cd528079f4\n"
    },
    {
      "commit": "554374693408cd7c74d0cae596fca7349661edea",
      "tree": "3eb695917d4e37fc7f78a26202ec2119692fd964",
      "parents": [
        "a9fbaee593242b3257819c1603cdd157604247e7"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Jul 20 15:33:07 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Jul 20 16:10:19 2016 -0700"
      },
      "message": "Pass argc/argv/envp to dso constructors\n\nThe glibc implementation of the loader passes argc/argv/envp\nto all elf constructors. This change makes bionic linker\nbehave in the same way.\n\nBug: http://b/30145768\nChange-Id: I1c65c42aa5305a5b133c64b5748205bbde869e0e\nTest: run bionic-unit-tests --gtest_filter\u003ddl*:Dl*\n"
    },
    {
      "commit": "2ba1cf39ae6087249a839ec7b3793d4d4fa75438",
      "tree": "adf1d98570a548157112a307ccd58c17b5ffb320",
      "parents": [
        "5df5884743306f7b2ee437c293f4197101528a98"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue May 17 13:29:37 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue May 17 13:55:46 2016 -0700"
      },
      "message": "Fix dlopen of main executable by absolute path\n\nThis CL adds initialization of inode for the main executable\nwhich enables linker to resolve the correct soinfo when\napplication calls dlopen with absolute path to the\nmain executable.\n\nBug: http://b/28420266\nChange-Id: I102e07bde454bd44c6e46075e3faeeb5092830d8\n"
    },
    {
      "commit": "ba35b2d1b91459568133c1f4729a6fff8359e3d9",
      "tree": "4b485116f8c05472c6f9067e365bb29ea43df6d3",
      "parents": [
        "5e843fb7c4da3e45c099abd1cb72462dbd775078"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Apr 08 11:47:53 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Apr 08 11:50:42 2016 -0700"
      },
      "message": "Add test for IRELATIVE resolution with RTLD_LAZY\n\nEven though bionic linker does not support RTLD_LAZY - it\nis good to know that its behavior matches glibc.\n\nBug: http://b/27930475\nChange-Id: I1a47263aaa3dc44f9ac61fe77deb55a21e7f881a\n"
    },
    {
      "commit": "0a2ab0203cc12c9b4b7647b18caf0343af8ca1a4",
      "tree": "97bd399c67534672f8e4f99a37ff3015a25ea34c",
      "parents": [
        "66606ff84c079e95c03a61cc8bcfb08261a5a173"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Apr 05 17:12:01 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Apr 05 17:37:45 2016 -0700"
      },
      "message": "Do not test ifunc on mips\n\nThis commit fixes mips build\n\nBug: http://b/28009632\nChange-Id: I5c657b31947791aea4cc02a2fc4ede6d0ecde851\n"
    },
    {
      "commit": "c967d892456ae8d578dfc75f241d9af04f31811f",
      "tree": "4e99908cc061ba4d35a783b4fe2f0bac029b0f02",
      "parents": [
        "d15837a3b20ac2151481323d6d06e8c0355d3757"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Mar 30 16:44:48 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Apr 04 11:28:41 2016 -0700"
      },
      "message": "Enable ifunc test for arm\n\nBug: http://b/27930475\nChange-Id: I1f9e7c5b9ffabfd77ae6ebd534938aef39ec7987\n"
    },
    {
      "commit": "9cf99cbad89c8495828788ce693a99ced434f66f",
      "tree": "fa089662db2475f6e4e1260f029fcab805eb0a96",
      "parents": [
        "d3e5301a75256171199b23f6ba2c6651d05ce5f1"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Dec 11 14:22:24 2015 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Dec 16 15:24:13 2015 -0800"
      },
      "message": "linker: add dlvsym(3)\n\nThis changes implements dlvsym - dlsym for versioned symbols.\n\nBug: http://b/22865643\nChange-Id: Ic90a60d512104261a1416c43f9100f0d88e3b46f\n"
    },
    {
      "commit": "4a2c5aa30ceea2aaf8dcaee2feb4879978af4fce",
      "tree": "77265fd642a5bbfd2d0804f9922effca3f8de815",
      "parents": [
        "9d8632e1a76de6bd6abc853c0fbd6a2c9dc32cdc"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Dec 10 16:08:14 2015 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Dec 10 16:24:57 2015 -0800"
      },
      "message": "Move dlsym and dladdr implementation to linker.cpp\n\nBug: http://b/25716705\nBug: http://b/22865643\nChange-Id: If22fc1eda219f676b5fcc06490f7901d21d1749c\n"
    },
    {
      "commit": "6f2d3104c82f81c1f0123a3cfb25ae670841d0ba",
      "tree": "0e69cd361e7de4ce1e0129195901602787160997",
      "parents": [
        "fb7f45b6a3242c9a9a547705de08cf59e6b7f935"
      ],
      "author": {
        "name": "Lazar Trsic",
        "email": "Lazar.Trsic@imgtec.com",
        "time": "Tue Oct 13 16:43:00 2015 +0200"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Oct 13 10:57:41 2015 -0700"
      },
      "message": "Correctly resolve realpath for absolute paths\n\nIntroduced by: https://android-review.googlesource.com/174475\n\nChange-Id: I44e00040b28be167d5141454f919340afec6084e\n"
    },
    {
      "commit": "0cdef7e7f3c6837b56a969120d9098463d1df8d8",
      "tree": "f44b3e6464e03267081879a3155daf6ad096d905",
      "parents": [
        "83474cd38712c0f955174609a880deabebb27518"
      ],
      "author": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Mon Jul 06 17:56:31 2015 -0700"
      },
      "committer": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Tue Jul 07 10:56:06 2015 -0700"
      },
      "message": "Respect caller DT_RUNPATH in dlopen().\n\nWhen dlopen-ing a library, add the caller\u0027s DT_RUNPATH to the directory search\nlist. This fixes dlfcn.dt_runpath in bionic-unit-tests-glibc(32|64).\n\nBug: 21899363\nChange-Id: Ife6a7e192939292cf4dc291b7e6b95945761cde3\n"
    },
    {
      "commit": "aff18fd60804e177c319d04dd4c12f3ee1c0cba8",
      "tree": "4cbdec04aa3b8abfbf95ce90566151e3e0a7c668",
      "parents": [
        "a8993c994e45ec2dc00dcef15910560e22d67be9"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Jun 23 13:58:22 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Jun 23 13:58:22 2015 -0700"
      },
      "message": "Replace NULL with nullptr\n\nChange-Id: If66d0c5ae1ea1ed371b44e067d4ae59ac54a8842\n"
    },
    {
      "commit": "6865082ca6d887766c6651ed2d079dca56a99d32",
      "tree": "6884766e12440a9d2b5bfd99de77ee0972edaab8",
      "parents": [
        "f3463db7eb37cb7d9dd5e32dfb5b2bd24f808fb3"
      ],
      "author": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Wed Jun 10 13:38:39 2015 -0700"
      },
      "committer": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Wed Jun 10 16:44:22 2015 -0700"
      },
      "message": "Support DT_RUNPATH in the linker.\n\nOnly $ORIGIN substitution is supported, but not linux-specific $LIB\nor $PLATFORM.\n\nChange-Id: I5814a016c7c91afba080230a547a863686e7c2b9\n"
    },
    {
      "commit": "f439b5a3186ca0fef1092f45770abc716da9d87a",
      "tree": "d85508ffcefb14495e90d6e0669440558f753367",
      "parents": [
        "d70891687d742414d457e41a998726e5eb0a09bd"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Sat May 30 13:04:39 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Jun 01 14:33:43 2015 -0700"
      },
      "message": "Fix dlsym(handle_of_main_executable, ...)\n\n  According to man dlopen(3) and posix docs in the case when si is handle\n  of the main executable we need to search not only in the executable and its\n  dependencies but also in all libraries loaded with RTLD_GLOBAL.\n\n  see also: http://pubs.opengroup.org/onlinepubs/9699919799/functions/dlopen.html\n\nBug: http://b/21528224\nBug: http://b/17512583\nBug: https://code.google.com/p/android/issues/detail?id\u003d173822\nChange-Id: Ib2801367ba48b6f3704da89a6d9f5e6911430013\n"
    },
    {
      "commit": "697bd9fd38ab078a117ad9a5777cf286c467b9b9",
      "tree": "f34ace69fa45951dbcd215dea1c040b549bf3c6f",
      "parents": [
        "75f2dfca653dd57b6f65bf898ec4f45d87d18926"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue May 12 11:12:27 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue May 12 13:46:40 2015 -0700"
      },
      "message": "Improved dlsym tests and fixes to linker\n\n Answers the question: what if dependent library\n was preloaded with RTLD_LOCAL flag.\n\n Also add test for RTLD_NEXT within local_group.\n\nBug: http://b/17512583\nChange-Id: I79e081e68b3a8c0ed8980d4275a06515fea94ec9\n"
    },
    {
      "commit": "6612d7a34768484eb002c07a1c7df1bd85c0997a",
      "tree": "fcc60bf45254bf181ed12930c162b270a5cd6908",
      "parents": [
        "2bb93482a7793640205ade2f7316db5b3f5cac19"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Apr 24 16:26:03 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Apr 24 16:26:03 2015 -0700"
      },
      "message": "Enable dlsym_df_1_global test for arm/arm64\n\nChange-Id: I1fdebced93175cb14053e2239e79f97239fc2dc2\n"
    },
    {
      "commit": "2a815361448d01b0f4e575f507ce31913214c536",
      "tree": "82b941e908b54d6d48ef04495ff2808aa2823ae1",
      "parents": [
        "c6ccdfaf1ff4665ec96962863054263510d73e7b"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Apr 09 13:42:33 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Apr 16 17:57:30 2015 -0700"
      },
      "message": "Support symbol versioning\n\nBug: http://b/20139821\nChange-Id: I64122a0fb0960c20b2ce614161b7ab048456b681\n"
    },
    {
      "commit": "ef25592f14d23ce6294ea103e9edf894779d141d",
      "tree": "5c6bd7e34adb984bb2d63f9f115ce6d85b0803f5",
      "parents": [
        "598493e725e0298ae11ddbdee62c3a7007eb503c"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Apr 08 11:53:08 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Apr 09 14:56:26 2015 -0700"
      },
      "message": "Fix dl* tests to run-on-host\n\nBug: http://b/20121152\nChange-Id: I1e1f41d885c75dbb26f91565a53a15d62ef72ce6\n"
    },
    {
      "commit": "aae859cc3ca127d890e853cbf12b731e05624a22",
      "tree": "159e996dd6756b99fe70371e99a69ec6040e851b",
      "parents": [
        "e686df8d839216460f02cf7db6c4e26a13e49afd"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Mar 31 11:14:03 2015 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Apr 06 21:15:43 2015 +0000"
      },
      "message": "Add realpath for soinfo\n\n  This change adds realpath to soinfo and\n  extends limit on filenames from 128 to PATH_MAX.\n\n  It also removes soinfo::name field, linker uses\n  dt_soname instead.\n\nBug: http://b/19818481\nBug: https://code.google.com/p/android/issues/detail?id\u003d80336\nChange-Id: I9cff4cb5bda3ee2bc74e1bbded9594ea7fbe2a08\n"
    },
    {
      "commit": "76ac1acdacc045cf1e56504e011dca68137dcd61",
      "tree": "9eb3bee0f92ae74f1eba59efad4c037d50aa3dcd",
      "parents": [
        "ab7c79e22e5495a2aa171047a044ce1037e461a9"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Apr 01 14:45:10 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Apr 02 14:12:45 2015 -0700"
      },
      "message": "Look into local group on dlsym with RTLD_DEFAULT\n\n  Fix dlsym to look into local group when called with\n  RTLD_DEFAULT and RTLD_NEXT.\n\nBug: 17512583\nChange-Id: I541354e89539c712af2ea4ec751e546913027084\n"
    },
    {
      "commit": "52393a56335435efc605aff66aca3145873e1e56",
      "tree": "db601ac602f90c06269d41fb653c15797b2d7188",
      "parents": [
        "6943f2968cb6054f8874e30b309985b41a37e2e0"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Mar 18 22:50:01 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Mar 18 22:50:01 2015 -0700"
      },
      "message": "Move open from zip tests to dlext\n\n To avoid building them for glibc.\n\n Also replace snprintf with std::string\n\nChange-Id: I12e1d2e4ab46ff5af6c05453da67842e0d838fc5\n"
    },
    {
      "commit": "618f1a36f8635fa0f2d60c621fbf79ead2c3f3de",
      "tree": "22f103645d9fcd4568dae35f9c76262541bc85bb",
      "parents": [
        "c6fbbb42e69bef4f058d0cbfaaaf3cbf51f95694"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Mar 17 20:06:36 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Mar 18 18:14:30 2015 -0700"
      },
      "message": "Implement lookup by DT_SONAME\n\n  This CL also fixes SEARCH_NAME hack and resolves\n  https://code.google.com/p/android/issues/detail?id\u003d6670\n  once and for all.\n\nBug: https://code.google.com/p/android/issues/detail?id\u003d6670\nChange-Id: I9b8d6a672cd722f30fbfbb40cdee8d9b39cfe56e\n"
    },
    {
      "commit": "aef719510a57274e73ca02ab5ecdc5bf17d3985c",
      "tree": "a3161800a6a0082e59df412a6d4d712041383fc2",
      "parents": [
        "5f8ddf69e59b13653d016e236599b95daf6501a8"
      ],
      "author": {
        "name": "Simon Baldwin",
        "email": "simonb@google.com",
        "time": "Fri Jan 16 13:22:54 2015 +0000"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Mar 16 17:50:50 2015 -0700"
      },
      "message": "Support loading shared libraries from zip files\n\nAdd code to support loading shared libraries directly from within\nAPK files.\n\nExtends the linker\u0027s handling of LD_LIBRARY_PATH, DT_RUNPATH, etc\nto allow elements to be either directories as normal, or ZIP\nformat files.  For ZIP, the ZIP subdirectory string is separated\nfrom the path to file by \u0027!\u0027.\n\nFor example, if DT_NEEDED is libchrome.so and Chrome.apk is the\nAndroid ARM APK then the path element\n\n  /system/app/Chrome.apk!lib/armeabi-v7a\n\nwould cause the linker to load lib/armeabi-v7a/libchrome.so\ndirectly from inside Chrome.apk.  For loading to succeed,\nlibchrome.so must be \u0027stored\u0027 and not compressed in Chrome.apk,\nand must be page aligned within the file.\n\nMotivation:\n  Chromium tracking issue:\n  https://code.google.com/p/chromium/issues/detail?id\u003d390618\n\nBug: 8076853\nChange-Id: Ic49046600b1417eae3ee8f37ee98c8ac1ecc19e7\n"
    },
    {
      "commit": "cb0443c0fa07e4c049f426e3041894df522732df",
      "tree": "381413df3bfbe60beb5b974fa0b81a69c13c6bbb",
      "parents": [
        "169a84f980d7a55c5f829cdd53a3eaba8f968442"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Mar 16 14:15:46 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Mar 16 14:20:57 2015 -0700"
      },
      "message": "Remove obsolete test_isolated wrapper function\n\n We already run all of our tests in isolated mode.\n\nChange-Id: I8236baa302b1026a9b4a1c33a4aa65e223771bc7\n"
    },
    {
      "commit": "279a22f96e639e76c801bdb39aee5576f2280fe0",
      "tree": "23032a2fff43e6e8e3100d34c21fa1fac8172a65",
      "parents": [
        "7f3d65de8cf2920981d73adee278c0d7bee79170"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Jan 23 12:03:53 2015 -0800"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Jan 23 16:30:34 2015 -0800"
      },
      "message": "Minimize calls to mprotect\n\n  Implement refcounter based data protection guard\n  to avoid unnecessary calls to mprotect when dlopen/dlclose\n  is called from a constructor.\n\nBug: 19124318\nBig: 7941716\nChange-Id: Id221b84ce75443094f99756dc9950b0a1dc87222\n"
    },
    {
      "commit": "bfa88bca5ca387d6b3560074050856527cfc7514",
      "tree": "d4738b581edd115f85c9b225a1156f2254ca4eb7",
      "parents": [
        "6d634f9baaf804a91c97e019c832c1e9611a903a"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Dec 16 11:40:46 2014 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Dec 16 19:46:45 2014 +0000"
      },
      "message": "Add another test for weak-reference\n\n  This one covers undefined weak reference in .so\n  referenced via JUMP_SLOT relocation.\n\nBug: 17526061\nChange-Id: Ib8764bd30c1f686c4818ebbc6683cf42dee908b2"
    },
    {
      "commit": "ab972b9adf8789a9e1b03129cd7f0c22e6bba117",
      "tree": "33b816d65afbcd622e38730b7516ba59ddb48fac",
      "parents": [
        "f64c43ba6c9244c50e904961dc432f04b1dfcfd9"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Sat Nov 29 13:57:41 2014 -0800"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Dec 02 10:54:26 2014 -0800"
      },
      "message": "Count references for groups instead of instances\n\n  Count references on the group level to avoid\n  partially unloading function that might be\n  referenced by other libraries in the local_group\n\n  Bonus: with this change we can correctly unload recursively\n  linked libraries. is_recursive check is removed.\n\n  Also dynamic executables (not .so) with 0 DT_NEEDED libraries\n  are now correctly linked.\n\nChange-Id: Idfa83baef402840599b93a875f2881d9f020dbcd\n"
    },
    {
      "commit": "7699d13a74769fe8063fcca95588c87c571226c0",
      "tree": "731b4a69cb9b890e74c37e0a04df00c4fa7a6f93",
      "parents": [
        "27aa9c5b50cc3e979fc67c1bf5296dfd725c8540"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Nov 18 17:26:31 2014 -0800"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Nov 19 10:39:05 2014 -0800"
      },
      "message": "Yet another relocation test\n\n This time we check if a -\u003e b -\u003e c function in \u0027a\u0027 relocates against\n implementation in \u0027c\u0027.\n\nChange-Id: I528180c3efd346bd447ea0237e5a8a0ac3cc031f\n"
    },
    {
      "commit": "b3356773c6b5fbbbb26d22b3d6c6e0e598840e44",
      "tree": "df02a83689195961585f09e5b041f39892371fd1",
      "parents": [
        "c490b5029fdc96f1dbf00d02d0ad63a03d8cd4f3"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Nov 14 11:19:22 2014 -0800"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Nov 14 11:19:22 2014 -0800"
      },
      "message": "Add test for --hash-style\u003dsysv\n\n With build system switched to gnu-hash we need\n a test for sysv-hashed library.\n\nChange-Id: I34adc216fa79199aa46066cf13fcc1c1f2581f0e\n"
    },
    {
      "commit": "ec18ce06f2d007be40ad6f043058f5a4c7236573",
      "tree": "0e22f0d9ad23e06303584d05483ff5a881afe20b",
      "parents": [
        "e5cabca516252addb5e305c8e1e0f35cafbcafbe"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Sun Nov 09 19:27:20 2014 -0800"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Nov 12 16:38:12 2014 -0800"
      },
      "message": "Add support for hash-style\u003dgnu\n\nChange-Id: I171434a587420895feac8a9b1ad2342087197568\n"
    },
    {
      "commit": "4e446b19d8710cd2004785db4a00f18f249fe73f",
      "tree": "1c7618642ff6c6ec18ed49fbe1e64546e522f3b3",
      "parents": [
        "f33ad400230fa1f16ba4501efb60a1b6035e06ca"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Oct 31 17:27:02 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Oct 31 17:27:02 2014 -0700"
      },
      "message": "Fix arm64 and arm builds.\n\nChange-Id: I2c8c41626768e792f27a2616f2cd5ae66606319d\n"
    },
    {
      "commit": "d225a5e65223b375a63548c4b780f04d8f3d7b60",
      "tree": "a98d29bee4e948053033be67fa8e88b102beefce",
      "parents": [
        "d50495a56760fdc116b7484bcdf1183c76db9b37"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Aug 28 14:12:12 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Oct 31 11:39:51 2014 -0700"
      },
      "message": "Fix symbol lookup order during relocation\n\n  Relocate symbol against DF_1_GLOBAL shared libraries\n  loaded before this shared library. This includes\n  main executable, ld_preloads and other libraries\n  that have DF_1_GLOBAL flag set.\n\nBug: 2643900\nBug: 15432753\nChange-Id: Ia788748be59b739d1c7e62b978e7e255f9e65c7b\n"
    },
    {
      "commit": "cfa97f172dc1b10d650fefbb6ccffd88ce72a5fb",
      "tree": "f811c34ec0dde4eed15c64d33b4a89c8e5a00030",
      "parents": [
        "cf8ea37fc91e23d37b3c5873b5e152ccae293f03"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Oct 21 09:23:18 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Oct 23 12:13:54 2014 -0700"
      },
      "message": "Fix relocation to look for symbols in local group\n\n  The local group is a sequence of libraries in default (breadth-first)\n  order. It allows RTLD_LOCALLY loaded library to correctly relocate\n  symbols within its group (see test-cases).\n\n  Local group lookup is performed after main executable and ld_preloads.\n\nBug: 2643900\nBug: 15432753\nChange-Id: I9bb013b46d17dbb5cbdfb8fef26f552748385541\n"
    },
    {
      "commit": "1b20dafdbe65e43b9f4c95057e8482380833ea91",
      "tree": "deb1f41801011c4376ba2d2dfc1edf127329c3d4",
      "parents": [
        "1f7d5ac53854a09bbcace08b3a1d1b9cf3f2eed3"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon May 19 15:06:58 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Oct 01 11:09:37 2014 -0700"
      },
      "message": "Add RTLD_NODELETE flag support\n\nBug: https://code.google.com/p/android/issues/detail?id\u003d64069\nChange-Id: Ie5f90482feae86391172be4b32d6cb7d76f446fb\n"
    },
    {
      "commit": "e8ba50fe0d51fbefee1a8f5bb62bf51d841512c8",
      "tree": "9e7af562f02dea98c8d0f28b88b5e7b2bf9c0975",
      "parents": [
        "0b8f6d592ac20ec81dbc96766123c67655f34842"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Sep 15 17:00:10 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Sep 15 17:39:48 2014 -0700"
      },
      "message": "Fix dlsym() to take into account RTLD_GLOBAL/LOCAL\n\n  Symbols from libraries opened with RTLD_LOCAL (default)\n  should not be visible via dlsym(RLTD_DEFAULT/RTLD_NEXT, .)\n\nBug: 17512583\nChange-Id: I1758943081a67cf3d49ba5808e061b8251a91964\n"
    },
    {
      "commit": "eb27bbae8f0edc6b62ca2db73256c7fb53b9e9bf",
      "tree": "19a937c05bf7cfc1530232cba522ab8413c349c8",
      "parents": [
        "95b0c6a9407d7a4084d956e273ad1697550452d3"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Sep 15 14:13:24 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Sep 15 15:03:15 2014 -0700"
      },
      "message": "Add dlfcn_test to glibc test suite.\n\nChange-Id: I955e4f7dfcc23ea5c767f967b3532dc31663b876\n"
    },
    {
      "commit": "d74aa580354037b9972524e9d654c0a336974838",
      "tree": "189b7fade3764e5105c37bc53b5366e15037fd53",
      "parents": [
        "aad92067bf4eecda81a4c331ee4dec70483c5104",
        "a6ac54a215d6b64f5cc5a59b66c1dbfbb41ea9f5"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Sep 12 16:55:42 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 12 16:55:42 2014 +0000"
      },
      "message": "Merge \"Fix unload of recursively linked library\""
    },
    {
      "commit": "66bbf1595c0fc25d4bc47457d8020b11e135996d",
      "tree": "9464625e75da5be80863865837e5f04be8f618c1",
      "parents": [
        "8d8a789c49ffb6b71e4b8f34df937cfaaff86e40",
        "d9ff7226613014056c9edd79a68dc5af939107a0"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Sep 12 16:50:04 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 12 16:50:05 2014 +0000"
      },
      "message": "Merge \"Refactoring: C++11 style DISABLE_ bionic marcos\""
    },
    {
      "commit": "a6ac54a215d6b64f5cc5a59b66c1dbfbb41ea9f5",
      "tree": "9c449ba5033138dc2fb5b80268bbb01a83e5aa4a",
      "parents": [
        "8d8a789c49ffb6b71e4b8f34df937cfaaff86e40"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Sep 09 10:21:42 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Sep 11 22:40:48 2014 -0700"
      },
      "message": "Fix unload of recursively linked library\n\n  Expanded test for recursive libs. Fixed bug with unnecessary\n  soinfo_free of already loaded library.\n\nChange-Id: I2cc19f2650c8b12a35feeac127ef608ebba44d88\n"
    },
    {
      "commit": "9aea164457c269c475592da36b4655d45f55c7bc",
      "tree": "35f6a459b79e751d6833b2ed765b9d6c17f6672c",
      "parents": [
        "c71483c0b38a6b4f2675f0bffa221dcf175c34ac"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Sep 11 15:16:03 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Sep 11 16:30:45 2014 -0700"
      },
      "message": "Add IFUNC support for arm64 and IRELATIVE reloc\n\n There are number of changes in the way IFUNC related relocations are done:\n 1. IRELATIVE relocations are now supported for x86/x86_64 and arm64.\n 2. IFUNC relocations are now relying on static linker to generate\n    them in correct order - this removes necessety of additional\n    relocation pass for ifuncs.\n 3. Related to 2: rela?.dyn relocations are preformed before .plt ones.\n 4. Ifunc are resolved on symbol lookup this approach allowed to avoid\n    mprotect(PROT_WRITE) call on r-x program segments.\n\nBug: 17399706\nBug: 17177284\nChange-Id: I414dd3e82bd47cc03442c5dfc7c279949aec51ed\n"
    },
    {
      "commit": "d9ff7226613014056c9edd79a68dc5af939107a0",
      "tree": "9866b50193d3886937a4ea13a5c3f88de7600f20",
      "parents": [
        "3c3624f3df14590e7213d35c3b39a0a11c7d2d34"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Sep 08 16:22:22 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Sep 08 17:51:31 2014 -0700"
      },
      "message": "Refactoring: C++11 style DISABLE_ bionic marcos\n\n  Enable the -std\u003dgnu++11 flag for libstdc++ static and\n  dynamic libs.\n\n  ScopeGuard uses DISABLE_ macros instead of \u0027\u003d delete\u0027;\n\nChange-Id: I07e21b306f95fffd49345f7fa136cfdac61e0225\n"
    },
    {
      "commit": "14669a939d113214a4a20b9318fca0992d5453f0",
      "tree": "160b15f09cb7edc2da5b02e47cf3d5ce1461df97",
      "parents": [
        "320a01d51693408dad859094ca52e5f315ff1d15"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Sep 05 16:42:53 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Sep 08 13:02:50 2014 -0700"
      },
      "message": "Load libraries in breadth-first order\n\n  This patch fixes the problem with symbol search order\n  for dlsym(RTLD_DEFAULT/RTLD_NEXT, .) by loading libraries\n  and ld_preloads in correct order.\n\nBug: https://code.google.com/p/android/issues/detail?id\u003d74255\nChange-Id: If1ba5c807322409faa914e27ecb675e2c4541f0d\nAttempt: 2\n"
    },
    {
      "commit": "498eb18b82a425f9f30132e4832f327b2ee0e545",
      "tree": "08ae8d60c8f659139aba906ccfe6df4bc85afdb5",
      "parents": [
        "b3ebfecdae05e29062bf4d0234239a54a2733ce0"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Sep 05 14:57:59 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Sep 05 16:27:54 2014 -0700"
      },
      "message": "Revert \"Load libraries in breadth-first order\"\n\nThis reverts commit a3ad450a2e3fb6b3fe359683b247eba20896f646.\n\nChange-Id: Ia2b838ad2159c643b80c514849582f4b4f4f40e5\n"
    },
    {
      "commit": "b2a30ee8d209154efc367db11b4167a5d6db605f",
      "tree": "3c36591245f31a062f73ad4b18028505be956229",
      "parents": [
        "8adace5f2c185bd616f79159eaf90d2982157069"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Sep 04 18:23:00 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Sep 05 16:01:47 2014 -0700"
      },
      "message": "Fix order of soinfo links (repairs libcxx tests).\n\nChange-Id: Iee9de09657351cd6a7512784ca797e4b84cdd98b\n"
    },
    {
      "commit": "1737b159374468a21859d97d8be70a726af0ec9e",
      "tree": "652d1b919ca6e2918d21e02f1749b83cbf1e92f5",
      "parents": [
        "8f3b8f523ed594b48d28ca0b9a2651d209f29e26",
        "a3ad450a2e3fb6b3fe359683b247eba20896f646"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Sep 04 00:59:22 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 04 00:59:23 2014 +0000"
      },
      "message": "Merge \"Load libraries in breadth-first order\""
    },
    {
      "commit": "a3ad450a2e3fb6b3fe359683b247eba20896f646",
      "tree": "46d55ca77bbe24d4834444ed21aa146bf6750e37",
      "parents": [
        "ec95a9cf11f7c4d2211c61da7ce05262a54409d1"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Jul 29 14:21:45 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Sep 03 15:06:14 2014 -0700"
      },
      "message": "Load libraries in breadth-first order\n\n  This patch fixes the problem with symbol search order\n  for dlsym(RTLD_DEFAULT/RTLD_NEXT, .) by loading libraries\n  and ld_preloads in correct order.\n\nBug: https://code.google.com/p/android/issues/detail?id\u003d74255\nChange-Id: I4cf84c70dbaabe99310230dfda12385ae5401859\n"
    },
    {
      "commit": "319356e39cc91b4eb94b1974756f1cfc0a137351",
      "tree": "46f795b8b441d965cc9495d415869dfb8864d4e6",
      "parents": [
        "ec95a9cf11f7c4d2211c61da7ce05262a54409d1"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Sep 02 17:31:44 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Sep 02 17:31:44 2014 -0700"
      },
      "message": "Add some missing dlclose(.)\n\nBug: 17358010\nChange-Id: I9e427b7681f1a8fe890b0b47812d9e65ab95c792\n"
    },
    {
      "commit": "57b7a6110e7e8b446fc23cce4765ff625ee0a105",
      "tree": "e2578675ae1435988a645a32182ced476f802ec5",
      "parents": [
        "a4a8c4feb8cf3cebf8aceace70e699e128095b5c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 25 17:26:50 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 26 10:36:38 2014 -0700"
      },
      "message": "Fix pthread_getattr_np for the main thread.\n\nOn most architectures the kernel subtracts a random offset to the stack\npointer in create_elf_tables by calling arch_align_stack before writing\nthe auxval table and so on. On all but x86 this doesn\u0027t cause a problem\nbecause the random offset is less than a page, but on x86 it\u0027s up to two\npages. This means that our old technique of rounding the stack pointer\ndoesn\u0027t work. (Our old implementation of that technique was wrong too.)\n\nIt\u0027s also incorrect to assume that the main thread\u0027s stack base and size\nare constant. Likewise to assume that the main thread has a guard page.\nThe main thread is not like other threads.\n\nThis patch switches to reading /proc/self/maps (and checking RLIMIT_STACK)\nwhenever we\u0027re asked.\n\nBug: 17111575\nSigned-off-by: Fengwei Yin \u003cfengwei.yin@intel.com\u003e\nChange-Id: I1d4dbffe7bc7bda1d353c3a295dbf68d29f63158\n"
    },
    {
      "commit": "9598b8c415e2fa9f240508185fe8c964b83f538d",
      "tree": "f44be8df337dcb693baaf6aaa52de1ccd952bdcf",
      "parents": [
        "3157211849f808f89a7f1465fd60d6b41917ee4f"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Aug 21 13:54:03 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Aug 21 14:24:13 2014 -0700"
      },
      "message": "Run constructors before resolving ifunc functions\n\nBug: 17177284\nChange-Id: I5714b9bc2d1ca8f8711806bfb68da3d524213e99\n"
    },
    {
      "commit": "02aa70589d22fa9b65da43de705d6de2715870c6",
      "tree": "ddad8b09f163b21907f1d660fc52149f9a730aba",
      "parents": [
        "0baf2ca34c7d9ec067b1f33bad69782c2dedc231"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Aug 18 15:08:51 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Aug 19 05:19:53 2014 -0700"
      },
      "message": "Revert \"Add support for protected local symbol lookup.\"\n\nThis reverts commit d97e9f546ea195686a78e539315b273393609b9e.\n\nBug: 17107521\n(cherry picked from commit 9419420919ea846bbad5510850c7aaec95021648)\n\nChange-Id: I1a6df946ac8075699e77d68ffa6ac4a21b88e4bf\n"
    },
    {
      "commit": "c5a13efa9bc4264be0a9a9e37c00633af01584ed",
      "tree": "4a1678bd154220d7e8d13e6739037fb48635006a",
      "parents": [
        "f2d8c357eec1bbc4e7441942dfc338ad1d9a207a"
      ],
      "author": {
        "name": "Brigid Smith",
        "email": "brigidsmith@google.com",
        "time": "Wed Jul 23 11:22:25 2014 -0700"
      },
      "committer": {
        "name": "Brigid Smith",
        "email": "brigidsmith@google.com",
        "time": "Fri Aug 08 11:29:35 2014 -0700"
      },
      "message": "Added test for ifunc support in dynamic linker.\n\nifuncs now work in i386 and x86_64 when called in the same library as\nwell as in a different library.\n\nBug:6657325\nChange-Id: Ic0c48b1b0a76cb90f36c20c79f68294cc3fd44a1\n"
    },
    {
      "commit": "aa0f2bdbc22d4b7aec5d3f8f5f01eaeaa13414c2",
      "tree": "3f70916c79cb9bff5f859d846e9e06c26a8cc2e6",
      "parents": [
        "a7dc7600fe1be1f3fd61856b407bb7065307e711"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Jul 28 17:32:20 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Jul 29 14:35:13 2014 -0700"
      },
      "message": "Fix dlsym(3) to do breadth first search.\n\n  dlsym(3) with handle !\u003d RTLD_DEFAULT|RTLD_NEXT performs\n  breadth first search through the dependency tree.\n\nBug: 16653281\nChange-Id: I017a6975d1a62abb0218a7eb59ae4deba458e324\n"
    },
    {
      "commit": "f8846a45878faa9eb51fab3a2b347e9a36ecd250",
      "tree": "f9c3dcb48c8d435fa5c50ddbfeba28c84251c369",
      "parents": [
        "006e0770ffaa57d88f407fad8d9b78ea0efa9c6a"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Jul 08 21:21:34 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Jul 08 21:21:34 2014 -0700"
      },
      "message": "Add test for constructor function.\n\nChange-Id: I0ad26d617f00cdd6c2241d613be39a1d16918612\n"
    },
    {
      "commit": "ce0ba3c70634d5fe64b9a298d8a305d85bd1e6ac",
      "tree": "9b18b339106f894734697168f82901ad0ada90b7",
      "parents": [
        "4d299a2cf7880789e658f427196d1ca9fe02a9bc"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Jul 01 19:09:49 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Jul 01 19:13:01 2014 -0700"
      },
      "message": "Disable local/protected symbol test for lp64\n\n  * Static linker optimizes protected local symbol\n    out of existence, which leads to test failure.\n    Disabling it for now.\n\nChange-Id: I8de327e5073f98b64639f7a0bba3a273aa419884\n"
    },
    {
      "commit": "d06ee1d6db6165126161044fb662301bf9f04b3a",
      "tree": "bc8cd27a4b4b817033abbe32aa8ca59aa7bf49e9",
      "parents": [
        "105ef36c67baeebd2fd9c24b6140953afba4f160"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 01 17:17:46 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 01 17:17:46 2014 -0700"
      },
      "message": "Build all bionic test files -Werror and fix our one warning.\n\nChange-Id: I62bb0528fd1bcb9aa4c61e44c78158a592690fc7\n"
    },
    {
      "commit": "d97e9f546ea195686a78e539315b273393609b9e",
      "tree": "07ee416c8dc3795436726a3f820b44c939191c5d",
      "parents": [
        "4ec3bc83c632132bda915d00b5bc716dc6ab8dd8"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Sun Jun 29 12:28:37 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Jul 01 10:25:54 2014 -0700"
      },
      "message": "Add support for protected local symbol lookup.\n\nBug: http://code.google.com/p/android/issues/detail?id\u003d66048\nChange-Id: Ib334223df27adad9477fb241ab099c5e26df4a7d\n"
    },
    {
      "commit": "ce44166c737b6737c3a0820bef10b074a5e36cf8",
      "tree": "a4d48a5f20e3eddd69205504086e980ed6c675c5",
      "parents": [
        "1d2b4c022c419e1e85336fa44e644772eefb8b64"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Jun 17 15:56:38 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Jun 17 16:18:18 2014 -0700"
      },
      "message": "Fix weak function lookups\n\n * Linker now correctly resolves function defined\n   with __attribute__((weak)).\n\nBug: https://code.google.com/p/android/issues/detail?id\u003d70206\nChange-Id: I82efb905676c25fefb1b11a13f5fecb0f1384657\n"
    },
    {
      "commit": "44adf93b8eddb3a7965a3e9abc189408a1f5a7ea",
      "tree": "93b2439f1276a00d2133cb7bfd56ec6c4bdf61c3",
      "parents": [
        "eea59ea21e04806fff48fdf4ad5ba117dcb0babb"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu May 22 09:49:24 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu May 22 10:06:32 2014 -0700"
      },
      "message": "Fix dlsym_failure NULL handle test\n\n * RTLD_DEFAULT !\u003d (void*)0 only for bionic32\n\nChange-Id: I3b3758835cf4085b0f899e2b62861591411aec13\n"
    },
    {
      "commit": "ca1c80220e9b16fde7a761ca1c2c63dbe8071e0f",
      "tree": "b0b2db09c7224718ce62921c058fb8b204b04a2c",
      "parents": [
        "3d4a7b02cc7948c94932c4d71c68f864457d59d6"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed May 21 22:42:24 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed May 21 22:42:24 2014 -0700"
      },
      "message": "Removed dlsym handle !\u003d NULL check for lp64\n\n * Removed unnecessary NULL check in dlsym\n * Fixed dlsym_failure test to account for\n   correct RTLD_DEFAULT value\n * Added temporary check for legacy RTLD_DEFAULT\n   value for non-yet-recompiled binaries\n\nBug: 15146875\nChange-Id: I089fa673762629f5724b6e4fbca019d9cfc39905\n"
    },
    {
      "commit": "b648a8a57ee42533a5bf127225a252f73ca2cbbc",
      "tree": "09fdf06c6e8d5e6985107f4e8fdb2055c5bb6a6f",
      "parents": [
        "0b9a72ce1124f17d514b93c0d26dea76ce8069f0"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon May 19 15:06:58 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue May 20 12:02:24 2014 -0700"
      },
      "message": "Add RTLD_NOLOAD support and some related changes.\n\n * Aligned RTLD_ values with glibc for lp64\n * dlopen supports RTLD_NOLOAD flag\n * soinfo_unload calls find_library(.., RTLD_NOLOAD)\n   instead of naive find_loaded_library_by_name()\n * dlopen changed to add child to caller soinfo instead\n   of somain.\n\nBug: https://code.google.com/p/android/issues/detail?id\u003d64069\nChange-Id: I1a65f2c34f3e0edc6d2c41a2e408b58195feb640\n"
    },
    {
      "commit": "1728b2396591853345507a063ed6075dfd251706",
      "tree": "7083cd234073afa5179b94b3d978550c890af90c",
      "parents": [
        "bac795586bbc5dcbe886d8d781710f60c4c19d9b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 14 10:02:03 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 14 10:02:03 2014 -0700"
      },
      "message": "Switch to g_ for globals.\n\nThat\u0027s what the Google style guide recommends, and we\u0027re starting\nto get a mix.\n\nChange-Id: Ib0c53a890bb5deed5c679e887541a715faea91fc\n"
    },
    {
      "commit": "063525c61d24776094d76971f33920e2a2079530",
      "tree": "de279e25b05c43dbb06bc3ceb49f23bed3874377",
      "parents": [
        "a26dd781fe675cf94c62183da27622eb83ff6fa7"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue May 13 11:19:57 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue May 13 11:19:57 2014 -0700"
      },
      "message": "Consistently use #if defined(__BIONIC__) in tests.\n\nI\u0027ve also switched some tests to be positive rather than negative,\nbecause !defined is slightly harder to reason about and there are\nonly two cases: bionic and glibc.\n\nChange-Id: I8d3ac40420ca5aead3e88c69cf293f267273c8ef\n"
    },
    {
      "commit": "7db180919c335287b201e859faa8ee0dbe281cde",
      "tree": "c01880b72bdcd67dfeae29644b782a525d4aa423",
      "parents": [
        "b69645248887ddb88517b07c1617d390fdce9c9f"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu May 08 12:27:25 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu May 08 14:28:34 2014 -0700"
      },
      "message": "Test dlopen with symlinked .so files\n\nBug: 9741592\nChange-Id: I68c59d6f4e690136395c3dc3de13f99ce38de528\n"
    },
    {
      "commit": "2ed710976cb0ace31aab565c95a42d4e75623894",
      "tree": "d9d2356abcd86cf2249fd318f8bd48fb5fbf002f",
      "parents": [
        "6768c1ee510a8e93175b54e93cb583f009766eed"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Nov 11 15:48:06 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Nov 11 15:48:06 2013 -0800"
      },
      "message": "Add extra regression tests for an already-fixed dynamic linker bug.\n\nBug: https://code.google.com/p/android/issues/detail?id\u003d61799\nChange-Id: I84af68f8430a06e999297c2e57e06ecb45adf81e\n"
    },
    {
      "commit": "ebd506c69e12b6dcaf5be94cc8ed1b53af299f9f",
      "tree": "79913ebffdfcc7a4b20d78a477b9d69340d477f9",
      "parents": [
        "cc9b7456b66b7c7c218a9d1f00d7aef1f5ecf409"
      ],
      "author": {
        "name": "Sergey Melnikov",
        "email": "sergey.melnikov@intel.com",
        "time": "Thu Oct 31 18:02:12 2013 +0400"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 31 15:06:20 2013 -0700"
      },
      "message": "Fix linker crashes during unknown symbol lookup\n\nIntegration of kernel VDSO into internal bionic data structures using\ncommon functions.\nFix for dl_iterate_phdr function: the function provides incorrect\naddress of object in case of nonzero virtual and base addresses.\nLocation in address space of a particular program header should be\ncalculated using the formula:  addr \u003d base_addr + virtual_addr.\n\nSigned-off-by: Sergey Melnikov \u003csergey.melnikov@intel.com\u003e\nChange-Id: Ie2ab4257fd456242aab8afed0bd5bd6b29e81d6d\n"
    },
    {
      "commit": "a43e906221a3e9c70a66118a8692cd46f77e144e",
      "tree": "1fd6b3a2cdd50c15291c991644dd295371712c35",
      "parents": [
        "7e22db037e6d9ab117bf5d50c7aca85fe74941a0"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jan 07 14:18:22 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jan 07 14:44:36 2013 -0800"
      },
      "message": "Don\u0027t test GNU-style ELF hashes on MIPS.\n\nThe MIPS toolchain can\u0027t generate them because they\u0027re incompatible\nwith the MIPS ABI (which requires .dynsym match the GOT, while GNU-style\nrequires .dynsym to be sorted by hash code), so there\u0027s nothing to test.\n\nChange-Id: I2220f452fe6fe595ec1312544cc741dd390a36a5\n"
    },
    {
      "commit": "e66190d2a97a713ae4b4786e60ca3d67ab8aa192",
      "tree": "0bacac6bbb8916d803e2b6f2c991030790e0f718",
      "parents": [
        "4c4b08a32eace878e4780ee340a57c43be950159"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Dec 18 15:57:55 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Dec 18 15:57:55 2012 -0800"
      },
      "message": "Check for unknown flags passed to dlopen(3).\n\nChange-Id: I56f4aab0e5a1487bc32d2c4d231e8bd15c4ac8da\n"
    },
    {
      "commit": "4c4b08a32eace878e4780ee340a57c43be950159",
      "tree": "aa349c2c944131991af7fcbcd91b1ab54c9c6b4e",
      "parents": [],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Dec 11 17:18:58 2012 -0800"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 11 17:18:58 2012 -0800"
      },
      "message": "Merge \"Fix \u003cendian.h\u003e and \u003csys/endian.h\u003e.\""
    }
  ]
}
