)]}'
{
  "log": [
    {
      "commit": "9361ad3f80adc1e21ab97c8d684afed311788e00",
      "tree": "7fc6ab24e35aff54ffadb54267e71c19288f1e8b",
      "parents": [
        "906e67fdba54459983bfa6bc29e02253a6990144"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 12 14:43:27 2016 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 12 14:43:27 2016 -0800"
      },
      "message": "Fix \u003csys/sysmacros.h\u003e.\n\n1. The definitions were wrong.\n2. The definitions were inline functions.\n3. The definitions were polluting the namespace even for code that doesn\u0027t\n   want BSD cruft.\n\nNote that everybody will still get these by default, because you still get\nall the BSD stuff by default.\n\nBug: http://b/12706131\nChange-Id: I062ecd09feef7a6e8ba1922d465b96a9c4bf4f4e\n"
    },
    {
      "commit": "9cddb482b498abd134f7ccfc9933747e8bcb9cc7",
      "tree": "a11142895775f0aaa7c4c68175254e6ead803676",
      "parents": [
        "2fed6aa9f0d2a90d59ad3c4d73313958f3470152"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jan 04 20:38:05 2016 +0000"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jan 04 13:00:39 2016 -0800"
      },
      "message": "Revert \"Revert \"Implement getifaddrs(3)/freeifaddrs(3).\"\"\n\nThis reverts commit 76814a8250fd5e1502909ef5e10e4d166cc96c0e.\n\nThis differs from the original in fixing the GCC -Werror build:\n\n  bionic/libc/bionic/ifaddrs.cpp: In function \u0027void __handle_netlink_response(ifaddrs**, nlmsghdr*)\u0027:\n  bionic/libc/bionic/ifaddrs.cpp:113:62: error: use of old-style cast [-Werror\u003dold-style-cast]\n       ifinfomsg* ifi \u003d reinterpret_cast\u003cifinfomsg*\u003e(NLMSG_DATA(hdr));\n\nThis appears to be a GCC bug; the GCC command-line correctly uses -isystem,\nand manually adding #pragma GCC system_header doesn\u0027t help. So just turn the\nwarning off for GCC for now. We won\u0027t need to worry about building with GCC\nsoon anyway.\n\nBug: http://b/26238832\nChange-Id: I01615bd335edf11baf487b1c83a9157cd780f4a1\n"
    },
    {
      "commit": "b62e633ff679a65df97be55bd0ae6a02633ce472",
      "tree": "ffad9be2c77f5c3c1ad164aa055a0e4b08f91cb1",
      "parents": [
        "71417caa927bb6720ae6cd759f335d8081f57895",
        "76814a8250fd5e1502909ef5e10e4d166cc96c0e"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Tue Dec 22 17:48:21 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 22 17:48:21 2015 +0000"
      },
      "message": "Merge \"Revert \"Implement getifaddrs(3)/freeifaddrs(3).\"\""
    },
    {
      "commit": "76814a8250fd5e1502909ef5e10e4d166cc96c0e",
      "tree": "04b19cda236e882d75bfd928c4fbc87dded7a27a",
      "parents": [
        "0945ed5cc5921243724fed4465d20881f4891a8d"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Tue Dec 22 17:47:54 2015 +0000"
      },
      "committer": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Tue Dec 22 17:47:54 2015 +0000"
      },
      "message": "Revert \"Implement getifaddrs(3)/freeifaddrs(3).\"\n\nWerror build broken. Revert while working on a fix.\n\nThis reverts commit 0945ed5cc5921243724fed4465d20881f4891a8d.\n\nChange-Id: I67edab7a7a3b9aa673ce9d14aa95380f947838a1\n"
    },
    {
      "commit": "71417caa927bb6720ae6cd759f335d8081f57895",
      "tree": "4548d3d207115358eaf96fec644a1da54865c333",
      "parents": [
        "be7c7fe218ca13b5763fbbcb650780aff4ed1dbd",
        "0945ed5cc5921243724fed4465d20881f4891a8d"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Tue Dec 22 17:11:59 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 22 17:11:59 2015 +0000"
      },
      "message": "Merge \"Implement getifaddrs(3)/freeifaddrs(3).\""
    },
    {
      "commit": "7331fe18d7ffd550996e07b534bc7a6cf625afa5",
      "tree": "ffad9be2c77f5c3c1ad164aa055a0e4b08f91cb1",
      "parents": [
        "4afd635be1b956c40f36758a482e6d83502fbb42"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Dec 14 14:11:17 2015 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Sat Dec 19 23:38:27 2015 -0800"
      },
      "message": "linker: implement shared namespaces\n\nShared namespaces clone the list of loaded native\nlibraries from the caller namespace. This allows\nclassloaders for bundled apps to share already loaded\nlibraries with default namespace.\n\nBug: http://b/22548808\nBug: http://b/26165097\nChange-Id: I8949d45937fdb38e1f586ff0679003adac0d9dad\n(cherry picked from commit e78deef364d952dd1141a2f3067a12060aaf11e6)\n"
    },
    {
      "commit": "0945ed5cc5921243724fed4465d20881f4891a8d",
      "tree": "cb4468cc6114238740ef29973bd5d5fa951fa826",
      "parents": [
        "4afd635be1b956c40f36758a482e6d83502fbb42"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Dec 19 14:39:10 2015 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Dec 19 14:49:09 2015 -0800"
      },
      "message": "Implement getifaddrs(3)/freeifaddrs(3).\n\nTime to dust off the old libcore implementation from gingerbread and add it\nto bionic. Unlike the original, this actually looks at both RTM_NEWLINK and\nRTM_NEWADDR.\n\nBug: http://b/26238832\nChange-Id: I7bb4b432deb766065b66b9c9ff36ed68249aba82\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": "284ae3559ed909613b189b98bdc3efab94373a30",
      "tree": "7f525b5244599a2caa7692d3d179dde4bbb61fe3",
      "parents": [
        "df196131f3c16f1eddb1542c7e04c675e7f1fbda"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Dec 08 10:47:13 2015 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Dec 09 13:54:01 2015 -0800"
      },
      "message": "Add permitted_when_isolated_path to linker namespaces\n\nThe permitted_when_isolated_path is a way to white-list\ndirectories not present in search-path. It is ignored for\nnot isolated namespaces.\n\nBug: http://b/25853516\nBug: http://b/22548808\nChange-Id: Ib1538037268eea69323ea49968a34a4a1d1938a5\n"
    },
    {
      "commit": "49a309ff6a8349cbd1625711497743463638bebf",
      "tree": "934a2a6d0b469f2345a733b414e26c6654fd6020",
      "parents": [
        "9cbabd8fe5ef3834682996ff23b4a5325e0586cb"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Sep 23 16:09:47 2015 -0700"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Dec 02 15:17:03 2015 -0800"
      },
      "message": "Separate properties by selabel\n\nThe purpose of this change is to add read access control to the property\nspace.\n\nIn the current design, a process either has access to the single\n/dev/__properties__ file and therefore all properties that it contains\nor it has access to no properties.  This change separates properties\ninto multiple property files based on their selabel, which allows\ncreation of sepolicies that allow read access of only specific sets of\nproperties to specific domains.\n\nBug 21852512\n\nChange-Id: Ice265db79201ca811c6b6cf6d851703f53224f03\n"
    },
    {
      "commit": "1ffec1cc4d0e283bb1ff6f49843769a3493b8d73",
      "tree": "083c8af007b9a2e2ed01fbde2eea50ded648e114",
      "parents": [
        "a7fc7f9909c221a0f64c5c5ecc5fadd5fba467c5"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Nov 23 11:26:35 2015 -0800"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Nov 23 16:13:10 2015 -0800"
      },
      "message": "Introduce anonymous namespace\n\nThe anonymous namespace is introduced to\nhandle cases when linker can not find the\ncaller. This usually happens when caller\ncode was not loaded by dynamic linker;\nfor example mono-generated code.\n\nBug: http://b/25844435\nBug: http://b/22548808\nChange-Id: I9e5b1d23c1c75bc78548d68e79216a6a943a33cf\n"
    },
    {
      "commit": "fe3a83a9343f0e4ff654f09ef8ffc8a773c7c105",
      "tree": "092ca0be892463bc543eaaabc9feda130ad37fb1",
      "parents": [
        "b804b9d67b9e3a8c63471ff9892f6abea2a58684"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Nov 17 16:03:18 2015 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Wed Nov 18 17:51:21 2015 -0800"
      },
      "message": "Implement pthread spin.\n\nIn order to run tsan unit tests, we need to support pthread spin APIs.\n\nBug: 18623621\nBug: 25392375\nChange-Id: Icbb4a74e72e467824b3715982a01600031868e29\n"
    },
    {
      "commit": "b804b9d67b9e3a8c63471ff9892f6abea2a58684",
      "tree": "ce42730b1964f3bd1b498823744f7d61f5527695",
      "parents": [
        "3c8c16022a513a32eb6b92cf23f4ef43ccf7ad6d",
        "e7c2fffa16eccecfd43d99516751a43776f5f609"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Nov 17 00:22:54 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 17 00:22:54 2015 +0000"
      },
      "message": "Merge \"Implement pthread barrier.\""
    },
    {
      "commit": "e7c2fffa16eccecfd43d99516751a43776f5f609",
      "tree": "bceec6b32ce1159456b2b0bb7ea0ea320d0970cc",
      "parents": [
        "004fead6bc55d1e65b4fb9ca1ac36646b99e5fdd"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Thu Nov 05 22:06:09 2015 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Mon Nov 16 14:02:26 2015 -0800"
      },
      "message": "Implement pthread barrier.\n\nBug: 24341262\nChange-Id: I5472549e5d7545c1c3f0bef78235f545557b9630\n"
    },
    {
      "commit": "42d5fcb9f494eb45de3b6bf759f4a18076e84728",
      "tree": "8f653810d3ddecf30bb0b744d4564d406808fe3e",
      "parents": [
        "ffe5c24c8693f1f4fc8edb68075fb36df558b801"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Oct 29 17:01:24 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Sun Nov 15 12:09:16 2015 -0800"
      },
      "message": "Introducing linker namespaces\n\nBug: http://b/22548808\nChange-Id: Ia3af3c0a167f1d16447a3d83bb045d143319b1e1\n"
    },
    {
      "commit": "fb994f4c040da968b7271860535f07daba182069",
      "tree": "b2c6e72f4484ca30990ae6625a677a394b97e227",
      "parents": [
        "8b5b2c467281de502ba1c8ffbe447ef95fbf5219"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Fri Nov 06 16:13:47 2015 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Fri Nov 06 16:13:47 2015 -0800"
      },
      "message": "Add fileno_unlocked to support thread sanitizer.\n\nBug: 25392375\nChange-Id: If3f92a0e08a53f4b59e01397e8efa307d8572349\n"
    },
    {
      "commit": "4200e260d266fd0c176e71fbd720d0bab04b02db",
      "tree": "b2c934fc4e2f546504cc02fdccd5f83fd60c6d37",
      "parents": [
        "ef5e647891f1a0aefeab4a87e9225e47087c6301"
      ],
      "author": {
        "name": "Daniel Micay",
        "email": "danielmicay@gmail.com",
        "time": "Tue Nov 03 05:14:08 2015 -0500"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Nov 06 13:14:43 2015 -0800"
      },
      "message": "fix the mremap signature\n\nThe mremap definition was incorrect (unsigned long instead of int) and\nit was missing the optional new_address parameter.\n\nChange-Id: Ib9d0675aaa098c21617cedc9b2b8cf267be3aec4\n"
    },
    {
      "commit": "eb9b9250122080df4a11293b9b6679e0b63ae2dd",
      "tree": "5a01876fa83ca1e74bb7611f63c1af9ca19f06b5",
      "parents": [
        "e07558fb80da4e196e8b7e371041c1e75c56b29b"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Tue Nov 03 18:46:02 2015 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Nov 04 14:19:55 2015 -0800"
      },
      "message": "Fix GNU/POSIX basename headers.\n\nIncluding glibc\u0027s \u003clibgen.h\u003e will result in the user getting the POSIX\nversion of basename always, regardless of when it is included relative\nto \u003cstring.h\u003e. Prior to this patch, our implementation would result in\nthe one that\u0027s included first winning.\n\nBug: http://b/25459151\nChange-Id: Id4aaf1670dad317d6bbc05763a84ee87596e8e59\n"
    },
    {
      "commit": "c36be975ce4525b452435f43beb1fb9fc26a7fdc",
      "tree": "33dc1579e096e571f14d4996f8b1fd610aac30ab",
      "parents": [
        "bdac9ec142347a0dc9784bddd0f8336535e73529",
        "4151db5f997cd91d3505ac6594bede0b50184855"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Oct 30 23:35:40 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 30 23:35:40 2015 +0000"
      },
      "message": "Merge \"Add prlimit to LP32.\""
    },
    {
      "commit": "38eca07826f70a34fde05e6b858cb6e88cac3a55",
      "tree": "a4bd5a1fec0cc1524084873a200c3f933de0269d",
      "parents": [
        "50e92795890c0d8b4bf54c535f66f3b2edf7bd59"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 29 19:52:44 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 29 19:52:44 2015 -0700"
      },
      "message": "Remove \u003csys/shm.h\u003e.\n\nAndroid doesn\u0027t allow SysV IPC, so this only serves two purposes. It\u0027s\ngood in that it helps random code (especially code that doesn\u0027t actually\nneed this header) to compile anyway. But it\u0027s bad for the same reason:\nit\u0027s misleading for configure scripts that test for the header but not\nfor the corresponding functions.\n\nBug: http://b/19340456\nChange-Id: I4a5f319d9aecf46fc512fc94bb4f9e3f6ea64e71\n"
    },
    {
      "commit": "4151db5f997cd91d3505ac6594bede0b50184855",
      "tree": "16c30988b1a1090c7221c3f14aac88d296596fc3",
      "parents": [
        "50e92795890c0d8b4bf54c535f66f3b2edf7bd59"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 28 17:14:48 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 28 20:04:59 2015 -0700"
      },
      "message": "Add prlimit to LP32.\n\nBug: http://b/24918750\nChange-Id: I0151cd66ccf79a6169610de35bb9c288c0fa4917\n"
    },
    {
      "commit": "1721be2229d07b5eea830f02a76e7be56d172aa9",
      "tree": "77807f66cd568d03478375763b12ef0f97934ec0",
      "parents": [
        "5238eb09844f9c1578353d4c9e297aadb34c71be",
        "6331e806de41d98083f1bfa3661addfae4682c37"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 27 21:40:31 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 27 21:40:31 2015 +0000"
      },
      "message": "Merge \"Implement scandirat and scandirat64.\""
    },
    {
      "commit": "6331e806de41d98083f1bfa3661addfae4682c37",
      "tree": "fc63b42f79adfa429e514cf3b1231245d29222b7",
      "parents": [
        "60752a2eeab8cd0b344b27c67a47e30628962211"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 27 11:10:36 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 27 13:47:36 2015 -0700"
      },
      "message": "Implement scandirat and scandirat64.\n\nBug: http://b/12612339\nChange-Id: Id3b249a884fe08964b26a017ae9574961f0cb441\n"
    },
    {
      "commit": "5238eb09844f9c1578353d4c9e297aadb34c71be",
      "tree": "5d869c133aa470cc8f808db14ac762c2574dddaf",
      "parents": [
        "60752a2eeab8cd0b344b27c67a47e30628962211",
        "126af757c6d6a6447c19236df8d98ba07f21996f"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Oct 27 19:03:53 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 27 19:03:53 2015 +0000"
      },
      "message": "Merge \"Implement load at fixed address feature\""
    },
    {
      "commit": "126af757c6d6a6447c19236df8d98ba07f21996f",
      "tree": "b303f921749f2bb077096218b22ab20bf789d4be",
      "parents": [
        "6a4ddeb56ef2144e98437ae82f84b09ea785e411"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Oct 07 16:34:20 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Oct 27 11:27:34 2015 -0700"
      },
      "message": "Implement load at fixed address feature\n\nBug: http://b/24683631\nChange-Id: I3a39ab526c8f9e213339b60e135e5459d0f41381\n"
    },
    {
      "commit": "9216a64c90ae30da109850526cdeaca26f38da14",
      "tree": "132ba401999a6fccfc63b88358ef0d031e34ee09",
      "parents": [
        "a2cf3783d4e9a4008ed468ef3204593f8f549934"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 26 19:29:12 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 26 19:29:12 2015 -0700"
      },
      "message": "Fix \u003cutmp.h\u003e declarations.\n\nIf we\u0027re going to keep this useless header -- and I think it\u0027s too late to\nremove it -- it may as well be correct.\n\nBug: http://b/17700469\nChange-Id: Ifec4f8f1a984483d7fa7d81d47786f75b70ff4ba\n"
    },
    {
      "commit": "bf4c32df6b7c15c8ca80319410e7d37ddd39240b",
      "tree": "53aff078debd43e9453a1254571041e1252e17f8",
      "parents": [
        "6a4ddeb56ef2144e98437ae82f84b09ea785e411"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 26 17:51:42 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 26 17:51:42 2015 -0700"
      },
      "message": "Remove swap16/swap32/swap64 header pollution.\n\nThis seems to be obsolete BSD stuff, and the only references to it in the\ntree are people #undef\u0027ing it.\n\nBug: http://b/2735009\nChange-Id: Icde523ae2d15cf1025357d861f97b415e89e4f9a\n"
    },
    {
      "commit": "a8184456229ace2b0255468e6b15aeb6509e27f7",
      "tree": "bb0e1d6bdc4571d8b68b292a02c41a335fcae56f",
      "parents": [
        "c45f3bf3e691f48af63c5ea2bf7a348a698013ac"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Oct 23 12:32:52 2015 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Oct 23 12:32:52 2015 -0700"
      },
      "message": "Rename LIBC64_HIDDEN to LIBC32_LEGACY_PUBLIC.\n\nChange-Id: If4da9e46398ca5524f6f0680d70588e3dc7e80b4\n"
    },
    {
      "commit": "f0141dfab10a4b332769d52fa76631a64741297a",
      "tree": "79595f40434f33a870ac4b79b9916a9408b88a8a",
      "parents": [
        "e78392637d5086384a5631ddfdfa8d7ec8326ee3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 12 12:44:23 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 12 12:53:42 2015 -0700"
      },
      "message": "Make struct FILE opaque.\n\nBug: http://b/24807045\nChange-Id: I3cb4e436325a65bef3b203e3970e4d967101fcce\n"
    },
    {
      "commit": "68af0adeb9df27b3f538b0a57db426dea060db99",
      "tree": "1b71fc13c2efdc7ae724aa9e61c0ec9132ed9970",
      "parents": [
        "487a1823e8617011009eded8eae9a75c1f871887"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@google.com",
        "time": "Fri Oct 09 18:48:51 2015 -0400"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@google.com",
        "time": "Fri Oct 09 18:52:49 2015 -0400"
      },
      "message": "utmp.h: add more ut_type defines\n\nThis fills out the defines that utmp.h normally offers on other systems\nsuch as glibc.\n\nBUG\u003d24810744\n\nChange-Id: If57f9ced22e8673f072245fce3f5c0f8e1f591e5\n"
    },
    {
      "commit": "efcb5d9d4c4b482cf21318b2bb4aec6cf6d8e0f5",
      "tree": "2be02a5f316342fd3326532dc1ba1584ea092839",
      "parents": [
        "3d00f79f98c8b981a36a79657f07a303a2288a55",
        "44ddb31e75ff0cebea8249065606600185d58680"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Sep 22 21:52:28 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 22 21:52:28 2015 +0000"
      },
      "message": "Merge \"Remove some \u003csys/cdefs.h\u003e cruft.\""
    },
    {
      "commit": "44ddb31e75ff0cebea8249065606600185d58680",
      "tree": "c15f29bd1fd7423928a7ae117ec19f952d78c1ad",
      "parents": [
        "1399759118f50071d499f88b18828e36aa2bad00"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Sep 22 13:00:21 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Sep 22 13:00:21 2015 -0700"
      },
      "message": "Remove some \u003csys/cdefs.h\u003e cruft.\n\nIn particular, we don\u0027t need to record the peculiarities of every\nversion of GCC ever shipped. It just makes this file harder to follow.\n\nChange-Id: Ie9035d78eae86b4aed9dff3576c6f54e268aaced\n"
    },
    {
      "commit": "f8a2243ebeb3ce60e412cd7b71b31c7b31313d58",
      "tree": "c6c9bd55b48e97caebf60b5875544cdcce7f5755",
      "parents": [
        "1399759118f50071d499f88b18828e36aa2bad00"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Sep 22 12:34:13 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Sep 22 12:34:13 2015 -0700"
      },
      "message": "\u003cnetinet/udp.h\u003e should include \u003clinux/udp.h\u003e.\n\nThe comment about \"other stuff\" referred to pre-uapi headers. Everything\nin the current \u003clinux/udp.h\u003e should be exposed to userspace. The only\nproblem is that BSD and Linux use different names for the members of\nstruct udphdr. We can move the Linux udphdr out of the way and use an\nanonymous union to get the best of both worlds. (Though unfortunately\nthis means that code that includes \u003clinux/udp.h\u003e directly instead of\nusing \u003cnetinet/udp.h\u003e now won\u0027t have any definition of struct udphdr.\nWe\u0027ve taken the stance in the past that you shouldn\u0027t include a linux/\nheader if there\u0027s a standard equivalent --- you should rely on us\ntransitively including it for you.)\n\nChange-Id: Ie625892441b0edd8df3b76d3fcf2cbe299077bc4\n"
    },
    {
      "commit": "c6043f6b27dc8961890fed12ddb5d99622204d6d",
      "tree": "154fe0db6e0eaeda3858d6f0bca4ba9adda9afb0",
      "parents": [
        "d75abb9614b04c3da3104099752726f9d1c6d8c7"
      ],
      "author": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Tue Aug 25 17:50:29 2015 -0700"
      },
      "committer": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Fri Sep 18 13:37:53 2015 -0700"
      },
      "message": "Define WIFCONTINUED()\n\nChange-Id: Id0feebd90d0525f3b479eb119b942eae8ca568d1\nSigned-off-by: Greg Hackmann \u003cghackmann@google.com\u003e\n"
    },
    {
      "commit": "d75abb9614b04c3da3104099752726f9d1c6d8c7",
      "tree": "e3e64f1300f96712b7cedf4a61e1299a48486111",
      "parents": [
        "cd0ed2f174d9015da5ae7206bc4c5190cd0bb51e"
      ],
      "author": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Tue Aug 25 17:45:46 2015 -0700"
      },
      "committer": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Fri Sep 18 13:37:53 2015 -0700"
      },
      "message": "Fix SOCK_* flag definitions\n\nMIPS and the rest of the world only disagree on the first two SOCK_*\nconstants, so restructure the #ifdef accordingly.\n\nAs a deliberate side effect, this fixes SOCK_DCCP being missing on\nnon-MIPS platforms.\n\nChange-Id: I2267008f1121a7eebe1ed9097afab6e612bce7f0\nSigned-off-by: Greg Hackmann \u003cghackmann@google.com\u003e\n"
    },
    {
      "commit": "268af26359c8f1c87585e26d2763e3a3a63f8714",
      "tree": "7b1f9d3473be16d6ad3208195e28fc3ce1dee29c",
      "parents": [
        "1c7b84ca0095e0dc4da8434e9e0c59cd2326f763"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Sep 11 09:47:27 2015 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Sep 11 09:47:27 2015 -0700"
      },
      "message": "CMSG_DATA should return an unsigned char*.\n\nhttp://pubs.opengroup.org/onlinepubs/9699919799/basedefs/sys_socket.h.html\n\u003e CMSG_DATA(cmsg)\n\u003e    If the argument is a pointer to a cmsghdr structure, this macro\n\u003e    shall return an unsigned character pointer to the data array\n\u003e    associated with the cmsghdr structure.\n\nChange-Id: I3f89ba19cbca4e6727abc65a2bbcd59267892ba8\n"
    },
    {
      "commit": "af4713e6a5658d46570f37fe791120c60fcd34f2",
      "tree": "11d93edba33b8debc0164bd8aa90d949ec8f1572",
      "parents": [
        "a6435a186d3b0e1ec4c17f7f5e8ba2bb198faeb2"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Sep 04 12:59:53 2015 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Sep 04 13:02:09 2015 -0700"
      },
      "message": "Unify unistd.h.\n\nMake unistd.h usable from all platform versions.\n\nAlso name all function parameters for Android Studio.\n\nBug: http://b/21952040\nChange-Id: Ia1777fd4a6d4e37f25cc402c28fb78c003e481e3\n"
    },
    {
      "commit": "a6435a186d3b0e1ec4c17f7f5e8ba2bb198faeb2",
      "tree": "ff0e3ec2f91a57cccb8510e56a4b3251cb1e5419",
      "parents": [
        "ba9c17053456aed4452a349cf45c5960d9231f25"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Aug 06 14:32:25 2015 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Sep 04 13:02:03 2015 -0700"
      },
      "message": "Use attribute availability.\n\nBug: http://b/21952040\nChange-Id: I3998d88bc6076d60ae5cf7efd112817f80f17971\n"
    },
    {
      "commit": "adf5c7237da419393462a19c94c102abf7865c78",
      "tree": "2db8f570d64756e5e964aac8aeec4c99166a8f27",
      "parents": [
        "bfaee4bd6ad901a699df21fd44d95f34e2e7444d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 27 14:48:32 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 27 14:48:32 2015 -0700"
      },
      "message": "Fix regoff_t for LP32 and _FILE_OFFSET_BITS\u003d64.\n\nbionic is built without _FILE_OFFSET_BITS\u003d64, so internally regoff_t\nwas 32-bit on LP32, but code compiled with _FILE_OFFSET_BITS would\nexpect rm_so and rm_eo in struct regmatch_t to be 64-bit, leading to\nconfusion.\n\nBug: http://b/23566443\nChange-Id: Iae92fa545104068e4f64ce1977f5ec616859638c\n"
    },
    {
      "commit": "6f4594d5dc61bb67978c44cd6eeb0e7bfb621c9b",
      "tree": "9c925e99fe826914d93a6c1e00c5f62a8cd8c0a8",
      "parents": [
        "629ed517126b3be32f2b2e8b710e63358691c296"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 26 13:27:43 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 26 14:48:55 2015 -0700"
      },
      "message": "Add preadv/pwritev.\n\nBug: http://b/12612572\nChange-Id: I38ff2684d69bd0fe3f21b1d371b88fa60d5421cb\n"
    },
    {
      "commit": "7ac3c128bb5df83cb001cb50b6a5ee4da9a0b0e0",
      "tree": "c942f25efe8d5147ce59cb841806b2ed858fe928",
      "parents": [
        "4d5c4f085bc880af838d50f6bbd60d86e800b6e1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 26 09:59:29 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 26 09:59:29 2015 -0700"
      },
      "message": "Add strchrnul.\n\nBug: http://b/18374026\nChange-Id: Iea923309c090a51a2d41c5a83320ab3789f40f1c\n"
    },
    {
      "commit": "03f22465ae3106517c5852f1904f44eb937ccbbf",
      "tree": "9298747b45c41cbd3fa7eba15978500ed7f1e8ed",
      "parents": [
        "53f2abb5ffc103b9ea7fbe2fee13edead2553f3a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 25 14:18:26 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 25 14:18:26 2015 -0700"
      },
      "message": "Add the missing aarch64 user structs.\n\nBug: http://b/23377194\nChange-Id: I7d36717e129d2e044dc2cf24de4227c3bcdd60ce\n"
    },
    {
      "commit": "afdd15456ad0c7223c690731f5eb0af54cdb0024",
      "tree": "96d486d0485a4d63d7090f72192685c3cbdd0f82",
      "parents": [
        "7e919daeaad62515ebbbf7b06badc77625a14d90"
      ],
      "author": {
        "name": "Daniel Micay",
        "email": "danielmicay@gmail.com",
        "time": "Mon Jul 20 21:37:29 2015 -0400"
      },
      "committer": {
        "name": "Daniel Micay",
        "email": "danielmicay@gmail.com",
        "time": "Thu Aug 20 13:46:51 2015 -0400"
      },
      "message": "add fortified implementations of write/pwrite{,64}\n\nThese are just based on the read/pread{,64} implementations with the\nfunction calls and error messages adjusted as appropriate. The only\ndifference is that the buffer parameters are const.\n\nChange-Id: Ida1597a903807f583f230d74bcedffdb7b24fcf6\n"
    },
    {
      "commit": "9101b00400cfb20b96112682169c5da67e065ff2",
      "tree": "de51712678e0abbab722c1c0601c2f1508b387bf",
      "parents": [
        "807f27f9548077f114dc009f60764fb0241a2620"
      ],
      "author": {
        "name": "Daniel Micay",
        "email": "danielmicay@gmail.com",
        "time": "Wed May 20 15:31:26 2015 -0400"
      },
      "committer": {
        "name": "Daniel Micay",
        "email": "danielmicay@gmail.com",
        "time": "Sat Aug 01 00:42:30 2015 -0400"
      },
      "message": "add a fortified implementation of getcwd\n\nChange-Id: Ice3e6d3e1ff07788305dc85f8ee4059baad5fac4\n"
    },
    {
      "commit": "36443fd542a96d2ed71fc294f70fed08c115af55",
      "tree": "2b068bf653a04a8a37e9bc35114a2ebab547b1c1",
      "parents": [
        "374adfee473725994ee2568ce5aba93a7500064e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 28 19:52:31 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 28 19:54:53 2015 -0700"
      },
      "message": "Remove PAGE_SIZE from \u003climits.h\u003e.\n\nIt turns out that everyone\u0027s still getting PAGE_SIZE from \u003csys/user.h\u003e via\n\u003csys/ucontext.h\u003e via \u003csignal.h\u003e anyway.\n\nglibc has PAGE_SIZE in \u003csys/user.h\u003e rather than \u003climits.h\u003e so this part is\ngood. The bad part is that we have such wide transitive inclusion of\n\u003csys/user.h\u003e!\n\nBug: http://b/22735893\nChange-Id: I363adffe4a27b4ca1eedf695ea621f5dd2d5ca10\n"
    },
    {
      "commit": "5390173ad43aeae9b503c448cb496403d817e13b",
      "tree": "ec4e0d785f9cbef52b3c4efa531bf2ba6619926b",
      "parents": [
        "1ff4094a7f106b3de390acb1e36c45bbb878a153"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 28 17:44:32 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 28 17:44:32 2015 -0700"
      },
      "message": "Don\u0027t transitively include \u003climits.h\u003e from \u003csys/user.h\u003e.\n\nBug: http://b/22735893\nChange-Id: I27d0a1f7e2d477b8038e76bfc7fe05dd7e187344\n"
    },
    {
      "commit": "820a86f2df90419d4b0e7ae6004eb73bb804fc7e",
      "tree": "b007e46b9042cfd71d5c47c9b7715ad8d2fe3198",
      "parents": [
        "c8ba22c847bd5bfc97d29a4c565fd32993200a01"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 28 16:46:06 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 28 16:46:06 2015 -0700"
      },
      "message": "Remove PAGESIZE.\n\nThis was pretty much unused, and isn\u0027t in glibc.\n\nBug: http://b/22735893\nChange-Id: If17f0dcd931c90ef1ccb134a3950c3b0011a03f4\n"
    },
    {
      "commit": "afab3ffcce1054ec887fb347700819d69a9c8151",
      "tree": "390c1e92f59867262d1181c346948071f09d536c",
      "parents": [
        "1923d4c03a68c89f304b601545f5e8db026b9be0"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 28 14:58:37 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 28 14:58:37 2015 -0700"
      },
      "message": "Move PAGE_MASK into \u003csys/user.h\u003e.\n\nI\u0027m removing the TODO on the assumption that being compatible with glibc\nis more useful than BSD. The new internal \"bionic_page.h\" header factors\nout some duplication between libc and the linker.\n\nBug: http://b/22735893\nChange-Id: I4aec4dcba5886fb6f6b9290a8f85660643261321\n"
    },
    {
      "commit": "fed2659869ec41a93f655be8058568ddab419e01",
      "tree": "5dca1c6f1f120a561d5279eb76816e94e210cb94",
      "parents": [
        "2565492db0d67b95348cd1c3026ed338ca59aa37"
      ],
      "author": {
        "name": "Daniel Micay",
        "email": "danielmicay@gmail.com",
        "time": "Sat Jul 18 13:55:51 2015 -0400"
      },
      "committer": {
        "name": "Daniel Micay",
        "email": "danielmicay@gmail.com",
        "time": "Thu Jul 23 18:55:46 2015 -0400"
      },
      "message": "add fortified implementations of fread/fwrite\n\nA __size_mul_overflow utility is used to take advantage of the checked\noverflow intrinsics in Clang and GCC (\u003e\u003d 5). The fallback for older\ncompilers is the optimized but less than ideal overflow checking pattern\nused in OpenBSD.\n\nChange-Id: Ibb0d4fd9b5acb67983e6a9f46844c2fd444f7e69\n"
    },
    {
      "commit": "a7a87dda4ae2796c315519f506c8156c33c47e79",
      "tree": "177667fa5ff592aa98cc7069e8d3a2595a3dab91",
      "parents": [
        "4f2e1d3b1e3b3729b551c22c5a0be8d07795adfd"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jul 17 19:10:24 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jul 17 19:10:24 2015 -0700"
      },
      "message": "\u003csys/time.h\u003e should include [most of] \u003csys/select.h\u003e.\n\nFound by trying to build c-ares with bionic.\n\nChange-Id: I38684abcb806ef1e8806c68b4a6dd9200f48849e\n"
    },
    {
      "commit": "2cc41d3e0054e414caa2022f4b625de2983006a2",
      "tree": "9ee670c759addcc71aca66fda5107b485278bf3f",
      "parents": [
        "ca7bc509cf3b321b4721137df1e5407415fc7dd7"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jul 17 13:59:36 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jul 17 13:59:36 2015 -0700"
      },
      "message": "Add all the glibc one-line \"synonym\" header files.\n\nPorted code keeps needing these one by one, so let\u0027s just add the whole\nset...\n\nChange-Id: I9662b256aeaa1b0ffb22354130e503f0c4aa472b\n"
    },
    {
      "commit": "0875ba3095782387370cba2e36ebc5df7acbcb7e",
      "tree": "8fa1e9cecd619da9948729e698a99f86b500fc6b",
      "parents": [
        "b31409040f1766d92e76e72bbdc1b346f4bb9d8e"
      ],
      "author": {
        "name": "Bertrand SIMONNET",
        "email": "bsimonnet@google.com",
        "time": "Thu Jul 16 11:50:39 2015 -0700"
      },
      "committer": {
        "name": "Bertrand SIMONNET",
        "email": "bsimonnet@google.com",
        "time": "Thu Jul 16 13:10:50 2015 -0700"
      },
      "message": "Add timespec/timeval conversion helpers.\n\nTIMESPEC_TO_TIMEVAL and TIMEVAL_TO_TIMESPEC are usually provided by\nsys/time.h.\n\nBUG: 22532790\n\nChange-Id: I8b9d7298e3250323faa20b1adf9a7514954c6096\n"
    },
    {
      "commit": "e55151472b89067672e865858ccc2d2f28b91cd6",
      "tree": "3902cc7e384fb6e3b29401a2a2b94fcaedca1df3",
      "parents": [
        "7a9732d663906bedd8734c9952e35728c2662767"
      ],
      "author": {
        "name": "Daniel Erat",
        "email": "derat@google.com",
        "time": "Wed Jul 08 15:01:50 2015 -0600"
      },
      "committer": {
        "name": "Daniel Erat",
        "email": "derat@google.com",
        "time": "Wed Jul 08 15:07:17 2015 -0600"
      },
      "message": "libc: Add sys/fcntl.h for compatibility.\n\nAdd a /usr/include/sys/fcntl.h file that includes \u003cfcntl.h\u003e.\n\nChange-Id: Ie34bf7519607c5aae1fbea7c7dca249c9b7801cc\n"
    },
    {
      "commit": "7ea817d39ecfdb0f42a61ea87c81105461710a93",
      "tree": "88d3335fe7d3dc9e044710ec6849bb014ff4db1f",
      "parents": [
        "89bbb846b9831f232b87d54a6eeb759ac603cc43"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 07 09:22:32 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 07 09:22:32 2015 -0700"
      },
      "message": "Add some glibc-like #defines for libchrome.\n\nlibchrome uses __USE_XOPEN2K8 to decide whether futimens is\navailable. That\u0027s perhaps not the best idea, but there are other\ncases where we defined the same feature macros as glibc to aid\nportability.\n\nChange-Id: Ie6e04cb181d88698d618e7dbd26cd347a6bf076c\n"
    },
    {
      "commit": "77455f85ab46bed6dc5f7246b474ede44ae9ede2",
      "tree": "6fe1889e2d9156a79802b20e510a599090db8b8a",
      "parents": [
        "86061f39c2c5f5a5ee91b349d1c8cb7bf04003a3",
        "a05bee544a2966a06830bf4432187fab881bfe49"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 01 15:32:57 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jul 01 15:32:58 2015 +0000"
      },
      "message": "Merge \"Fixed uchar.h for clang3.6\""
    },
    {
      "commit": "c2247478d5bcd6e8fe4d2b58f0bdeff73daa4c80",
      "tree": "d7d9c1eebfeda89627a70a5337dc1a3983a044d3",
      "parents": [
        "7f46cf9a5f0b3e54d97fc94a83b955ae4c335a31"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Jun 30 15:10:51 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Jun 30 19:01:24 2015 -0700"
      },
      "message": "Improve personality initialization\n\n1. Personality parameter should be unsigned int (not long)\n2. Do not reset bits outside of PER_MASK when setting\n   personality value.\n3. Set personality for static executables.\n\nBug: http://b/21900686\nChange-Id: I4c7e34079cbd59b818ce221eed325c05b9bb2303\n(cherry picked from commit f643eb38c36eb63f612e20dea09fd43ac6a6b360)\n"
    },
    {
      "commit": "59d5854d145263f8e68a7312bf52894269203029",
      "tree": "10de75550fec7be92b0eae480d5178095eb2d58c",
      "parents": [
        "71107cdd028461c433a39a10eb192edbdf03dede"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jun 29 13:44:34 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jun 29 13:44:34 2015 -0700"
      },
      "message": "Add \u003csysexits.h\u003e.\n\nTaken from current upstream OpenBSD.\n\nBug: http://b/22172963\nChange-Id: Ic899e08541335777296fa8ec99e518f35a100144\n"
    },
    {
      "commit": "a05bee544a2966a06830bf4432187fab881bfe49",
      "tree": "8f33f06ecd0555bdeb78e401aacd51126874feb7",
      "parents": [
        "6589febec212bb1d72b7e3d593a1b7fe77692f7f"
      ],
      "author": {
        "name": "egor.kochetov",
        "email": "Egor.Kochetov@intel.com",
        "time": "Thu Jun 25 16:52:36 2015 +0300"
      },
      "committer": {
        "name": "Egor Kochetov",
        "email": "egor.kochetov@intel.com",
        "time": "Mon Jun 29 13:27:28 2015 +0300"
      },
      "message": "Fixed uchar.h for clang3.6\n\nThe NDK self-test issue64679-prctl failed to build because by default\nclang3.6 builds in C11 mode, but the ifdef in the file \u0027uchar.h\u0027 hid the\nrequired char16_t and char32_t declarations based on the GCC version,\nwhich is declared as 4 by clang.\n\nThe ifdef is changed so that it is based on C version rather than a\ncompiler version. This way it is compatible with gcc 4, gcc 5 and clang\nwhich are actually the only used toolchains.\n\nSee also: b.android.com/177609\n\nChange-Id: I78c4bdc681c6f8a31b92dbe8ffe35e84ef2eda36\nSigned-off-by: Egor Kochetov \u003cegor.kochetov@intel.com\u003e\n"
    },
    {
      "commit": "fef58353f4ecd7ef2b48ad7f4d80013dbf786606",
      "tree": "415472c660e3169180890b6de2583103b5f38437",
      "parents": [
        "d807b9a12d3e49132b095df3d883618452033b51"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jun 24 17:31:24 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jun 24 17:31:24 2015 -0700"
      },
      "message": "Fix x86 gdbserver build.\n\nAdd the x86-only elf_fpxregset_t to \u003csys/procfs.h\u003e, and rename\nuser_fxsr_struct (the kernel\u0027s name) to user_fpxregs_struct (the\nuserspace name).\n\nBug: http://b/22068064\nChange-Id: Id466096bf02baf6bd49b193f49d9036848d33548\n"
    },
    {
      "commit": "895241efbba344c1590b76fcada89c48f4743cf2",
      "tree": "8deabcf9be20260bbb1bd252cfa12169b2823584",
      "parents": [
        "b628b7db3952594d06c8063dc863a4dd6eaa8b89"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jun 16 16:04:35 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jun 16 16:04:35 2015 -0700"
      },
      "message": "Fixes for building gdbserver (and gdb) out of the box.\n\nBug: http://b/21695943\nChange-Id: Iadb600b2ae619515d7038a4db9bf464ba31adb36\n"
    },
    {
      "commit": "0577733c2e15a4745d5c75f59e5f56dd179a4aa7",
      "tree": "fcc6c2361563cadc559d4bce341c75d7d937562e",
      "parents": [
        "27f5c37b12042dea3d9521b7b0287820c1e669f0"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jun 15 18:47:39 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jun 15 18:47:39 2015 -0700"
      },
      "message": "Avoid name collision with user_fpsimd_state in \u003casm/ptrace.h\u003e.\n\nWe don\u0027t want to use \u003casm/ptrace.h\u003e because (a) it\u0027ll drag in a bunch of\nnamespace pollution and (b) the registers should be \"long double\" for\nuserspace, not the kernel\u0027s uint128s. So just use a slightly different\nname for our struct (which matches the traditional names for these structs\nanyway).\n\nBug: http://b/21695943\nBug: https://code.google.com/p/android/issues/detail?id\u003d86712\nChange-Id: I8812ca98cfe6b649dbd31f7d6aea41928ba2acbd\n"
    },
    {
      "commit": "bf18c61798d1ae9197ae087ed85e94eef55e8678",
      "tree": "8f948d28718c188118370c5144f50eac2dfb328a",
      "parents": [
        "9ef26a3c4cd2e6d469f771815a07cb820800beb6"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed Mar 04 10:31:29 2015 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jun 15 14:33:54 2015 -0700"
      },
      "message": "Add a sys/procfs.h.\n\nNeeded for building gdbserver out of the box.\n\nBug: http://b/21695943\nBug: https://code.google.com/p/android/issues/detail?id\u003d86712\nChange-Id: Ieadda2b595f08bfddfa61fcd68006b8e7c1a438d\n"
    },
    {
      "commit": "be57a40d2973739c4fb0aa1cfb0014f34aeec2bd",
      "tree": "a4d8bba0773d0b024e1e53dbb4f35214cd3480d5",
      "parents": [
        "72af1235e49fa797987dd719e398f53995a50ec4"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jun 10 17:24:20 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jun 10 17:24:20 2015 -0700"
      },
      "message": "Add process_vm_readv and process_vm_writev.\n\nBug: http://b/21761353\nChange-Id: Ic8ef3f241d62d2a4271fbc783c8af50257bac498\n"
    },
    {
      "commit": "60907c7f4ec788def8741e4efb933eafb6560eaa",
      "tree": "31fb09aeffe23cdb02ed80e20989df7e1c992338",
      "parents": [
        "1cfbd94a2f40743757cdecd51cfa3e3ab545a5c5"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Jun 09 18:46:15 2015 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Jun 10 10:50:43 2015 -0700"
      },
      "message": "Allow NULL in pthread_mutex_lock/unlock.\n\nThe pthread_mutex_lock and pthread_mutex_unlock were allowed to\nfail silently on L 32 bit devices when passed a NULL. We changed\nthis to a crash on 32 bit devices, but there are still games that make\nthese calls and are not likely to be updated. Therefore, once again\nallow NULL to be passed in on 32 bit devices.\n\nBug: 19995172\n(cherry picked from commit 511cfd9dc8cb41bca4920687c7d816ee916ee8e5)\n\nChange-Id: I159a99a941cff94297ef3fffda7075f8ef1ae252\n"
    },
    {
      "commit": "8a1162835597be38705b381ac34c07da17932568",
      "tree": "13fb64618cf74789d9f47d7d438eda0e3fd27607",
      "parents": [
        "d9dc13d4172516342ceebf1b16624ed9fdf3fca2"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Jun 05 22:16:23 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Jun 09 13:44:31 2015 -0700"
      },
      "message": "Add flag that makes linker honor min(p_vaddr)\n\nBug: http://b/21523078\nChange-Id: Ice72766fb6ad3bd333c32b496e7870121e17a763\n"
    },
    {
      "commit": "4e8cda641a34078d77c0340c35ca7a422801308b",
      "tree": "d920467c2fef3ee233dcdf2f8d94973b28160b8d",
      "parents": [
        "267f39bf63044efe734c82c66f25f9b275a63c0b"
      ],
      "author": {
        "name": "Andres Morales",
        "email": "anmorales@google.com",
        "time": "Thu May 07 15:15:46 2015 -0700"
      },
      "committer": {
        "name": "Andres Morales",
        "email": "anmorales@google.com",
        "time": "Fri May 08 22:13:15 2015 +0000"
      },
      "message": "remove rootdir build.prop\n\nmerge with default.prop\n\nChange-Id: I6cff4527dec2b31bdde42ec26c42ef2782f8deb4\n"
    },
    {
      "commit": "ce16a53d393512336f30c21a244afd70b7d57cf6",
      "tree": "ebb523834aa7a69b01cdfe62d74b7fda74a89111",
      "parents": [
        "f9eeea6d6531b0dea837027c7e1f47bec837f311"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu May 07 22:58:00 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu May 07 23:10:16 2015 -0700"
      },
      "message": "Add definitions of Elf32_Sxword and ELFXX_R_INFO\n\nBug: http://b/17056684\nChange-Id: If35302245ac3ab40d1c80fb2b04620778c114f87\n"
    },
    {
      "commit": "dbe26fdcc7de503539837467299b96c4a93084cc",
      "tree": "09944070d08e984face62ae29fb4f019b174e6e4",
      "parents": [
        "2c3d8d8b2c77a2439e324f8ef2369589024f33ed"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon May 04 19:30:49 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon May 04 19:30:49 2015 -0700"
      },
      "message": "Fix protected symbol lookups for mips\n\nBug: http://b/20694161\nChange-Id: I5cc58034f9776e1db9cddc34abe48ef85f6048f4\n"
    },
    {
      "commit": "033a68f1acd059dc3c5f656ce16999863d077d8a",
      "tree": "abbb9203ad987ba61f8bd17257fc59538c265325",
      "parents": [
        "6a4c9d9bf9e3d2679394850ab49a42f368e12c2d",
        "c3f4c964a3326ba81e1d61ebc47980f787dfcf24"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Apr 30 20:57:49 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 30 20:57:49 2015 +0000"
      },
      "message": "Merge \"bionic: fortify comments in _system_properties.h\""
    },
    {
      "commit": "6a4c9d9bf9e3d2679394850ab49a42f368e12c2d",
      "tree": "eb9d315003e4106c69d38d03156b182a527992f8",
      "parents": [
        "df877d7b289543e5a969566e0dcbb6102b08f002",
        "6f88821e5dc4894dc2905cbe53ae21c782354f38"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Apr 30 19:29:47 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 30 19:29:47 2015 +0000"
      },
      "message": "Merge \"Define char16_t and char32_t to make gcc 5.1 happy\""
    },
    {
      "commit": "c3f4c964a3326ba81e1d61ebc47980f787dfcf24",
      "tree": "60ffee1456c1a9ff9fab86f9b6a7ca235516d54f",
      "parents": [
        "fa6f6496078426fe332a5ae9bba009c98dfabc94"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Apr 29 07:21:36 2015 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Apr 29 13:57:42 2015 -0700"
      },
      "message": "bionic: fortify comments in _system_properties.h\n\nChange-Id: I2ef8fb7ae5ae03d5d2a50b5a417d585710099760\n"
    },
    {
      "commit": "bfd65279a5a9018b01f71773270e462f1b9a7768",
      "tree": "c210894537fb3f3b68a300da67bd539fae9ae243",
      "parents": [
        "682a240c5d6a479ed3b8187ea99044627bf2394c"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Apr 24 09:31:32 2015 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Apr 27 07:44:03 2015 -0700"
      },
      "message": "bionic: add __system_property_area_serial()\n\nAdds a new _internal_ function. Provide a global serial number to\nsupport more efficient private caching algorithms. This allows\nto skip re-running the __system_property_find() call on misses until\nthere is a global change in the properties. This call is a read\nbarrier, the property data to be read following this call will be\nread sequentially and up to date.\n\nBug: 19544788\nChange-Id: I58e6a92baa0f3e8e7b9ec79b10af6d56407dab48\n"
    },
    {
      "commit": "1d76f1cc8be1f40141adac6147cd51061f1ee0b4",
      "tree": "a64dd9fcaf615e61e96064dea7405c9dc0c6336f",
      "parents": [
        "42502d702e1625c9f3337f7a18ea5fc4cfc6090c",
        "3244d9f07fda946d62afdfa61ed5a876d380d0ff"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Sun Apr 26 02:23:03 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sun Apr 26 02:23:04 2015 +0000"
      },
      "message": "Merge \"add a fortified implementation of realpath\""
    },
    {
      "commit": "42502d702e1625c9f3337f7a18ea5fc4cfc6090c",
      "tree": "0b2b068e214267f7c5760a91ecac92ac0bcc89be",
      "parents": [
        "2eaff07839393485fec522fd0bd17bbf1af72ca6",
        "4ae773633aac9ceba5ec62bb8e1aa22c3c56ebde"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Sat Apr 25 21:29:56 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Apr 25 21:29:57 2015 +0000"
      },
      "message": "Merge \"add fortified memchr/memrchr implementations\""
    },
    {
      "commit": "6f88821e5dc4894dc2905cbe53ae21c782354f38",
      "tree": "adf7b6157250a34f290d236e8f1eac27bfb7de14",
      "parents": [
        "41ebceaf3ad392b4a3f40d96d5750d95ef206546"
      ],
      "author": {
        "name": "Bernhard Rosenkränzer",
        "email": "Bernhard.Rosenkranzer@linaro.org",
        "time": "Fri Apr 24 16:21:38 2015 +0200"
      },
      "committer": {
        "name": "Bernhard Rosenkränzer",
        "email": "Bernhard.Rosenkranzer@linaro.org",
        "time": "Fri Apr 24 16:21:38 2015 +0200"
      },
      "message": "Define char16_t and char32_t to make gcc 5.1 happy\n\ngcc 5.1 doesn\u0027t define char16_t and char32_t (unless in C++ mode),\ncausing compile failures.\n\nChange-Id: I08dcd13cdf8cd59a4a2f191864bedf4c0d1bb313\nSigned-off-by: Bernhard Rosenkränzer \u003cBernhard.Rosenkranzer@linaro.org\u003e\n"
    },
    {
      "commit": "3244d9f07fda946d62afdfa61ed5a876d380d0ff",
      "tree": "c7f124de4880d6a79e89373b2ee97fa190a71e10",
      "parents": [
        "af7538b49625f1c1c82e984610f26729a18d56bf"
      ],
      "author": {
        "name": "Daniel Micay",
        "email": "danielmicay@gmail.com",
        "time": "Sat Apr 18 13:04:19 2015 -0400"
      },
      "committer": {
        "name": "Daniel Micay",
        "email": "danielmicay@gmail.com",
        "time": "Mon Apr 20 17:31:24 2015 -0400"
      },
      "message": "add a fortified implementation of realpath\n\nChange-Id: Icc59eacd1684f7cddd83d7a2b57dad0c7ada5eb7\n"
    },
    {
      "commit": "4ae773633aac9ceba5ec62bb8e1aa22c3c56ebde",
      "tree": "08855d690e35a16d9c1cbe68148da64f54f5ebd1",
      "parents": [
        "3875744f89600027c69ea68650fff1eeb4b29723"
      ],
      "author": {
        "name": "Daniel Micay",
        "email": "danielmicay@gmail.com",
        "time": "Fri Apr 17 18:16:57 2015 -0400"
      },
      "committer": {
        "name": "Daniel Micay",
        "email": "danielmicay@gmail.com",
        "time": "Fri Apr 17 21:17:12 2015 -0400"
      },
      "message": "add fortified memchr/memrchr implementations\n\nChange-Id: I38c473cc0c608b08f971409a95eb8b853cb2ba1c\n"
    },
    {
      "commit": "42281880a8ac8614832ff918a14e4b950f35d05d",
      "tree": "0823c1e87386aea7417635e176494ab2b9fb89ab",
      "parents": [
        "3875744f89600027c69ea68650fff1eeb4b29723"
      ],
      "author": {
        "name": "Daniel Micay",
        "email": "danielmicay@gmail.com",
        "time": "Fri Apr 17 11:26:36 2015 -0400"
      },
      "committer": {
        "name": "Daniel Micay",
        "email": "danielmicay@gmail.com",
        "time": "Fri Apr 17 18:49:12 2015 -0400"
      },
      "message": "add fortified readlink/readlinkat implementations\n\nChange-Id: Ia4b1824d20cad3a072b9162047492dade8576779\n"
    },
    {
      "commit": "3875744f89600027c69ea68650fff1eeb4b29723",
      "tree": "dec2852717151c4004af3e36df748279a88a990a",
      "parents": [
        "fc4850e37b713eae12d0bde7f6e0b4e9b444bfef",
        "2a815361448d01b0f4e575f507ce31913214c536"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Apr 17 03:57:45 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 17 03:57:46 2015 +0000"
      },
      "message": "Merge \"Support symbol versioning\""
    },
    {
      "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": "31128da28f561152f5b663e6b4849691b3951525",
      "tree": "1e7a2e6bf9b060f2ad5bfcddc9fa0f7333085e5f",
      "parents": [
        "f84a5c6c5c5fa2507458086a2f9a077bd9e2c9ec",
        "e7e1c875b0f8eefb1d771f200a58f54e64c39d55"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 17 00:34:26 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 17 00:34:26 2015 +0000"
      },
      "message": "Merge \"add fortified implementations of pread/pread64\""
    },
    {
      "commit": "e7e1c875b0f8eefb1d771f200a58f54e64c39d55",
      "tree": "f6f7d5465c32d2dc7144c9e46b8b57da480f8528",
      "parents": [
        "a40cb0ca7fe8ddc146831e92ec543be9feb26a65"
      ],
      "author": {
        "name": "Daniel Micay",
        "email": "danielmicay@gmail.com",
        "time": "Thu Apr 16 09:07:45 2015 -0400"
      },
      "committer": {
        "name": "Daniel Micay",
        "email": "danielmicay@gmail.com",
        "time": "Thu Apr 16 10:33:35 2015 -0400"
      },
      "message": "add fortified implementations of pread/pread64\n\nChange-Id: Iec39c3917e0bc94371bd81541619392f5abe29b9\n"
    },
    {
      "commit": "43e020ce936aa18e071664de198adfaa71af2d82",
      "tree": "ed7684f20de8c5729ee0842616dbf545ac19ee5c",
      "parents": [
        "cafc948069d447aa1e4dde599ee83bf6c0c5d5d8"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 15 17:03:43 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 15 17:03:43 2015 -0700"
      },
      "message": "Remove PROP_PATH_SYSTEM_DEFAULT.\n\nChange-Id: Ib01d9c2f9d890eb5e7ba1e15bd11767195e84967\n"
    },
    {
      "commit": "9ce9bf5aec5ed2ec75acdc05f00a49728563a782",
      "tree": "f36b6d3335852331dbd772f00403c95697401827",
      "parents": [
        "0a92ac884891b167d6393592fbf9ecf26218f9aa",
        "c0e7dbb1dbe92c9e72bdbd299fa50786fd751807"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Apr 09 22:14:09 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 09 22:14:09 2015 +0000"
      },
      "message": "Merge \"Add Elfxx_Ver* types\""
    },
    {
      "commit": "c0e7dbb1dbe92c9e72bdbd299fa50786fd751807",
      "tree": "0ce95df4df3fda299841ee858a03b02576ca663e",
      "parents": [
        "598493e725e0298ae11ddbdee62c3a7007eb503c"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Apr 09 13:58:53 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Apr 09 13:58:53 2015 -0700"
      },
      "message": "Add Elfxx_Ver* types\n\nBug: http://b/20139821\nChange-Id: I7a367b08faa3bf5c005996c066cd35709f533265\n"
    },
    {
      "commit": "76615dae93c18ac890e167c547a08c0228709a33",
      "tree": "12a7e87c6fb332bebc087f43bcf29b2f7827571e",
      "parents": [
        "4bd8f9637daaada333ff35945b00cfe6cb822376"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Mar 17 14:22:09 2015 -0700"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Wed Apr 08 13:11:13 2015 -0700"
      },
      "message": "Provide writer preference option in rwlock.\n\nPrevious implementation of rwlock contains four atomic variables, which\nis hard to maintain and change. So I make following changes in this CL:\n\n1. Add pending flags in rwlock.state, so we don\u0027t need to synchronize\nbetween different atomic variables. Using compare_and_swap operations\non rwlock.state is enough for all state change.\n\n2. Add pending_lock to protect readers/writers waiting and wake up\noperations. As waiting/wakeup is not performance critical, using a\nlock is easier to maintain.\n\n3. Add writer preference option.\n\n4. Add unit tests for rwlock.\n\nBug: 19109156\n\nChange-Id: Idcaa58d695ea401d64445610b465ac5cff23ec7c\n"
    },
    {
      "commit": "9b82136b987bc01224e3b42732334ea27c97d188",
      "tree": "036facba010c670c5d6bfc3fa9dbb2de0f28caf8",
      "parents": [
        "ab7c79e22e5495a2aa171047a044ce1037e461a9"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Apr 02 16:03:56 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Apr 03 10:50:48 2015 -0700"
      },
      "message": "Add ANDROID_DLEXT_FORCE_LOAD flag\n\n  This flag allows to force loading of the library\n  in the case when for some reason multiple ELF files\n  share the same filename (because the already-loaded\n  library has been removed and overwritten, for example).\n\nChange-Id: I798d44409ee13d63eaa75d685e99c4d028d2b0c1\n"
    },
    {
      "commit": "377243b78c43ffc98a6c9f145a6cd27ab99c08f0",
      "tree": "af26d1303252310ad63ad94e8e13b3f1edc169a0",
      "parents": [
        "69847bc298de62917663d22b6733ef75b57124fa"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Wed Mar 25 19:59:00 2015 -0700"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Wed Mar 25 21:02:36 2015 -0700"
      },
      "message": "Remove PTHREAD_RECURSIVE_MUTEX_INITIALIZER and PTHREAD_ERRORCHECK_MUTEX_INITIALIZER.\n\nThese macros are also not used in glibc. And we should use\nPTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP\nand PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP instead.\n\nChange-Id: I35195e2f499712dcde9305bbb93622d0f7ca874b\n"
    },
    {
      "commit": "17393b06bab9cb3e95d0f466a56c746de19b8eee",
      "tree": "fa260e58da8fe186bca7787e3d7645a86b2f79cb",
      "parents": [
        "fa3dcecc0fd7bbbf04234e41be690a5d33277870"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Sat Mar 21 15:08:25 2015 -0700"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Wed Mar 25 17:54:17 2015 -0700"
      },
      "message": "Hide internal of pthread_mutex_t.\n\nBug: 19249079\nChange-Id: Iffb79c8d861b698d474f212dc80c638fc2cf1620\n"
    },
    {
      "commit": "b58457221364eaad039c2c49a42626b725e980d5",
      "tree": "a7a8d9b3de7c34bda99153ebae330b6d180b112e",
      "parents": [
        "4149dc944bbe3c5f1c14fc998106975e68bdd6bf"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Mon Mar 16 22:46:42 2015 -0700"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Fri Mar 20 17:42:09 2015 -0700"
      },
      "message": "Add test for pthread types alignment check.\n\nBug: 19249079\nChange-Id: I83c4f0d11ec5d82a346ae0057d02a92bb1d519e8\n"
    },
    {
      "commit": "110196244732911d4971ef7f9e30cc2407d8034b",
      "tree": "36f3963097eef27d25d924ea918f51c4469a4cc8",
      "parents": [
        "5f8ddf69e59b13653d016e236599b95daf6501a8"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 17 17:34:14 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 17 17:34:14 2015 -0700"
      },
      "message": "Fix _PATH_DEFPATH to correspond to the actual default path.\n\nThis is currently set in init.rc, but I plan on making init\nset PATH to _PATH_DEFPATH and removing the line from init.rc...\n\nBug: 19564110\nChange-Id: Ifa7226a3a5a90d141a788d7d6b1ae86245674218\n"
    },
    {
      "commit": "b5cd3c7a7503d8155ea17424c00f7e77603252c0",
      "tree": "2e956c25c0f32ac89a3d4e360e8a96c2d917ee0d",
      "parents": [
        "f14fe856b40afc38540988b408edc508298ec116"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Mar 16 17:06:59 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Mar 16 17:06:59 2015 -0700"
      },
      "message": "Fix build: align pthread_cond_t to sizeof(long)\n\nChange-Id: Ieaee6d09089b161ec516ba22cafaee1ecb4342da\n"
    },
    {
      "commit": "eb8b122d67db501729ecde4fcb960336c87af4ce",
      "tree": "59b9b529198343d1135994ec25bbc749243ab2bd",
      "parents": [
        "0f3fcd12ddde0e10fbeab0a98cf0efb9d64bea76"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Mar 16 16:21:08 2015 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Mar 16 16:28:54 2015 -0700"
      },
      "message": "Add alignment to opaque types.\n\nIf there is no alignment forced, then the compiler might put these\nstructures at any alignment.\n\nChange-Id: I6416db72433504e0ec1178bfae6f5b18b6e363fb\n"
    },
    {
      "commit": "32651b8e8e453391c7aaca47cd885e94d54d0bf4",
      "tree": "16c36165ce78fbc359bba222ee0744556c3ed4c4",
      "parents": [
        "d2cf59d4633d9e731d0342d4f94b6e925589ab1e"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Fri Mar 13 20:30:00 2015 -0700"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Mon Mar 16 11:09:52 2015 -0700"
      },
      "message": "Hide content of pthread_cond_t in pthread_cond_internal_t.\n\nBug: 19249079\nChange-Id: I6f55af30bcd6211ce71630c6cacbef0e1663dcee\n"
    },
    {
      "commit": "2fabea47ac9475bcc52aff0715819d18aa5bdf1d",
      "tree": "c0cad55497897c934661e49d2fc4c330b4d97cba",
      "parents": [
        "81c31bdd43e50538fa45f5e7783782a5ae5666e9"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Fri Mar 13 14:22:05 2015 -0700"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Fri Mar 13 19:35:05 2015 -0700"
      },
      "message": "Hide content of pthread_rwlock_t in pthread_rwlock_internal_t.\n\nBug: 19249079\nChange-Id: Ifbe634c716b6793bef897ec5134b55eb44c6b8d5\n"
    },
    {
      "commit": "c94c7ff2bb7cdc8638d2155b8eefd8e2538eea50",
      "tree": "5f4622d8b2b24664df14504281499214443d5804",
      "parents": [
        "f074b531d266deb63c17e1d3bff751f3f3740d9d"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Mar 13 10:32:45 2015 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Mar 13 10:32:45 2015 -0700"
      },
      "message": "Add some GNU specific elf constants.\n\nChange-Id: I6c668463a27a641c9a280ce1937857d622344ff8\n"
    },
    {
      "commit": "c4a586da49e438961e09a1319df86c9a26f4eb92",
      "tree": "db3d8d0aeb106cab69daad7846e44ed6662e650c",
      "parents": [
        "be86f87711ee71ff971da2e2ae7a092081177951"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Mar 12 13:21:35 2015 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Mar 12 13:21:35 2015 -0700"
      },
      "message": "syslog.h: missing LOG_MAKEPRI definition\n\nBug: 19681572\nChange-Id: Ice5f5cb1f71522ffc47b2243a8dc4c277c2a288f\n"
    },
    {
      "commit": "ba87fe5145b27bee0dc2a0ce146928a1998c8061",
      "tree": "c13a69f01078ceb2ad5cd515c8d656187c44a0c2",
      "parents": [
        "c16c8368773452e2d18d761a7b3ea6f249dc2ac5"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Mar 11 09:32:25 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Mar 11 09:32:25 2015 -0700"
      },
      "message": "Add the UMOUNT_NOFOLLOW flag to \u003csys/mount.h\u003e.\n\nChange-Id: I2b81cfc3147d9a0a6ac2a8f064e6d9864fa7e04d\n"
    },
    {
      "commit": "18a6956b76a071097fc658c5fe13ef010e31864a",
      "tree": "9a5213aeddb62ffcf0002986808b6699c5988e9e",
      "parents": [
        "fa26eee77685e8dee7986e62a7d263003f5bd25a"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Feb 04 16:05:30 2015 -0800"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Mar 06 17:12:47 2015 -0800"
      },
      "message": "Add support for packed relocations.\n\nChange-Id: I796a4ce86d3fccb8361c19889419c96147ee3c9f\n"
    },
    {
      "commit": "e1c0213be3f0c2c4e310cbc262da88835a2e5d86",
      "tree": "052396403af1b7e83ca747a87ce2bc0ff730ba51",
      "parents": [
        "dec9501af2ee4d7cec3a163310d42e8ea1b8c58f",
        "08ee8d2030fbc73c4c144e819dd68806b0351cbe"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Thu Mar 05 04:42:35 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 05 04:42:35 2015 +0000"
      },
      "message": "Merge \"Switch pthread_rwlock_t to stdatomic.\""
    }
  ],
  "next": "08ee8d2030fbc73c4c144e819dd68806b0351cbe"
}
