)]}'
{
  "log": [
    {
      "commit": "4e446b19d8710cd2004785db4a00f18f249fe73f",
      "tree": "1c7618642ff6c6ec18ed49fbe1e64546e522f3b3",
      "parents": [
        "f33ad400230fa1f16ba4501efb60a1b6035e06ca"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Oct 31 17:27:02 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Oct 31 17:27:02 2014 -0700"
      },
      "message": "Fix arm64 and arm builds.\n\nChange-Id: I2c8c41626768e792f27a2616f2cd5ae66606319d\n"
    },
    {
      "commit": "d225a5e65223b375a63548c4b780f04d8f3d7b60",
      "tree": "a98d29bee4e948053033be67fa8e88b102beefce",
      "parents": [
        "d50495a56760fdc116b7484bcdf1183c76db9b37"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Aug 28 14:12:12 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Oct 31 11:39:51 2014 -0700"
      },
      "message": "Fix symbol lookup order during relocation\n\n  Relocate symbol against DF_1_GLOBAL shared libraries\n  loaded before this shared library. This includes\n  main executable, ld_preloads and other libraries\n  that have DF_1_GLOBAL flag set.\n\nBug: 2643900\nBug: 15432753\nChange-Id: Ia788748be59b739d1c7e62b978e7e255f9e65c7b\n"
    },
    {
      "commit": "89aaaffbf8f2d09b56c1cc1345cdaf28c331ab5e",
      "tree": "88117e80c7f4c4ca41512e73e2995fd29526a8f6",
      "parents": [
        "13dcb88b0f8ce238456059fdc0b6c946caed1e3a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 28 17:54:23 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 28 17:54:23 2014 -0700"
      },
      "message": "Extra strtod/strtof tests.\n\nCheck that libc doesn\u0027t suffer from a couple of bugs that affected\nJava in the past.\n\nBug: 2206701\nChange-Id: I9eb64d7ff2fa0b79e93079b897a5fb78bef866be\n"
    },
    {
      "commit": "50321e2e66f19998970e59d666bc9af387345b3a",
      "tree": "32f70c79741c7fbe2ce68ce36e9d0907cba26d95",
      "parents": [
        "ec58e29b276b0f98eb624430fb70703dc32057bf"
      ],
      "author": {
        "name": "Pavel Chupin",
        "email": "pavel.v.chupin@intel.com",
        "time": "Fri Sep 26 16:02:09 2014 +0400"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 27 16:14:55 2014 -0700"
      },
      "message": "[x86,x86_64] Fix libgcc unwinding through signal\n\nThis change provides __restore/__restore_rt on x86 and __restore_rt on\nx86_64 with unwinding information to be able to unwind through signal\nframe via libgcc provided unwinding interface. See comments inlined for\nmore details.\n\nAlso remove the test that had a dependency on\n__attribute__((cleanup(foo_cleanup))). It doesn\u0027t provide us with any\nbetter test coverage than we have from the newer tests, and it doesn\u0027t\nwork well across a variety architectures (presumably because no one uses\nthis attribute in the real world).\n\nTested this on host via bionic-unit-tests-run-on-host on both x86 and\nx86-64.\n\nBug: 17436734\nChange-Id: I2f06814e82c8faa732cb4f5648868dc0fd2e5fe4\nSigned-off-by: Pavel Chupin \u003cpavel.v.chupin@intel.com\u003e\n"
    },
    {
      "commit": "ed29e858d09906bc28e79d919af1d09f0538a464",
      "tree": "d861bcbf17cdde6337d941fb8cb33531cdc2c08c",
      "parents": [
        "021b6412f7b7ce73b383480b25a8e5d69323f78c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 27 12:01:51 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 27 12:01:51 2014 -0700"
      },
      "message": "pthread_setname_np appears in glibc 2.12.\n\nAnd our emulator kernels are now new enough to not require a workaround.\n\nChange-Id: Id56c983dbfd8abc69f72a78411a5502391941dfc\n"
    },
    {
      "commit": "095636e6adb5d73e7727596786d4b8dbdb0a6b03",
      "tree": "1b4d10ff7b66252cf4578529bf115448bbd4eae0",
      "parents": [
        "c716dd1e21438ac6585be79fb799b3135e9b381f"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Sat Oct 25 12:41:23 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Sat Oct 25 21:41:32 2014 -0700"
      },
      "message": "Fix *tests-run-on-host target\n\nChange-Id: Id0e5060977a2df91c47b5a916989eb7e2e3f8153\n"
    },
    {
      "commit": "4199695657e9500db14ab40392e3715db1826002",
      "tree": "dcecb8b9c15dc0f42582132efdb37852afb32830",
      "parents": [
        "f56a2f5ed2508e0743581003420c0f2d9cb54c7b"
      ],
      "author": {
        "name": "Derek Xue",
        "email": "derek.xue@linaro.org",
        "time": "Thu Sep 25 11:05:32 2014 +0100"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Oct 24 18:54:42 2014 -0700"
      },
      "message": "bionic tests: migrate test for mutex type from system/extras\n\nMigrate the test about pthread mutex type in file\n    system/extras/tests/bionic/libc/bionic/test_mutex.c\nto the new place\n    bionic/tests/pthread_test.cpp\nin the gtest format.\n\nChange-Id: I6aab10170ccad5b9a4892d52dba2403876c86659\nSigned-off-by: Yongqin Liu \u003cyongqin.liu@linaro.org\u003e\n"
    },
    {
      "commit": "57c5a5562b08007dbe6379a4b68ca3a0225747c0",
      "tree": "bbe2d7372654043aa0ddfcd8609f4434fb2a9116",
      "parents": [
        "c83837ec158a14bf84ea702c04f606de3b0599a8",
        "b08629862968772c35418698c7d6d99a5110f3f7"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Fri Oct 24 18:34:40 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 24 18:34:40 2014 +0000"
      },
      "message": "Merge \"Disable clang compilation due to lack of ifunc.\""
    },
    {
      "commit": "b08629862968772c35418698c7d6d99a5110f3f7",
      "tree": "778d2aac6cf3f00732ff4a9f9d06a04afee01b76",
      "parents": [
        "cad8d226c3589a65775fda972d4cd3ebd3877dab"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Fri Oct 24 11:04:51 2014 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Fri Oct 24 11:04:51 2014 -0700"
      },
      "message": "Disable clang compilation due to lack of ifunc.\n\nBUG: 18055309\nChange-Id: I0f36011cf7872a20ddd36a6c3c607eb96f0a8ec2\n"
    },
    {
      "commit": "1e8ebdc3754178b68bbb0ac15ec9569738f5fc02",
      "tree": "571a428bb0d89912e6da759a5ae648821b411da1",
      "parents": [
        "a4c0b7567190968d263bedd1073ea633510f9a45"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 23 22:14:32 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Oct 24 10:45:08 2014 -0700"
      },
      "message": "Make the netdb unit tests work on the host.\n\nBug: 18111005\nChange-Id: I79c6929c3827716e19b44d7469db69740f4b449c\n"
    },
    {
      "commit": "a4c0b7567190968d263bedd1073ea633510f9a45",
      "tree": "ac25f7c6bb0f9a311a97416ef1a2fbeab2aa1078",
      "parents": [
        "f33a7d7f1cc96cf1445013fe49f6db0f03cbd44f",
        "ca8e84c6ff55640aef94d25a86a25778a542bfc2"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Oct 24 02:57:11 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 24 02:57:12 2014 +0000"
      },
      "message": "Merge \"Add mkfifoat(3).\""
    },
    {
      "commit": "ca8e84c6ff55640aef94d25a86a25778a542bfc2",
      "tree": "9bb5852afef5b61cf906caee58cfea12d65e0b0b",
      "parents": [
        "6c5694b6c8343d740c36adbe904442cecd8030a6"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 23 19:10:23 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 23 19:10:54 2014 -0700"
      },
      "message": "Add mkfifoat(3).\n\nLooks like I missed one of the *at functions when I added the rest.\n\nChange-Id: If16de82dbf6f9a3ea7bfdcba406ca1c74a3f2279\n"
    },
    {
      "commit": "566f2bc623dbd1d6e8bcf3a6c6e7a6fffe7f68fd",
      "tree": "0f3c8d62913644705bbd1c1f97517f8a7997607b",
      "parents": [
        "6c5694b6c8343d740c36adbe904442cecd8030a6",
        "cfa97f172dc1b10d650fefbb6ccffd88ce72a5fb"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Oct 23 20:48:59 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 23 20:49:00 2014 +0000"
      },
      "message": "Merge \"Fix relocation to look for symbols in local group\""
    },
    {
      "commit": "cfa97f172dc1b10d650fefbb6ccffd88ce72a5fb",
      "tree": "f811c34ec0dde4eed15c64d33b4a89c8e5a00030",
      "parents": [
        "cf8ea37fc91e23d37b3c5873b5e152ccae293f03"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Oct 21 09:23:18 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Oct 23 12:13:54 2014 -0700"
      },
      "message": "Fix relocation to look for symbols in local group\n\n  The local group is a sequence of libraries in default (breadth-first)\n  order. It allows RTLD_LOCALLY loaded library to correctly relocate\n  symbols within its group (see test-cases).\n\n  Local group lookup is performed after main executable and ld_preloads.\n\nBug: 2643900\nBug: 15432753\nChange-Id: I9bb013b46d17dbb5cbdfb8fef26f552748385541\n"
    },
    {
      "commit": "ba811120ae10ddca1ffc8855bf1d83e99b08bcd9",
      "tree": "6719566e303ebd118b22b46965440e3fc4056767",
      "parents": [
        "cf8ea37fc91e23d37b3c5873b5e152ccae293f03"
      ],
      "author": {
        "name": "Derek Xue",
        "email": "derek.xue@linaro.org",
        "time": "Wed Aug 13 14:19:17 2014 +0100"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 22 22:23:10 2014 -0700"
      },
      "message": "Migrate system/extra getaddrinfo test, and fix a bug in getservbyname(3).\n\nThis change is to migrate the getaddrinfo tests defined in the old file\nsystem/extras/tests/bionic/libc/common/test_getaddrinfo.c\nto the new place bionic/tests/netdb_test.cpp.\n\nThe test here is more thorough, and catches a bug in getservbyname(3)\nthat was breaking getaddrinfo(3)\u0027s ability to look up services by name\nwithout a hint that would cause it to ask for a specific protocol.\n\nChange-Id: Ief5ebd0869496d1bc6a97861dfefa04bdf24bab1\nSigned-off-by: Yongqin Liu \u003cyongqin.liu@linaro.org\u003e\n"
    },
    {
      "commit": "4912fc7d152236cb496aec01eb5800cfd1b757c7",
      "tree": "bb1d006f296be71fec6ed5c05a231e437d96780a",
      "parents": [
        "e516321d78162479a4ce17bd5a9ba8c0834abf18"
      ],
      "author": {
        "name": "Derek Xue",
        "email": "derek.xue@linaro.org",
        "time": "Wed Aug 13 14:19:17 2014 +0100"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 22 14:30:01 2014 -0700"
      },
      "message": "bionic/tests: migrate gethostbyname bionic test from system/extra to bionic/tests\n\nthis change migrate the gethostbyname test defined in the old file\nsystem/extras/tests/bionic/libc/common/test_gethostbyname.c\nto the new place bionic/tests/netdb_test.cpp\n\nChange-Id: I342171090f681581fb54d68ea4a09adf61f52081\nSigned-off-by: Yongqin Liu \u003cyongqin.liu@linaro.org\u003e\n"
    },
    {
      "commit": "62d84b19359a8ddd3df5b6293d1b05ef5281f532",
      "tree": "b614f0c9c9671eb6beaec448a7d22dc1ad44e298",
      "parents": [
        "098cf45f4e853f3c85c14af0e475bfae0839f027"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Oct 20 19:09:19 2014 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Oct 22 13:20:39 2014 -0700"
      },
      "message": "Fix race condition in timer disarm/delete.\n\nWhen setting a repeat timer using the SIGEV_THREAD mechanism, it\u0027s possible\nthat the callback can be called after the timer is disarmed or deleted.\nThis happens because the kernel can generate signals that the timer thread\nwill continue to handle even after the timer is supposed to be off.\n\nAdd two new tests to verify that disarming/deleting doesn\u0027t continue to\ncall the callback.\n\nModify the repeat test to finish more quickly than before.\n\nRefactor the Counter implementation a bit.\n\nBug: 18039727\n\n(cherry pick from commit 0724132c3263145f2a667f453a199d313a5b3d9f)\n\nChange-Id: I135726ea4038a47920a6c511708813b1a9996c42\n"
    },
    {
      "commit": "54d76360ebfb79b57177a81632901ebe1c8fc11f",
      "tree": "a64c644859b945a6d9b84b23845ebe2524da354a",
      "parents": [
        "ad136624b2bed5b6971cd7ba372969b1b352c223",
        "a6c1279098f24a675d0df74ce1946f5d534b425e"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Oct 21 21:06:18 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 21 21:06:18 2014 +0000"
      },
      "message": "Merge \"Rename library_offset to library_fd_offset\""
    },
    {
      "commit": "a6c1279098f24a675d0df74ce1946f5d534b425e",
      "tree": "093d8cf0f5610eaf29dad4415236baefda00f5ef",
      "parents": [
        "8f41d3d3bc7cf2375e5dd9202da619fd67a5928f"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Oct 21 12:09:18 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Oct 21 13:51:08 2014 -0700"
      },
      "message": "Rename library_offset to library_fd_offset\n\n replace lseek() and use pread() instead\n add test for library_fd_offset \u003e file_size case\n\nBug: 17762003\nChange-Id: I4555f0be635124efe849c1f226985bcba72ffcbd\n"
    },
    {
      "commit": "5ba672ebcb0bbb77f22bbc6c98ec03867ac1711d",
      "tree": "3b7a40ebe95c90eb96c914d43dba854df2f978e8",
      "parents": [
        "dec4de456c046881fb1e8c7c7d0c27a11ef09eb7"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Oct 17 10:33:25 2014 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Oct 21 11:22:26 2014 -0700"
      },
      "message": "Never use ASAN.\n\nUnless we completely redo how we build bionic (so that the object\nfiles for libc.so get built separately from libc.a), we can\u0027t enable\nASAN here, as libc.a gets linked into static executables.\n\nChange-Id: I2ce4f51248bd51c4213a555ff481b6faabbf53f8\n"
    },
    {
      "commit": "4a9e1937c56511aef579312bf39ab345f9179230",
      "tree": "a6fa53e467ba15b7bb69e7ae3f1ee060ea2d4e97",
      "parents": [
        "5281e1fb15632c8dc714d10abc6cd1a22a061782"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Oct 17 11:47:18 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Oct 17 11:47:18 2014 -0700"
      },
      "message": "Correct way to specify additional dependencies\n\n Previous one was not covering all the targets\n\nBug: 17548097\nChange-Id: I425e0f8d6e5a43feabd29dcb327049b82754d249\n"
    },
    {
      "commit": "18160256840e9bb097f17422ea47d54fabbc9f3f",
      "tree": "9e214fedefed00a66099d8cc9abab4dd68cbec80",
      "parents": [
        "c229705051c8b6a06ad81c221ca74ef9aa743e13"
      ],
      "author": {
        "name": "Haruki Hasegawa",
        "email": "h6a.h4i.0@gmail.com",
        "time": "Mon Oct 13 00:50:47 2014 +0900"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 13 17:04:10 2014 -0700"
      },
      "message": "Add clock_settime and clock_nanosleep.\n\nAdd the missing prototypes, fix the existing prototypes to use clockid_t\nrather than int, fix clock_nanosleep\u0027s failure behavior, and add simple\ntests.\n\nBug: 17644443\nBug: https://code.google.com/p/android/issues/detail?id\u003d77372\nChange-Id: I03fba369939403918abcabae9551a7123953d780\nSigned-off-by: Haruki Hasegawa \u003ch6a.h4i.0@gmail.com\u003e\n"
    },
    {
      "commit": "667853d47770fbdb54aaf0b3261b0d4882725770",
      "tree": "b131912e106bc55a2148ee04e4120389ca037f18",
      "parents": [
        "ac3c94d031c16a0299471a593cdc6248494e539d"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Wed Oct 08 16:22:03 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Oct 08 16:38:58 2014 -0700"
      },
      "message": "Build dlext_testzip as custom module.\n\nUse $(BUILD_SYSTEM)/base_rules to build it as custom module, so that\nit\u0027s exposed to utilities like mm/mmma etc.\n\nBug: 17887283\nChange-Id: Idd7b62d08e4d56331a3ff15da6aa46eae8c41898\n"
    },
    {
      "commit": "ac3c94d031c16a0299471a593cdc6248494e539d",
      "tree": "e7633ca4d2dd137ebb6efe8ad616ee76e9fb2331",
      "parents": [
        "0511534dcbb00f26b2fd6209b1b60a3263bf042c",
        "51166d3aa2e9c002c123f2a08832deca23100975"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Oct 08 22:39:20 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 08 22:39:21 2014 +0000"
      },
      "message": "Merge \"Fix mma build: \u0027cd bionic \u0026\u0026 mma\u0027 case\""
    },
    {
      "commit": "51166d3aa2e9c002c123f2a08832deca23100975",
      "tree": "04a05acbdde5807ecfdf68df0708cfaebdea6227",
      "parents": [
        "6d2dd6a74035a7ace838dd44e7910d54e15c11c2"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Oct 08 14:55:39 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Oct 08 15:36:56 2014 -0700"
      },
      "message": "Fix mma build: \u0027cd bionic \u0026\u0026 mma\u0027 case\n\nBug: 17887283\nChange-Id: If2015f2361348eac8c53aed3f8715077b79ce2f5\n"
    },
    {
      "commit": "3ea4d56ed4fa59a3c3c5c30a2cca2df623b6a560",
      "tree": "f84d80fa762cbd8bc5166060f9caf52a68c568f9",
      "parents": [
        "1364101067072c2ce6fa395cdef2534f338f30b1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 08 14:56:27 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 08 14:56:27 2014 -0700"
      },
      "message": "Use ln(1) rather than cp(1) to set up host /system for testing.\n\nThe trouble with cp is that if you\u0027re running a command directly (because\nyou\u0027re using gdb, say), you need to make sure you\u0027ve copied the linker\nand shell again if you\u0027ve done a rebuild that caused a change there.\n\nChange-Id: I312da30c0f92b515967e854e0faba272c961ecc7\n"
    },
    {
      "commit": "b4b15c63a17e74f5f6229f7b8ed034cf72e52cf4",
      "tree": "1ad53dc4534dbb509e4d358a2e977b3e075ad363",
      "parents": [
        "5cc5c5ea0b7a5a2d523ea35c645a42b222929276"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 08 13:21:29 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 08 13:21:29 2014 -0700"
      },
      "message": "Fix compile-time tests for LP64.\n\nChange-Id: Ib9bec5c6c77c55679d64c2bc15ab70979c40e66c\n"
    },
    {
      "commit": "2fbb1b653ee46b6dee715ae7c085f094f505390d",
      "tree": "ac0ff862c84a3478874a2ca1c3f7df7fea465033",
      "parents": [
        "5a3ca374583f7605672d9e8f9098011de240f7c4"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed Oct 08 11:21:32 2014 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed Oct 08 13:02:53 2014 -0700"
      },
      "message": "Add basic compile time tests for sn?printf.\n\nBug: 17782583\nChange-Id: I6443537c643d1cc6b4a8f2dab5c364f2fbc1faa3\n"
    },
    {
      "commit": "75d66dd9a7d6add031f4c2206751c45c937fc139",
      "tree": "0b5f970a4e21cf90153fd9bb52307f9f310f9028",
      "parents": [
        "81fca35672df90e2f770e67bbf7e7735c6ff8bd8"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Oct 07 09:46:46 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Oct 07 09:46:46 2014 -0700"
      },
      "message": "Fix 2nd arch prefix application\n\nBug: 17887283\nChange-Id: I7b3b2332212fe416d6b5f5c2e5c1e07605ba09aa\n"
    },
    {
      "commit": "b5cba6081bc9179d3ea2aa1bfd77dd8de1c88525",
      "tree": "6553458890519bd5a022522ac0c957c1e9e6ab55",
      "parents": [
        "9969fecad23edebcbc4f32a50dc65a2876a2478f",
        "1aaa17802c92d99ae170245c2b2f15a6c27b133e"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Mon Oct 06 23:21:03 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Oct 06 23:21:04 2014 +0000"
      },
      "message": "Merge \"cdefs.h: add artificial attribute to FORTIFY_SOURCE functions\""
    },
    {
      "commit": "1aaa17802c92d99ae170245c2b2f15a6c27b133e",
      "tree": "5fcea1080b4397a99c2205ba8f094738341219e7",
      "parents": [
        "6d569b92012543a297dccf2dfeaa648d07b3c133"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Mon Oct 06 14:49:00 2014 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Mon Oct 06 15:11:52 2014 -0700"
      },
      "message": "cdefs.h: add artificial attribute to FORTIFY_SOURCE functions\n\nOtherwise the gcc compiler warning doesn\u0027t show up.\n\nAdd -Wno-error to fortify related tests. Fortify related tests\nare expected to be examples of bad programs, and in many\ncases shouldn\u0027t compile cleanly. Rewriting them to compile\ncleanly isn\u0027t feasible nor desirable.\n\nBug: 17784968\nChange-Id: I93bececa7444d965f18c7c27d46e7abce5c49a02\n"
    },
    {
      "commit": "9969fecad23edebcbc4f32a50dc65a2876a2478f",
      "tree": "6212301cbe31ce0f98715785d7e3ee82cfc29ef7",
      "parents": [
        "f4320e867cbc7764d2f1fa8ac64da9cc38cba733",
        "f04a8bc2266e4a51e1ccfb18c24ff0ae25d98d8a"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon Oct 06 19:45:31 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Oct 06 19:45:32 2014 +0000"
      },
      "message": "Merge \"Add compile time test infrastructure for bionic.\""
    },
    {
      "commit": "f04a8bc2266e4a51e1ccfb18c24ff0ae25d98d8a",
      "tree": "7377a483e64bf2bed556d6c50100aed5b77bca42",
      "parents": [
        "81156d93c557e88379dd3e9d869dcc97a15293f5"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Oct 03 13:46:42 2014 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon Oct 06 11:38:01 2014 -0700"
      },
      "message": "Add compile time test infrastructure for bionic.\n\nActual tests to follow...\n\nBug: 17782583\nChange-Id: I22857f19899c3b39dbc2e5473ad3be1a8a291139\n"
    },
    {
      "commit": "6d569b92012543a297dccf2dfeaa648d07b3c133",
      "tree": "f933225ff7d4729ff402de1f8466577542ba1a57",
      "parents": [
        "a6eef3be105fb34161fd1b1d513f7d03b5f1bbe9",
        "07e5bc152d8a3ad4c50808bb86f3c0f2c5e2f514"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Oct 06 17:19:38 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Oct 06 17:19:39 2014 +0000"
      },
      "message": "Merge \"Add file_offset parameter to android_extinfo\""
    },
    {
      "commit": "07e5bc152d8a3ad4c50808bb86f3c0f2c5e2f514",
      "tree": "0d80ab6a46252135b3550f82766d300fe5284cfa",
      "parents": [
        "d5df4124bbbb30411ef19f7c2fbb3987d0eb9630"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Oct 03 17:52:44 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Oct 06 10:02:34 2014 -0700"
      },
      "message": "Add file_offset parameter to android_extinfo\n\nBug: 17762003\nChange-Id: I8fb267a3155acef3dba534038cf5d1ef00d7154b\n"
    },
    {
      "commit": "884a3de60f442748a1d15c6a219f7058e03e38e2",
      "tree": "5c562cf12fcb46b262782fc0893d26c13366dafa",
      "parents": [
        "9b543ffeac216189cc8125f7624da9a8cbcbe2e4"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Mon Oct 06 00:39:47 2014 +0000"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Mon Oct 06 00:39:47 2014 +0000"
      },
      "message": "Revert \"cdefs.h: add artificial attribute to FORTIFY_SOURCE functions\"\n\nBroke the build.\n\nIn file included from frameworks/rs/cpu_ref/rsCpuCore.cpp:36:\nsystem/core/include/cutils/properties.h:118:1: error: unknown attribute \u0027__artificial__\u0027 ignored [-Werror,-Wunknown-attributes]\n__BIONIC_FORTIFY_INLINE\n^\nbionic/libc/include/sys/cdefs.h:537:110: note: expanded from macro \u0027__BIONIC_FORTIFY_INLINE\u0027\n#define __BIONIC_FORTIFY_INLINE extern __inline__ __always_inline __attribute__((gnu_inline)) __attribute__((__artificial__))\n                                                                                                             ^\n1 error generated.\nmake: *** [out/target/product/generic/obj/SHARED_LIBRARIES/libRSCpuRef_intermediates/rsCpuCore.o] Error 1\nThis reverts commit 9b543ffeac216189cc8125f7624da9a8cbcbe2e4.\n\nChange-Id: I6a1198747505dcb402b722887c1bfbc3a628a8b8\n"
    },
    {
      "commit": "9b543ffeac216189cc8125f7624da9a8cbcbe2e4",
      "tree": "d25f28e88151d614df5e39e4fc4fa22a280a6479",
      "parents": [
        "ae97a776ea900e5923d6d320d72dcc04b224796e"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Sat Oct 04 15:26:29 2014 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Sat Oct 04 22:01:41 2014 -0700"
      },
      "message": "cdefs.h: add artificial attribute to FORTIFY_SOURCE functions\n\nOtherwise the gcc compiler warning doesn\u0027t show up.\n\nDelete some unittests. These unittests no longer compile cleanly\nusing -Wall -Werror, and rewriting them to compile cleanly\nisn\u0027t feasible.\n\nBug: 17784968\nChange-Id: I9bbdc7b6a1c2ac75754f5d0f90782e0dfae66721\n"
    },
    {
      "commit": "8d0b2dbf2154d5da17ff09b1d4f864d281362ad2",
      "tree": "f17c338cdad0320f0205f8d097d316c0ad2a1894",
      "parents": [
        "d5df4124bbbb30411ef19f7c2fbb3987d0eb9630"
      ],
      "author": {
        "name": "Alex Van Brunt",
        "email": "avanbrunt@nvidia.com",
        "time": "Fri Sep 26 13:32:47 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Oct 03 18:54:28 2014 -0700"
      },
      "message": "Reimplement clock(3) using clock_gettime(3)\n\nUnlike times(), clock_gettime() is implemented as a vDSO on many architectures.\nSo, using clock_gettime() will return a more accurate time and do so with less\noverhead because it does have the overhead of calling into the kernel.\n\nIt is also significantly more accurate because it measures the actual time in\nnanoseconds rather than the number of ticks (typically 1 millisecond or more).\n\nBug: 17814435\nChange-Id: Id4945d9f387330518f78669809639952e9227ed9\n"
    },
    {
      "commit": "d5df4124bbbb30411ef19f7c2fbb3987d0eb9630",
      "tree": "d0d441b34f1a1e3b94678804ddafec9faf02cc9d",
      "parents": [
        "2d111d9eb10b6c48e2e47251be66b418a6109dd9",
        "1b20dafdbe65e43b9f4c95057e8482380833ea91"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Oct 02 21:47:29 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 02 21:47:29 2014 +0000"
      },
      "message": "Merge \"Add RTLD_NODELETE flag support\""
    },
    {
      "commit": "1b20dafdbe65e43b9f4c95057e8482380833ea91",
      "tree": "deb1f41801011c4376ba2d2dfc1edf127329c3d4",
      "parents": [
        "1f7d5ac53854a09bbcace08b3a1d1b9cf3f2eed3"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon May 19 15:06:58 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Oct 01 11:09:37 2014 -0700"
      },
      "message": "Add RTLD_NODELETE flag support\n\nBug: https://code.google.com/p/android/issues/detail?id\u003d64069\nChange-Id: Ie5f90482feae86391172be4b32d6cb7d76f446fb\n"
    },
    {
      "commit": "252c1ac9738ff6187354f243ef118eac962b65dc",
      "tree": "2a40ee584e9c512c8ab7ad21418d1cb7365647cf",
      "parents": [
        "701cf9419b4df92bd959bbc6f18150f6ae76df7c",
        "31e072fc9bcf6517d763c7af6d872efd1784629e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Sep 30 23:55:57 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 30 23:55:57 2014 +0000"
      },
      "message": "Merge \"Update our FreeBSD realpath(3) to upstream head.\""
    },
    {
      "commit": "31e072fc9bcf6517d763c7af6d872efd1784629e",
      "tree": "579255b857eac677bec2b2e74e1ecf827b04059b",
      "parents": [
        "1f7d5ac53854a09bbcace08b3a1d1b9cf3f2eed3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Sep 30 16:15:42 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Sep 30 16:40:41 2014 -0700"
      },
      "message": "Update our FreeBSD realpath(3) to upstream head.\n\nChange-Id: I8c89728184ecd2c1a28a05cefa84a5037d28b552\n"
    },
    {
      "commit": "c4bcc75f094206f3a6af767a5f6033ad44253b70",
      "tree": "31cddb500d4291b6466634e7a303d7c7035cc4b8",
      "parents": [
        "0481471b1bb95a90f632a9fb59c7a1767b9836c8"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Sep 30 11:48:24 2014 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Sep 30 15:40:14 2014 -0700"
      },
      "message": "Clean up the pthread key tests.\n\nThe previous pthread_key_create_many test was really\npthread_key_create_all, which has proven very difficult to test\ncorrectly (because it is affected by any other parts of the system using\npthread keys, and that can vary with test ordering). It also tested\nexpected values of PTHREAD_KEYS_MAX and the associated sysconf() value,\nrather than those being in their own test.\n\nInstead, split this test into a few distinct tests:\n\n * pthread.pthread_keys_max\n * pthread._SC_THREAD_KEYS_MAX_big_enough_for_POSIX\n * pthread.pthread_key_many_distinct\n     * We actually didn\u0027t have a test to ensure that the keys we were\n       creating were distinct.\n * pthread.pthread_key_EAGAIN\n     * Make sure pthread_key_create() will _eventually_ fail with\n       EAGAIN, not at a (sometimes incorrectly) predetermined maximum.\n\nChange-Id: Iff1e4fdcc02404094bde0418122c64c227cf1702\n"
    },
    {
      "commit": "3a5aeba4bda8b0977678021deed7aebeaa63ded1",
      "tree": "631f9ac4e13ff3f71c2421b1ff92bc0dd3525990",
      "parents": [
        "d9898c5b8292b9eecc40a7819bfedb4e1a4fe041"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Sep 26 15:37:52 2014 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Sep 30 10:28:30 2014 -0700"
      },
      "message": "Switch benchmarks and tests to libc++.\n\nChange-Id: I3b9c8f8c14a1e227e67ae1977cc29b0e8fccef5d\n"
    },
    {
      "commit": "d9898c5b8292b9eecc40a7819bfedb4e1a4fe041",
      "tree": "65d1a66d5cd4f6d7a41b1bed735c89d6013a7688",
      "parents": [
        "9997daa0ff8f630bee5d3b8eb0ab15a0ba1e5cf6"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon Sep 29 15:16:46 2014 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Sep 30 10:28:30 2014 -0700"
      },
      "message": "Ignore multiple symbol definition errors.\n\nlibc and libc++ both define std::nothrow. libc\u0027s is a private symbol,\nbut this still causes issues when linking libc.a and libc++.a, since\nprivate isn\u0027t effective until it has been linked. To fix this, just\nallow multiple symbol definitions for the static tests.\n\nChange-Id: Idbf19fefda47298c39360e3f5b6242b0b1a52fcc\n"
    },
    {
      "commit": "528ad742c671f17a9f8731ad8de4bcc931631bc9",
      "tree": "5b0cdb0b310ba6c7bf3ccf11dcc7bfa5058fbf50",
      "parents": [
        "567d3fcb7ece287a84912183e91eff851fa48fc2"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Sep 24 16:01:18 2014 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Sep 24 16:50:30 2014 -0700"
      },
      "message": "Fix sys_stat.mkfifo when not run as root.\n\nIt\u0027s not allowed for a shell user to create a fifo in /data/local/tmp.\nMake the test do nothing if not run as root.\n\nBug: 17646702\n\n(cherry picked from commit 6c69afdb6ddd56e011b59e3060f12a5bdffb5f5c)\n\nChange-Id: Ia3a862ed4586413b7bb393557ab57e0a7141d888\n"
    },
    {
      "commit": "31165edf5733dae8fbe79551b18cbc0e56c8d808",
      "tree": "e7ed184d94540342f16514a84e02c1f8d38882db",
      "parents": [
        "87b6906f6e0c17b2541535be8e054324cc2fef4a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Sep 23 17:34:29 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Sep 23 18:21:52 2014 -0700"
      },
      "message": "CLOEXEC support in fdopen, freopen, and mkostemp/mkostemps.\n\nChange-Id: I74ea88e0d4973d6ab3c57da7d8bb643c31592b14\n"
    },
    {
      "commit": "b05ec5ae933987e6b4a4f6a318cb13e035ad33e9",
      "tree": "64f418a870ba50ccec912a11f90605418f74c844",
      "parents": [
        "8642165344217877b8a70811d19e09b584a0e10a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Sep 23 14:53:10 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Sep 23 14:53:10 2014 -0700"
      },
      "message": "Pull in upstream fixes to reject invalid bases.\n\nAlso add tests to make sure the full set works correctly.\n\nChange-Id: I3e7f237f12c9c93e1185a97c9717803e7e55a73c\n"
    },
    {
      "commit": "34c987a6dd6816eff98bc25f627659550c2338dc",
      "tree": "d89e78081474964db297083031b9572f77e8133a",
      "parents": [
        "d9cb0ed281f0301ec2ca6828f0acc1ed08dceb8a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Sep 22 16:01:26 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Sep 22 16:27:19 2014 -0700"
      },
      "message": "Test pthread_cleanup_push(3)/pthread_cleanup_pop(3).\n\nChange-Id: I5a623fa1e1da55f11d51f3a9bdfa0627698c486f\n"
    },
    {
      "commit": "d9cb0ed281f0301ec2ca6828f0acc1ed08dceb8a",
      "tree": "771f3667d8ca7d3b80b36e859e889814bcb83e5e",
      "parents": [
        "9f423c554a0ffcee2e34472bf0bc1aef3621a822",
        "60452a211c19e8cd09d4111fa733c64ecd1200f0"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Sep 22 21:46:55 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 22 21:46:56 2014 +0000"
      },
      "message": "Merge \"Unit test for abort(3).\""
    },
    {
      "commit": "60452a211c19e8cd09d4111fa733c64ecd1200f0",
      "tree": "d9454888aa4b291d2c42021ce0734d5ba446c63a",
      "parents": [
        "adc01348ee51a4ad678b1c277f85cbbed5c2e728"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Sep 22 14:41:30 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Sep 22 14:41:30 2014 -0700"
      },
      "message": "Unit test for abort(3).\n\nChange-Id: I021604b977572801f228a193741624df26e76d72\n"
    },
    {
      "commit": "04303f5a8ab9a992f3671d46b6ee2171582cbd61",
      "tree": "98d3997d33e93eeb91a2c2f331b57f35c180cbb2",
      "parents": [
        "adc01348ee51a4ad678b1c277f85cbbed5c2e728"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 18 16:11:59 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 19 17:37:06 2014 -0700"
      },
      "message": "Add semaphore tests, fix sem_destroy.\n\nBug: https://code.google.com/p/android/issues/detail?id\u003d76088\nChange-Id: I4a0561b23e90312384d40a1c804ca64ee98f4066\n"
    },
    {
      "commit": "755318548d787c7ca36901be064c69efba41c6cf",
      "tree": "867528fdfccf3f665a2a7cbea7c35f02d8333583",
      "parents": [
        "82e71085c23d11030e9950d8d08e30ef249fd73b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 18 11:23:58 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 18 11:23:58 2014 -0700"
      },
      "message": "Fix lgamma_r/lgammaf_r/lgammal_r for -0.\n\nUpstream has implemented lgammal/lgammal_r for ld128, and fixed the\nsign problem we reported with all the lgamma*_r functions and -0.\n\nBug: 17471883\nChange-Id: Ibb175d9cab67efae75f1010796fd44c9ba6ce4fc\n"
    },
    {
      "commit": "82e71085c23d11030e9950d8d08e30ef249fd73b",
      "tree": "d8335020cfb0733f695d328a50fd538714d34451",
      "parents": [
        "6ced005123aaedeed7cd653d0baab3fbd511a492",
        "90be6c5fc541fb83699b949e26e6eb9044a2d096"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 18 15:51:45 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 18 15:51:46 2014 +0000"
      },
      "message": "Merge \"The nextafter functions use the wrong next representable value\""
    },
    {
      "commit": "90be6c5fc541fb83699b949e26e6eb9044a2d096",
      "tree": "fe4d9d01f395bc4525ee5fd23d77ff5944978794",
      "parents": [
        "0bd28a43dae87c808f6af61ad3dba042b35be7e7"
      ],
      "author": {
        "name": "Jingwei Zhang",
        "email": "jingwei.zhang@intel.com",
        "time": "Fri Sep 19 00:50:00 2014 +0800"
      },
      "committer": {
        "name": "Mingwei Shi",
        "email": "mingwei.shi@intel.com",
        "time": "Fri Sep 19 00:50:00 2014 +0800"
      },
      "message": "The nextafter functions use the wrong next representable value\n\nFrom C99 standard: “The nextafter functions determine the next representable value, in the type of the function,\nafter x in the direction of y, where x and y are first converted to the type of the function”.\nThe next representable value of 0.0 in direction of -1.0 is -4.9406564584124654e-324, not 0.0.\n\nSimilar thing holds for nextafterf, nextafterl, nexttowardf, nexttoward, and nexttowardl.\nThe tests pass either way, since the error is within the tolerance, but how it is written is wrong.\n\nChange-Id: I1338eeffe3de8031a48f46e1b07146bc07dc2f0a\nSigned-off-by: Jingwei Zhang \u003cjingwei.zhang@intel.com\u003e\nSigned-off-by: Mingwei Shi \u003cmingwei.shi@intel.com\u003e\n"
    },
    {
      "commit": "bee1993a14b47bc7acda544242f405ae45e42566",
      "tree": "7e24b4009b0022f1984c3e00c98caa6472d523df",
      "parents": [
        "6a310f4ad6c06b6f513d6dd9784ce0377f94f9bd"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Sep 17 17:21:20 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Sep 17 19:52:14 2014 -0700"
      },
      "message": "Stack unwinding unit tests.\n\nBug: 17436734\nChange-Id: I1e98da7eaeab646b448fb3f2b683973dddc319b0\n"
    },
    {
      "commit": "bf50e2645d84bec481cb42da5f2ff4096061cbf8",
      "tree": "00a5874b77e19bacde9f05ee92a7caaea7759a28",
      "parents": [
        "36a5aa057cf1738577754a3fc16a14a5f817109f"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Sep 17 15:55:01 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Sep 17 15:55:01 2014 -0700"
      },
      "message": "Add Android*.mk files to additional dependencies\n\nBug: 17548097\nChange-Id: Ie0d9c8f33459320008f561217c54eba42d283b47\n"
    },
    {
      "commit": "e8ba50fe0d51fbefee1a8f5bb62bf51d841512c8",
      "tree": "9e7af562f02dea98c8d0f28b88b5e7b2bf9c0975",
      "parents": [
        "0b8f6d592ac20ec81dbc96766123c67655f34842"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Sep 15 17:00:10 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Sep 15 17:39:48 2014 -0700"
      },
      "message": "Fix dlsym() to take into account RTLD_GLOBAL/LOCAL\n\n  Symbols from libraries opened with RTLD_LOCAL (default)\n  should not be visible via dlsym(RLTD_DEFAULT/RTLD_NEXT, .)\n\nBug: 17512583\nChange-Id: I1758943081a67cf3d49ba5808e061b8251a91964\n"
    },
    {
      "commit": "eb27bbae8f0edc6b62ca2db73256c7fb53b9e9bf",
      "tree": "19a937c05bf7cfc1530232cba522ab8413c349c8",
      "parents": [
        "95b0c6a9407d7a4084d956e273ad1697550452d3"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Sep 15 14:13:24 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Sep 15 15:03:15 2014 -0700"
      },
      "message": "Add dlfcn_test to glibc test suite.\n\nChange-Id: I955e4f7dfcc23ea5c767f967b3532dc31663b876\n"
    },
    {
      "commit": "8fb639ca9118a6522723d0bc09db59b432a803a9",
      "tree": "40b074daa7dd81badacb728e905a3b70530f1253",
      "parents": [
        "69c2d7dc6434c7e7e9bd22797deb7f727199ab0c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 12 14:43:07 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 12 14:43:07 2014 -0700"
      },
      "message": "Add a test for pthread_gettid_np.\n\nBug: 17475191\nChange-Id: I8c6a2f4ceba2d24a77ae9a21269edce523aea421\n"
    },
    {
      "commit": "d74aa580354037b9972524e9d654c0a336974838",
      "tree": "189b7fade3764e5105c37bc53b5366e15037fd53",
      "parents": [
        "aad92067bf4eecda81a4c331ee4dec70483c5104",
        "a6ac54a215d6b64f5cc5a59b66c1dbfbb41ea9f5"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Sep 12 16:55:42 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 12 16:55:42 2014 +0000"
      },
      "message": "Merge \"Fix unload of recursively linked library\""
    },
    {
      "commit": "66bbf1595c0fc25d4bc47457d8020b11e135996d",
      "tree": "9464625e75da5be80863865837e5f04be8f618c1",
      "parents": [
        "8d8a789c49ffb6b71e4b8f34df937cfaaff86e40",
        "d9ff7226613014056c9edd79a68dc5af939107a0"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Sep 12 16:50:04 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 12 16:50:05 2014 +0000"
      },
      "message": "Merge \"Refactoring: C++11 style DISABLE_ bionic marcos\""
    },
    {
      "commit": "a6ac54a215d6b64f5cc5a59b66c1dbfbb41ea9f5",
      "tree": "9c449ba5033138dc2fb5b80268bbb01a83e5aa4a",
      "parents": [
        "8d8a789c49ffb6b71e4b8f34df937cfaaff86e40"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Sep 09 10:21:42 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Sep 11 22:40:48 2014 -0700"
      },
      "message": "Fix unload of recursively linked library\n\n  Expanded test for recursive libs. Fixed bug with unnecessary\n  soinfo_free of already loaded library.\n\nChange-Id: I2cc19f2650c8b12a35feeac127ef608ebba44d88\n"
    },
    {
      "commit": "6487f0d8341b00b476995e0174dc92e5ae8efbbe",
      "tree": "ddc5fe0c6d7efbdd84c5c90d558786f88ab5d7cc",
      "parents": [
        "5920a9ad5fd9f8d515c683e164f946bcfef1f1c3",
        "9aea164457c269c475592da36b4655d45f55c7bc"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Sep 12 00:40:11 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 12 00:40:12 2014 +0000"
      },
      "message": "Merge \"Add IFUNC support for arm64 and IRELATIVE reloc\""
    },
    {
      "commit": "9aea164457c269c475592da36b4655d45f55c7bc",
      "tree": "35f6a459b79e751d6833b2ed765b9d6c17f6672c",
      "parents": [
        "c71483c0b38a6b4f2675f0bffa221dcf175c34ac"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Sep 11 15:16:03 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Sep 11 16:30:45 2014 -0700"
      },
      "message": "Add IFUNC support for arm64 and IRELATIVE reloc\n\n There are number of changes in the way IFUNC related relocations are done:\n 1. IRELATIVE relocations are now supported for x86/x86_64 and arm64.\n 2. IFUNC relocations are now relying on static linker to generate\n    them in correct order - this removes necessety of additional\n    relocation pass for ifuncs.\n 3. Related to 2: rela?.dyn relocations are preformed before .plt ones.\n 4. Ifunc are resolved on symbol lookup this approach allowed to avoid\n    mprotect(PROT_WRITE) call on r-x program segments.\n\nBug: 17399706\nBug: 17177284\nChange-Id: I414dd3e82bd47cc03442c5dfc7c279949aec51ed\n"
    },
    {
      "commit": "b587f339db269abf08a2c311a7263dd218cb23d3",
      "tree": "18fd8a53623d63cae5e98d5aeb59a8aefaa853c2",
      "parents": [
        "c71483c0b38a6b4f2675f0bffa221dcf175c34ac"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Sep 10 17:39:00 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 11 08:45:46 2014 -0700"
      },
      "message": "Add posix_fadvise(3).\n\n(cherry-pick of 00008263782e484020420c606f7d145fe7d0a4d8.)\n\nBug: 12449798\nChange-Id: I07cbf3f670a0d1304b68148325a774f266b5c433\n"
    },
    {
      "commit": "d9ff7226613014056c9edd79a68dc5af939107a0",
      "tree": "9866b50193d3886937a4ea13a5c3f88de7600f20",
      "parents": [
        "3c3624f3df14590e7213d35c3b39a0a11c7d2d34"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Sep 08 16:22:22 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Sep 08 17:51:31 2014 -0700"
      },
      "message": "Refactoring: C++11 style DISABLE_ bionic marcos\n\n  Enable the -std\u003dgnu++11 flag for libstdc++ static and\n  dynamic libs.\n\n  ScopeGuard uses DISABLE_ macros instead of \u0027\u003d delete\u0027;\n\nChange-Id: I07e21b306f95fffd49345f7fa136cfdac61e0225\n"
    },
    {
      "commit": "3c3624f3df14590e7213d35c3b39a0a11c7d2d34",
      "tree": "486bb406098d6c2b0442b63fd0b0daac5748899a",
      "parents": [
        "671f96cd440d306dc2baf5e8631e927cd1aa759d",
        "14669a939d113214a4a20b9318fca0992d5453f0"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Sep 09 00:49:37 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 09 00:49:38 2014 +0000"
      },
      "message": "Merge \"Load libraries in breadth-first order\""
    },
    {
      "commit": "cf5fc80c3eb710cb5a1985837156cb2758c87a5b",
      "tree": "15682b74fd20e0a37c8d6cef63bba9e05df7145f",
      "parents": [
        "d3d89f0d28aba2db9f11cc0a9b3a865fa1d9d265"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 05 16:12:42 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Sep 08 16:44:48 2014 -0700"
      },
      "message": "Don\u0027t expose non-standard basename_r and dirname_r in LP64.\n\n(cherry-pick of f0e9458ea596227720fa745df15f5357f6c0c8f6.)\n\nBug: 17407423\nChange-Id: I47fe499a4c396bf09d7b78fd828728d04777398b\n"
    },
    {
      "commit": "14669a939d113214a4a20b9318fca0992d5453f0",
      "tree": "160b15f09cb7edc2da5b02e47cf3d5ce1461df97",
      "parents": [
        "320a01d51693408dad859094ca52e5f315ff1d15"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Sep 05 16:42:53 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Sep 08 13:02:50 2014 -0700"
      },
      "message": "Load libraries in breadth-first order\n\n  This patch fixes the problem with symbol search order\n  for dlsym(RTLD_DEFAULT/RTLD_NEXT, .) by loading libraries\n  and ld_preloads in correct order.\n\nBug: https://code.google.com/p/android/issues/detail?id\u003d74255\nChange-Id: If1ba5c807322409faa914e27ecb675e2c4541f0d\nAttempt: 2\n"
    },
    {
      "commit": "498eb18b82a425f9f30132e4832f327b2ee0e545",
      "tree": "08ae8d60c8f659139aba906ccfe6df4bc85afdb5",
      "parents": [
        "b3ebfecdae05e29062bf4d0234239a54a2733ce0"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Sep 05 14:57:59 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Sep 05 16:27:54 2014 -0700"
      },
      "message": "Revert \"Load libraries in breadth-first order\"\n\nThis reverts commit a3ad450a2e3fb6b3fe359683b247eba20896f646.\n\nChange-Id: Ia2b838ad2159c643b80c514849582f4b4f4f40e5\n"
    },
    {
      "commit": "b2a30ee8d209154efc367db11b4167a5d6db605f",
      "tree": "3c36591245f31a062f73ad4b18028505be956229",
      "parents": [
        "8adace5f2c185bd616f79159eaf90d2982157069"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Sep 04 18:23:00 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Sep 05 16:01:47 2014 -0700"
      },
      "message": "Fix order of soinfo links (repairs libcxx tests).\n\nChange-Id: Iee9de09657351cd6a7512784ca797e4b84cdd98b\n"
    },
    {
      "commit": "001815ed197280409d08e9622890e7462c6e6831",
      "tree": "b497bd01a2bb27bb876cd4f33180d3dc86a4b71a",
      "parents": [
        "aca9cae30972ba2cd7a1158520dccd83b056513c",
        "7b956ede3f0f40bd8a085a8ad3729bb3e0e030f2"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Sep 05 01:56:44 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 05 01:56:44 2014 +0000"
      },
      "message": "Merge \"Reset enviroment for math_tests\""
    },
    {
      "commit": "7b956ede3f0f40bd8a085a8ad3729bb3e0e030f2",
      "tree": "b917b5aaa05f3bbc147d041e46e10ab5153f29a5",
      "parents": [
        "44352f5f7f06ff9383d695b0a7d4243f5268f430"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Sep 04 12:47:07 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Sep 04 18:38:21 2014 -0700"
      },
      "message": "Reset enviroment for math_tests\n\nBug: 17390824\nChange-Id: I42f4c8d9199a2efe7641f0b0e64580cacb5695da\n"
    },
    {
      "commit": "27a9aed81978af792cb06035a1619c8141a5fb5b",
      "tree": "7980f076768d6a82286d2c7e62a56e7febad4d5e",
      "parents": [
        "c74a7680a409cd9f0cd3847b59e20ac16ad05806"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 04 16:09:25 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 04 16:09:25 2014 -0700"
      },
      "message": "Fix pthread_attr_getstack__main_thread.\n\nThere were two problems here:\n\n* This would fail when run with unlimited stack, because it didn\u0027t know\n  that bionic reports unlimited stacks as 8MiB.\n\n* This would leave RLIMIT_STACK small, causing failures to exec (so the\n  popen and system tests would fail).\n\nChange-Id: I5b92dc64ca089400223b2d9a3743e9b9d57c1bc2\n"
    },
    {
      "commit": "aa13e839f06231b9299bb683a71abd954294b49b",
      "tree": "6ccc7c0b20a153bdcd4f1a7baaba4cc7f57505d2",
      "parents": [
        "05f0bfd6c56746aa4f737804ebb62b555dc0d921"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 04 15:43:10 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 04 15:43:10 2014 -0700"
      },
      "message": "Fix mips signed/unsigned signal_test.cpp build breakage.\n\nChange-Id: I045ce017c0c51e1843193759a2eb6fc5b93e3867\n"
    },
    {
      "commit": "afe58ad9892de27a7acb0aaded6312ee0f958314",
      "tree": "0bd59ab94eabeaa98113686962a3ccc9b4b8413d",
      "parents": [
        "071bed8091cab4e070a1f5e6b2eb0dd1141f0498"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 04 13:54:42 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 04 13:54:42 2014 -0700"
      },
      "message": "Don\u0027t mask out SA_RESTORER from sa_flags.\n\nglibc doesn\u0027t do this, and we probably shouldn\u0027t either.\n\nBug: 16703540\nChange-Id: Id5b93c3782e34024a9916463348e8f3caff191bf\n"
    },
    {
      "commit": "1737b159374468a21859d97d8be70a726af0ec9e",
      "tree": "652d1b919ca6e2918d21e02f1749b83cbf1e92f5",
      "parents": [
        "8f3b8f523ed594b48d28ca0b9a2651d209f29e26",
        "a3ad450a2e3fb6b3fe359683b247eba20896f646"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Sep 04 00:59:22 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 04 00:59:23 2014 +0000"
      },
      "message": "Merge \"Load libraries in breadth-first order\""
    },
    {
      "commit": "8da304b997bc0f81ebb30fadc79249fafc1c6fce",
      "tree": "2c9fdf27af04d3bb7caaeeb7182f32a1b2638ae7",
      "parents": [
        "28f1770101d84153e100ad7bc0628b4ef3b6e85c",
        "1467dfe3e89975f0d4905e31a27ac06257c097cf"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Sep 03 22:08:56 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 03 22:08:57 2014 +0000"
      },
      "message": "Merge \"Make string tests check all alignment combinations\""
    },
    {
      "commit": "a3ad450a2e3fb6b3fe359683b247eba20896f646",
      "tree": "46d55ca77bbe24d4834444ed21aa146bf6750e37",
      "parents": [
        "ec95a9cf11f7c4d2211c61da7ce05262a54409d1"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Jul 29 14:21:45 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Sep 03 15:06:14 2014 -0700"
      },
      "message": "Load libraries in breadth-first order\n\n  This patch fixes the problem with symbol search order\n  for dlsym(RTLD_DEFAULT/RTLD_NEXT, .) by loading libraries\n  and ld_preloads in correct order.\n\nBug: https://code.google.com/p/android/issues/detail?id\u003d74255\nChange-Id: I4cf84c70dbaabe99310230dfda12385ae5401859\n"
    },
    {
      "commit": "69fb9f3f408b7d7f85522e3848a8ab5b87d6e377",
      "tree": "9d7ec530c4e87ec9b1e2be32c55f3d3caf696d56",
      "parents": [
        "3b10ba6f1b743ddced32474891ff6d1cb83c027a"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed Sep 03 11:30:21 2014 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed Sep 03 11:30:21 2014 -0700"
      },
      "message": "Don\u0027t fail a test just because we aren\u0027t root.\n\nIf the tests are not being run as root, emit a message and don\u0027t\ncontinue with the test.\n\nChange-Id: I352e1a4162caaeb18b81b8daf44797009756dcd9\n"
    },
    {
      "commit": "3b10ba6f1b743ddced32474891ff6d1cb83c027a",
      "tree": "130e856c9feb2499299a5fb57fc911cecacbee45",
      "parents": [
        "c7de919129098bac259f66f973888b1814ae0d1a",
        "319356e39cc91b4eb94b1974756f1cfc0a137351"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Sep 03 00:36:22 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 03 00:36:22 2014 +0000"
      },
      "message": "Merge \"Add some missing dlclose(.)\""
    },
    {
      "commit": "319356e39cc91b4eb94b1974756f1cfc0a137351",
      "tree": "46f795b8b441d965cc9495d415869dfb8864d4e6",
      "parents": [
        "ec95a9cf11f7c4d2211c61da7ce05262a54409d1"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Sep 02 17:31:44 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Sep 02 17:31:44 2014 -0700"
      },
      "message": "Add some missing dlclose(.)\n\nBug: 17358010\nChange-Id: I9e427b7681f1a8fe890b0b47812d9e65ab95c792\n"
    },
    {
      "commit": "6676a7d4eea4cb042eed87fad06369765f074cec",
      "tree": "61d1c3b467e02b24ac3184a18acf4337408320b4",
      "parents": [
        "847e52b9b7bca9dee20e33d1006dfc23885e7494"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Sep 02 16:00:10 2014 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Sep 02 16:00:10 2014 -0700"
      },
      "message": "Start math tests with a clean fenv.\n\nWe always want the default floating point environment when running these\ntests.\n\nBug: 17358010\nChange-Id: I6ca2552e9f2d3e07d7b9dcaf0aec66905401c466\n"
    },
    {
      "commit": "1d53ae2a01df5c85d23b01e44880103e118712f3",
      "tree": "a12e3f3fa3ff8eaa6a1e61fb73c2b9f357229799",
      "parents": [
        "5120bcf9f11951bffd8ac595c2b70252ed4a4958"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Sep 02 15:24:26 2014 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Sep 02 15:24:26 2014 -0700"
      },
      "message": "Prevent a few test pthread keys from leaking.\n\nBug: 17358010\nChange-Id: Ie718dc215ddfd431650295a1630c1b1716760c3d\n"
    },
    {
      "commit": "32429606bf696d3b2ca555f132a0d60c566d0bd0",
      "tree": "a78cacfc6e28d35fdd41b0b4d6682b22b49939f2",
      "parents": [
        "bbe06e0da1742e9bdc52d3246ffa9f2ab3ce999a"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Thu Aug 28 15:21:32 2014 -0700"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Fri Aug 29 17:03:26 2014 -0700"
      },
      "message": "Make stdatomic.h work with gcc4.6 host compiler\n\nThis is needed to make L work correctly, and bionic tests pass\nagain, after applying the equivalent of\ncommit 00aaea364501b3b0abe58dae461136159df1e356 there.\n\nIt makes the preexisting code that uses __sync implementations\nmuch more useful, although we should no longer be exercising that\ncode in AOSP.\n\nSpecifically fixes:\n\nWe were invoking __has_extension and __has_builtin for GCC compilations.\nThey\u0027re clang specific. Restructured the tests.\n\nThe __sync implementation was not defining the LOCK_FREE macros.\n\nATOMIC_VAR_INIT was using named field initializations.  These are a\nC, not C++, feature, that is not supported by g++ 4.6.\n\nThe stdatomic bionic test still failed with 4.6 and glibc with our\nquestionable LOCK_FREE macro implementation.  Don\u0027t run that piece\nwith 4.6.\n\nIn L, this is a prerequisite for fixing:\n\n    Bug:16880454\n    Bug:16513433\n\nChange-Id: I9b61e42307f96a114dce7552b6ead4ad1c544eab\n"
    },
    {
      "commit": "f6824b26ae06cc4e9964dd0d803676731ae7dbe0",
      "tree": "c0daf0fd508da1f98cd4750d38031e8a2802917c",
      "parents": [
        "29f06943a19ef2271a08f4223f597a3383f0d9c0"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 28 19:28:35 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 28 19:28:35 2014 -0700"
      },
      "message": "The host prebuilt glibc is 2.11, so remove workarounds for 2.9.\n\nChange-Id: I1072fcebc8b3018580a9d069fe6eca9c4e74e865\n"
    },
    {
      "commit": "416d7ddaff0946d480b6aa945a741b3eeaca5569",
      "tree": "d3fa6382f7d6d26ab7e3ecb95a715328e5f50b5e",
      "parents": [
        "f4e721dd519db89c504c8944763811a3df956b32"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 18 17:28:32 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 28 16:37:09 2014 -0700"
      },
      "message": "Add GNU-compatible strerror_r.\n\nWe already had the POSIX strerror_r, but some third-party code defines\n_GNU_SOURCE and expects to get the GNU strerror_r instead.\n\nThis exposed a bug in the libc internal logging functions where unlike\ntheir standard brethren they wouldn\u0027t return the number of bytes they\u0027d\nhave liked to have written.\n\nBug: 16243479\nChange-Id: I1745752ccbdc569646d34f5071f6df2be066d5f4\n"
    },
    {
      "commit": "9e4ffa7032eaab308876b8e3da86b05c3c613878",
      "tree": "83e23ad0b0ba82c017cbf292abd7594d2148f316",
      "parents": [
        "34da32e7dd00270e98b845f8a810a6f12ffffb9b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 27 15:32:01 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 27 15:32:01 2014 -0700"
      },
      "message": "Have pthread_attr_getstack for the main thread report RLIMIT_STACK...\n\n...rather than just what\u0027s already mapped in. This seems somewhat\ncontrary to POSIX\u0027s \"All pages within the stack described by stackaddr\nand stacksize shall be both readable and writable by the thread\", but\nit\u0027s what glibc does.\n\nBug: 17111575\nChange-Id: If9e2dfad9a603c0d0615a8123aacda4946e95b2c\n"
    },
    {
      "commit": "34da32e7dd00270e98b845f8a810a6f12ffffb9b",
      "tree": "c71a02bb675a7fd491aad87d1a020ce579909bca",
      "parents": [
        "6ecd1cd195546ecaf4317beda3f1a1a27f1d0d57",
        "a2c6ae6f841d088b79a2a7bbd73847b8b199a521"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Aug 27 21:44:12 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 27 21:44:12 2014 +0000"
      },
      "message": "Merge \"Add missing type casts before comparison.\""
    },
    {
      "commit": "a2c6ae6f841d088b79a2a7bbd73847b8b199a521",
      "tree": "eb4a0f2c52238e16735e90cc14fffacb87e4aa1b",
      "parents": [
        "9e307af982ea9030849293b5e3307733289e3c2c"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Aug 27 13:45:37 2014 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Aug 27 13:45:37 2014 -0700"
      },
      "message": "Add missing type casts before comparison.\n\nBUG: 17300548\nChange-Id: Ice9868f36c8fa8cd40bb13741b0e33c8f8d354fd\n"
    },
    {
      "commit": "a40fdbd565785dfaf59c471ff08c14ed0ad35238",
      "tree": "20f265b0f09c7ad3c3418cfe24d0fb854140af1d",
      "parents": [
        "64ae11ab766421fe2c49ebdecb14c36fe0a047fe"
      ],
      "author": {
        "name": "Wally Yau",
        "email": "wyau@google.com",
        "time": "Tue Aug 26 09:47:23 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 27 10:26:49 2014 -0700"
      },
      "message": "call uselocale() before freelocale() to make sure that g_local_key has a valid locale.\n\nFor tests that call uselocale(), the locale is stored in the\ng_userlocale_key thread-specific key. If freelocale() is called later,\nthen g_uselocal_key points to a deleted pointer. CTS eventually calls\nvfprintf to print the result, which calls MB_CUR_MAX and MB_CUR_MAX\naccesses the deleted locale stored in g_uselocale_key, causing unpredictable\nerrors.\n\nFixed the tests by calling uselocale() with the old locale before\ncalling freelocale.\n\n(cherry-pick of 8a46cf0fcf82b8c76e05be7e066ec854f974603a.)\n\nBug: 17299565\nChange-Id: I87efa2a9b16999a11d587f68d3aeedcbe6ac8a2c\n"
    },
    {
      "commit": "14241402de0faa4b244b1bd6b1f0799ce169b880",
      "tree": "0308dd630e83a0640ad43bf0496c0733e7708366",
      "parents": [
        "c764fb24ccb47e05d8e140cde5b4111225790ef1"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Aug 26 14:16:52 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Aug 26 15:44:18 2014 -0700"
      },
      "message": "Enable __cxa_atexit \u0026\u0026 __cxa_finalize for linker\n\n This allows adding destructors to classes used\n for global variables.\n\nChange-Id: I5e1cd63fe3bf8f66de88cc4f7437cafb350f49b5\n"
    },
    {
      "commit": "57b7a6110e7e8b446fc23cce4765ff625ee0a105",
      "tree": "e2578675ae1435988a645a32182ced476f802ec5",
      "parents": [
        "a4a8c4feb8cf3cebf8aceace70e699e128095b5c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 25 17:26:50 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 26 10:36:38 2014 -0700"
      },
      "message": "Fix pthread_getattr_np for the main thread.\n\nOn most architectures the kernel subtracts a random offset to the stack\npointer in create_elf_tables by calling arch_align_stack before writing\nthe auxval table and so on. On all but x86 this doesn\u0027t cause a problem\nbecause the random offset is less than a page, but on x86 it\u0027s up to two\npages. This means that our old technique of rounding the stack pointer\ndoesn\u0027t work. (Our old implementation of that technique was wrong too.)\n\nIt\u0027s also incorrect to assume that the main thread\u0027s stack base and size\nare constant. Likewise to assume that the main thread has a guard page.\nThe main thread is not like other threads.\n\nThis patch switches to reading /proc/self/maps (and checking RLIMIT_STACK)\nwhenever we\u0027re asked.\n\nBug: 17111575\nSigned-off-by: Fengwei Yin \u003cfengwei.yin@intel.com\u003e\nChange-Id: I1d4dbffe7bc7bda1d353c3a295dbf68d29f63158\n"
    },
    {
      "commit": "a4a8c4feb8cf3cebf8aceace70e699e128095b5c",
      "tree": "bec4a8965bc55e4a03634fb262497e32a5f27a80",
      "parents": [
        "9d34f6a90973bea086b4244df6eff74ab2211814",
        "00aaea364501b3b0abe58dae461136159df1e356"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Fri Aug 22 22:52:31 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Aug 22 22:52:31 2014 +0000"
      },
      "message": "Merge \"Fix, generalize stdatomic.h; improve test.\""
    },
    {
      "commit": "00aaea364501b3b0abe58dae461136159df1e356",
      "tree": "f65d7225c30fb5beb7100a3a70b89d025d223294",
      "parents": [
        "b6ed54076abdd337150d7a92a661247b69d26cb4"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Tue Aug 19 16:14:01 2014 -0700"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Fri Aug 22 15:50:17 2014 -0700"
      },
      "message": "Fix, generalize stdatomic.h; improve test.\n\nWe seem to use this stdatomic.h sometimes, and slightly different prebuilts\nat other times, making them all difficult to test, and making it unclear\nwhich one we\u0027re testing.  This generalizes the bionic header so that it\ncan be used directly as the prebuilt header as well.  So long as they\ndon\u0027t diverge again, that should somewhat improve test coverage.\n\nUse the correct builtin for atomic_is_lock_free.\n\nFix atomic_flag_init.\n\nTurn on atomic tests even with __GLIBC__, since they now appear to pass.\n\nInclude uchar.h in stdatomic.h where needed.\n\nAdd a basic memory ordering test.\n\nFix bit-rotted comments in bionic tests makefile.\n\nChange-Id: If6a14c1075b379395ba5d93357d56025c0ffab68\n"
    },
    {
      "commit": "4756afe3d5017b50c89761c47f0da17a6799c81e",
      "tree": "4835f493baf09cb4aada39c0b7b22fcdc77cc284",
      "parents": [
        "538db6d2e63b203622c49344488099eaa5062850",
        "4caa1f09770ea3e5ca22afbe8aa0900810a0dbfe"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Aug 22 17:39:18 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Aug 22 17:39:18 2014 +0000"
      },
      "message": "Merge \"Implement malloc_info(3).\""
    },
    {
      "commit": "4caa1f09770ea3e5ca22afbe8aa0900810a0dbfe",
      "tree": "2bda183c2c930871e73486ea3e9c54e80e500f95",
      "parents": [
        "d5fbc37119ef6cd757ceb449cb071ee03c66590e"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed Aug 20 09:16:57 2014 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Aug 22 10:23:12 2014 -0700"
      },
      "message": "Implement malloc_info(3).\n\nExpose jemalloc stats through the malloc_info(3) interface.\n\nBug: 16874689\nChange-Id: I4358ac283002e60ff161107028d1a3fb1e9afb0a\n"
    },
    {
      "commit": "2b3b2ecee8df54a25e9f5e0968761dbac4761e6c",
      "tree": "4bc53bd3bc27c2fb1e862f56411141a6ecb980f8",
      "parents": [
        "2e6c5fc4e903b6ef58bd94e13e51b3f0aa4689b3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 21 19:23:53 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 22 09:26:50 2014 -0700"
      },
      "message": "Fix unistd.getpid_caching_and_clone.\n\nThis test only works if you\u0027re root (strictly: if you have permission to\nCLONE_NEWNS), so it\u0027s useful to us when we\u0027re doing ad hoc testing (since\nthat\u0027s usually done as root), but it\u0027s not useful as part of CTS or when\nrunning the tests on the host.\n\n(cherry-pick of 84d0683a824fa02dbaa6d1b56a79223804b54e80.)\n\nBug: 16705621\nBug: 17170200\nChange-Id: Ia92c871b15f7e45fc174bb59bc95540fd00ae745\n"
    },
    {
      "commit": "9598b8c415e2fa9f240508185fe8c964b83f538d",
      "tree": "f44be8df337dcb693baaf6aaa52de1ccd952bdcf",
      "parents": [
        "3157211849f808f89a7f1465fd60d6b41917ee4f"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Aug 21 13:54:03 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Aug 21 14:24:13 2014 -0700"
      },
      "message": "Run constructors before resolving ifunc functions\n\nBug: 17177284\nChange-Id: I5714b9bc2d1ca8f8711806bfb68da3d524213e99\n"
    }
  ],
  "next": "6b841db2baa24ffcf2a4e5f975d1d07f1699b918"
}
