)]}'
{
  "log": [
    {
      "commit": "3012b9636b26d8d8a440ff1c93f1a3c94595fa18",
      "tree": "78b8f5938b5c9f5dabd4d9a7d3ea7b959ae70ae7",
      "parents": [
        "f0296f35f67cf4c112b3ed407858999bdc2f33b0"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 11 13:18:29 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 11 13:18:29 2018 -0700"
      },
      "message": "Remove workarounds for old versions of clang and GCC.\n\nBug: N/A\nTest: ran tests\nChange-Id: I89d224c743f5113771de41c74161a7a5ccad05e4\n"
    },
    {
      "commit": "8a0f0ed5e7c2bc5665583db646876808cc3c2bc7",
      "tree": "e37fb7e4c3706931a9bfde2d865b4d90589610f6",
      "parents": [
        "42596b7bf0652e44edff0370f75e1d5387c5cc7b"
      ],
      "author": {
        "name": "Haibo Huang",
        "email": "hhb@google.com",
        "time": "Thu May 24 20:39:18 2018 -0700"
      },
      "committer": {
        "name": "Haibo Huang",
        "email": "hhb@google.com",
        "time": "Mon Jun 11 18:12:45 2018 +0000"
      },
      "message": "Make memcpy memmove\n\nBug: http://b/63992911\nTest: Change BoardConfig.mk and compile for each variant\nChange-Id: Ia0cc68d8e90e3316ddb2e9ff1555a009b6a0c5be\n"
    },
    {
      "commit": "da46caee095766fca147317cc20636022c9106c2",
      "tree": "9e476f4f8ebef5484f77781faef70d9e9996b7d4",
      "parents": [
        "7bfc149b4365b32f16eae9bc072c3df3d11383a2"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 24 14:40:32 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 24 14:57:15 2018 -0700"
      },
      "message": "Add generic arm non-neon memmove.\n\nFrom OpenBSD.\n\nBug: http://b/63992911\nTest: ran tests\nChange-Id: If7d9166922776cdc9333ff04205f9c6312a812b3\n"
    },
    {
      "commit": "4362da80760ef76af310280e70fddb6b6d3d043f",
      "tree": "1c82e79065e631ec1739f588025154696469d253",
      "parents": [
        "6fa9bddbc7188aeb20d6faa4da2e62c12f5a5af2",
        "90242350053e6fd2c03640d3f9b37864d18c414d"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Feb 10 02:30:37 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Feb 10 02:30:37 2018 +0000"
      },
      "message": "Merge \"Remove __overloadable/__RENAME_CLANG\""
    },
    {
      "commit": "55ca56c27ca166a247b1e621a0a0e3f4d1907b4d",
      "tree": "1be96b12296ebb2bff8a8427f0ca94472f56fb7b",
      "parents": [
        "177429cb8db80496a5fe65430253b37d254dc66f"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Feb 06 16:51:32 2018 -0800"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Feb 06 17:23:33 2018 -0800"
      },
      "message": "Fix __gnu_Unwind_Find_exidx again.\n\nThe math on the size calculation was wrong as the type of\n__exidx_start/__exidx_end was unsigned rather than a char. Make a\nstruct that represents each item instead and remove the division.\n\nTest: built artifacts and used them in the NDK\nBug: None\nChange-Id: Ic2c0c123a369b9319e8645d806d659290eb2f69c\n"
    },
    {
      "commit": "90242350053e6fd2c03640d3f9b37864d18c414d",
      "tree": "86bd08eae994cc61618b28520cab3ea1b423493e",
      "parents": [
        "2bf1d3dae262f92dbc964be467060dc6a24787af"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Tue Feb 06 12:51:31 2018 -0800"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Tue Feb 06 13:35:56 2018 -0800"
      },
      "message": "Remove __overloadable/__RENAME_CLANG\n\nNow that we have a clang that supports transparent overloads, we can\nkill all of this cruft, and restore our upstream sources to their\nuntouched glory. Woohoo!\n\nBug: 12231437\nTest: Built aosp_marlin; no obvious patch-related aosp_mips issues.\nChange-Id: I520a19d014f12137f80e43f973dccd6711c571cd\n"
    },
    {
      "commit": "e58d49e76c56b835a1713803292fef5d25095ad5",
      "tree": "777f9f6d4da9f34930834eb73c4014cb858193c7",
      "parents": [
        "a026108ec10c0b711add1e5fb920710ced4a9046"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 05 13:36:02 2018 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 05 13:36:02 2018 -0800"
      },
      "message": "Improve the comment in the ARM setjmp.S.\n\nBased on code review comments for 460130b7d07f0efba7f4f43f657f0f60daeb71e2.\n\nBug: N/A\nTest: N/A\nChange-Id: Ia86bc92dfe3f18261e06af33488a548ea9911b10\n"
    },
    {
      "commit": "460130b7d07f0efba7f4f43f657f0f60daeb71e2",
      "tree": "b74709deb7bd530b7c5621da8f541209bf2cff5e",
      "parents": [
        "d8fde3f8a9210789c97dfcc16f048fd20c1ec0ec"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 31 09:05:26 2018 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 31 17:47:16 2018 -0800"
      },
      "message": "Fix sigsetjmp/siglongjmp to save/restore RT signals on arm/x86 too.\n\nOur arm and x86 ABIs shipped with a 32-bit `sigset_t`, so we need to\nuse sigprocmask64 to save/restore the RT signals too. (This is important\nbecause several are in use by the system, and the behavior of our 32-bit\n`sigset_t` is to clear the RT signals.)\n\nBug: http://b/72493232\nTest: ran tests\nChange-Id: Idff91f8b2849276e5a3073d07eccd84e02a34410\n"
    },
    {
      "commit": "7ebafb365a99968ea87fd7d62c1b0eab1b3f1033",
      "tree": "3ee42cb8f190d4310af1387af66e30cbec29a9d0",
      "parents": [
        "6dafb4ac781fea2950180048ce903d2a6bbeda39"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jan 29 10:23:01 2018 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jan 29 10:23:01 2018 -0800"
      },
      "message": "Use sigprocmask rather than sigblock/sigsetmask.\n\nNo effect right now, because sigprocmask on LP32 also only touches\nthe non-RT signals, but this makes it easier to switch to __rt_sigprocmask.\n\nBug: http://b/72460436\nTest: ran tests\nChange-Id: I693f0ea36701e9ab5d10e6aefb26387ba45a6064\n"
    },
    {
      "commit": "aeb5bc658feaa579b72560a7026374cbeb38ea56",
      "tree": "88afc0254ccfe71945786d5b238c714904c1e0df",
      "parents": [
        "73871ad09be8a8259171d606c4e3e3cf08d4733c"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Jan 25 12:24:45 2018 -0800"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Jan 25 12:48:57 2018 -0800"
      },
      "message": "Fix __gnu_Unwind_Find_exidx for static executables.\n\n__exidx_start and __exidx_end are not actual values to be read, just\nsymbols placed before and after .ARM.exidx.\n\nThe default linker script for ARM static executables includes these\nlines:\n\n    __exidx_start \u003d .;\n   .ARM.exidx   : { *(.ARM.exidx*) }\n    __exidx_end \u003d .;\n\nhttp://infocenter.arm.com/help/index.jsp?topic\u003d/com.arm.doc.dui0474c/BABEHEDA.html\n\nTest: used __gnu_Unwind_Find_exidx in a static executable and showed\n      non-bogus values\nTest: verified that this fixes #593 in the NDK\nBug: https://github.com/android-ndk/ndk/issues/593\nChange-Id: Ib35a4b6c82920666ae8a45aa0a2d43e458699b51\n"
    },
    {
      "commit": "2180978c88e6dbb6a34cb54ec96cc365bba8c00c",
      "tree": "50f22f156389cf06713b3f646382e1cc6f7aa983",
      "parents": [
        "d351581aa9ba1fbce227db35500471fe59c45f08"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Dec 11 11:40:40 2017 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Dec 11 11:40:40 2017 -0800"
      },
      "message": "Fix SYSCALLS.TXT now clock_getres comes from the vdso.\n\nBug: N/A\nTest: ran tests\nChange-Id: I122066992e1ab1aa38beed256103c3a22fd05a6f\n"
    },
    {
      "commit": "79249b0897016cdcd1344f4c5e8876fbf433de3e",
      "tree": "6b7a479b3a82507a0070777d1be3e6fa73b78cc3",
      "parents": [
        "6f9c35ded294ca7b0b8f9042f705cbfca1ec8518"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Nov 07 08:19:20 2017 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Dec 07 09:41:48 2017 -0800"
      },
      "message": "bionic: add vdso clock_getres\n\nclock_getres() should not be a hot call, nevertheless it is\n~6-7 times faster for supported clock ids if it uses\n__vdso_clock_getres if available.  There is a 3% performance\npenalty for unsupported clock ids via __vdso_clock_getres with\nrespect to a direct syscall.\n\n[TL;DR]\n\nw/vdso32 kernel patches, locked cores to MAX, little cores only.\n\nBEFORE:\n\nhikey960 vdso (aarch64):\n\n----------------------------------------------------------------------\nBenchmark                               Time           CPU Iterations\n----------------------------------------------------------------------\nBM_time_clock_getres                  126 ns        126 ns    5577874\nBM_time_clock_getres_syscall          127 ns        127 ns    5505016\nBM_time_clock_getres_REALTIME         126 ns        126 ns    5574682\nBM_time_clock_getres_BOOTTIME         126 ns        126 ns    5575237\nBM_time_clock_getres_TAI              126 ns        126 ns    5576810\nBM_time_clock_getres_unsupported      128 ns        128 ns    5480189\n\nhikey960 vdso32 (aarch32):\n\n----------------------------------------------------------------------\nBenchmark                               Time           CPU Iterations\n----------------------------------------------------------------------\nBM_time_clock_getres                  199 ns        199 ns    3508708\nBM_time_clock_getres_syscall          220 ns        220 ns    3184676\nBM_time_clock_getres_REALTIME         199 ns        199 ns    3509697\nBM_time_clock_getres_BOOTTIME         199 ns        199 ns    3513551\nBM_time_clock_getres_TAI              200 ns        199 ns    3512412\nBM_time_clock_getres_unsupported      196 ns        196 ns    3575609\n\nx86_64 (glibc):\n\n---------------------------------------------------------------------\nBenchmark                              Time           CPU Iterations\n---------------------------------------------------------------------\nBM_time_clock_getres                 252 ns        252 ns    2370263\nBM_time_clock_getres_syscall         215 ns        215 ns    3287497\nBM_time_clock_getres_REALTIME        214 ns        214 ns    3294228\nBM_time_clock_getres_BOOTTIME        213 ns        213 ns    3277519\nBM_time_clock_getres_TAI             213 ns        213 ns    3294991\nBM_time_clock_getres_unsupported     206 ns        206 ns    3450654\n\nimx7d_pico IOT nyc (w/arm,cpu-registers-not-fw-configured) (armv7a):\n(Virtual Timers)\n\nBenchmark                           Time(ns)    CPU(ns) Iterations\n------------------------------------------------------------------\nBM_time_clock_getres                      16        345    2000000\nBM_time_clock_getres_syscall              16        339    2121212\nBM_time_clock_getres_REALTIME             17        350    2058824\nBM_time_clock_getres_BOOTTIME             17        345    2000000\nBM_time_clock_getres_TAI                  16        350    2000000\nBM_time_clock_getres_unsupported          13        284    2500000\n\nAFTER:\n\nhikey960 vdso (aarch64):\n\n---------------------------------------------------------------------\nBenchmark                              Time           CPU Iterations\n---------------------------------------------------------------------\nBM_time_clock_getres                  18 ns         18 ns   37880389\nBM_time_clock_getres_syscall         127 ns        127 ns    5520029\nBM_time_clock_getres_REALTIME         18 ns         18 ns   37879962\nBM_time_clock_getres_BOOTTIME         19 ns         18 ns   37878361\nBM_time_clock_getres_TAI             131 ns        131 ns    5368484\nBM_time_clock_getres_unsupported      97 ns         97 ns    7182864\n\nhikey960 vdso32 (aarch32):\n\n---------------------------------------------------------------------\nBenchmark                              Time           CPU Iterations\n---------------------------------------------------------------------\nBM_time_clock_getres                  36 ns         36 ns   19205240\nBM_time_clock_getres_syscall         212 ns        212 ns    3297100\nBM_time_clock_getres_REALTIME         36 ns         36 ns   19219109\nBM_time_clock_getres_BOOTTIME         36 ns         36 ns   19222490\nBM_time_clock_getres_TAI             206 ns        206 ns    3402868\nBM_time_clock_getres_unsupported     159 ns        159 ns    4409492\n\nimx7d_pico IOT nyc (wo/arm,cpu-registers-not-fw-configured) (armv7a):\n(Physical Timers)\n\nBenchmark                           Time(ns)    CPU(ns) Iterations\n------------------------------------------------------------------\nBM_time_clock_getres                       2         48   14000000\nBM_time_clock_getres_syscall              14        335    2058824\nBM_time_clock_getres_REALTIME              2         49   14583333\nBM_time_clock_getres_BOOTTIME              2         48   14000000\nBM_time_clock_getres_TAI                  14        350    2058824\nBM_time_clock_getres_unsupported           8        203    3500000\n\nTest: taskset F \\\n        /data/benchmarktest{64}/bionic-benchmarks/bionic-benchmarks \\\n        --bionic_xml\u003dvdso.xml --benchmark_filter\u003dBM_time_clock_getres*\nBug: 63737556\nChange-Id: I80c0a5106625d76720287f715fcf145d2aad1705\n"
    },
    {
      "commit": "12533271fbc1eec185943691fa8a4410d512de89",
      "tree": "784b23e8354bde35c12fd4fc2d34552beeb83875",
      "parents": [
        "fdacec1d4237373354d10c5a400c9c7a3a975285"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Dec 04 13:21:01 2017 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Dec 04 13:21:01 2017 -0800"
      },
      "message": "Give ELF notes 4-byte alignment.\n\nUse .balign because what the argument means doesn\u0027t vary between\narchitectures.\n\nBug: http://b/70166421\nTest: builds\nChange-Id: I1d54f2f6942dd2893f3fda30bac08d07ea9cd346\n"
    },
    {
      "commit": "fa432524a66e5797874ef50e4ede95ded4cee199",
      "tree": "63ae5385f8966b7dd107ed3e73b1d1043b8cb708",
      "parents": [
        "ae7483db2a6a93c0cb0c0eebc26f64b23168c6d3"
      ],
      "author": {
        "name": "dimitry",
        "email": "dimitry@google.com",
        "time": "Wed Oct 25 13:07:45 2017 +0200"
      },
      "committer": {
        "name": "dimitry",
        "email": "dimitry@google.com",
        "time": "Fri Oct 27 10:01:46 2017 +0200"
      },
      "message": "Mark __BIONIC_WEAK_FOR_NATIVE_BRIDGE symbols\n\nTo make it easier for Native Bridge implementations\nto override these symbols.\n\nBug: http://b/67993967\nTest: make\nChange-Id: I4c53e53af494bca365dd2b3305ab0ccc2b23ba44\n"
    },
    {
      "commit": "d4ca231ae2891e5c9eccb6e9a2e6af7fabcfc2a5",
      "tree": "4ffbf1b6c0d0acb3df88b1ce02d574eeaead3f0a",
      "parents": [
        "36f7b8b7891f0af56eb61e7d32cc8cedb5ded8de"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 11 22:27:45 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 12 13:19:51 2017 -0700"
      },
      "message": "Unified sysroot: kill arch-specific include dirs.\n\n\u003cmachine/asm.h\u003e was internal use only.\n\n\u003cmachine/fenv.h\u003e is quite large, but can live in \u003cbits/...\u003e.\n\n\u003cmachine/regdef.h\u003e is trivially replaced by saying $x instead of x in\nour assembler.\n\n\u003cmachine/setjmp.h\u003e is trivially inlined into \u003csetjmp.h\u003e.\n\n\u003csgidefs.h\u003e is unused.\n\nBug: N/A\nTest: builds\nChange-Id: Id05dbab43a2f9537486efb8f27a5ef167b055815\n"
    },
    {
      "commit": "8465e968a8a92c77d57360837a9e725972a745e6",
      "tree": "f8bd05e55680224a407ac55afaef58b668868b05",
      "parents": [
        "96510935697c2934427f0c14d0b153244e8cfb2b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Sep 27 16:33:35 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 29 05:31:35 2017 +0000"
      },
      "message": "Add \u003csys/random.h\u003e.\n\niOS 10 has \u003csys/random.h\u003e with getentropy, glibc \u003e\u003d 2.25 has\n\u003csys/random.h\u003e with getentropy and getrandom. (glibc also pollutes\n\u003cunistd.h\u003e, but that seems like a bad idea.)\n\nAlso, all supported devices now have kernels with the getrandom system\ncall.\n\nWe\u0027ve had these available internally for a while, but it seems like the\ntime is ripe to expose them.\n\nBug: http://b/67014255\nTest: ran tests\nChange-Id: I76dde1e3a2d0bc82777eea437ac193f96964f138\n"
    },
    {
      "commit": "896362eb0e82bcde71c137c925eae9e0882acb91",
      "tree": "3c4b2fb6e1626a2b377c93bd925f4f0fb4e02a9c",
      "parents": [
        "96c577c48284c376ec065f2b3a2d2987a7eeff5c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 24 16:31:49 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 24 16:31:49 2017 -0700"
      },
      "message": "Add syncfs(2).\n\nGMM calls this system call directly at the moment. That\u0027s silly.\n\nBug: http://b/36405699\nTest: ran tests\nChange-Id: I1e14c0e5ce0bc2aa888d884845ac30dc20f13cd5\n"
    },
    {
      "commit": "b890336756118d0285e0f7121b1681b0852ea529",
      "tree": "81e413afdc4f3afd89cfe0da5e4b220f025cf42e",
      "parents": [
        "fc89237b77991bac7d425bade297acde976ea2dc",
        "d544fb7da025b805b6e9dd61c4bfabb9272271b2"
      ],
      "author": {
        "name": "Isaac Chen",
        "email": "ycchen@google.com",
        "time": "Thu Aug 17 07:19:33 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Aug 17 07:19:33 2017 +0000"
      },
      "message": "Merge \"Build support for 32-bit armv8-a\""
    },
    {
      "commit": "d544fb7da025b805b6e9dd61c4bfabb9272271b2",
      "tree": "a0314f538ee7e4684b5499602a474fdd4626c547",
      "parents": [
        "248b5cb672a9eadde695edb7d73e9d1ed5cb0b7f"
      ],
      "author": {
        "name": "Isaac Chen",
        "email": "ycchen@google.com",
        "time": "Mon Jun 26 20:23:26 2017 +0800"
      },
      "committer": {
        "name": "Isaac Chen",
        "email": "ycchen@google.com",
        "time": "Mon Aug 14 06:05:20 2017 +0000"
      },
      "message": "Build support for 32-bit armv8-a\n\nThe assembly in arm\u0027s generic strlen implementation contains deprecated\ninstruction sequence:\n    it      eq  ; start of IT block\n    ldreq   ... ; 32-bit T32 insruction in IT block deprecated in armv8\nThis will cause compiler error because of -Winline-asm and -Werror.\n\nThe fix here is to change the sequence:\n    it      eq\n    ldreq   ...\n    bne     1f\nto equivalent sequence:\n    bne     1f\n    ldr     ...\nThe resulted sequence is (1 instruction) shorter.\n\nSee ARM for ARMv8 for details:\nF6.2 Partial Deprecation of IT\n... All uses of IT that apply to instructions other than a single\nsubsequent 16-bit instruction from a restricted set are deprecated, ...\n\nBug: 62895439\nTest: \"bionic-unit-tests-static --gtest_filter\u003d*strlen*\" on Nexus 4\n      (krait), emulator (armv7), and sailfish (armv8).\n      The test binary for the first 2 is built with armv7-a as its\n      TARGET_CPU_ARCH; The test binary for the last is built with\n      armv8-a as its TARGET_2ND_CPU_ARCH.\n      TARGET(_2ND)_CPU_VARIANTs of both binaries are set to \"generic\".\n\nChange-Id: Ia2208b4e2ba2cad589975bc7b4617688cbb8826a\n"
    },
    {
      "commit": "d34b0a946c551db59b29a1446bbc3d4f6973d959",
      "tree": "d88b9af0e9a725d70c02b8bb41fb172da7ab870a",
      "parents": [
        "086b1b5a22fdba8ace37919bfc4f27f9b27d78c2"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Tue Jul 25 11:43:39 2017 -0700"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Tue Jul 25 17:39:21 2017 -0700"
      },
      "message": "libc: Move FORTIFY into one file; make style fixups\n\nThis addresses post-commit feedback from\nI88c39ca166bacde0b692aa3063e743bb046a5d2f. With this, our FORTIFY impl\nnow sits in one file.\n\nBug: 12231437\nTest: mma; no new CtsBionicTestCases failures on bullhead internal\nmaster.\nChange-Id: I6f9ff81c3e86cf9d6a0efa650eb5765f1e2fa09c\n"
    },
    {
      "commit": "6cb06879323cb45440ca1c7b42a2cc754b3d50c6",
      "tree": "6c57a6539009e2af358daa368f538e82da1593f2",
      "parents": [
        "248b5cb672a9eadde695edb7d73e9d1ed5cb0b7f"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Fri Jul 21 13:28:42 2017 -0700"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Mon Jul 24 14:20:16 2017 -0700"
      },
      "message": "Split our FORTIFY implementation into libc_fortify\n\nAs requested in the bug. This also rips __memcpy_chk out of memcpy.S,\nwhich lets us cut down on copypasta (all of the implementations look\nidentical).\n\nBug: 12231437\nTest: mma on aosp_{arm,arm64,mips,x86,x86_64} internal master;\ncheckbuild on bullhead internal master; CtsBionicTestCases on bullhead.\nNo new failures.\nChange-Id: I88c39ca166bacde0b692aa3063e743bb046a5d2f\n"
    },
    {
      "commit": "899e8caf3b8ac19f6a4e72b42f1456e3ec7ad731",
      "tree": "63067d8df0244a34af28fe5d7d6f4befeefedc9a",
      "parents": [
        "f0ee60a434675a2923c9c6968c8d5206ca6a6834"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jun 16 11:05:16 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jun 16 11:09:13 2017 -0700"
      },
      "message": "Remove obsolete \u003cmachine/cpu-features.h\u003e.\n\nThis is no longer used in the platform, and shouldn\u0027t be used in NDK. Apps\nshould use the NDK\u0027s cpu-features module, which supports (a) more specific\nqueries and (b) all Android architectures, not just 32-bit ARM.\n\nBug: http://b/18556103\nTest: builds\nChange-Id: I544ef267a6d7d887223186180c77d9ad0321e605\n"
    },
    {
      "commit": "576a7e9fb2ec448d168c44c34213798636450faf",
      "tree": "a83f990672f8ed81d66e9aa6b7ae3af4673d52ab",
      "parents": [
        "498b4de964b5d38952acfe2d1823c13f20a641d3"
      ],
      "author": {
        "name": "Jake Weinstein",
        "email": "xboxlover360@gmail.com",
        "time": "Tue Apr 11 01:24:22 2017 -0400"
      },
      "committer": {
        "name": "Jake Weinstein",
        "email": "xboxlover360@gmail.com",
        "time": "Fri Jun 02 04:30:20 2017 +0000"
      },
      "message": "libc: warn that cpu-features.h is deprecated\n\nTest: mm\n\nChange-Id: I39668fc75e72004224e35ac9e7d6ffc858df2169\n"
    },
    {
      "commit": "866e7b6906b71542c7ab4ce17c5943243058964f",
      "tree": "81587d3ceeaeeac9a06e49973e6fd854f0f6e9d6",
      "parents": [
        "6c01208e902b18aad4b0254ccb95b94a2b5fc341"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed May 24 16:00:37 2017 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed May 24 16:06:11 2017 -0700"
      },
      "message": "Fix assembler warnings.\n\nThere are a few instructions deprecated on armv8 that result in lots\nof warnings. Add an arch directive so that these warnings go away.\n\nThis doesn\u0027t cause any problems because the instructions still\nexecute properly.\n\nBug: 38319728\n\nTest: Built all of these assembler files and verified the warning are gone.\nChange-Id: If063defdd16f290c01975233c8d257d1b2005e76\n"
    },
    {
      "commit": "7a3681e5b6c39bc2b3b62031ca5941dbf7bc4e63",
      "tree": "78c25e2a38b7efed8db770a623a5cbfb7eaab11d",
      "parents": [
        "ca5e0f49ca5df873a20c996755175b5c9c1e2ed9"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Apr 24 17:48:32 2017 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed May 03 08:50:43 2017 -0700"
      },
      "message": "Move libc_log code into libasync_safe.\n\nThis library is used by a number of different libraries in the system.\nMake it easy for platform libraries to use this library and create\nan actual exported include file.\n\nChange the names of the functions to reflect the new name of the library.\n\nRun clang_format on the async_safe_log.cpp file since the formatting is\nall over the place.\n\nBug: 31919199\n\nTest: Compiled for angler/bullhead, and booted.\nTest: Ran bionic unit tests.\nTest: Ran the malloc debug tests.\nChange-Id: I8071bf690c17b0ea3bc8dc5749cdd5b6ad58478a\n"
    },
    {
      "commit": "5109bb463d3cce67a68875dec3cba9cb0b861ecd",
      "tree": "d50a0033f667bd8ac49bf964c1c10a5f5152a1b9",
      "parents": [
        "0fc84517abe3082f201a340dafe20403613ddf94"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 19 13:25:27 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 19 13:28:32 2017 -0700"
      },
      "message": "Make all the ELF relocation constants available.\n\nBSD thinks you should only get the relocation constants for your target\narchitecture, but it\u0027s often useful to have them all available at once.\nRearrange the headers to enable that.\n\nAlso update the (modified) NetBSD files to CVS HEAD.\n\nAlso remove the unused BSDism R_TYPE.\n\nBug: N/A\nTest: builds\nChange-Id: Iad5ef29192a732696e2b36af35144a9ca116aa46\n"
    },
    {
      "commit": "901601b48e2111f7b76b7171211c49967f38590c",
      "tree": "402a8eac68ad6f309b6c318b590e27c90860e24a",
      "parents": [
        "e4e69a174a0b4980eaff49c55c39b476cbe9b73e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 17 16:25:09 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 17 16:25:09 2017 -0700"
      },
      "message": "Remove unused elf_machdep.h cruft.\n\nAlso add a few missing include guards.\n\nBug: N/A\nTest: builds\nChange-Id: I9557303c81a4b11d430112528def038ecb5562a9\n"
    },
    {
      "commit": "04d99df80db386cad1e3f83f3d760920e6f61b32",
      "tree": "8d52e4795bda9c224b572bfb34938f8153c1f171",
      "parents": [
        "f568ccd34afddc2b4223b309109d533349d73749"
      ],
      "author": {
        "name": "Jake Weinstein",
        "email": "xboxlover360@gmail.com",
        "time": "Thu Aug 25 20:03:25 2016 -0400"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Apr 13 11:18:56 2017 -0700"
      },
      "message": "libc: ARM: Add 32-bit Kryo memcpy\n\n* Memcpy is based on Scorpion due to Qualcomm\u0027s\n  128-bit cache line size optimizations.\n\n* PLDOFFSET and PLDSIZE are from the ARM64 Kryo memcpy routine.\n\nBelow are the results of the benchmark, tested on a OnePlus 3 with MSM8996.\n\nBefore:\nBM_string_memcpy/8                          1000k          8    0.934 GiB/s\nBM_string_memcpy/64                         1000k         11    5.785 GiB/s\nBM_string_memcpy/512                        1000k         25   19.918 GiB/s\nBM_string_memcpy/1024                         50M         42   23.938 GiB/s\nBM_string_memcpy/8Ki                          10M        473   17.291 GiB/s\nBM_string_memcpy/16Ki                          5M        565   28.976 GiB/s\nBM_string_memcpy/32Ki                       1000k       1105   29.631 GiB/s\nBM_string_memcpy/64Ki                       1000k       2194   29.864 GiB/s\n\nAfter:\nBM_string_memcpy/8                          1000k          6    1.145 GiB/s\nBM_string_memcpy/64                         1000k          7    8.560 GiB/s\nBM_string_memcpy/512                        1000k         18   27.370 GiB/s\nBM_string_memcpy/1024                         50M         33   30.340 GiB/s\nBM_string_memcpy/8Ki                          10M        266   30.770 GiB/s\nBM_string_memcpy/16Ki                          5M        553   29.599 GiB/s\nBM_string_memcpy/32Ki                       1000k       1121   29.219 GiB/s\nBM_string_memcpy/64Ki                       1000k       2208   29.678 GiB/s\n\nTest: make otapackage\nTest: Ran bionic unit tests on Pixel device. Verified memcpy wins on\nTest: Pixel device.\n\nChange-Id: Id7a9c37ef75a306dd5cf8d374d79d0fe83f8a3ba\n"
    },
    {
      "commit": "e86a8d605b3df0c396e23ee02933c76d7040a73b",
      "tree": "4acbba792045d1bcfbe85bccb969877835ab934c",
      "parents": [
        "43801a50b071279c58d8d3b4d06ce26b39e57a4e",
        "dd91b32baf376d4ef84f4713bb758e1a0c892701"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Feb 10 06:24:31 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 10 06:24:32 2017 +0000"
      },
      "message": "Merge \"Removing the kuser_helper elf note from building\""
    },
    {
      "commit": "dd91b32baf376d4ef84f4713bb758e1a0c892701",
      "tree": "26f4813ef507d198465d74db5fcc9ca1c3754dad",
      "parents": [
        "f201c704d64ea40432123a90489d5dc88d613213"
      ],
      "author": {
        "name": "mspector",
        "email": "mspector@google.com",
        "time": "Wed Feb 08 17:01:27 2017 -0800"
      },
      "committer": {
        "name": "mspector",
        "email": "mspector@google.com",
        "time": "Thu Feb 09 18:37:52 2017 -0800"
      },
      "message": "Removing the kuser_helper elf note from building\n\nThis change removes the kuser_helper note from building automatically\nwith any binary but leaves the note.\nAlso fixes a typo in the note.\n\nOriginal patch adding the note:\nIb8366e2a0810092b71381d57dee4bdaa56369a24\n\nBug: 34815073\nTest: Manual - Note is no longer added to binaries\nChange-Id: Ieb81f9d9127d1f8a522434a31c696d743238e2a5\n"
    },
    {
      "commit": "7cc779f15c524e1622f7d5b1c7e82e6ffc6677fd",
      "tree": "0f995c0878649447ef160e727505ae81495dcdde",
      "parents": [
        "2bfb8c9180603bac97dca2d8e359f71bb11f7126"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Thu Feb 09 00:00:31 2017 -0800"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Thu Feb 09 15:49:32 2017 -0800"
      },
      "message": "libc: add clang FORTIFY support\n\nThis patch adds clang-style FORTIFY to Bionic. For more information on\nFORTIFY, please see https://goo.gl/8HS2dW . This implementation works\nfor versions of clang that don\u0027t support diagnose_if, so please see the\n\"without diagnose_if\" sections. We plan to swap to a diagnose_if-based\nFORTIFY later this year (since it doesn\u0027t really add any features; it\njust simplifies the implementation a lot, and it gives us much prettier\ndiagnostics)\n\nBug: 32073964\nTest: Builds on angler, bullhead, marlin, sailfish. Bionic CTS tests\npass on Angler and Bullhead.\n\nChange-Id: I607aecbeee81529709b1eee7bef5b0836151eb2b\n"
    },
    {
      "commit": "2e3d6a1d67f78ea37ceb5a082eefbb812c0a320e",
      "tree": "21a3d3b8c084f2c2c66c56cb2f183ec4ac8999e6",
      "parents": [
        "3f6d59977545d65f01bd218c7453c7149d7374a4"
      ],
      "author": {
        "name": "mspector",
        "email": "mspector@google.com",
        "time": "Tue Jan 24 21:51:51 2017 -0800"
      },
      "committer": {
        "name": "mspector",
        "email": "mspector@google.com",
        "time": "Wed Jan 25 17:33:05 2017 -0800"
      },
      "message": "Adding kuser_helper on note to all arm32 binaries.\n\nA kernel change is going in for 64bit arm to disable kuser_helper vector\npages for 32bit processes.  This change adds a special elf note to\nall arm32 binaries built with bionic.  This note tells the kernel to\nload the kuser_helper vector page for the process.\n\nBug: 33689037\nTest: Manual - Phone boots, 32bit binaries have the notes, 64bit\nbinaries do not.\nChange-Id: Ib8366e2a0810092b71381d57dee4bdaa56369a24\n"
    },
    {
      "commit": "cbfdc7f9054e0bc8071aaf3a70afc00273a8a869",
      "tree": "3a8e2572533c625e70d56e891a7d267b7639c885",
      "parents": [
        "c816e9fa03c67b3a5a112836a8e52b988c42f7ee"
      ],
      "author": {
        "name": "Chitti Babu Theegala",
        "email": "ctheegal@codeaurora.org",
        "time": "Fri Dec 16 02:13:28 2016 +0530"
      },
      "committer": {
        "name": "Uday Kishore Pasupuleti",
        "email": "upasupul@codeaurora.org",
        "time": "Mon Dec 19 15:11:43 2016 -0800"
      },
      "message": "Fix streaming(memcpy) performance on Cortex-A7\n\nStream-mode detection for L1 in A7-core is failing for\nnon cache-line-size (non 64 byte) aligned addresses.\nThis leads to destination data getting cached unnecessarily.\nThis A7 issue is confirmed by ARM\n\nThis issue is solved by aligning destination address to 64 byte before\nentering the loop in memcpy routine.\nThough we get lower score for micro_bench memcpy when L1 cache is bypassed,\nit is desirable since it avoids unnecessary eviction of other process data\nfrom L1 which is good for overall system performance.\n\nHigher micro_bench memcpy numbers for \u003c 64byte alignment shows good numbers\nbut this is at the cost of L1 cache pollution. During memcpy/memset,\nunnecessary data is filled in L1 cache, this causes eviction of other\nprocess data from L1.\nFor example during msmset(0), L1 cache gets filled with 0s which should be\navoided.\n\nAdditionally, there is another issue with cortex A7 that impacts performance\nfor all alignments / all Android Wear versions:\nStore Buffer on A7 is 32 byte which limits the 32-byte back to back stores.\nIn the current implementation back to back 32bytes writes is causing CPU stalls.\nThis issue can be solved by interleaved Loads and Stores.\nThis helps in avoiding CPU stalls during memcpy by utilizing efficiently the\nA7 internal load and store buffers.\n\nChange-Id: Ie5f12f2bb5d86f627686730416279057e4f5f6d0\n"
    },
    {
      "commit": "4bf55226623801fab4751bc0736a07e044d00b49",
      "tree": "38365d7202df1459e15a0eae01a1e1144f0177ea",
      "parents": [
        "bd734f07167b9e24cd292e669717795f83d10157"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Nov 29 16:59:26 2016 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Nov 29 22:02:25 2016 -0800"
      },
      "message": "Abort harder.\n\nSome PoS internal system can\u0027t cope with more than 4 stack frames,\nso the fact that our abort(3) implementation takes 4 frames by itself\nmakes it useless.\n\nRe-reading POSIX, it only says \"behaves as if\", so the previous\nimplementation chain wasn\u0027t mandatory and we can just go straight to\ncalling tgkill...\n\nBefore:\n\n     #00 pc 0000000000069be4  /system/lib64/libc.so (tgkill+8)\n     #01 pc 0000000000066d50  /system/lib64/libc.so (pthread_kill+64)\n     #02 pc 0000000000028110  /system/lib64/libc.so (raise+24)\n     #03 pc 000000000001d4ec  /system/lib64/libc.so (abort+52)\n\nAfter:\n\n     #00 pc 0000000000069bc8  /system/lib64/libc.so (tgkill+8)\n     #01 pc 000000000001d4c8  /system/lib64/libc.so (abort+80)\n     #02 pc 0000000000001494  /system/xbin/crasher64 (_ZL9do_actionPKc+872)\n     #03 pc 00000000000010e0  /system/xbin/crasher64 (main+88)\n\nThis is less useful on 32-bit ARM because there there\u0027s an extra trampoline\nfrom an assembler abort(3) implementation, so you\u0027ll still only get one\nmeaningful stack frame. But every other architecture will now get two!\n\nBut wait!\n\nIt turns out that the assembler hack isn\u0027t needed any more. Here we are\nunwinding just fine all the way through the 32-bit ARM crasher:\n\nBefore (with direct call to tgkill but still using the assembler):\n\n     #00 pc 00049e7c  /system/lib/libc.so (tgkill+12)\n     #01 pc 00019c6f  /system/lib/libc.so (__libc_android_abort+50)\n     #02 pc 000181f8  /system/lib/libc.so (abort+4)\n     #03 pc 00001025  /system/xbin/crasher (_ZL9do_actionPKc+656)\n     #04 pc 00017721  /system/lib/libc.so (__libc_init+48)\n     #05 pc 00000b38  /system/xbin/crasher (_start+96)\n\nAfter:\n\n     #00 pc 00049e6c  /system/lib/libc.so (tgkill+12)\n     #01 pc 00019c5f  /system/lib/libc.so (abort+50)\n     #02 pc 00001025  /system/xbin/crasher (_ZL9do_actionPKc+656)\n     #03 pc 00017721  /system/lib/libc.so (__libc_init+48)\n     #04 pc 00000b38  /system/xbin/crasher (_start+96)\n\n(As you can see, the fact that we see __libc_init rather than main was true\nwith the assembler stub too, so that\u0027s not a regression even if it does seem\nodd...)\n\nBug: N/A\nTest: ran crasher64\nChange-Id: I9dd5b214c495604c8b502c7ec0de3631080d8c29\n"
    },
    {
      "commit": "ecebb49ac636b90b3db48b7375c26c07c95fd104",
      "tree": "ed9e333921aeb6de3a82e3f32c8317ca7bdf9cb3",
      "parents": [
        "1eb0ecb5960a11b04bc36fdf85894e00ce1a1897"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Nov 28 11:09:49 2016 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Nov 28 12:49:36 2016 -0800"
      },
      "message": "Add cortex-a7 specific routines.\n\nTest: Changed angler target to use cortex-a7 and I compiled.\nTest: Booted this version on angler and ran bionic-unit-tests.\n\nChange-Id: Ice7f6ea38a2569582161a8e659d7877918c1a45a\n"
    },
    {
      "commit": "5bde25f61a33bd4881d4bc015be787a07443cc25",
      "tree": "59a9eed84b1ae96550ec53bc13d5789933056da9",
      "parents": [
        "f1649d92f7869331ea1c4db7f2bb189489af03e6"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Sun Nov 06 23:35:15 2016 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Sun Nov 06 23:36:32 2016 -0800"
      },
      "message": "Fix cortex-a53 inclusion of files.\n\nI accidentally broken the cortex-a53 because it directly includes files\nfrom cortex-a15. Rather than revert that part, just copy over the files\nthat are needed directly so we don\u0027t run into this in the future.\n\nTest: Built the aosp_angler-userdebug target using cortex-a53 as the\nTest: arm target. Then built the bionic unit tests and ran them on\nTest: an angler.\n\nChange-Id: Id89e240b31f94e99f5076e1de973a9344486ec35\n"
    },
    {
      "commit": "fe1af1a64b88bdb58cca7015d426af8c5b1a80d9",
      "tree": "19247921eb8a2648a2f321b39df018cb3fc667ea",
      "parents": [
        "8c22ff76e263db28afbfb08c2d59a46a76707d99"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Nov 01 14:25:57 2016 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Nov 01 14:28:22 2016 -0700"
      },
      "message": "Small cleanup of cortex-a15 code.\n\nRemove new version of the cortex-a15 that caused a regression. We are never\ngoing to revisit that code, and it is only confusing things.\n\nAlso remove the setting of MEMCPY_BASE and use the correct include\ndirectly.\n\nTest: Compiled angler with 32 bit arch as cortex-a15. Ran 32 bit bionic\nTest: unit tests on angler.\n\nChange-Id: I9372c01758fd7a596849c87b1a3f805bb477c94f\n"
    },
    {
      "commit": "beb879662470fb01f8062c173d9e6fc1b76988ee",
      "tree": "554ffa8777d6eb8029e9f74f2df9996c95bea7df",
      "parents": [
        "7409b9cfed78ca730e437a8690527dfc8cf31b64"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 26 17:01:32 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 26 17:01:58 2016 -0700"
      },
      "message": "Use ENTRY_PRIVATE in __bionic_clone assembler.\n\nBug: N/A\nTest: bionic tests\nChange-Id: Ic651d628be009487a36d0b2e5bcf900b981b1ef9\n"
    },
    {
      "commit": "dfb74c5f597542c7587a4144eb31b143d82a2281",
      "tree": "6518b6dbd451d3359c9daec78867a66481dc77fd",
      "parents": [
        "bd839d100d1c4802cf53f3d27bb73e6032719762"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 24 12:53:17 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 24 12:57:55 2016 -0700"
      },
      "message": "Minor copyright header unification.\n\nRegenerating the NOTICE file the other day left me scratching my head at\nvarious \"how do they differ?\" cases, resolved by this patch.\n\nTest: N/A\nChange-Id: I4230bfa1d7ec842a4b9fb8c73dd3b39443d74054\n"
    },
    {
      "commit": "497127711a3446dc2d9cfa0aca152f8c703e3d9c",
      "tree": "80485dab3d26029ded0e543272f4f4a84b67235b",
      "parents": [
        "63da3dfb707536c444799d4c684cdfeab594243d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 16 18:53:01 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 16 18:53:34 2016 -0700"
      },
      "message": "Remove remaining big-endian cruft.\n\nWe\u0027d removed most of it already, but a few bits and pieces were still lying\naround.\n\nChange-Id: I572a23eb15b9670d8d0f95586eca99ab0bdb4a1b\nTest: mm.\n"
    },
    {
      "commit": "63da3dfb707536c444799d4c684cdfeab594243d",
      "tree": "de3151fdbe8f5bcee6dda2fa4fd2ffd5afc54848",
      "parents": [
        "9d4d60b4806d667741566bd4f4ad2a0225d52959"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 16 18:38:48 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 16 18:46:53 2016 -0700"
      },
      "message": "Remove _KERNEL references from \u003cmachine/elf_machdep.h\u003e.\n\nTest: mm.\nChange-Id: I9dff708dd05d4f9e52ccdfde96e096553c873054\n"
    },
    {
      "commit": "2fc14a97e0159f6126450991cc9c97376b66eb9b",
      "tree": "f6d8ffd65d7269f5a7208980169ae5b6e479b32c",
      "parents": [
        "3afa18104b741cc644fac5c70bc8d52d7c90b4ec"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 08 14:11:28 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 08 14:11:28 2016 -0700"
      },
      "message": "Don\u0027t use an anonymous label in arm\u0027s __bionic_clone.\n\nAll the other architectures name this label. Copy them.\n\n(Following discussion of d30bc9e74b8ff3afceac973d334023564e64dbd2.)\n\nBug: https://llvm.org/bugs/show_bug.cgi?id\u003d30308\nChange-Id: I4f20163f569041180d87c79ce6ed856b70704271\n"
    },
    {
      "commit": "d30bc9e74b8ff3afceac973d334023564e64dbd2",
      "tree": "4160fc61a372cfb8dca72ff0437c431ffde6e59a",
      "parents": [
        "9f798246ba4177daa1beefd29a735e16ab1abe41"
      ],
      "author": {
        "name": "MinSeong Kim",
        "email": "minseong.kim@linaro.org",
        "time": "Tue Sep 06 05:59:55 2016 +0100"
      },
      "committer": {
        "name": "MinSeong Kim",
        "email": "minseong.kim@linaro.org",
        "time": "Tue Sep 06 05:59:55 2016 +0100"
      },
      "message": "Fix \"Unknown token error\" when upstream clang is used.\n\nSimple fix for the above error caused by the location\nof a label \"1:\"\n\nChange-Id: I9b1c816871e95f9bcf8135a5e0cc88de65771315\nSigned-off-by: MinSeong Kim \u003cminseong.kim@linaro.org\u003e\n"
    },
    {
      "commit": "4ce902c30e087f45c6d6ede2012519e2eea44194",
      "tree": "b4ffde5e3437db3f222fb08a9a8e971edde70b36",
      "parents": [
        "7fd1e75e2482e7f28eff15d9b6c8614132680ce6"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 12 13:55:51 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 12 13:55:51 2016 -0700"
      },
      "message": "Support 32-bit ARM vdso.\n\nLinux 4.1 added this.\n\nBug: http://b/19198045\nChange-Id: I28be802ff403a61dd6733a001411b3ff05fef5a5\n"
    },
    {
      "commit": "8428fb03c8be012640a4f735be8f32073c18ba3f",
      "tree": "c303395faf399e8237c9f22686fe39e201bf2b63",
      "parents": [
        "e20730ca0be39c52f22d6155043cbb69abd7eb36",
        "7510c33b6122961f2eb8800ca0543acfc8dd4636"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Jun 02 16:31:39 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jun 02 16:31:40 2016 +0000"
      },
      "message": "Merge \"Remove deprecated Android.mk files\""
    },
    {
      "commit": "7510c33b6122961f2eb8800ca0543acfc8dd4636",
      "tree": "15e33600334276ebe0c5f3e2609916444a44f116",
      "parents": [
        "5fa57176746b78a3c42b909104d9cf4690ff14cb"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu May 26 16:11:51 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu May 26 16:41:57 2016 -0700"
      },
      "message": "Remove deprecated Android.mk files\n\nThese directories all have Android.bp files that are always used now,\ndelete the Android.mk files.\n\nChange-Id: Ib0ba2d28bff88483b505426ba61606da314e03ab\n"
    },
    {
      "commit": "bdd8f896ddf027491b1e4aa7013a429c8e5702b2",
      "tree": "a9a630f79a7645fa5e6fc3410028a7bdcfc03171",
      "parents": [
        "a3c2df93789bb7536bd96a01bbf952b6fcee269b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 26 16:38:34 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 26 16:38:34 2016 -0700"
      },
      "message": "Improve diagnostics from the assembler __strcpy_chk routines.\n\nChange-Id: Ib95b598f7f8338cc1a618c00232a4259dc4a6319\n"
    },
    {
      "commit": "c75da09f4fb4ee24f14d40de6f47f03ee29b1ba1",
      "tree": "304e2932b31d1c27ebb852622964d9f4d30f37c7",
      "parents": [
        "e85de5b103388f047cc307a362ee8cdc6ef010ec"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 25 17:01:31 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 26 14:55:00 2016 -0700"
      },
      "message": "Improve diagnostics from the assembler __strcat_chk routines.\n\nChange-Id: I44cbe5389c66de6618e581a6e302eea22c39d6fb\n"
    },
    {
      "commit": "382bd666e2b000dabf108a050bcbbb736c542103",
      "tree": "79778b78ef1a52c71e679a4ee53a191b553e6cfd",
      "parents": [
        "c9a21334c5d375240f8cb04750dde284e3151785"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon May 16 17:52:40 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon May 16 17:52:40 2016 -0700"
      },
      "message": "Stop including \u003cmachine/cpu-features.h\u003e.\n\nWe\u0027re not looking at __ARM_ARCH__, because we don\u0027t support ARMv6.\n\nBug: http://b/18556103\nChange-Id: I91fe096af697dc842a57e97515312e3530743678\n"
    },
    {
      "commit": "f5a9123d9f365e3a72ac9f2a3921f439541a87e8",
      "tree": "22f028385c21a408bd228a79a94f02024cb3f39b",
      "parents": [
        "b3c1ff69d293d095c36371ecc21e0505c6156db7"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Apr 27 18:31:02 2016 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Apr 27 20:34:47 2016 -0700"
      },
      "message": "Add unwind information for r7 in arm syscalls.\n\nIt turns out that clang can emit code where the sp is saved in the r7\nregister on arm. Unfortunately, a lot of our syscalls overwrite that\nvalue while the syscall is executing, so unwinding through that syscall\nfails.\n\nUpdate the syscall generation code to add unwinding information for\nthese uses.\n\nBug: 28411713\n(cherry picked from commit 6e45d37decbbaf78ed4685213aebb1c9b5ccf8c2)\n\nChange-Id: Ib775effc44c4113735fe9032b0602b9d63e3e390\n"
    },
    {
      "commit": "eafad49bd6a0e6ca63ae0a5577d3ef7a45713107",
      "tree": "495cbef3d47cb818b28a2768a3e9e43ac004dea2",
      "parents": [
        "66606ff84c079e95c03a61cc8bcfb08261a5a173"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 05 23:01:42 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 06 11:06:09 2016 -0700"
      },
      "message": "Add \u003csys/quota.h\u003e.\n\nIt turns out that at least the Nexus 9 kernel is built without CONFIG_QUOTA.\nIf we decide we\u0027re going to mandate quota functionality, I\u0027m happy for us to\nbe a part of CTS that ensures that happens, but I don\u0027t want to be first, so\nthere\u0027s not much to test here other than \"will it compile?\". The strace\noutput looks right though.\n\nBug: http://b/27948821\nBug: http://b/27952303\nChange-Id: If667195eee849ed17c8fa9110f6b02907fc8fc04\n"
    },
    {
      "commit": "7f72ad4d6c6f4c99726fff423bdbbdca1032fdc2",
      "tree": "157fe5d3c01930627c72ba75c39aa50497de0cf2",
      "parents": [
        "95ddb26256db734be7f7efc8cba3362bcececea9"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 05 11:56:03 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 05 12:17:22 2016 -0700"
      },
      "message": "Add sync_file_range to \u003cfcntl.h\u003e.\n\nBug: http://b/27952303\nChange-Id: Idadfacd657ed415abc11684b9471e4e24c2fbf05\n"
    },
    {
      "commit": "afe835d540000d2378e744b764d71406b410761d",
      "tree": "e7e2f42e0aa8f049fe431360a4b79b3ec3f8ae9a",
      "parents": [
        "2152a8ca3550ff0c9c998bfd4d6ab741758063ec"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Apr 02 08:36:33 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Apr 02 08:36:33 2016 -0700"
      },
      "message": "Move math headers in with the other headers.\n\nKeeping them separate is a pain for the NDK, and doesn\u0027t help the platform.\n\nChange-Id: I96b8beef307d4a956e9c0a899ad9315adc502582\n"
    },
    {
      "commit": "e2faf07d659b1c824002e50b9cdfa9caae62a31b",
      "tree": "72752c132d778ad698ef51cf7fca23224fcd6361",
      "parents": [
        "e725dc164015d873b64639f0fee9ba5c30175f4c"
      ],
      "author": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Thu Mar 03 08:37:53 2016 -0800"
      },
      "committer": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Fri Mar 25 14:16:58 2016 -0700"
      },
      "message": "Add {get,set}domainname(2)\n\n{get,set}domainname aren\u0027t in POSIX but are widely-implemented\nextensions.\n\nThe Linux kernel provides a setdomainname syscall but not a symmetric\ngetdomainname syscall, since it expects userspace to get the domain name\nfrom uname(2).\n\nChange-Id: I96726c242f4bb646c130b361688328b0b97269a0\nSigned-off-by: Greg Hackmann \u003cghackmann@google.com\u003e\n"
    },
    {
      "commit": "19ca2fe82fe05dd7565ce294841bd6425e84bb3d",
      "tree": "6e2b053b9581a3dc3a8f8e59b69ef5c3e0636f3d",
      "parents": [
        "6809af03759e27c87598ea56e4f6a8c9b6267add",
        "0c3655a864f33080ebbec1248c27a7ead87d6a28"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Mar 03 22:02:37 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 03 22:02:37 2016 +0000"
      },
      "message": "Merge changes I17c22dc2,I9989e2ea\n\n* changes:\n  Add a checksum to jmp_buf on AArch64.\n  Add a checksum to jmp_buf on ARM.\n"
    },
    {
      "commit": "a4c69137c693c45fce4010ba61d69d7147f5dd9a",
      "tree": "ad08fb5e8878682c4cc959d44c507aa68be8bce9",
      "parents": [
        "5e57039c24d8aa777480e33255d627ca28af7dfe"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Mar 02 19:03:17 2016 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Mar 03 12:45:08 2016 -0800"
      },
      "message": "Add a checksum to jmp_buf on ARM.\n\nMake it easier to diagnose applications mucking with the contents of\njmp_buf by checksumming its contents.\n\nBug: http://b/27417786\nChange-Id: I9989e2ea3979a36ae0bc4c9e1bacafddbacc731b\n"
    },
    {
      "commit": "01d5b946acac8519d510781967bf538acdae1853",
      "tree": "8a5558513fc4642648887d3428f02eb2906c5021",
      "parents": [
        "5e57039c24d8aa777480e33255d627ca28af7dfe"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Mar 02 17:18:18 2016 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Mar 02 17:21:07 2016 -0800"
      },
      "message": "Remove optimized code for bzero, which was removed from POSIX in 2008.\n\nI\u0027ll come back for the last bcopy remnant...\n\nBug: http://b/26407170\nChange-Id: Iabfeb95fc8a4b4b3992e3cc209ec5221040e7c26\n"
    },
    {
      "commit": "784609317d49e854813f1797d7a53cf7d4379643",
      "tree": "316b6fd124f4c46b72f382b5d703a99514c4fc30",
      "parents": [
        "2332d524396aa69c55969cf6e48a5048f12d53ea"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Mar 02 11:58:41 2016 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Mar 02 11:58:41 2016 -0800"
      },
      "message": "Mandate optimized __memset_chk for arm and arm64.\n\nThis involves actually implementing assembler __memset_chk for arm64,\nbut that\u0027s easily done.\n\nObviously I\u0027d like this for all architectures (and all the string functions),\nbut this is low-hanging fruit...\n\nChange-Id: I70ec48c91aafd1f0feb974a2555c51611de9ef82\n"
    },
    {
      "commit": "3c6016f04aa3a8e2660a7c68f0a28cbf30ff2f08",
      "tree": "2a6e44952a672033546ca9aba5b92a410d935bc3",
      "parents": [
        "c199690b5ffda0f4df50d1121f7ab577af1fe468"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 01 14:45:58 2016 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 01 14:45:58 2016 -0800"
      },
      "message": "Improve diagnostics from the assembler __memcpy_chk routines.\n\nChange-Id: Iec16c92ed80beee505cba2121ea33e3550197b02\n"
    },
    {
      "commit": "62e59646f8795afac2eb4189a153e7decde370e7",
      "tree": "263b028a69cf045c2a3938a737d38399ff4e1a7a",
      "parents": [
        "2de7983470a04e3037a8993553c3b9533b985952"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 01 11:22:42 2016 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 01 12:46:47 2016 -0800"
      },
      "message": "Improve diagnostics from the assembler __memset_chk routines.\n\nChange-Id: Ic165043ab8cd5e16866b3e11cfba960514cbdc57\n"
    },
    {
      "commit": "31adf6cd3846030f0d7397fa5f3cc285d8c79533",
      "tree": "0907678f5b7fa453332fa09dd0322dbeb0a1dbfd",
      "parents": [
        "eb727252f22bd533ebfd40637c0718fdc9946221",
        "b83d6747facc5d819a0df0bcb8762477eecfd962"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Feb 28 00:30:31 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sun Feb 28 00:30:31 2016 +0000"
      },
      "message": "Merge \"Improve FORTIFY failure diagnostics.\""
    },
    {
      "commit": "b83d6747facc5d819a0df0bcb8762477eecfd962",
      "tree": "4f5b7589c2cfe21756a85327818a88a9becbc781",
      "parents": [
        "e0959b4b164a26eb9931ed6925c71d7870c063fe"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 25 20:33:47 2016 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 26 22:06:17 2016 -0800"
      },
      "message": "Improve FORTIFY failure diagnostics.\n\nOur FORTIFY _chk functions\u0027 implementations were very repetitive and verbose\nbut not very helpful. We\u0027d also screwed up and put the SSIZE_MAX checks where\nthey would never fire unless you actually had a buffer as large as half your\naddress space, which probably doesn\u0027t happen very often.\n\nFactor out the duplication and take the opportunity to actually show details\nlike how big the overrun buffer was, or by how much it was overrun.\n\nAlso remove the obsolete FORTIFY event logging.\n\nAlso remove the unused __libc_fatal_no_abort.\n\nThis change doesn\u0027t improve the diagnostics from the optimized assembler\nimplementations.\n\nChange-Id: I176a90701395404d50975b547a00bd2c654e1252\n"
    },
    {
      "commit": "19acb698e8f741b85423bf43e96776e9c598905d",
      "tree": "5b7b18e8587b3e1ecb86470374bdf0defceb3e6d",
      "parents": [
        "e0959b4b164a26eb9931ed6925c71d7870c063fe"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Feb 25 14:22:32 2016 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Feb 25 14:28:45 2016 -0800"
      },
      "message": "[MIPS] Add __popcountsi2 to libgcc_compat.c\n\nAlso removed outdated genlibgcc_compat.py script\nand references to it.\n\nBug: http://b/27340856\nChange-Id: I7eef362364078867c60a27e72abba515f08b6651\n"
    },
    {
      "commit": "5f26c6bc91f653b61c01e2ff6e7eac4847e315a5",
      "tree": "ce87a77e7a33435dfdecf8d3b8517d6b261c1dac",
      "parents": [
        "36ff6995707112e66dd0dec78be7f8ee9b95d321"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 03 13:19:10 2016 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 03 13:19:10 2016 -0800"
      },
      "message": "Really add adjtimex(2), and add clock_adjtime(2) too.\n\nChange-Id: I81fde2ec9fdf787bb19a784ad13df92d33a4f852\n"
    },
    {
      "commit": "3f3f6c526b2d8f47df7462df0c0071c391cc7b4d",
      "tree": "e233e70f635dd67ec2bc453844a78dcb6b11a710",
      "parents": [
        "0e915b294b2b1f0d20cd1b9a4e1721d59ccbfa7a"
      ],
      "author": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Wed Jan 27 17:13:51 2016 -0800"
      },
      "committer": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Thu Jan 28 13:41:22 2016 -0800"
      },
      "message": "Add adjtimex\n\nChange-Id: Ia92d35b1851e73c9f157a749dba1e98f68309a8d\nSigned-off-by: Greg Hackmann \u003cghackmann@google.com\u003e\n"
    },
    {
      "commit": "6d142bcf34ffd49efaf4285bb2af63a1636706f9",
      "tree": "9d1a4b51ccdc473492f21b24034b13730139ecb6",
      "parents": [
        "988e71b2b22117b0f7e994cbe764066630494125"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Jan 08 10:06:44 2016 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Jan 08 10:13:16 2016 -0800"
      },
      "message": "Move __aeabi* symbols to LIBC_N version\n\nWe had these symbols incorrectly versioned as LIBC_PRIVATE\nin M release. This change moves __aeabi* symbols from LIBC\nto LIBC_N and adds __gnu_Unwind_Find_exidx to the list\n\nBug: https://github.com/android-ndk/ndk/issues/1\nChange-Id: I0b353012adeacb00ae29ea10c63b9d1cf1cadbe7\n"
    },
    {
      "commit": "6f72fdede8c820cabc5e823763dae34bcbeeb40b",
      "tree": "63b2ca216452e9fe593fd4ea436c8815a2fb0391",
      "parents": [
        "52fd4ca0a0367109500a31a63c5d392372f8f2ad"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Jan 05 20:38:32 2016 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Jan 05 20:41:06 2016 -0800"
      },
      "message": "Fix gcc+arm builds\n\ngcc requires unique names of symbols for .symver\n\nBug: http://b/26391427\nChange-Id: I6392e34a45a37245fd4e53fb54243be73f443313\n"
    },
    {
      "commit": "d90d067312ac9aaf82e272b4477f0ba71a9b0bdd",
      "tree": "cb7594893c83f70935e4da819e96c8a54ecd78a5",
      "parents": [
        "e647db7485d79135adae87be02ca1e78e5f46206"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Jan 05 16:38:43 2016 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Jan 05 18:18:33 2016 -0800"
      },
      "message": "Export public __aeabi* symbols as LIBC_PRIVATE\n\nBut keep LIBC as default version for them\n\nBug: http://b/26391427\nBug: http://b/26410625\nChange-Id: I819e354bbba482d1f983d9be15c23fcce10e5dd9\n"
    },
    {
      "commit": "4200e260d266fd0c176e71fbd720d0bab04b02db",
      "tree": "b2c934fc4e2f546504cc02fdccd5f83fd60c6d37",
      "parents": [
        "ef5e647891f1a0aefeab4a87e9225e47087c6301"
      ],
      "author": {
        "name": "Daniel Micay",
        "email": "danielmicay@gmail.com",
        "time": "Tue Nov 03 05:14:08 2015 -0500"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Nov 06 13:14:43 2015 -0800"
      },
      "message": "fix the mremap signature\n\nThe mremap definition was incorrect (unsigned long instead of int) and\nit was missing the optional new_address parameter.\n\nChange-Id: Ib9d0675aaa098c21617cedc9b2b8cf267be3aec4\n"
    },
    {
      "commit": "5edf077c5b92f0db212e45ed5402339a6e4c7334",
      "tree": "aad5e36992033060d41618dc4ce9db973a7dfccb",
      "parents": [
        "5c495dacdadff9dfbe48be31d4b30c5fe75ac7db",
        "268a673bd1add941e331b2f53758242d939ca5b1"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Tue Oct 20 20:44:29 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 20 20:44:29 2015 +0000"
      },
      "message": "Merge \"Switch to LOCAL_SRC_FILES_EXCLUDE\""
    },
    {
      "commit": "268a673bd1add941e331b2f53758242d939ca5b1",
      "tree": "4d867ed419e663419a2e5aa6e8d126beeb931e70",
      "parents": [
        "d29ba555130f1e61164cf6186cd6a29c7aa14719"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Thu Oct 15 14:49:45 2015 -0700"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Tue Oct 20 11:58:28 2015 -0700"
      },
      "message": "Switch to LOCAL_SRC_FILES_EXCLUDE\n\nThis moves the generic arm/arm64/x86 settings into the main makefiles\nand makes the rest of them derivatives. This better aligns with how\nsoong handles arch/cpu variants.\n\nAlso updates the Android.bp to make it consistent with the make\nversions.\n\nChange-Id: I5a0275d992bc657459eb6fe1697ad2336731d122\n"
    },
    {
      "commit": "b24d743f62106accb3720e482c32571a0cb2defb",
      "tree": "359ebd23a6320d702d05d9a318b23b3f164b67b1",
      "parents": [
        "d29ba555130f1e61164cf6186cd6a29c7aa14719"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Mon Oct 19 12:56:50 2015 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Mon Oct 19 17:13:51 2015 -0700"
      },
      "message": "Remove deprecated use of ldm/stm in ARM setjmp.\n\nARM deprecates using the SP register in the register lists for ldm\nand stm, which LLVM emits a warning for.\n\nBug: http://b/25017080\nChange-Id: Ib427e3dfd5740e251f1ad91ebb66534e0d7b72a9\n"
    },
    {
      "commit": "ad157a3c3353ba69d3bd155a7c09f9943a22f8d2",
      "tree": "70136c5a17d5a4b92e0931941af8a32cf496d4c0",
      "parents": [
        "3230d96a10ab0cfa128487ef03fa5f08c77ebf20",
        "8f8308c974169d7b9909db361e14cd257d47b2a7"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Sep 30 23:18:32 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 30 23:18:32 2015 +0000"
      },
      "message": "Merge \"Add a no dwarf version of assembler macros.\""
    },
    {
      "commit": "8f8308c974169d7b9909db361e14cd257d47b2a7",
      "tree": "10db62f68da833df57b547d33532c0aa507512bc",
      "parents": [
        "8b279eadd3a635c31df9c570ab2144212bfd07cc"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Sep 30 15:32:15 2015 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Sep 30 15:32:15 2015 -0700"
      },
      "message": "Add a no dwarf version of assembler macros.\n\nFor the __release and __release_rt functions, the previous macros\nwould add a dwarf cfi entry for the function with no values. This works\nwith libunwind since it always tries the arm unwind information first.\n\nThis change removes those entries by creating a no dwarf version of the\nassembler macro.\n\nChange-Id: Ib93e42fff5a79b8d770eab0071fdee7d2afa988d\n"
    },
    {
      "commit": "1d0268c6b855531eedd297f1cb7e4ac5817c9103",
      "tree": "9f4bd34bd72d07df9dc0956b25f0e1c32a6e525c",
      "parents": [
        "a0b9cad07629439bab926373515d964253426a69"
      ],
      "author": {
        "name": "Brent DeGraaf",
        "email": "bdegraaf@codeaurora.org",
        "time": "Wed Oct 02 13:47:11 2013 +0000"
      },
      "committer": {
        "name": "Jake Weinstein",
        "email": "xboxlover360@gmail.com",
        "time": "Wed Sep 30 20:59:36 2015 +0000"
      },
      "message": "libc: krait: Use performance version of memcpy\n\nChange-Id: Iaa52635240da8b8746693186b66b69778e833c32\n"
    },
    {
      "commit": "931e1399f13b35a139977354e179403184c649fa",
      "tree": "c2fb491a8f649048f57b4bbac68fa2149b62b4be",
      "parents": [
        "70a9f0a3bc310c863b5c90c9860aae842f82e47f",
        "54ee0407dc4f51f7a4d889968d137e56928c1607"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Sep 25 16:29:33 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 25 16:29:33 2015 +0000"
      },
      "message": "Merge \"Add cortex-a53.a57 target for 32 bit big/little.\""
    },
    {
      "commit": "fdfcfce7c6392d32f95a9f776ecd13da205b906c",
      "tree": "2195834870f5c0ecda99c8f6354f974211eb6d66",
      "parents": [
        "1399759118f50071d499f88b18828e36aa2bad00"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Sep 23 22:09:09 2015 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Sep 24 14:17:36 2015 -0700"
      },
      "message": "Fix over read in strcpy/stpcpy/strcat.\n\nThis bug will happen when these circumstances are met:\n\n- Destination address \u0026 0x7 \u003d\u003d 1, strlen of src is 11, 12, 13.\n- Destination address \u0026 0x7 \u003d\u003d 2, strlen of src is 10, 11, 12.\n- Destination address \u0026 0x7 \u003d\u003d 3, strlen of src is 9, 10, 11.\n- Destination address \u0026 0x7 \u003d\u003d 4, strlen of src is 8, 9, 10.\n\nIn these cases, the dest alignment code does a ldr which reads 4 bytes,\nand it will read past the end of the source. In most cases, this is\nprobably benign, but if this crosses into a new page it could cause a\ncrash.\n\nFix the labels in the cortex-a9 strcat.\n\nModify the overread test to vary the dst alignment to expost this bug.\nAlso, shrink the strcat/strlcat overread cases since the dst alignment\nvariation increases the runtime too much.\n\nBug: 24345899\nChange-Id: Ib34a559bfcebd89861985b29cae6c1e47b5b5855\n"
    },
    {
      "commit": "54ee0407dc4f51f7a4d889968d137e56928c1607",
      "tree": "0beffd69540cb6c355b3cea9d0f0f0c9f44d3147",
      "parents": [
        "8d92afe32265be8c36ea2adb3c4059298cd583eb"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Sep 17 14:11:05 2015 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Sep 24 14:00:00 2015 -0700"
      },
      "message": "Add cortex-a53.a57 target for 32 bit big/little.\n\nThe routines optimized for cortex-a7 and cortex-a53 cause performance\ndrops on cortex-a57. Instead create a target that is the middle ground\nthat works relatively well on either core.\n\nChange-Id: Ie2b6cc9a59a01c7b30602ee368b2b90f5e886289\n"
    },
    {
      "commit": "7fda8d2aa4d24ab400f6f0cb9f792488b634afae",
      "tree": "d81ce371104bff97fa70f76b76eefe05b0c588f5",
      "parents": [
        "90fc8e24876412a816776d44bedc77e1f1888a13"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Sep 10 15:40:24 2015 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Sep 17 14:07:24 2015 -0700"
      },
      "message": "Implement setjmp cookies on ARM.\n\nReuse the top bits of _JB_SIGFLAG field previously used to store a\nboolean to store a cookie that\u0027s validated by [sig]longjmp to make it\nharder to use as a ROP gadget. Additionally, encrypt saved registers\nwith the cookie so that an attacker can\u0027t modify a register\u0027s value to\na specific value without knowing the cookie.\n\nBug: http://b/23942752\nChange-Id: Id0eb8d06916e89d5d776bfcaa9458f8826717ba3\n"
    },
    {
      "commit": "6f4594d5dc61bb67978c44cd6eeb0e7bfb621c9b",
      "tree": "9c925e99fe826914d93a6c1e00c5f62a8cd8c0a8",
      "parents": [
        "629ed517126b3be32f2b2e8b710e63358691c296"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 26 13:27:43 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 26 14:48:55 2015 -0700"
      },
      "message": "Add preadv/pwritev.\n\nBug: http://b/12612572\nChange-Id: I38ff2684d69bd0fe3f21b1d371b88fa60d5421cb\n"
    },
    {
      "commit": "06b3f70cfecc372d2fdb5dd7665ccef2f8d09527",
      "tree": "550c5e10cec64c2dfd1630a54b2bf2fef785a334",
      "parents": [
        "a80ae8b84812d69ca63647262ab888b2f40d55a0"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Aug 21 16:59:31 2015 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Mon Aug 24 13:06:10 2015 -0700"
      },
      "message": "Add exported __popcount_tab for libgcc compat under compiler-rt.\n\nChange-Id: I8df09e8f199761edbba290d7f1ea530781054b03\n"
    },
    {
      "commit": "e4d51cf37a861e258e423de14619982af51d2527",
      "tree": "a47c182c32d8f53983276bd3578d7ebfacf4447e",
      "parents": [
        "4a8c4ce403f702c0b8279873fae3d62497c4a123",
        "5930772286de72a6cec1a9c7513355efe238e7ef"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Aug 18 17:18:11 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 18 17:18:11 2015 +0000"
      },
      "message": "Merge \"Add optimized cortex-a7/cortex-a53 memset/memcpy.\""
    },
    {
      "commit": "5930772286de72a6cec1a9c7513355efe238e7ef",
      "tree": "a6d1ef4fd28636bca37209a671cc9e2cf3820032",
      "parents": [
        "b3db7764d0757392c73c716423f49dc0809c5a23"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Jul 23 20:27:42 2015 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Aug 17 13:02:03 2015 -0700"
      },
      "message": "Add optimized cortex-a7/cortex-a53 memset/memcpy.\n\nAdd an optimized memset that is ~20% faster for cortex-a7 and\ncortex-a53.\n\nAdd a 32 bit optimized cortex-a53 memcpy that is about ~20% faster\non cached data.\n\nFix the cortex-a15 __str{cat,cpy}_chk.S, memcpy_base.S to remove\nthe phony functions, since they aren\u0027t needed any more. Then add\na direct include of these for cortex-a53.\n\nVerified the new functions by stepping through all of the major\npaths and verifying the backtrace is still correct.\n\nBug: 22696180\nChange-Id: Iec92a3f82d51243cca76c9aff9f35d920ff865ae\n"
    },
    {
      "commit": "5891abdc66aa9578395bc8b8e5740f629a2694b7",
      "tree": "7ce00a1c6da021bf09535dd0d287e76c9efd31fa",
      "parents": [
        "e80369ab0c484a99925a49a81ab0675538fab38a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 07 18:27:47 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 07 19:44:12 2015 -0700"
      },
      "message": "Invalidate cached pid in vfork.\n\nBug: http://b/23008979\nChange-Id: I1dd900ac988cdbe10aad3abc53240c5d352891d5\n"
    },
    {
      "commit": "8264cbba7ecdf11bbc7501dd5a716593543b683c",
      "tree": "044af29d798884a2335e5bd49f59cf39a4151633",
      "parents": [
        "adc5795fb7b674e6d40d1f190c675607c1379343"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Jul 27 13:51:31 2015 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Jul 27 14:07:37 2015 -0700"
      },
      "message": "Remove pushes from memsets (krait/cortex-a9).\n\nOn the path that only uses r0 in both the krait and cortex-a9\nmemset, remove the push and use r3 instead.\n\nIn addition, for cortex-a9, remove the artificial function since\nit\u0027s not needed since dwarf unwinding is now supported on arm.\n\nChange-Id: Ia4ed1cc435b03627a7193215e76c8ea3335f949a\n"
    },
    {
      "commit": "795a8e3d690c09304ea52d7cb2ca4143b6751c60",
      "tree": "1df4e5a00da12bfbbd5a5be34cf777d8f5de3ab1",
      "parents": [
        "9e1c862cb649f054aaa1c2141409387bf3d5f3eb"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Jul 23 12:12:55 2015 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Jul 23 12:12:55 2015 -0700"
      },
      "message": "Make all labels local.\n\nChange the non-local labels to .L labels.\n\nChange-Id: I720e894f2e311af8f4a0970303d8b86575fb69a5\n"
    },
    {
      "commit": "95fd031c4d22b90c542621170bb6d4d05bb94457",
      "tree": "3ad378dca11e65d1767ae7ce57ee28914a943481",
      "parents": [
        "e70d7a78f0bfba8b09d37c145769cb8d1d7c5fb6"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon Jul 20 16:56:51 2015 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon Jul 20 16:57:11 2015 -0700"
      },
      "message": "Revert \"Stop libc from cross-referencing unwind symbols\"\n\nThis reverts commit cd13b14e98d4921af126667fae0cf6613a5615c5.\n\nBug: http://b/19958712\nChange-Id: I7cc7f69728c42c37e129aee30d761c4cd7e30e94\n"
    },
    {
      "commit": "e1e434af12e801931abaa7dac03915ee4c2d9b15",
      "tree": "c86b768271f8dadba5251d0f8c0408f7c90d4a92",
      "parents": [
        "77455f85ab46bed6dc5f7246b474ede44ae9ede2"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Jul 06 12:03:40 2015 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Jul 08 11:20:27 2015 -0700"
      },
      "message": "Replace bx lr with update of pc from the stack.\n\nWhen there is arm assembler of this format:\n\nldmxx sp!, {..., lr} or pop {..., lr}\nbx lr\n\nIt can be replaced with:\n\nldmxx sp!, {..., pc} or pop {..., pc}\n\nChange-Id: Ic27048c52f90ac4360ad525daf0361a830dc22a3\n"
    },
    {
      "commit": "9876aa273da6795aa6d257de5b779a68a0c2eccf",
      "tree": "0ae16c933f005c9228acfaac6e6f18c80b0df63c",
      "parents": [
        "48fa28bacd7e84651d381e2428944916e45b5508",
        "a73b2c961f0f20e792f4616d7dd0b5f377d1130c"
      ],
      "author": {
        "name": "Tim Murray",
        "email": "timmurray@google.com",
        "time": "Tue Jun 16 19:04:13 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jun 16 19:04:14 2015 +0000"
      },
      "message": "Merge \"Add support for cortex-a53 in bionic.\""
    },
    {
      "commit": "a73b2c961f0f20e792f4616d7dd0b5f377d1130c",
      "tree": "0bd9e45a399f2ef04e4a713cb944b2e441416a66",
      "parents": [
        "df11f340cac2e7aa5ef69c3180d0f4089f46c96b"
      ],
      "author": {
        "name": "Tim Murray",
        "email": "timmurray@google.com",
        "time": "Thu Jun 11 15:33:06 2015 -0700"
      },
      "committer": {
        "name": "Tim Murray",
        "email": "timmurray@google.com",
        "time": "Mon Jun 15 21:43:30 2015 -0700"
      },
      "message": "Add support for cortex-a53 in bionic.\n\nallows -mcpu\u003dcortex-a53 to be passed as part of a command line.\n\nChange-Id: Id4203a9fd197f4c3b661bad21ac58c32819fd687\n"
    },
    {
      "commit": "b1304935b64ffcd59cd787cc9ac83a2d14dc587b",
      "tree": "e1f7e44b4fa870796ec762633a6a1a6ec322239b",
      "parents": [
        "df11f340cac2e7aa5ef69c3180d0f4089f46c96b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jun 15 19:39:04 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jun 15 19:39:04 2015 -0700"
      },
      "message": "Hide accidentally-exposed __clock_nanosleep.\n\nBug: http://b/21858067\nChange-Id: Iaa83a5e17cfff796aed4f641d0d14427614d9399\n"
    },
    {
      "commit": "be57a40d2973739c4fb0aa1cfb0014f34aeec2bd",
      "tree": "a4d8bba0773d0b024e1e53dbb4f35214cd3480d5",
      "parents": [
        "72af1235e49fa797987dd719e398f53995a50ec4"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jun 10 17:24:20 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jun 10 17:24:20 2015 -0700"
      },
      "message": "Add process_vm_readv and process_vm_writev.\n\nBug: http://b/21761353\nChange-Id: Ic8ef3f241d62d2a4271fbc783c8af50257bac498\n"
    },
    {
      "commit": "e1d0810cd7e2aa045d5cc1e7d2b8697acd8467be",
      "tree": "335466a8a2f403dfa11394fa6c0d723873a4acf8",
      "parents": [
        "966f84b11dca7caf53c67664d811b99567cab7ee"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Sat Jun 06 11:23:26 2015 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Sat Jun 06 11:25:41 2015 -0700"
      },
      "message": "Add O_PATH support for flistxattr()\n\nA continuation of commit 2825f10b7f61558c264231a536cf3affc0d84204.\n\nAdd O_PATH compatibility support for flistxattr(). This allows\na process to list out all the extended attributes associated with\nO_PATH file descriptors.\n\nChange-Id: Ie2285ac7ad2e4eac427ddba6c2d182d41b130f75\n"
    },
    {
      "commit": "2825f10b7f61558c264231a536cf3affc0d84204",
      "tree": "a5b968e9591cd0aa3289c0d2195e0326ef2e353f",
      "parents": [
        "ef607cdae24363c5e6b6fc72607a4cff78623851"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Sun May 31 13:43:13 2015 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Mon Jun 01 15:51:56 2015 -0700"
      },
      "message": "libc: Add O_PATH support for fgetxattr / fsetxattr\n\nSupport O_PATH file descriptors when handling fgetxattr and fsetxattr.\nThis avoids requiring file read access to pull extended attributes.\n\nThis is needed to support O_PATH file descriptors when calling\nSELinux\u0027s fgetfilecon() call. In particular, this allows the querying\nand setting of SELinux file context by using something like the following\ncode:\n\n  int dirfd \u003d open(\"/path/to/dir\", O_DIRECTORY);\n  int fd \u003d openat(dirfd, \"file\", O_PATH | O_NOFOLLOW);\n  char *context;\n  fgetfilecon(fd, \u0026context);\n\nThis change was motivated by a comment in\nhttps://android-review.googlesource.com/#/c/152680/1/toys/posix/ls.c\n\nChange-Id: Ic0cdf9f9dd0e35a63b44a4c4a08400020041eddf\n"
    },
    {
      "commit": "c05554ec5c9aff5e0f1e83de9bb62c3569eecca2",
      "tree": "13991325cce91a9fd76f42303946c21e67106aea",
      "parents": [
        "c02bdc76a21f6149c7867982e66ab16982e01c1b"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue May 19 18:17:31 2015 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed May 20 14:20:33 2015 -0700"
      },
      "message": "Fix error handling for negative size in ftruncate.\n\nBug: 21309901\nChange-Id: I54692ab8105dd09db6af7a2c0894a17bdd118aa0\n"
    },
    {
      "commit": "40a8f214a5264efe5feaaffd55cea67fb87d097b",
      "tree": "50e1b2ab531de2767251244e8545351384b818de",
      "parents": [
        "a42b5bcd896daa83b479e7964c0fa8cf1abf5a1d"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Mon May 18 11:19:11 2015 -0700"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Mon May 18 11:29:20 2015 -0700"
      },
      "message": "Hide rt_sigqueueinfo.\n\nBug: 19358804\nChange-Id: I38a53ad64c81d0eefdd1d24599e769fd8a477a56\n"
    },
    {
      "commit": "8a330cad8db512f5119251f55ac7bf606c552ed0",
      "tree": "e304e2ba2a428e137dc8564d80d8c64757a61555",
      "parents": [
        "972d7fe63a2e0636b070bec266479c27e0bb8c5f",
        "c69ace87ec110a91005bdf19dbafeb355f399c06"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue May 12 17:27:04 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 12 17:27:04 2015 +0000"
      },
      "message": "Merge \"Simplify three copyright headers.\""
    },
    {
      "commit": "c69ace87ec110a91005bdf19dbafeb355f399c06",
      "tree": "de3925703500014e61f4383e20d0088b9a8558a2",
      "parents": [
        "fff06e624db96f1d876627fa0a122cdf65f41698"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue May 12 10:10:01 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue May 12 10:10:01 2015 -0700"
      },
      "message": "Simplify three copyright headers.\n\nThere\u0027s no reason to have multiple years in our own copyright headers,\nand given the stupidity of our NOTICE file generation, it just creates\nmore junk.\n\nChange-Id: I065a3811c2e2584e3b649a18ad9460286bc72b92\n"
    },
    {
      "commit": "33f33515b503b634d9fbc57dda7123ea9cf23fc6",
      "tree": "0f588a4d5834681be091f3aba213baa9b7c69efc",
      "parents": [
        "11fc3f47afa6c9566875df02f880dc317cb94437"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Mon May 11 11:21:19 2015 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Mon May 11 17:15:03 2015 -0700"
      },
      "message": "Use unified syntax to compile with both llvm and gcc.\n\nAll arch-arm and arch-arm64 .S files were compiled\nby gcc with and without this patch. The output object files\nwere identical. When compiled with llvm and this patch,\nthe output files were also identical to gcc\u0027s output.\n\nBUG: 18061004\nChange-Id: I458914d512ddf5496e4eb3d288bf032cd526d32b\n"
    },
    {
      "commit": "e0905c94d37ad8bc0dd259d37866da5d18fb9ccd",
      "tree": "2ddd96ede5e104e7f2816e5b7bd8332b03f9fa44",
      "parents": [
        "42d7468f99a49bd598fca9c3cebba33b9bdd0e57"
      ],
      "author": {
        "name": "Kyle Repinski",
        "email": "repinski23@gmail.com",
        "time": "Tue Apr 28 13:39:41 2015 -0500"
      },
      "committer": {
        "name": "Kyle Repinski",
        "email": "repinski23@gmail.com",
        "time": "Tue Apr 28 14:29:15 2015 -0500"
      },
      "message": "cortex-a9: Fix reference to __memcpy_base_aligned.\n\nWith a different memcpy, __memcpy_base_aligned ceased to exist.\nInstead, point to the name defined by whatever includes memcpy_base.S\n\nChange-Id: I242cf49cbada35337ba155d7f170e86a905ff55f\n"
    }
  ],
  "next": "3391a9ff139d57fe4f8a2ff2d81a5ddc230a6208"
}
