)]}'
{
  "log": [
    {
      "commit": "1f7f3bd26ecad4366c904b7e7d05587fc7a83ea2",
      "tree": "73f5c720f744303bc8ae9dad0891264f4788767a",
      "parents": [
        "521691ae4dfad47cf6b46858347fa5fa32fd7bcc"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Jul 27 10:12:38 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Aug 25 13:42:11 2016 -0700"
      },
      "message": "Convert libart and dependencies to Android.bp\n\nRe-landing I73839046a5a53eb34cd28eea53149911c568e411, with fixes for mac\nbuild (only apply -Wl,--keep-unique to device x86 builds), typo in\nchecking for ART_HEAP_POISONING environment variable, and removing\n-Wframe-larger-than for debug builds.\n\nTest: mma -j, m -j test-art-host\nChange-Id: If88492174cbcb0d9a8758176c006163a29eaaa63\n"
    },
    {
      "commit": "316417e37859e584e78790c2cbc6f16c11adc8b2",
      "tree": "ced74cd7647391ad61f8334d0e90334cb60c91fa",
      "parents": [
        "4ea3a22f0ccfb0f746c63c274b2655545e759e1f"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Aug 25 01:03:42 2016 +0000"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Aug 25 01:03:42 2016 +0000"
      },
      "message": "Revert \"Convert libart and dependencies to Android.bp\"\n\nThis reverts commit 4ea3a22f0ccfb0f746c63c274b2655545e759e1f.\n\nChange-Id: I3ac4397b4d6be038e5b863b7a24231c0736e84f3\n"
    },
    {
      "commit": "4ea3a22f0ccfb0f746c63c274b2655545e759e1f",
      "tree": "de9b6f7a0bee3de3c7d7adebf2ceda13e3084fc6",
      "parents": [
        "897b8f5da90b38b030826273f4c9bd8fbc32759e"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Jul 27 10:12:38 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Aug 24 15:43:53 2016 -0700"
      },
      "message": "Convert libart and dependencies to Android.bp\n\nTest: mma -j, m -j test-art-host\nChange-Id: I73839046a5a53eb34cd28eea53149911c568e411\n"
    },
    {
      "commit": "82b67b9897ac0f6791dddeb98c4b876418a6a162",
      "tree": "b220869ada1e498f6b3b101e1ffdf84c225540f3",
      "parents": [
        "fcc3c6d26a7e5abd84c348278ec5133d96726048"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Aug 01 11:19:03 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Aug 01 14:14:06 2016 -0700"
      },
      "message": "libsigchain: intercept bsd_signal on lp32\n\nbsd_signal is a deprecated synonym for the signal. Nevertheless\nthere are apps and libraries calling this function.\n\nlibsigchain needs to intercept these calls and handle them the same\nway it handles signal() call.\n\nBug: http://b/30562229\nTest: readelf --dyn-sym app_process32 and check that bsd_signal is exported\n      readelf --dyn-sym app_process64 and check that bsd_signal is not exported\nChange-Id: I3aa41632bb015568d8524a82f1c97e4443ec0d6c\n"
    },
    {
      "commit": "ecf75a6a9396475759c5f8b47cdc1929614b9542",
      "tree": "c2816628ca0229ca2da6dde0699eb22f48de3f65",
      "parents": [
        "998bf2b4de04f1664a8ca0085740e266b9e7c4ff"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Jul 28 16:01:42 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Jul 28 17:12:54 2016 -0700"
      },
      "message": "ART: remove gcc cruft from the makefiles\n\nART only builds with clang now, delete all logic to determine gcc\nvs. clang, and move all LOCAL_CLANG_CFLAGS into LOCAL_CFLAGS.\n\nTest: mma, make test-art-host, make test-art-target\nChange-Id: I578615233ad3e71af18afb47bb11f3be8417216c\n"
    },
    {
      "commit": "bb661c0f0cb72d4bbfc2e251f6ded6949a713292",
      "tree": "4fe7e66f3385b1955934d3ec6f02e00bde6e13b8",
      "parents": [
        "f7cda8088ec57ab1422f85f08df78e217a9f7094"
      ],
      "author": {
        "name": "Bilyan Borisov",
        "email": "bilyan.borisov@linaro.org",
        "time": "Mon Apr 04 16:27:32 2016 +0100"
      },
      "committer": {
        "name": "Bilyan Borisov",
        "email": "bilyan.borisov@linaro.org",
        "time": "Fri Apr 22 13:33:30 2016 +0100"
      },
      "message": "Refactor use of __ANDROID__ macro\n\nWe use the __ANDROID__ macro, which is provided by the toolchain, in\nnumerous places. This patch refactors the usage of this by defining a\nnew macro, ART_TARGET_ANDROID, that is being passed during build to\nART_TARGET_CFLAGS in Android.common_build.mk on the same line as\nART_TARGET. The codebase currently assumes that the existence of the\n__ANDROID__ macro implies that we are compiling art for an android\ntarget device. This is because, currently, target builds are compiled\nwith target toolchains that provide the macro, while host toolchains\ndo not.  With this change this assumption is still preserved. However,\nin a future patch we will add the ability to compile art for a linux\ntarget, and in that case the ART_TARGET_ANDROID macro won\u0027t be passed\nanymore.\n\nChange-Id:  I1f3a811aa735c87087d812da27fc6b08f01bad51\n"
    },
    {
      "commit": "0d6f02679111fc1dd84cc45ddb4daab2fc622911",
      "tree": "1a3bfd73bbf3a509df7bb8e38341b48bbb7c20ed",
      "parents": [
        "9c53671bb659cb47bea82f6cbdd46c0843753e82"
      ],
      "author": {
        "name": "jgu21",
        "email": "jinghui.gu@intel.com",
        "time": "Tue Sep 22 03:47:43 2015 -0400"
      },
      "committer": {
        "name": "jgu21",
        "email": "jinghui.gu@intel.com",
        "time": "Sun Oct 18 22:55:28 2015 -0400"
      },
      "message": "Block signals before invoking special or user handlers\n\n1. Block signals marked in sa_mask before invoking user handler\n   if not in old style.\n2. Block all signals before invoking special signal handler.\n\nChange-Id: Ie1283e97ed28ee3421df584352cd62cb107264bc\nSigned-off-by: jgu21 \u003cjinghui.gu@intel.com\u003e\n"
    },
    {
      "commit": "c60e1b755c5632dfeb04c333489ede52ee5c945f",
      "tree": "9582a0ffc99e4ad11dcd5d95dd97b09bc6acc5bf",
      "parents": [
        "7b926cdacc2b67241bc9cb5f2d4b04b13ca79d0e"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jul 30 08:57:50 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jul 30 08:57:50 2015 -0700"
      },
      "message": "ART: Use __ANDROID__ instead of HAVE_ANDROID_OS\n\nUse the proper define.\n\nChange-Id: I71e291ac25f5d5f0187ac9b6ef2d6872f19e6085\n"
    },
    {
      "commit": "0c7c55c717e774598ebce25f662209e8db23b3c9",
      "tree": "2319df3ebf57c4d414ab5325f5bd707b39072341",
      "parents": [
        "2a7ea34cda9bf776339dfc7f4a22ab01f9525f2d"
      ],
      "author": {
        "name": "jgu21",
        "email": "jinghui.gu@intel.com",
        "time": "Fri Jul 24 13:40:33 2015 +0800"
      },
      "committer": {
        "name": "jgu21",
        "email": "jinghui.gu@intel.com",
        "time": "Sat Jul 25 20:15:52 2015 +0800"
      },
      "message": "Register signal handler to kernel if not claimed\n\nTo set special handler for a signal, if the signal was not\nclaimed before, the default handler in sigchain must be registerred\nfor it before claimimg it in sigchain.\n\nChange-Id: I7ab74392cabb7f34af8ae038c90d20f0641b9d99\nSigned-off-by: jgu21 \u003cjinghui.gu@intel.com\u003e\n"
    },
    {
      "commit": "65e069df6f864102b062fc04de8877f8230034a8",
      "tree": "e9f156df149eac2c360e3d2974f3a80c726b751d",
      "parents": [
        "01aaf6ef3e3e35cc8e41cf3fe899a7bf337042f4"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Jun 08 10:35:24 2015 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Jul 01 13:48:23 2015 +0100"
      },
      "message": "Build statically linked version of dex2oat.\n\nChange-Id: Icde39b770781095af7bd87ae6b907ad97a8a05da\n"
    },
    {
      "commit": "e089920eb0abc10eca708dbf5993134aa7e8d9b0",
      "tree": "a95aa0203decce3519b2b2f360d10e5a9b1a4e52",
      "parents": [
        "38b66b6fed1adcc1da4b931a32f78c5290a97c1e"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jun 05 20:45:31 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jun 05 20:47:36 2015 -0700"
      },
      "message": "ART: Add SetSpecialSignalHandlerFn to version-script.txt\n\nExpose the new function from the sigchainlib implementation.\n\nBug: 20217701\nChange-Id: I7d21025595775e057ea703236ca88ceb07173136\n"
    },
    {
      "commit": "12bd7210bb2f5738e33dfa3f2f1cba2e0aab4955",
      "tree": "ceff4c27b7d3173da61dda12b1b05e062e82e3d9",
      "parents": [
        "2519fc40d4ae89322d28d1ff610fe81bb90fb564"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Jun 04 17:50:27 2015 +0100"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Jun 04 11:26:19 2015 -0700"
      },
      "message": "If heap poisoning is on, pass the relevant flag to LOCAL_ASFLAGS.\n\nThis change ensures assembly files honoring heap poisoning\n(notably used by stub_test) are compiled with\n-DART_HEAP_POISONING\u003d1 when this feature is turned on.\n\nBug: 21621105\nChange-Id: I13fe456cd2733a09bdfd3a9808cfd70513b14698\n"
    },
    {
      "commit": "03c2cc89428914adf52229d6a3867eef6127911a",
      "tree": "26cfbf0947d3e9d7f9faf85cf440d37daa8c09ee",
      "parents": [
        "c06841dac1443e99e92596f15caa82c99bfee010"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri May 22 18:31:50 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu May 28 11:49:47 2015 -0700"
      },
      "message": "ART: Add support for special handlers in sigchainlib\n\nAdd support for a special managed handler in sigchainlib that\nwill be called as the first user handler.\n\nUse this support for native bridge v2. Extend test 115-native-bridge\nto test the functionality.\n\nBug: 20217701\nChange-Id: I78cc01fbdabe169154ff6b94c9f3ddb95b5c7448\n"
    },
    {
      "commit": "2cebb24bfc3247d3e9be138a3350106737455918",
      "tree": "d04d27d21b3c7733d784e303f01f873bb99e7770",
      "parents": [
        "1f02f1a7b3073b8fef07770a67fbf94afad317f0"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Apr 21 16:50:40 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Apr 22 12:44:27 2015 -0700"
      },
      "message": "Replace NULL with nullptr\n\nAlso fixed some lines that were too long, and a few other minor\ndetails.\n\nChange-Id: I6efba5fb6e03eb5d0a300fddb2a75bf8e2f175cb\n"
    },
    {
      "commit": "ba1ff84da2b7799c64f18cc72e2715b88b887fcc",
      "tree": "45f9c54971517efd5ad71dc6545a81974fedcd7f",
      "parents": [
        "c6ec8679209b37e7c8143c2680d85b2ca640a353"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Apr 06 14:33:54 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Apr 06 14:33:54 2015 -0700"
      },
      "message": "ART: Fix no-return in sigchainlib\n\nIgnore warning in sigchain_dummy.\n\nChange-Id: I2c9ed93c0125d06b6a3d4011a794b062cf1c4093\n"
    },
    {
      "commit": "34a0c208e7f808270e3e2189ae1a198b3fa8ed2e",
      "tree": "e4b9eb58f934ed04bf1a3a82499c78fa7452bcd7",
      "parents": [
        "a68a7cf8f3a6fef22d71a14350176115cb13857f"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Apr 02 18:30:22 2015 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Apr 03 17:14:19 2015 +0000"
      },
      "message": "Delegate SIG_DFL on sigaction to libc.\n\n  In the case when user registers SIG_DFL hanlder\n  sigchainlib\u0027s handler tends to go into infinite loop\n  because the function handling signals resets signal\n  using by calling to signchain\u0027s own implementation.\n\n  This cl fixes the problem by passing sigcations with\n  SIG_DFL to the next sigaction (usually libc\u0027s).\n\nBug: 19594886\nChange-Id: I9eecf9afd1c7e6d1fe3cd1d4fc506383ecbebe04\n"
    },
    {
      "commit": "a3164b9b0e44a839d2bc1b7985df5d00087f86f8",
      "tree": "a8ded4791813d04aef8786b459f47ce75b0addb5",
      "parents": [
        "8160bc08fce08c81820bcd9699d3cffd8135ed90"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Apr 01 11:08:45 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Apr 01 11:08:45 2015 -0700"
      },
      "message": "Fix formatting\n\nChange-Id: Id64aad5de1f911ac7e747788d586bac397f34f18\n"
    },
    {
      "commit": "31fb26054349db03b3f1627fe975ed099ade69dd",
      "tree": "1584fbca9d5099a25ca857531b846f5b05b61de9",
      "parents": [
        "28acb6feb50951645c37c077bd3897ea760ca322"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Sep 30 22:10:10 2014 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Jan 30 08:57:51 2015 -0800"
      },
      "message": "Add options for building/testing with coverage.\n\n    acov --clean\n    mm -B NATIVE_COVERAGE\u003dtrue ART_COVERAGE\u003dtrue test-art-host\n    acov --host\n\n-B is needed because you need to be sure you rebuild *all* of ART with\ncoverage.\n\nChange-Id: Ib94ef610bd1b44dc45624877710ed733051b7a50\n"
    },
    {
      "commit": "f36df544d421aa60fc4cf8a5db6356b45f97953b",
      "tree": "85c2a17e6ccdee567c0aee669a6b949a9eead1a8",
      "parents": [
        "ab7f56d9b9838811cb01773e45999e2cda4aa03a"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Jan 29 13:28:13 2015 -0800"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Jan 29 13:28:13 2015 -0800"
      },
      "message": "Remove libcxx.mk cruft.\n\nThis is on by default now. No need to leave it in the makefiles.\n\nChange-Id: I20eab7426da4bbbf8b70ffc5b9af7b97487d885d\n"
    },
    {
      "commit": "86bb22e188f587ba64a0e62ae5f44363d573345d",
      "tree": "ac7459c119d2c0667bfa62d32f86411724287e06",
      "parents": [
        "4270e74152d8a7cd979ab5a92fe2a8f84adb8a42"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Dec 18 19:25:50 2014 -0800"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Jan 07 19:05:08 2015 -0800"
      },
      "message": "Do not use clang for mips target.\n\nClang assembler cannot compile some inlined assembly code\nin valgrind_malloc_space-inl.h:192:5: error: used $at without \".set noat\"\nHowever, clang generated assembly code for runtime/mirror/array.cc\ncannot be compiled by gas.\n\nBUG: 18789639\nBUG: 18807290\nChange-Id: Ifdeb3c50f11cefc7f0d62c1d36fdd1f8b9344fb4\n"
    },
    {
      "commit": "c01683bea012d2ee15e325fac7177b920f23fea1",
      "tree": "7cb2063f05a857a18e9ff0b7ffed7f741270cfff",
      "parents": [
        "55edd8e2982e21c4f3475bb8389c169830220c80"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Jan 06 14:55:26 2015 -0800"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Jan 06 15:42:15 2015 -0800"
      },
      "message": "Fix sigchainlib\u0027s implementation of sigaction\n\n  Correctly handles the case when old_action \u003d\u003d new_action\n\nBug: 18740478\nChange-Id: I97092318439e4f6f0a2513d4336496c72f8c5599\n(cherry picked from commit 797a29b334f2d311135602bf5204ae8b890f4a14)\n"
    },
    {
      "commit": "277ccbd200ea43590dfc06a93ae184a765327ad0",
      "tree": "d89712e93da5fb2748989353c9ee071102cf3f33",
      "parents": [
        "ad17d41841ba1fb177fb0bf175ec0e9f5e1412b3"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 03 21:36:10 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Nov 04 18:40:08 2014 -0800"
      },
      "message": "ART: More warnings\n\nEnable -Wno-conversion-null, -Wredundant-decls and -Wshadow in general,\nand -Wunused-but-set-parameter for GCC builds.\n\nChange-Id: I81bbdd762213444673c65d85edae594a523836e5\n"
    },
    {
      "commit": "9d9cfa85fe614084768e1c66666933ac648a8d90",
      "tree": "65453d9eb0c978652bf6cf9afd9477e894b77e49",
      "parents": [
        "a10a8b56a01be95b3ec13022d3a155e163a11673"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 03 20:25:24 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 03 20:25:24 2014 -0800"
      },
      "message": "ART: Fix unused parameters in libsigchain\n\nThe sigchain dummy implementation does not use any parameters.\n\nChange-Id: Icbb71677e5092cd5990a69ea3a62703c0747ae17\n"
    },
    {
      "commit": "cf7f19135f0e273f7b0136315633c2abfc715343",
      "tree": "ffa4d9efd9c45f4b6789acc1f534bb9327052b7e",
      "parents": [
        "aea6888b056be21adf762e066c7f33b8939b8a06"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Oct 22 22:06:39 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Oct 22 22:21:57 2014 -0700"
      },
      "message": "C++11 related clean-up of DISALLOW_..\n\nMove DISALLOW_COPY_AND_ASSIGN to delete functions. By no having declarations\nwith no definitions this prompts better warning messages so deal with these\nby correcting the code.\nAdd a DISALLOW_ALLOCATION and use for ValueObject and mirror::Object.\nMake X86 assembly operand types ValueObjects to fix compilation errors.\nTidy the use of iostream and ostream.\nAvoid making cutils a dependency via mutex-inl.h for tests that link against\nlibart. Push tracing dependencies into appropriate files and mutex.cc.\nx86 32-bit host symbols size is increased for libarttest, avoid copying this\nin run-test 115 by using symlinks and remove this test\u0027s higher than normal\nulimit.\nFix the RunningOnValgrind test in RosAllocSpace to not use GetHeap as it\nreturns NULL when the heap is under construction by Runtime.\n\nChange-Id: Ia246f7ac0c11f73072b30d70566a196e9b78472b\n"
    },
    {
      "commit": "e49a4f6db74f4e66486a6aaf6564f997a94e230f",
      "tree": "b99b8699a8d9521caf973d48bef1d3fd7efc6726",
      "parents": [
        "1c1786f193323d3bd706463894001117f3471595"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Oct 20 14:11:00 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Oct 20 16:46:29 2014 -0700"
      },
      "message": "Link libsigchain.a instead of sigchain.o\n\n  Relative paths may sometimes lead to failed builds\n  if sources are built in particular order.\n\n  Also it is possible to export symbols from static lib\n  with LOCAL_WHOLE_STATIC_LIBRARIES variable.\n\nChange-Id: I6d62594c2e84020d67254747c1fd465e1144920e\n"
    },
    {
      "commit": "d000480134b7b00895fbfd142f1d1e18d9cfa6e9",
      "tree": "a9fab808555310308aecda2a59a7c90727ede0ff",
      "parents": [
        "d866c7616cb3426c431b635ae69964ce69c2ecb5"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 15 16:59:47 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Oct 16 19:16:41 2014 -0700"
      },
      "message": "Add way to ensure we are at the front of the sigaction chain\n\nCalling this after jni_on_load fixes the unity apps. This is\nnot exactly correct since we may already have the following chain.\n\nStart up:\nUs -\u003e debuggerd\n\nAfter app goes in front:\nApp -\u003e us -\u003e debuggerd\n\nAfter we put ourself back at the front:\nUs -\u003e app -\u003e us -\u003e app -\u003e .... stack overflow.\n\nBug: 17620677\nChange-Id: I9183997e3d5ebd51c320b5d51425be5142e938f3\n\n(cherry picked from commit 1f24296c7c8a6501ee2388c0d20b48f471b48660)\n"
    },
    {
      "commit": "f57874dddefc03fef9ad36fbdd87e39a08a8d641",
      "tree": "4cb51f492558475368ce0df190c12e8f1adf732a",
      "parents": [
        "1000e69b7e11348f2e1d3ba67339616a647f53d7"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Oct 07 13:43:23 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Oct 07 16:52:46 2014 -0700"
      },
      "message": "Remove libsigchain from LD_PRELOADS\n\n  Link sigchain.cc statically with dalvikvm, app_process,\n  surfaceflinger, dex2oat, patchoat and objdump.\n\n  Replace libsigchain.so with dummy implementaions to avoid\n  situations when it is used incorrectly.\n\nBug: 15345057\nBug: 15426766\nChange-Id: If0b7f59a59824e30aa0c33dad76c7a44932180de\n"
    },
    {
      "commit": "cefcea838729287a04174664a76514dd793dd77d",
      "tree": "1feb269b6224d0448f15502eb09da4a97dc67b24",
      "parents": [
        "5733b35c23792834f3a2374003c109301a48867c"
      ],
      "author": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Tue Sep 16 10:01:01 2014 -0700"
      },
      "committer": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Tue Sep 16 10:11:17 2014 -0700"
      },
      "message": "Don\u0027t call dlsym from signal context in signal chain\n\nIt is dangerous to call dlsym from within a signal context\nsince it takes a lock and can lead to a mutex reentry attempt if\ntiming is bad.\n\nThis change adds an initialization function to the signal chain\nthat calls dlsym for sigaction and sigprocmask from outside the\nsignal context (from Runtime::Init()).  The results are cached\nin a static variable and used from within the signal context if\nnecessary.\n\nHowever, tests don\u0027t necessarily call Runtime::Init() so we also\nneed to deal with the case where the signal chain is not initialized\nand perform a lazy initialization from inside sigaction or sigprocmask.\nThis is always outside a signal context since we have not initialized\nthe runtime.\n\nBug: 17498571\nChange-Id: I59eebfc67cc91c6f1d781a73e5d432ca5269ee48\n"
    },
    {
      "commit": "38680093a5e5150ca07b315e0596f6b53347195c",
      "tree": "2bf8128a2ddaa4af3123b725c7ac864ed2c083c5",
      "parents": [
        "eb9266cb953f15f0101da33f0d5a94590b1bd14b"
      ],
      "author": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Fri Aug 29 12:29:34 2014 -0700"
      },
      "committer": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Fri Aug 29 12:29:34 2014 -0700"
      },
      "message": "Fix mac build and signal test\n\nChange-Id: I58311285db9095ca6339ce29a9f15e841b7c822d\n"
    },
    {
      "commit": "91a8366fb161725d40c99ce6330ab5c2ca758b56",
      "tree": "7cb52b03dd04d351f5077926c9c6f0a6c0b0ef8c",
      "parents": [
        "6950ae42dc0f64c825bf61cb13c0bfb254ad97bd"
      ],
      "author": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Thu Aug 28 16:12:40 2014 -0700"
      },
      "committer": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Thu Aug 28 17:53:33 2014 -0700"
      },
      "message": "Fix signal chain to allow for signal() call to be used\n\nBug: 17320614\nChange-Id: Ia917307fb1b593644f524518e11e295b3c64be01\n"
    },
    {
      "commit": "8ce6b9040747054b444a7fa706503cd257801936",
      "tree": "04712170addb252d307ef9015abfc9bfc2b73581",
      "parents": [
        "a0a0da29e7d4d5c1bd471c49f1a4b6ec98fb767a"
      ],
      "author": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Tue Aug 26 11:07:58 2014 -0700"
      },
      "committer": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Wed Aug 27 12:47:44 2014 -0700"
      },
      "message": "Handle nested signals\n\nThis allows for signals to be raised inside the ART signal handler.\nThis can occur when the JavaStackTraceHandler attempts to generate\na stack trace and something goes wrong.\n\nIt also fixes an issue where the fault manager was not being\ncorrectly shut down inside the signal chaining code.  In this\ncase the signal handler was not restored to the original.\n\nBug: 17006816\nBug: 17133266\n\n(cherry picked from commit fabe91e0d558936ac26b98d2b4ee1af08f58831d)\n\nChange-Id: I10730ef52d5d8d34610a5293253b3be6caf4829e\n"
    },
    {
      "commit": "1f8ef6fa2fb5d79799371f8bf745824b78bc48f2",
      "tree": "0ecf06cfc561501ad65ad774848ce2f30808c123",
      "parents": [
        "00b3024b350afef115bddea712705bdb4877ac11"
      ],
      "author": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Wed Aug 20 17:38:41 2014 -0700"
      },
      "committer": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Thu Aug 21 12:04:02 2014 -0700"
      },
      "message": "Fix fault handler to unregister on shutdown\n\nThis fixes a problem with the fault handler where it wasn\u0027t\nunregistering itself during shutdown of the runtime.\n\nBug: 17133266\n\n(cherry picked from commit e8b9afcd0cd86b8808af29a97332038aab70c604)\n\nChange-Id: I1a4ec4292ec049046dda30769265680201729efb\n"
    },
    {
      "commit": "69dfe51b684dd9d510dbcb63295fe180f998efde",
      "tree": "daa2522650ca03417e4518dc8aef989ec53a6065",
      "parents": [
        "479f131d4bd3829dd512312020808b05f5a591f1"
      ],
      "author": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Fri Jul 11 17:11:58 2014 +0000"
      },
      "committer": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Wed Jul 16 14:58:27 2014 -0700"
      },
      "message": "Revert \"Revert \"Revert \"Revert \"Add implicit null and stack checks for x86\"\"\"\"\n\nThis reverts commit 0025a86411145eb7cd4971f9234fc21c7b4aced1.\n\nBug: 16256184\nChange-Id: Ie0760a0c293aa3b62e2885398a8c512b7a946a73\n"
    },
    {
      "commit": "22d5e735f403c57525fe868304c7123f0ce66399",
      "tree": "2458684efa56f0b800dd75a9dedd0449f76f581f",
      "parents": [
        "fbde4dd1cb6db729e3f3ee5bdae0cdd824d73054"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jul 15 22:23:51 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Jul 16 06:13:46 2014 -0700"
      },
      "message": "Remove object_utils.h.\n\nBreak into object_lock, field_helper and method_helper.\nClean up header files following this.\nAlso tidy some of the Handle code in response to compiler errors when resolving\nthe changes in this CL.\n\nChange-Id: I73e63015a0f02a754d0866bfaf58208aebcaa295\n"
    },
    {
      "commit": "0025a86411145eb7cd4971f9234fc21c7b4aced1",
      "tree": "933b8b96ea970c23a7b3ce313c7c6d46f807dadd",
      "parents": [
        "7fb36ded9cd5b1d254b63b3091f35c1e6471b90e"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jul 11 08:26:40 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jul 11 08:26:40 2014 +0000"
      },
      "message": "Revert \"Revert \"Revert \"Add implicit null and stack checks for x86\"\"\"\n\nBroke the build.\n\nThis reverts commit 7fb36ded9cd5b1d254b63b3091f35c1e6471b90e.\n\nChange-Id: I9df0e7446ff0913a0e1276a558b2ccf6c8f4c949\n"
    },
    {
      "commit": "7fb36ded9cd5b1d254b63b3091f35c1e6471b90e",
      "tree": "eb1e3b96efd67cc6b84a6f7e35522f33973ca8db",
      "parents": [
        "93279da4a8475d187a0a2e75d50c88def5b4b8a5"
      ],
      "author": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Thu Jul 10 02:05:10 2014 +0000"
      },
      "committer": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Thu Jul 10 21:24:47 2014 +0000"
      },
      "message": "Revert \"Revert \"Add implicit null and stack checks for x86\"\"\n\nFixes x86_64 cross compile issue.  Removes command line options\nand property to set implicit checks - this is hard coded now.\n\nThis reverts commit 3d14eb620716e92c21c4d2c2d11a95be53319791.\n\nChange-Id: I5404473b5aaf1a9c68b7181f5952cb174d93a90d\n"
    },
    {
      "commit": "672f8367f74e5db7d26714cd6fa1a13fa2a6c59f",
      "tree": "4becd76b50de9b80dd1fb411a1891bacbe4c77c3",
      "parents": [
        "4770a2e6d56398a6b4398fcce14fea43394e0d1b",
        "3d14eb620716e92c21c4d2c2d11a95be53319791"
      ],
      "author": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Thu Jul 10 01:55:25 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jul 09 14:42:04 2014 +0000"
      },
      "message": "Merge \"Revert \"Add implicit null and stack checks for x86\"\""
    },
    {
      "commit": "3d14eb620716e92c21c4d2c2d11a95be53319791",
      "tree": "aadce4d6bb70e549b74b537c6f75617cf533576a",
      "parents": [
        "34e826ccc80dc1cf7c4c045de6b7f8360d504ccf"
      ],
      "author": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Thu Jul 10 01:54:57 2014 +0000"
      },
      "committer": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Thu Jul 10 01:54:57 2014 +0000"
      },
      "message": "Revert \"Add implicit null and stack checks for x86\"\n\nIt breaks cross compilation with x86_64.\n\nThis reverts commit 34e826ccc80dc1cf7c4c045de6b7f8360d504ccf.\n\nChange-Id: I34ba07821fc0a022fda33a7ae21850957bbec5e7\n"
    },
    {
      "commit": "34e826ccc80dc1cf7c4c045de6b7f8360d504ccf",
      "tree": "76901cff2cddd6d30cb7a4e83ad4e0c9bb673fe1",
      "parents": [
        "c21dc06adc8c8447561208a3fb72ccf6d0443613"
      ],
      "author": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Thu May 29 08:20:04 2014 -0700"
      },
      "committer": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Wed Jul 09 16:19:59 2014 -0700"
      },
      "message": "Add implicit null and stack checks for x86\n\nThis adds compiler and runtime changes for x86\nimplicit checks.  32 bit only.\n\nBoth host and target are supported.\nBy default, on the host, the implicit checks are null pointer and\nstack overflow.  Suspend is implemented but not switched on.\n\nChange-Id: I88a609e98d6bf32f283eaa4e6ec8bbf8dc1df78a\n"
    },
    {
      "commit": "5de52242f3934f1604083d7215cdde1d0cc8ba7a",
      "tree": "41082d76a9de3bf58a642ce9ae49603fe50849c4",
      "parents": [
        "2929490de9374c2a052cff4cf6957852ebf06d98",
        "34e826ccc80dc1cf7c4c045de6b7f8360d504ccf"
      ],
      "author": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Thu Jul 10 00:16:22 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jul 09 22:27:32 2014 +0000"
      },
      "message": "Merge \"Add implicit null and stack checks for x86\""
    },
    {
      "commit": "213bc5bf02c6521170c6a948858190e7b5dbe659",
      "tree": "a5d5597a06a3c8a829ce66e5982206218e8d85ce",
      "parents": [
        "c21dc06adc8c8447561208a3fb72ccf6d0443613"
      ],
      "author": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Tue Jul 08 18:07:18 2014 -0700"
      },
      "committer": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Wed Jul 09 21:43:27 2014 +0000"
      },
      "message": "Remove incorrect check for sa_mask in signal chaining\n\nThis removes an incorrect check using the sa_mask field of the\nsigaction structure when chaining to a user\u0027s signal handler.\nThe check prevented a user\u0027s handler being called when sa_mask\nwas set.\n\nThanks to primiano@ for the excellent bug report.\n\nBug: 16005022\nChange-Id: I0548003f4fc3b1889a6859091e603ead4a9b0607\n"
    },
    {
      "commit": "afd9acc30bdd11cdd12d8209eb994cb371c65e33",
      "tree": "10ebfa28d992a96422fcf81eb28c98393719e9a6",
      "parents": [
        "ba778fae99ec3b38d4f98262e6b7072bab0e9de4"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jun 17 08:21:54 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jun 24 16:47:31 2014 -0700"
      },
      "message": "Multilib ART host.\n\nBuild ART for the host as a multilib project with dalvikvm32 and dalvikvm64\nrunning as 32 or 64-bit repsectfully. Note, currently multilib host builds\nare not the default, you make the so by setting BUILD_HOST_64bit\u003d1.\nExtend tests to execute in both 32 and 64-bit modes. By default both 32 and\n64-bit tests are run, add 32 or 64 to the end of a test name to run it in\npurely that flavor.\nGiven the extra spam, modify oat tests to only generate console output when\nthe test fails.\nChange the test harness so that common commands are run when a test should be\nskipped, when it passes or when it fails. Use these commands to generate a\nsummary of passing, skipped and failing tests. Tests will be skipped if they\nare known to be broken or if a test has already failed. Setting the variable\nTEST_ART_KEEP_GOING\u003dtrue will force working tests not to be skipped.\nIn this change all tests running on the optimizing compiler are marked broken\ndue to breakages running them in a multilib environment.\nBreak apart Android.common.mk into its constituent parts, along with other\npieces of reorganization.\n\nStylistic nit, we refer to make rule targets as targets thereby overloading\nthe term target. While consistent with make\u0027s terminology, its confusing with\nthe Android notion of target. I\u0027ve switched to just calling targets rules to\navoid confusion in host tests.\n\nChange-Id: I5190fc3de46800a949fbb06b3f4c258ca89ccde9\n"
    },
    {
      "commit": "f4b80bcc7190fe75023b983d56a795b440a0c515",
      "tree": "f2858dab6a756444755b79e36467d6c9e15060f1",
      "parents": [
        "c774bd435e95e537ca578486f687651fabe97008"
      ],
      "author": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Wed May 14 15:41:25 2014 -0700"
      },
      "committer": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Thu May 29 08:22:38 2014 -0700"
      },
      "message": "Make use of sigchainlib for signal chaining for implicit checks\n\nThis adds a preload library that overrides sigaction and sigprocmask\nto implement signal chaining.  Signal chaining allows us to chain\nany signal so that the ART runtime receives it before any signal\nhandler registered in native code by an application.  If the\nART signal handler doesn\u0027t want it, it will pass it on to the\nuser\u0027s handler.\n\nART uses signals for null pointer checks, stack overflow checks and\nsuspend points.\n\nAlso adds an OAT test to test this in isolation.\n\nChange-Id: I9545f9f7343774c091410eb810504d9855fd399f\n"
    }
  ]
}
