)]}'
{
  "log": [
    {
      "commit": "6a918870bab1a55a5f57dd7954abd9a8a27c1bc2",
      "tree": "fa02049d5e70ded2d921311a4aa1b0af09bf22bf",
      "parents": [
        "447fe1c23bc5adaded9a51d3b58f3adaf2cce7b3"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Aug 05 20:53:31 2014 +0000"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Aug 05 14:11:38 2014 -0700"
      },
      "message": "Revert \"Replaces vfork() implementation with fork()\"\n\nWe\u0027re getting cold feet on this one... let\u0027s put it back.\n\nThis reverts commit 210331d9762037afb9b5ed8413079c6f65872df9.\n\nChange-Id: I6b0d3c2b1dbf7f1dc9566979a91b7504c2189269\n"
    },
    {
      "commit": "c7706a02ad90ab73f3a056040d2c4a3464ab1ab1",
      "tree": "177c6035b2ef52cb779fb38f1688e74f6dfd0002",
      "parents": [
        "18a1bbe6e18770694d489f2e140e779dc59fde86",
        "bc5a3ec6df66d2456667ddf1d6dfaf623552169d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 30 22:15:43 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jul 29 21:36:05 2014 +0000"
      },
      "message": "Merge \"[MIPSR6] Use C-coded string ops on mips32r6/mips64r6\""
    },
    {
      "commit": "bc5a3ec6df66d2456667ddf1d6dfaf623552169d",
      "tree": "2f51584e75c74e72638ed319fa198bcd717a2075",
      "parents": [
        "4d421901e587fd1563da94baf59b015017c01b91"
      ],
      "author": {
        "name": "Duane Sand",
        "email": "duane.sand@imgtec.com",
        "time": "Thu Jul 10 15:24:27 2014 -0700"
      },
      "committer": {
        "name": "Duane Sand",
        "email": "duane.sand@imgtec.com",
        "time": "Wed Jul 23 14:00:21 2014 -0700"
      },
      "message": "[MIPSR6] Use C-coded string ops on mips32r6/mips64r6\n\nThe existing assembler code uses deprecated lwl/lwr/swl/swr ops.\nReplacing those with misalignment-forgiving lw/sw ops may\ninvolve careful performance tuning.\n\nChange-Id: I47a042f7b22b87d7d52e46c29c44b1db1ba8b693\n"
    },
    {
      "commit": "ba23bd0a409bb0e43c57dabee96b2ae52481d5b7",
      "tree": "28aee3c30260e7386ab212e9dacf335797d93ab4",
      "parents": [
        "7d22a4519610f830178bbff32d961a2784354397"
      ],
      "author": {
        "name": "Duane Sand",
        "email": "duane.sand@imgtec.com",
        "time": "Thu Jul 24 10:56:54 2014 -0700"
      },
      "committer": {
        "name": "Duane Sand",
        "email": "duane.sand@imgtec.com",
        "time": "Thu Jul 24 18:04:21 2014 +0000"
      },
      "message": "[MIPS] Drop soft-fp targets\n\nChange-Id: I583bf8242d3034ebfc48548499cdb3316094c8e3\n"
    },
    {
      "commit": "f541650828f75b3dab22c9c0caab845be78b80fc",
      "tree": "d437c324bf4f5d3f5477e76afc89ab78df0b0f00",
      "parents": [
        "4d421901e587fd1563da94baf59b015017c01b91"
      ],
      "author": {
        "name": "Duane Sand",
        "email": "duane.sand@imgtec.com",
        "time": "Wed Jul 16 12:29:34 2014 -0700"
      },
      "committer": {
        "name": "Duane Sand",
        "email": "duane.sand@imgtec.com",
        "time": "Tue Jul 22 14:27:48 2014 -0700"
      },
      "message": "[MIPS] Allow united mipsel and mips64el gcc toolchain\n\nExplicitly tell 32-bit links that they are doing 32-bit links.\nThis is needed when using united 32-bit and 64-bit toolchains.\nThis is harmless when using older separate 32-only toolchains.\n\nChange-Id: I70cbd3f5867e59b1f6f829793444242fb0894aa6\n"
    },
    {
      "commit": "c82c0b7e072491da4818e7de37411fbb2055fce1",
      "tree": "52915af97820de3316dab31073920c141ad861a3",
      "parents": [
        "a217a0cdb3ff78f6b59d64fd4356f87643ad9d1e"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon Jun 16 16:52:27 2014 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon Jun 16 16:52:27 2014 -0700"
      },
      "message": "Remove SHA1 from LP64 in favor of libcrypto.\n\nKeep the symbols around on LP32 for binary compatibility.\n\nBug: 11156955\nChange-Id: I379a7e0fa3092e9a70daeafcbcb2aacfc314031a\n"
    },
    {
      "commit": "891dedb935b50f1abb39eedfe33049a1e49283cb",
      "tree": "8066a42ec9e07537607254deb91195fb9d102a88",
      "parents": [
        "4fb0d4fb312ed696081200e65ce9bf643928e5e6"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Fri Jun 13 12:28:11 2014 +0200"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon Jun 16 13:10:20 2014 -0700"
      },
      "message": "libc: Fix \u0027index\u0027 symbol export.\n\nThe C library didn\u0027t export the \u0027index\u0027 symbol, but its C++ name-mangling\ninstead, which broke the ABI and prevented some applications from loading\nproperly.\n\nThe main reason was that the implementation under bionic/index.cpp relied\non the declaration to specify that the function has C linkage.\n\nHowever, the declaration for index() was removed from both \u003cstring.h\u003e\nand \u003cstrings.h\u003e in a recent patch, which made the compiler think it was\nok to compile the function with C++ linkage instead!\n\nThis patch does the following:\n\n- Move index() definition to bionic/ndk_cruft.cpp and ensure it uses\n  C linkage.\n\n  Note that this removes index() from the 64-bit library entirely, this\n  is intentional and will break source compatibility. Simply replacing\n  an index() call with the equivalent strchr() should be enough to fix\n  this in third-party code.\n\n- Remove bionic/index.cpp from the tree and build files.\n\n- Remove x86 assembly implementation from arch-x86/ to avoid conflict\n  with the one in ndk_cruft.cpp\n\nBUG\u003d15606653\n\nChange-Id: I816b589f69c8f8a6511f6be6195d20cf1c4e8123\n"
    },
    {
      "commit": "24614b4729a4c8665193f5793b93019b37f779b1",
      "tree": "52631806852b1c584e50f04981e1f64d99106d3f",
      "parents": [
        "346fa721ca20e481a624930425d823d452e11dfe"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jun 12 15:35:22 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jun 12 15:35:22 2014 -0700"
      },
      "message": "Remove __memcmp16 from bionic.\n\nChange-Id: I2486d667d96c8900dd368d855f37c1327161efb7\n"
    },
    {
      "commit": "8e613cf342b369f7985135dbe11ebdbf8c736157",
      "tree": "729d925aaeff9b92b7bb09c9385e90069b400c2c",
      "parents": [
        "440bd6bcc308f78b32fcbc4a3ba312dd1343559b"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed Jun 11 14:17:35 2014 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed Jun 11 14:41:45 2014 -0700"
      },
      "message": "Remove declaration for putw(3)/getw(3).\n\nThese were both removed from POSIX 2004, and we don\u0027t define an\nimplementation for getw(3). Keep the definition of put(3) on LP32 for\nbinary compatibility.\n\nBug: 13935372\nChange-Id: Iba384b45093ac6d2d7c2d81f7980cd7701dd6f56\n"
    },
    {
      "commit": "210331d9762037afb9b5ed8413079c6f65872df9",
      "tree": "85e6c875bcd65741da38a7d2b6a47cc24440d8b4",
      "parents": [
        "e2a54ca80e011db21665e9639af4608f58e32fbd"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Jun 05 18:07:03 2014 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Jun 10 21:38:52 2014 -0700"
      },
      "message": "Replaces vfork() implementation with fork()\n\nvfork() was removed from POSIX 2008, so this replaces its implementation\nwith a call to fork().\n\nBug: 13935372\nChange-Id: I6d99ac9e52a2efc5ee9bda1cab908774b830cedc\n"
    },
    {
      "commit": "fae42a837ae7f880de9561c7b3c2b18e4a531e90",
      "tree": "9ded88c4807f1c040ccc7f8baf8e970ac374c18c",
      "parents": [
        "32c8ae9de0e51ac64efcfd2e5da34382deee959e",
        "b30aff405a220495941f1673b0a5e66c4fa8b84c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 29 03:13:23 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu May 29 03:13:23 2014 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Lose the hand-written futex assembler.\"\"\""
    },
    {
      "commit": "b30aff405a220495941f1673b0a5e66c4fa8b84c",
      "tree": "3bf667c009cf468c040ccaae6e81d468b4fd0254",
      "parents": [
        "52f74322b1d72d57146107f32ee2c76c421bf4b1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 28 19:35:33 2014 +0000"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 28 18:31:15 2014 -0700"
      },
      "message": "Revert \"Revert \"Lose the hand-written futex assembler.\"\"\n\nThe problem with the original patch was that using syscall(3) means that\nerrno can be set, but pthread_create(3) was abusing the TLS errno slot as\na pthread_mutex_t for the thread startup handshake.\n\nThere was also a mistake in the check for syscall failures --- it should\nhave checked against -1 instead of 0 (not just because that\u0027s the default\nidiom, but also here because futex(2) can legitimately return values \u003e 0).\n\nThis patch stops abusing the TLS errno slot and adds a pthread_mutex_t to\npthread_internal_t instead. (Note that for LP64 sizeof(pthread_mutex_t) \u003e\nsizeof(uintptr_t), so we could potentially clobber other TLS slots too.)\n\nI\u0027ve also rewritten the LP32 compatibility stubs to directly reuse the\ncode from the .h file.\n\nThis reverts commit 75c55ff84ebfa686c7ae2cc8ee431c6a33bd46b4.\n\nBug: 15195455\nChange-Id: I6ffb13e5cf6a35d8f59f692d94192aae9ab4593d\n"
    },
    {
      "commit": "8a405b027a9c8b3a614016f4824a03fa252e9e1e",
      "tree": "6477f0c0bc3bab543583bc4df2f6a2e2c69a599d",
      "parents": [
        "52f74322b1d72d57146107f32ee2c76c421bf4b1",
        "6f2bde344123d8503cd60f3ecd3420f39aa24eb9"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed May 28 21:35:04 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 28 21:35:04 2014 +0000"
      },
      "message": "Merge \"Add optimized AArch64 versions of bcopy and wmemmove based on memmove\""
    },
    {
      "commit": "75c55ff84ebfa686c7ae2cc8ee431c6a33bd46b4",
      "tree": "17a0bb533344ff11f7401dba76d950b71c7bd1b1",
      "parents": [
        "ced906c849704f379d7191822f6d74993d4fa296"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed May 28 18:02:33 2014 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed May 28 18:03:01 2014 +0000"
      },
      "message": "Revert \"Lose the hand-written futex assembler.\"\n\nThis reverts commit ced906c849704f379d7191822f6d74993d4fa296.\n\nCauses issues on art / dalvik due to a broken return value\ncheck and other undiagnosed issues.\n\nbug: 15195455\n\nChange-Id: I5d6bbb389ecefb0e33a5237421a9d56d32a9317c"
    },
    {
      "commit": "6f2bde344123d8503cd60f3ecd3420f39aa24eb9",
      "tree": "fd32dfb0c313a1d852c37450ad22bab1d232c951",
      "parents": [
        "1c4d83012fea4e6d011215bef1665cf68d2ac47c"
      ],
      "author": {
        "name": "Bernhard Rosenkraenzer",
        "email": "Bernhard.Rosenkranzer@linaro.org",
        "time": "Fri May 23 17:44:18 2014 +0200"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri May 23 18:49:57 2014 -0700"
      },
      "message": "Add optimized AArch64 versions of bcopy and wmemmove based on memmove\n\nAdd optimized versions of bcopy and wmemmove for AArch64 based on the\nmemmove implementation\n\nChange-Id: I82fbe8a7221ce224c567ffcfed7a94a53640fca8\nSigned-off-by: Bernhard Rosenkraenzer \u003cBernhard.Rosenkranzer@linaro.org\u003e\n"
    },
    {
      "commit": "fd0ce866ce46ed62aa17dc2959a085cb3bf5755d",
      "tree": "62e5d2aa5516f7cd82d804b7105288ede6897de2",
      "parents": [
        "8167dd7cb98e87ffe9b40e4993c330b244ca2234"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Sat May 24 01:02:22 2014 +0000"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Sat May 24 01:02:22 2014 +0000"
      },
      "message": "Revert \"Add optimized AArch64 versions of bcopy and wmemmove based on memmove\"\n\nThis reverts commit 8167dd7cb98e87ffe9b40e4993c330b244ca2234.\n\nFor some reason I thought the bcopy change was bzero. The bcopy code doesn\u0027t pass our tests, so reverting until I can figure out what\u0027s wrong.\n\nChange-Id: Id89fe959ea5105cd58dff6bba8d91a30cc4bcb07\n"
    },
    {
      "commit": "8167dd7cb98e87ffe9b40e4993c330b244ca2234",
      "tree": "8800a876d9c8866a1e76f890254d7a22d8281bfb",
      "parents": [
        "a486632e789c6db4c35f969485ebb57f503bcf48"
      ],
      "author": {
        "name": "Bernhard Rosenkraenzer",
        "email": "Bernhard.Rosenkranzer@linaro.org",
        "time": "Fri May 23 17:44:18 2014 +0200"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri May 23 17:54:08 2014 -0700"
      },
      "message": "Add optimized AArch64 versions of bcopy and wmemmove based on memmove\n\nAdd optimized versions of bcopy and wmemmove for AArch64 based on the\nmemmove implementation\n\nChange-Id: Ie43d0ff4f8ec4edba5b4fb5ccacd941f81ac6557\nSigned-off-by: Bernhard Rosenkraenzer \u003cBernhard.Rosenkranzer@linaro.org\u003e\n"
    },
    {
      "commit": "ced906c849704f379d7191822f6d74993d4fa296",
      "tree": "3bac511fef3da9b482019edced149a849a541fbc",
      "parents": [
        "ea7dc32080114af59789c119ca6aa4814426ea42"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 22 19:49:11 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 22 19:49:11 2014 -0700"
      },
      "message": "Lose the hand-written futex assembler.\n\nAlso stop exporting \u0027futex\u0027.\n\nBug: 12250341\nChange-Id: Icc4fa4296cd04dfe0d1061822c69e2eb40c3433a\n"
    },
    {
      "commit": "c1d26965ae12f94c7b0dc64b2548c3c29d180296",
      "tree": "de17b14e772e69f6cfc0fc17394c3e1ad4a0bab0",
      "parents": [
        "8b307e0e9843aad7e1816eb631208117df2e787b",
        "5a92284167ffba6d45210ef6889fa7d255c15d4f"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue May 13 00:26:50 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 13 00:26:50 2014 +0000"
      },
      "message": "Merge \"Add 32-bit Silvermont-optimized string/memory functions.\""
    },
    {
      "commit": "dcbef06ce6bb21d62d5a32148a3e64746b47b449",
      "tree": "193e7494535d26ac5820c17b0993817e709d55b3",
      "parents": [
        "4b57305afe2b54a6afb733361f6fd93cb92ccfa8"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon May 12 16:11:06 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon May 12 16:11:06 2014 -0700"
      },
      "message": "Remove the useless indirection in mips\u0027 __set_tls.\n\nChange-Id: I12e9d6716c42ccbccc9a186441aca0736bb22d05\n"
    },
    {
      "commit": "5a92284167ffba6d45210ef6889fa7d255c15d4f",
      "tree": "0ab0ebc49463cc1bdcad12f96ee12c5acbe51cc1",
      "parents": [
        "ebcc72070499b2ab2d1dee990d6f52814a56600e"
      ],
      "author": {
        "name": "Varvara Rainchik",
        "email": "varvara.rainchik@intel.com",
        "time": "Thu Apr 24 15:41:20 2014 +0400"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon May 12 13:56:59 2014 -0700"
      },
      "message": "Add 32-bit Silvermont-optimized string/memory functions.\n\nAdd following functions:\nbcopy, memcpy, memmove, memset, bzero, memcmp, wmemcmp, strlen,\nstrcpy, strncpy, stpcpy, stpncpy.\nCreate new directories inside arch-x86 to specify architecture: atom,\nsilvermont and generic (non atom or silvermont architectures are treated like generic).\nDue to introducing optimized versions of stpcpy and stpncpy,\nc-implementations of these functions are moved from\ncommon for architectures makefile to arm and mips specific makefiles.\n\nChange-Id: I990f8061c3e9bca1f154119303da9e781c5d086e\nSigned-off-by: Varvara Rainchik \u003cvarvara.rainchik@intel.com\u003e\n"
    },
    {
      "commit": "8d77bce185d04c531bd9bf34d38e5cbbe644d3a3",
      "tree": "b68dd0db69716a52362f9db6c9a34d6a0aa4b102",
      "parents": [
        "8eaeaf50cbd769c7c9852621a422a4f0be1e08e5"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 22 13:55:58 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 22 13:55:58 2014 -0700"
      },
      "message": "LP64 shouldn\u0027t include the non-standard \u003ctime64.h\u003e cruft.\n\nThis patch includes just enough to keep external/chromium_org building\nuntil they switch 64-bit Android over to using the regular non-Android code.\n\nChange-Id: Iecaf274efa46ae18a42d5e3439c5aa4f909177c1\n"
    },
    {
      "commit": "53e43292aac91bf62995788cd5ca2ceb7caea283",
      "tree": "003679a1e2288bad947f714ee45bfa6febf479b6",
      "parents": [
        "ba40a560176e6ea753d09a6a71343b81ea4c8c1e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 24 18:00:43 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 24 18:02:05 2014 -0800"
      },
      "message": "More OpenBSD cleanup (primarily string).\n\nThis patch removes the string/ and wchar/ directories.\n\nChange-Id: Ia489904bc67047e4bc79acb1f3eec21aa3fe5f0d\n"
    },
    {
      "commit": "b8dc9bbd905f762bae9845274b1053da1c084860",
      "tree": "164ba85e365ae05ba1ba1defac2f2a671f902067",
      "parents": [
        "26172fa401a4323c8c9b4063a59ab6d08ca617bf"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 20 14:35:20 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 20 14:35:20 2014 -0800"
      },
      "message": "Stop asking GCC to cause trouble.\n\nWhy do we see so many bogus strict-aliasing warnings? Because we asked GCC to\ncause trouble on arm and mips.\n\nChange-Id: I25d7fd036b6afff7ccfa799abe0dc1579ead2847\n"
    },
    {
      "commit": "6e39ba73bfd9504762e8798fd6b293f11d5fdf7e",
      "tree": "a4ced0486a47d0941a9df2df00a9d75a3537393d",
      "parents": [
        "ca566b31036704eb6cdde05a0bd9ee972d7a995d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 20 11:36:55 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 20 11:36:55 2014 -0800"
      },
      "message": "Stop advertising an arm32-specific hack like it\u0027s a build system feature.\n\nChange-Id: I3a830b4a3516b6eb8e4f8e6e6b122a22a2e341df\n"
    },
    {
      "commit": "f25d677147ae55a1f3b6ef7fa3ee27921792813f",
      "tree": "bc2f15be8e5d496de16cb4f415d4ef4035d5277d",
      "parents": [
        "022885e2fad5ef9643e05d80c6f50a2a90bf3431"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Thu Jan 23 15:17:50 2014 -0800"
      },
      "committer": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Wed Feb 12 13:58:34 2014 -0800"
      },
      "message": "Reconfig libc\u0027s Android.mk to build for multilib\n\n1. Moved arch-specific setup to their own files:\n    - \u003carch\u003e/\u003carch\u003e.mk, arch-specific configs. Variables in those config\n      end with the arch name.\n    - removed the extra complexity introduced by function libc-add-cpu-variant-src,\n      which seems to be not very useful these days.\n2. Separated out the crt object files generation rules and set up the\n   rules for both TARGET_ARCH and TARGET_2ND_ARCH.\n3. Build all the libraries for both TARGET_ARCH and TARGET_2ND_ARCH,\n  with the arch-specific LOCAL_ variables.\n\nBug: 11654773\nChange-Id: I9c2d85db0affa49199d182236d2210060a321421\n"
    },
    {
      "commit": "0266ae5f884d72da58f33a072e865ba131234a5e",
      "tree": "48763b706806f544b1dec0ef98261bed6f21dee2",
      "parents": [
        "eeb9a9f59a58a2f042e8f6fd1a4911ae92ac5493"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 10 17:46:57 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 10 18:22:24 2014 -0800"
      },
      "message": "Switch \u003celf.h\u003e over to linux uapi under the covers.\n\nRemove the linker\u0027s reliance on BSD cruft and use the glibc-style\nElfW macro. (Other code too, but the linker contains the majority\nof the code that needs to work for Elf32 and Elf64.)\n\nAll platforms need dl_iterate_phdr_static, so it doesn\u0027t make sense\nto have that part of the per-architecture configuration.\n\nBug: 12476126\nChange-Id: I1d7f918f1303a392794a6cd8b3512ff56bd6e487\n"
    },
    {
      "commit": "645d0312c2d6b6492cc4b3891bc1a91908dc24b7",
      "tree": "4ec0e5c08e0c5a60dc7f9dfbb65e49aa8c57a138",
      "parents": [
        "5036935c41d9193cfbba606df2121cd4c6973116"
      ],
      "author": {
        "name": "Chris Dearman",
        "email": "chris.dearman@imgtec.com",
        "time": "Wed Feb 05 18:51:43 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 06 16:22:20 2014 -0800"
      },
      "message": "[MIPS64] libc/libm support\n\nlibc/libm support for MIPS64 targets\n\nChange-Id: I8271941d418612a286be55495f0e95822f90004f\nSigned-off-by: Chris Dearman \u003cchris.dearman@imgtec.com\u003e\nSigned-off-by: Raghu Gandham \u003craghu.gandham@imgtec.com\u003e\n"
    },
    {
      "commit": "36d6188f8cd8b948fb797f11d9620d63d0c2215a",
      "tree": "86b3162cac031151b2ae44b4d554fce4f9456147",
      "parents": [
        "318e86ed887e04e593f3db9b84b402d5501ced9b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Nov 19 13:31:58 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Nov 19 14:08:54 2013 -0800"
      },
      "message": "Clean up forking and cloning.\n\nThe kernel now maintains the pthread_internal_t::tid field for us,\nand __clone was only used in one place so let\u0027s inline it so we don\u0027t\nhave to leave such a dangerous function lying around. Also rename\nfiles to match their content and remove some useless #includes.\n\nChange-Id: I24299fb4a940e394de75f864ee36fdabbd9438f9\n"
    },
    {
      "commit": "effaa7824da1af4db5cef50c78079d4c4e1717a7",
      "tree": "75fd1cad053bece3b7df4c45e26e16a36c2de737",
      "parents": [
        "ae5c3dd73844e6a9e1a14dbf893eab5142902f18"
      ],
      "author": {
        "name": "Chris Dearman",
        "email": "chris.dearman@imgtec.com",
        "time": "Wed Nov 13 14:15:31 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 14 16:53:15 2013 -0800"
      },
      "message": "[MIPS] Reimplement syscall to invoke the system call directly\n\nSome MIPS kernels do not correctly restart interrupted system calls that\nhave been invoked using the indirect syscall (NR_syscall).\n\nThe simplest workaround is to handle the indirection in userland and then\ncall the required system call directly.\n\nChange-Id: I8385399621529db9a52b463c96925f6decaaca30\n"
    },
    {
      "commit": "bf425680e484486803bf21e4c4cd1e3f36614a3c",
      "tree": "e98aae6ddd8758482b81ff2734ee21ad3db3885c",
      "parents": [
        "f8dfb6f249da6fc9c91cc8b94fa28c19e598faa6"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 24 16:29:40 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 24 16:29:40 2013 -0700"
      },
      "message": "Let the compiler worry about implementing ffs(3).\n\nIt does at least as good a job as our old hand-written assembly anyway.\n\nChange-Id: If7c4a1ac508bace0b71ee7b67808caa6eabf11d2\n"
    },
    {
      "commit": "b8cf18b4dd3a46f004ac255257e7a87b6e6d8457",
      "tree": "89a1ad1fc414410eb6c6f3ec7c191a74e8d9a321",
      "parents": [
        "97dc3309f3d403c391581444ad656c2f3c61303d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 23 11:21:36 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 23 11:21:36 2013 -0700"
      },
      "message": "MIPS\u0027 pipe(2) is weird, but MIPS\u0027 pipe2(2) is the same as everyone else\u0027s.\n\narch/mips/kernel/syscall.c has a special sysm_pipe wrapper, but there\u0027s\nno special treatment of pipe2 because it carries no historical baggage.\n\nChange-Id: I892c0f690b21992c8a48276a9b732126f18fc0ee\n"
    },
    {
      "commit": "14b467e840f8735e050b1844731c7747a7130525",
      "tree": "92a6c770565a28e253aa8491d49a3adc7e6ef29b",
      "parents": [
        "37953ee3feb60b84e43349df0b13544367ca1cd7"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 09 16:40:33 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 09 16:40:33 2013 -0700"
      },
      "message": "Fix MIPS build.\n\nWarnings are errors for all home-grown bionic code, and the arch-specific\ncode now counts as home-grown bionic code (it was mistakenly counted as\n\"not ours\" before).\n\nChange-Id: I9c6a881b0dc596bae7dfe112c5c189e073800a3a\n"
    },
    {
      "commit": "2a0b873065edb304fa2d1c54f8de663ea638b8ab",
      "tree": "4753b74b87e713379965bb051482036e6726afb1",
      "parents": [
        "777a4ee6771e6fe3362ef4f24244a44fcd0aabe4"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 08 18:50:24 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 09 13:39:13 2013 -0700"
      },
      "message": "Fix __errno for LP64 and clean up __get_tls.\n\nIf __get_tls has the right type, a lot of confusing casting can disappear.\n\nIt was probably a mistake that __get_tls was exposed as a function for mips\nand x86 (but not arm), so let\u0027s (a) ensure that the __get_tls function\nalways matches the macro, (b) that we have the function for arm too, and\n(c) that we don\u0027t have the function for any 64-bit architecture.\n\nChange-Id: Ie9cb989b66e2006524ad7733eb6e1a65055463be\n"
    },
    {
      "commit": "7c83a1ed81a15f3e75836c1ac7d500a952f02e10",
      "tree": "7e1890950332e377275018ec84eaff656b772838",
      "parents": [
        "04766565d3743d70f679ca180d7fcc35321143b8"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Feb 26 01:30:00 2013 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Feb 28 17:45:16 2013 -0800"
      },
      "message": "Break bionic implementations into arch versions. DO NOT MERGE\n\nMove arch specific code for arm, mips, x86 into separate\nmakefiles.\nIn addition, add different arm cpu versions of memcpy/memset.\n\nBug: 8005082\n\n(cherry picked from commit acdde8c1cf8e8beed98c052757d96695b820b50c)\n\nChange-Id: I0108d432af9f6283ae99adfc92a3399e5ab3e31d\n"
    }
  ]
}
