)]}'
{
  "log": [
    {
      "commit": "32651b8e8e453391c7aaca47cd885e94d54d0bf4",
      "tree": "16c36165ce78fbc359bba222ee0744556c3ed4c4",
      "parents": [
        "d2cf59d4633d9e731d0342d4f94b6e925589ab1e"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Fri Mar 13 20:30:00 2015 -0700"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Mon Mar 16 11:09:52 2015 -0700"
      },
      "message": "Hide content of pthread_cond_t in pthread_cond_internal_t.\n\nBug: 19249079\nChange-Id: I6f55af30bcd6211ce71630c6cacbef0e1663dcee\n"
    },
    {
      "commit": "2fabea47ac9475bcc52aff0715819d18aa5bdf1d",
      "tree": "c0cad55497897c934661e49d2fc4c330b4d97cba",
      "parents": [
        "81c31bdd43e50538fa45f5e7783782a5ae5666e9"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Fri Mar 13 14:22:05 2015 -0700"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Fri Mar 13 19:35:05 2015 -0700"
      },
      "message": "Hide content of pthread_rwlock_t in pthread_rwlock_internal_t.\n\nBug: 19249079\nChange-Id: Ifbe634c716b6793bef897ec5134b55eb44c6b8d5\n"
    },
    {
      "commit": "9d0c79304d2413028aa5c213f7a567f00feccde5",
      "tree": "b9c119c7f8e935abb9466e9253b905a7f485d968",
      "parents": [
        "45ee73a7fbe98cba2ccb007b60c027d27dfca1cb"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Fri Mar 06 13:48:58 2015 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Fri Mar 06 15:16:44 2015 -0800"
      },
      "message": "Remove PTHREAD_ATTR_FLAG_MAIN_THREAD.\n\nMake this change because I think it is more reasonable to check stack info\nin pthread_getattr_np. I believe pthread_attr_t is not tied with any thread,\nand can\u0027t have a flag saying who using it is the main thread.\nThis change also helps refactor of g_thread_list_lock.\n\nBug: 19636317\nChange-Id: Iedbb85a391ac3e1849dd036d01445dac4bc63db9\n"
    },
    {
      "commit": "f7e3b3e48ab3ffbf7bbce5102ce1739c200093cb",
      "tree": "19fe08cbb0324d67ce277d8f6594f8c126d3b3c6",
      "parents": [
        "c3307dc43b2526c4031837738b139d22831c5d09"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Thu Mar 05 20:08:21 2015 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Thu Mar 05 20:39:10 2015 -0800"
      },
      "message": "Use pthread_once for g_uselocale_key creation.\n\nBug: 19625804\nChange-Id: I57ec4c965067dc0c157c795c1f7217a3ca403286\n"
    },
    {
      "commit": "c3307dc43b2526c4031837738b139d22831c5d09",
      "tree": "483094a914357a55a76dcea7f94bf167aa155f1b",
      "parents": [
        "5d400204589ceb781fa11864c2e8f3001e5dc96f",
        "4a2891d8c8f09a64ea9e1479518b0cc969bd5969"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Thu Mar 05 18:26:43 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 05 18:26:44 2015 +0000"
      },
      "message": "Merge \"Better control of pthread keys used in bionic.\""
    },
    {
      "commit": "e1c0213be3f0c2c4e310cbc262da88835a2e5d86",
      "tree": "052396403af1b7e83ca747a87ce2bc0ff730ba51",
      "parents": [
        "dec9501af2ee4d7cec3a163310d42e8ea1b8c58f",
        "08ee8d2030fbc73c4c144e819dd68806b0351cbe"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Thu Mar 05 04:42:35 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 05 04:42:35 2015 +0000"
      },
      "message": "Merge \"Switch pthread_rwlock_t to stdatomic.\""
    },
    {
      "commit": "08ee8d2030fbc73c4c144e819dd68806b0351cbe",
      "tree": "61c0f1027bd8967ff7eb8e95a128ee10e260ca32",
      "parents": [
        "ee17e8800418a74e21dba11658234363cf6f6032"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Wed Feb 11 17:04:36 2015 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Wed Mar 04 18:16:20 2015 -0800"
      },
      "message": "Switch pthread_rwlock_t to stdatomic.\n\nBug: 19099838\nChange-Id: Ie82967a60b5cec61a8bdd1e0e4a03738d01944f8\n"
    },
    {
      "commit": "4a2891d8c8f09a64ea9e1479518b0cc969bd5969",
      "tree": "435435ccd995c37c0e5b27948da8addc464b558d",
      "parents": [
        "dec9501af2ee4d7cec3a163310d42e8ea1b8c58f"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Wed Mar 04 16:53:23 2015 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Wed Mar 04 16:53:23 2015 -0800"
      },
      "message": "Better control of pthread keys used in bionic.\n\nChange-Id: I1e1bc77c0e7879baead6c3417282ce549a1153b5\n"
    },
    {
      "commit": "e1edd301d2a722e0a0687a7a3a87081c8cb956d3",
      "tree": "5b40237fe1dfe0f19e6bf2b55733a6dd145c8bd3",
      "parents": [
        "d5c2745ca8664b987d737e4a32922b6c9fe7c628",
        "5e2bd719d7dd19afe55f8d4f24366c0230e0e6c7"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Wed Mar 04 01:49:19 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 04 01:49:20 2015 +0000"
      },
      "message": "Merge \"Refactor pthread_key.cpp to be lock-free.\""
    },
    {
      "commit": "5e2bd719d7dd19afe55f8d4f24366c0230e0e6c7",
      "tree": "14589a831046110c8cc6221cd1ee90226e899b4b",
      "parents": [
        "04bbef377b9941bf6d67d9c515b6640a314fb032"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Fri Feb 20 16:15:33 2015 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Mar 03 15:46:53 2015 -0800"
      },
      "message": "Refactor pthread_key.cpp to be lock-free.\n\nChange-Id: I20dfb9d3cdc40eed10ea12ac34f03caaa94f7a49\n"
    },
    {
      "commit": "52d7f1a94fd6ccb87dabd21c682f68d31810aca9",
      "tree": "b921836e4dfdcfbedaa10a12ac906a900d56294d",
      "parents": [
        "448a85968da1e4622e829bb48fd888a38f9f6c49"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Wed Feb 25 14:58:08 2015 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Wed Feb 25 14:58:08 2015 -0800"
      },
      "message": "Move endpwent to ndk_cruft.cpp.\n\nBug: 19109159\nChange-Id: I3683a247643006ea6d6bcf3845f57d1908d457d7\n"
    },
    {
      "commit": "448a85968da1e4622e829bb48fd888a38f9f6c49",
      "tree": "e300bf6ea44f7316ce42161fdcb5e6c2ac07dd18",
      "parents": [
        "8c41eae6fcdb6cad1f6c46ae01708ead6b734060",
        "b8ce47421727f7621f3e00043d535e35cd904852"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Wed Feb 25 21:04:56 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 25 21:04:56 2015 +0000"
      },
      "message": "Merge \"Switch system_properties.cpp from bionic atomic operations to stdatomic.\""
    },
    {
      "commit": "8c41eae6fcdb6cad1f6c46ae01708ead6b734060",
      "tree": "3fb9067c8790b6471ceadbdb80517731182aa7b8",
      "parents": [
        "af3ba5c87319e19c10be6755b37af92521f702c2",
        "7fb680bfda059746c9bb8939ffaed600eecc3a29"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Wed Feb 25 00:00:51 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 25 00:00:51 2015 +0000"
      },
      "message": "Merge \"Move getusershell/endusershell/setusershell to ndk_cruft.cpp.\""
    },
    {
      "commit": "7fb680bfda059746c9bb8939ffaed600eecc3a29",
      "tree": "4d2528047166136a5c8baa69af69edafafcc42c2",
      "parents": [
        "4add77b93c0c61381faa9d4d8dc62f81cafcc69a"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Feb 24 13:18:25 2015 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Feb 24 14:46:59 2015 -0800"
      },
      "message": "Move getusershell/endusershell/setusershell to ndk_cruft.cpp.\n\nBug: 19108648\nChange-Id: I65134040345398dde612c4325d902db58f3bd2be\n"
    },
    {
      "commit": "35778253a5ed71e87a608ca590b63729d9f88567",
      "tree": "d9e6112654bf2faa754abd9f28bc20c2ccccff57",
      "parents": [
        "2aef607b25c463baed5ae70d14212e24ea7bcf2b"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Feb 24 13:40:43 2015 -0800"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Feb 24 13:40:43 2015 -0800"
      },
      "message": "Fix \"faccessat ignores flags\"\n\nThe kernel system call faccessat() does not have any flags arguments,\nso passing flags to the kernel is currently ignored.\n\nFix the kernel system call so that no flags argument is passed in.\n\nEnsure that we don\u0027t support AT_SYMLINK_NOFOLLOW. This non-POSIX\n(http://pubs.opengroup.org/onlinepubs/9699919799/functions/access.html)\nflag is a glibc extension, and has non-intuitive, error prone behavior.\n\nFor example, consider the following code:\n\n  symlink(\"foo.is.dangling\", \"foo\");\n  if (faccessat(AT_FDCWD, \"foo\", R_OK, AT_SYMLINK_NOFOLLOW) \u003d\u003d 0) {\n    int fd \u003d openat(AT_FDCWD, \"foo\", O_RDONLY | O_NOFOLLOW);\n  }\n\nThe faccessat() call in glibc will return true, but an attempt to\nopen the dangling symlink will end up failing. GLIBC documents this\nas returning the access mode of the symlink itself, which will\nalways return true for any symlink on Linux.\n\nSome further discussions of this are at:\n\n  * http://lists.landley.net/pipermail/toybox-landley.net/2014-September/003617.html\n  * http://permalink.gmane.org/gmane.linux.lib.musl.general/6952\n\nAT_SYMLINK_NOFOLLOW seems broken by design. I suspect this is why this\nfunction was never added to POSIX. (note that \"access\" is pretty much\nbroken by design too, since it introduces a race condition between\ncheck and action). We shouldn\u0027t support this until it\u0027s clearly\ndocumented by POSIX or we can have it produce intuitive results.\n\nDon\u0027t support AT_EACCESS for now. Implementing it is complicated, and\npretty much useless on Android, since we don\u0027t have setuid binaries.\nSee http://git.musl-libc.org/cgit/musl/commit/?id\u003d0a05eace163cee9b08571d2ff9d90f5e82d9c228\nfor how an implementation might look.\n\nBug: 18867827\nChange-Id: I25b86c5020f3152ffa3ac3047f6c4152908d0e04\n"
    },
    {
      "commit": "b8ce47421727f7621f3e00043d535e35cd904852",
      "tree": "a2d35e197034b900f4b70cadddccf11958926dad",
      "parents": [
        "ee17e8800418a74e21dba11658234363cf6f6032"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Feb 10 21:35:56 2015 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Feb 24 10:41:53 2015 -0800"
      },
      "message": "Switch system_properties.cpp from bionic atomic operations to stdatomic.\n\nBug: 17177189\nChange-Id: I42e05ad1c490cc7a8040138151afc0ee72a9b63f\n"
    },
    {
      "commit": "be52e658171edf6651895c40d1563289bafa52f7",
      "tree": "0f58f6022d63e08166da1a03775d50df4d2f13b5",
      "parents": [
        "393bdb156d5024a03f03425a977d0518c84dbb98"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 23 18:02:29 2015 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 23 21:52:56 2015 -0800"
      },
      "message": "Fix dup2 in the case where the two fds are equal.\n\ndup3\u0027s behavior differs from dup2 in this case, so we need to paper\nover that in the C library.\n\nChange-Id: I313cd6f226db5e237f61866f324c5ecdd12bf762\n"
    },
    {
      "commit": "4c5891d93dc151e2f07fc87ae967f23e6c3d6e0c",
      "tree": "0a18a145999730a8bcb118c2b42b4e6a8ffa15d9",
      "parents": [
        "97484d3a9d0d822aeaaa1547aeb76d7669076082"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 19 22:49:44 2015 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 19 22:49:44 2015 -0800"
      },
      "message": "valgrind can\u0027t find syscall because we didn\u0027t put it in \u003cunistd.h\u003e.\n\nChange-Id: I1e47291d4476bd2816138a8cf58f29d4986d39e3\n"
    },
    {
      "commit": "3cfb52aab2548df635e9672218cc433e14922fd3",
      "tree": "eebbf162a1e5e1ed8726a9129ea17a410ebaa3ed",
      "parents": [
        "3e1b5f46c07aef5983ecf2feb1c3369b2cd200c0"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 18 21:29:13 2015 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 18 22:02:56 2015 -0800"
      },
      "message": "Add GNU extensions mempcpy and wmemcpy.\n\nUsed by elfutils. On the bright side, they stopped using __mempcpy.\n\nBug: 18374026\nChange-Id: Id29bbe6ef1c5ed5a171bb6c32182f129d8332abb\n"
    },
    {
      "commit": "be6a44566a7085470b96bc41d371e37b5b12ff87",
      "tree": "066ba2b362e6289e3b5d7bb8ca912a58ab9c5be7",
      "parents": [
        "fb48c68221afb1f9e7c63a15a20cca0857d1b9f9"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 17 09:55:58 2015 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 17 09:55:58 2015 -0800"
      },
      "message": "Fix sysconf for _SC_CHILD_MAX and _SC_OPEN_MAX.\n\nChange-Id: I656f613166bd604f35b31e5ec042a5230c6b82b8\n"
    },
    {
      "commit": "fb48c68221afb1f9e7c63a15a20cca0857d1b9f9",
      "tree": "b845b7e6adc69d65e8b96e31fd25c1cf98d56493",
      "parents": [
        "40d06b25ac86260e9c1701540420c9634bab8bad",
        "41ef902379ba24bd8a3ca6d7733b8376efb55ebd"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 17 17:54:39 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 17 17:54:40 2015 +0000"
      },
      "message": "Merge \"Fix memchr overflow.\""
    },
    {
      "commit": "41ef902379ba24bd8a3ca6d7733b8376efb55ebd",
      "tree": "855ac7e3fa276bfb55594e4efb28c7c29cf28f3f",
      "parents": [
        "f9fb52ab309c97d5b2ef4f8e1daff3eed4cf4024"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Feb 14 13:21:22 2015 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Feb 14 13:21:22 2015 -0800"
      },
      "message": "Fix memchr overflow.\n\nThe overflow\u0027s actually in the generic C implementation of memchr.\n\nWhile I\u0027m here, let\u0027s switch our generic memrchr to the OpenBSD version too.\n\nBug: https://code.google.com/p/android/issues/detail?id\u003d147048\nChange-Id: I296ae06a1ee196d2c77c95a22f11ee4d658962da\n"
    },
    {
      "commit": "e09ab2cc2ff41ce7519c143d448371ddd62afc59",
      "tree": "27aeb6b9af0e2cee7200e1683a9650f013b49396",
      "parents": [
        "f9fb52ab309c97d5b2ef4f8e1daff3eed4cf4024"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Feb 12 17:03:22 2015 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Feb 12 21:37:20 2015 -0800"
      },
      "message": "Make .note.android.ident section type SH_NOTE\n\nThe .note.android.ident section is only used by GDB, which doesn\u0027t\ncare what section type the section is, but it would be convenient\nfor readelf -n to be able to find the section too.\n\nThe old way of getting the .note.android.ident section to be of type\nSH_NOTE involved compiling from .c to .s using gcc, running sed to\nchange progbits to note, and then compiling from .s to .o using gcc.\nSince crtbrand.c only contains a section containing data, a\ncrtbrand.S can be checked in that will compile on all platforms,\navoiding the need for sed.\n\nAlso add crtbrand.o to crtbegin_so.o so that libraries also get\nthe note, and to the crt workaround in arm libc.so.\n\nChange-Id: Ica71942a6af4553b56978ceaa288b3f4c15ebfa2\n"
    },
    {
      "commit": "24958ae4efd70d5ef36d93d2d2bcca38ad340395",
      "tree": "1f4045f37791b309a2da42336abd02a61153ee91",
      "parents": [
        "0046c39f9ed6d7335f06e4d866df5ae0e7b4d485"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Feb 11 17:40:45 2015 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Feb 11 17:40:45 2015 -0800"
      },
      "message": "Remove no-op sed step when compiling crtbrand.o\n\ncrtbrand.c was compiled to a .s file, run through a sed script\nto translate a %progbits to %note, and the compiled to .o.\nHowever, when the sed command was copied from the original source\nit was not updated to use the new name of the section (.note.ABI-tag\nto .note.android.ident), so it didn\u0027t modify the file.  Since the\nsection has been generated with type %progbits instead of %note for\ntwo years, just delete the whole sed step.\n\nChange-Id: Id78582e9b43b628afec4eed22a088283132f0742\n"
    },
    {
      "commit": "e375ecaa39213ec01464dac9d0ffebaac70b4e9d",
      "tree": "1d0e274a6739befc3a27df4d135ea4b4740c20f5",
      "parents": [
        "a4fc89badf4ef4d42df0927340c6f0d02167a3d6",
        "e5f816c01780220880ee59a29f727c48b51365d3"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Feb 10 00:10:45 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 10 00:10:45 2015 +0000"
      },
      "message": "Merge \"Switch pthread_cond_t to \u003cstdatomic.h\u003e.\""
    },
    {
      "commit": "e5f816c01780220880ee59a29f727c48b51365d3",
      "tree": "37454e7d27774bde02d5d28aee3d1aad3cbb6d73",
      "parents": [
        "7f17aea2fc21aaf657824a023a4b7582fb74a2d9"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Thu Jan 29 12:13:33 2015 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Mon Feb 09 15:54:22 2015 -0800"
      },
      "message": "Switch pthread_cond_t to \u003cstdatomic.h\u003e.\n\nBug: 17574458\nChange-Id: Ic7f79861df4fe751cfa6c6b20b71123cc31e7114\n"
    },
    {
      "commit": "421608550dff76d12886021250919cbebf419bd8",
      "tree": "1375249c0a061b08f801e1ff4242d85913be4b30",
      "parents": [
        "d687905f11102a7f6bad461b6f501dc870c59999"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Feb 09 17:59:22 2015 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Feb 09 18:01:45 2015 +0000"
      },
      "message": "Remove stray log line.\n\nChange-Id: Id948ae37a91dadd9d40e91de97f18774bdccfc78\n"
    },
    {
      "commit": "9dfb00c1d48545a2627c2aded62d3a79749351fb",
      "tree": "0611ed61180c6983dd9818cc8bf01bbc3dec3ef4",
      "parents": [
        "9a9b635745dc776dcfeec51d68b85ca7e8cdbe7d",
        "6e54c3e519892ca13f15bdcea0d431befbadac25"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 05 20:21:35 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 05 20:21:35 2015 +0000"
      },
      "message": "Merge \"Use the libcxxabi __cxa_demangle.\""
    },
    {
      "commit": "6e54c3e519892ca13f15bdcea0d431befbadac25",
      "tree": "914bdd8c31ba4d8cd205fefb8f0b95669a425189",
      "parents": [
        "8e5f9bc8a46872e3f0ac4799558fdfd5999f9c20"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 05 12:05:34 2015 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 05 12:05:34 2015 -0800"
      },
      "message": "Use the libcxxabi __cxa_demangle.\n\nBug: 18930951\nChange-Id: If2ea3633ac6dfd4ec975c0f16bdf3dd58e05c614\n"
    },
    {
      "commit": "aba6f712d46577c45a89fd0626dc251885d7989d",
      "tree": "6ad501467d7673592127f5ea3dded7bdd8432159",
      "parents": [
        "8e5f9bc8a46872e3f0ac4799558fdfd5999f9c20"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 05 12:02:04 2015 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 05 12:02:04 2015 -0800"
      },
      "message": "Apparently, logd does need the NULs.\n\nChange-Id: I04b834e65c26c5821b952f78a0de7f92527cbdba\n"
    },
    {
      "commit": "7e1b3d3e68f7430322a88be06f6b53c358fd14bf",
      "tree": "23217666a93d70b2a3b24876ace448b2b3207e68",
      "parents": [
        "11829be3e1a9e9e2271ba64a78c327bde6e044eb",
        "a3d97da4c5c96f2c224485928154bad111cd635f"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Wed Feb 04 02:42:15 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 04 02:42:16 2015 +0000"
      },
      "message": "Merge \"Switch sem_t from bionic atomics to stdatomic.h.\""
    },
    {
      "commit": "a3d97da4c5c96f2c224485928154bad111cd635f",
      "tree": "4aeb0ed6daa210dc79e9a48e210de9aeafa9601f",
      "parents": [
        "7f17aea2fc21aaf657824a023a4b7582fb74a2d9"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Fri Jan 30 12:30:08 2015 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Feb 03 16:35:57 2015 -0800"
      },
      "message": "Switch sem_t from bionic atomics to stdatomic.h.\n\nBug: 17572887\nChange-Id: If66851ba9b831cdd698b9f1303289bb14448bd03\n"
    },
    {
      "commit": "11829be3e1a9e9e2271ba64a78c327bde6e044eb",
      "tree": "08724ca11c005312e09599a78077483c613c8525",
      "parents": [
        "f00f484cb59c1d599242daecbf833397aa3ba5d8",
        "140f3678f0f21eeda5916e9b8de87b93fd660a61"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Feb 03 22:28:55 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 03 22:28:56 2015 +0000"
      },
      "message": "Merge \"Add test about pthread_mutex_t owner tid limit.\""
    },
    {
      "commit": "140f3678f0f21eeda5916e9b8de87b93fd660a61",
      "tree": "4115c771e910e8969cb093fa124df987259bad3c",
      "parents": [
        "86fc96f73311f43980df770f4ff8022f1e9b296a"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Feb 03 10:32:00 2015 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Feb 03 12:20:46 2015 -0800"
      },
      "message": "Add test about pthread_mutex_t owner tid limit.\n\nBug: 19216648\nChange-Id: I7b12955bdcad31c13bf8ec2740ff88ba15223ec0\n"
    },
    {
      "commit": "00490ae3f351e07ed4cc2a94b11cba6a22f37311",
      "tree": "ad09d82701fd1d9cdf44231d8b8789007aa5d8d9",
      "parents": [
        "d57bf449fe6c2dcf35d90d6e4098038ac8a24ecb"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Feb 03 11:27:25 2015 -0800"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Feb 03 12:10:30 2015 -0800"
      },
      "message": "Ensure raw fchmod/fchmodat syscalls are hidden.\n\nIn https://android-review.googlesource.com/#/c/127908/5/libc/SYSCALLS.TXT@116\nElliott said:\n\n  for LP64 these will be hidden. for LP32 we were cowards and left\n  them all public for compatibility (though i don\u0027t think we ever\n  dremeled to see whether it was needed). we don\u0027t have an easy\n  way to recognize additions, though, so we can\u0027t prevent adding\n  new turds.\n\nAdd a mechanism to prevent the adding of new turds, and use that\nmechanism on the fchmod/fchmodat system calls.\n\nBug: 19233951\nChange-Id: I98f98345970b631a379f348df57858f9fc3d57c0\n"
    },
    {
      "commit": "d57bf449fe6c2dcf35d90d6e4098038ac8a24ecb",
      "tree": "9e4fc6f141d8aecad2a9bceae60bb1e45cb0556a",
      "parents": [
        "c5999c1e0382c40286cc631c6a53e7781bc03154",
        "86fc96f73311f43980df770f4ff8022f1e9b296a"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Tue Feb 03 02:42:53 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 03 02:42:53 2015 +0000"
      },
      "message": "Merge \"Switch pthread_mutex_t from bionic atomics to \u003cstdatomic.h\u003e.\""
    },
    {
      "commit": "86fc96f73311f43980df770f4ff8022f1e9b296a",
      "tree": "0eb94839231c5c19cd7b4bf0954083ba670d62bd",
      "parents": [
        "6a3ff01cd4f063556cf25706ddc9dff82c351aba"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Thu Jan 29 21:50:48 2015 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Mon Feb 02 15:00:01 2015 -0800"
      },
      "message": "Switch pthread_mutex_t from bionic atomics to \u003cstdatomic.h\u003e.\n\nBug: 17574456\nChange-Id: I5ce3d3dc07e804e9ce55c42920f47531b56e04de\n"
    },
    {
      "commit": "d80ec66121b5af96c6b3d07ba34353b3d517f5b3",
      "tree": "ac55af52647bb32468e477945a1da988778e9436",
      "parents": [
        "c57b5c5094f915ff975a256e086d58e2e7cfedf1",
        "3cbc6c627fe57c9a9783c52d148078f8d52f7b96"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Mon Feb 02 22:03:41 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Feb 02 22:03:41 2015 +0000"
      },
      "message": "Merge \"Add fchmodat(AT_SYMLINK_NOFOLLOW) and fchmod O_PATH support\""
    },
    {
      "commit": "3cbc6c627fe57c9a9783c52d148078f8d52f7b96",
      "tree": "ea5b0dc49aaa16f25e2262cd5560070ae65923b9",
      "parents": [
        "21cdd22f035efd50902b7780fc6ea53bd1684357"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Sat Jan 31 19:57:46 2015 -0800"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Mon Feb 02 13:17:17 2015 -0800"
      },
      "message": "Add fchmodat(AT_SYMLINK_NOFOLLOW) and fchmod O_PATH support\n\nMany libc functions have an option to not follow symbolic\nlinks. This is useful to avoid security sensitive code\nfrom inadvertantly following attacker supplied symlinks\nand taking inappropriate action on files it shouldn\u0027t.\nFor example, open() has O_NOFOLLOW, chown() has\nlchown(), stat() has lstat(), etc.\n\nThere is no such equivalent function for chmod(), such as lchmod().\nTo address this, POSIX introduced fchmodat(AT_SYMLINK_NOFOLLOW),\nwhich is intended to provide a way to perform a chmod operation\nwhich doesn\u0027t follow symlinks.\n\nCurrently, the Linux kernel doesn\u0027t implement AT_SYMLINK_NOFOLLOW.\nIn GLIBC, attempting to use the AT_SYMLINK_NOFOLLOW flag causes\nfchmodat to return ENOTSUP. Details are in \"man fchmodat\".\n\nBionic currently differs from GLIBC in that AT_SYMLINK_NOFOLLOW\nis silently ignored and treated as if the flag wasn\u0027t present.\n\nThis patch provides a userspace implementation of\nAT_SYMLINK_NOFOLLOW for bionic. Using open(O_PATH | O_NOFOLLOW),\nwe can provide a way to atomically change the permissions on\nfiles without worrying about race conditions.\n\nAs part of this change, we add support for fchmod on O_PATH\nfile descriptors, because it\u0027s relatively straight forward\nand could be useful in the future.\n\nThe basic idea behind this implementation comes from\nhttps://sourceware.org/bugzilla/show_bug.cgi?id\u003d14578 , specifically\ncomment #10.\n\nChange-Id: I1eba0cdb2c509d9193ceecf28f13118188a3cfa7\n"
    },
    {
      "commit": "42084a265329538a9e696e41971fb5d6abe3c14f",
      "tree": "17cf4429a372a25be930c13bafb58fce4b21cc94",
      "parents": [
        "530aaeccd875f708918f59cd5ff8b076c156adab"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 02 12:24:46 2015 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 02 12:24:46 2015 -0800"
      },
      "message": "Small logging cleanup.\n\nDon\u0027t send the trailing NUL bytes to the logger, call strlen if we already\nknow the length, or cast more specifically than we need to.\n\nChange-Id: I68c9388a22bddea49120a1022dda8db8991360c1\n"
    },
    {
      "commit": "30fbf5f44c3d2f2f2d11f92e106294c41497af5f",
      "tree": "d2b928d1dc06ec9ae567168c3c07e112196e944d",
      "parents": [
        "5940f98a35d64f9ca249536bb8cdcdbfe43e9bc3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 02 10:21:39 2015 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 02 10:21:39 2015 -0800"
      },
      "message": "Fix clang build.\n\nChange-Id: I863137b5d35602267b4ef3a74399cf394c9994d6\n"
    },
    {
      "commit": "4674e3899afcc6b3ac8a48cdb716695d5489d26b",
      "tree": "b4dadb078646cbb46dd62a14c623b7e0d06619e3",
      "parents": [
        "ffbda83b302e3c3970135013d2bb92402e040fe5"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 02 09:15:19 2015 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 02 09:15:19 2015 -0800"
      },
      "message": "Fortify poll and ppoll.\n\nAnd remove the test for FD_ZERO fortification, which never made much\nsense anyway.\n\nChange-Id: Id1009c5298d461fa4722189e8ecaf22f0c529536\n"
    },
    {
      "commit": "cb0e70389ee1c4a957a842deb601666f1930d4ee",
      "tree": "e876b8453d44420a576256e8813e71f5c2c94919",
      "parents": [
        "09c3382433ae94ada45780312a2a9fd082ad1478"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jan 30 20:33:31 2015 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jan 30 20:33:31 2015 -0800"
      },
      "message": "Include \u003cmalloc.h\u003e for struct mallinfo.\n\nGCC doesn\u0027t seem to care, but clang does.\n\nChange-Id: I9884820339a9e6f142862928c357f1a538184ae0\n"
    },
    {
      "commit": "6a3ff01cd4f063556cf25706ddc9dff82c351aba",
      "tree": "688a98c07ddfecd05d706e8f6b6d3033d8ca037e",
      "parents": [
        "7f17aea2fc21aaf657824a023a4b7582fb74a2d9"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Thu Jan 29 10:47:45 2015 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Thu Jan 29 11:19:15 2015 -0800"
      },
      "message": "Rewrite __cxa_guard.cpp with \u003cstdatomic.h\u003e.\n\nBug: 19180923\nChange-Id: If4912d01db43c72ef12f4b04270ddb5d76d09462\n"
    },
    {
      "commit": "05fc1d7050d5451aea08dc5f504d2670287b2d43",
      "tree": "fa1d81b61b303ee8ed94c511cc08b8f40ed6624b",
      "parents": [
        "43606bc1ce974e4ba42d7d2c3682ad5182e6fc96"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 28 18:02:33 2015 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 28 19:23:11 2015 -0800"
      },
      "message": "Add missing includes.\n\nChange-Id: Ibf549266a19a67eb9158d341a69dddfb654be669\n"
    },
    {
      "commit": "80e6d6d825df4616808b22b5639114566c27af0e",
      "tree": "7cdb81c44f8eb5f5ffbd35f5e73f2c1198b3a8a0",
      "parents": [
        "385c07a74ca5438a6f7fe0ada2b461f880563073"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Fri Jan 23 18:21:46 2015 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Jan 27 19:49:12 2015 -0800"
      },
      "message": "Switch pthread_once_t to stdatomic.h.\n\nBug: 17574610\n\nChange-Id: I653f2aa4b5b38dbdaffe4a6c3deccfe6ad3b0e74\n"
    },
    {
      "commit": "e6099098a5fcf92c4205718ff505e784aeeaae70",
      "tree": "8ce16b63f13b300753bbcb9cc27a869b466e38ff",
      "parents": [
        "192e169a404fee48483335ed988788924266ff5d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 27 11:09:27 2015 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 27 11:09:27 2015 -0800"
      },
      "message": "Fix mips build.\n\nMove various mips-only things into the arch-mips directory. As soon as mips\nwrites assembler replacements, we can remove these.\n\nChange-Id: Ia7308559bc361f5c8df3e1d456b381865e060b93\n"
    },
    {
      "commit": "1edfd9e36acff1824c5e8dcfbdc0580dcc74e1bb",
      "tree": "7a5db76270bc56cb27127c384807b68bb0b57c63",
      "parents": [
        "5c7964c5f159bc3e1bbc577c7ace52177f399b21"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jan 26 21:45:56 2015 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jan 26 21:45:56 2015 -0800"
      },
      "message": "x86 has an assembler bcopy implementation.\n\nChange-Id: I4ed7af3c5b104f86550120401f773150c460f37b\n"
    },
    {
      "commit": "76f8916b904db14facf811ae44e1265261349702",
      "tree": "cf49d5313eb0e5a05463dbe519de48d4fddf84a9",
      "parents": [
        "419ed122aa21cf04334f21baab135ac4f9f49840"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jan 26 13:34:58 2015 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jan 26 14:28:41 2015 -0800"
      },
      "message": "Clean up \u003cstdlib.h\u003e slightly.\n\nInterestingly, this mostly involves cleaning up our implementation of\nvarious \u003cstring.h\u003e functions.\n\nChange-Id: Ifaef49b5cb997134f7bc0cc31bdac844bdb9e089\n"
    },
    {
      "commit": "b8a8cf0d1a333401eae9c9e1d70b9c1b154ff9c9",
      "tree": "1b6e04d81d4ab74f9928a79deeef386e689ae4a8",
      "parents": [
        "66eeec8e160feddc2b35c4ff9d20de92f37331dd"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Jan 24 18:36:29 2015 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jan 26 11:57:11 2015 -0800"
      },
      "message": "Add \u003cerror.h\u003e.\n\nBug: https://code.google.com/p/android/issues/detail?id\u003d79170\nChange-Id: Id91765fac45124545e2674a5b2c814707c1a448b\n"
    },
    {
      "commit": "6466292a7e47f3adfeb6721cf16e6b78b1c76625",
      "tree": "6b6def69d3527330496182d551d8e7910de38a39",
      "parents": [
        "6e15edcca5f5b35221b33e9994c236f148cb3c38"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Jan 24 14:18:16 2015 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Jan 24 14:18:16 2015 -0800"
      },
      "message": "Reduce \u003csignal.h\u003e namespace pollution.\n\n\u003csignal.h\u003e shouldn\u0027t drag in all of \u003cstring.h\u003e.\n\nChange-Id: I57aea36dad5e89ea2f9541c35594ca6225e532be\n"
    },
    {
      "commit": "c56af08c21fd93c50303370015071527e110e05d",
      "tree": "c5e949707d796bec4d7e116509bdddf79bcebb31",
      "parents": [
        "d1668a71df761eb1644496f3e2c77c16fd54bb06"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 22 11:02:59 2015 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 22 11:02:59 2015 -0800"
      },
      "message": "Use a more specific return type for app_id_from_name.\n\nI suspect we can simplify this code, but I don\u0027t know enough about it\nto get involved now.\n\nChange-Id: I1c39761ae31beb70d41ffa6f0e396a4f17529d46\n"
    },
    {
      "commit": "8b5df3920f2843c9cdf04160517c1e8b77c992f5",
      "tree": "a0a678ee8f107e5c25f937f444a970a0539d2af7",
      "parents": [
        "2a8c929aaf8d34d2b6e89ed9c8b6da163316143e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 21 16:19:07 2015 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 21 17:09:58 2015 -0800"
      },
      "message": "Turn on -Wold-style-cast and fix the errors.\n\nA couple of dodgy cases where we cast away const, but otherwise pretty boring.\n\nChange-Id: Ibc39ebd525377792b5911464be842121c20f03b9\n"
    },
    {
      "commit": "19e246dda6772ffc532b1762cd7870d6c3b01c12",
      "tree": "93ab36fe44bc75b7366ad6d362ba25bc4ba4d994",
      "parents": [
        "deab11acd7000573ad9c034e5bf9475aadbc5cbe"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Thu Dec 18 14:22:09 2014 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Thu Jan 15 10:45:25 2015 -0800"
      },
      "message": "Fix possible leak in pthread_detach.\n\nIf pthread_detach() is called while the thread is in pthread_exit(),\nit takes the risk that no one can free the pthread_internal_t.\nSo I add PTHREAD_ATTR_FLAG_ZOMBIE to detect this, maybe very rare, but\nboth glibc and netbsd libpthread have similar function.\n\nChange-Id: Iaa15f651903b8ca07aaa7bd4de46ff14a2f93835\n"
    },
    {
      "commit": "917d390510e442b9b030d54992ebf41cc1e7f853",
      "tree": "fd11b414b2b5f550c20944d916b07533d125b061",
      "parents": [
        "b5e508cfee2355bad0502587e4fce8f4173584d6"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Thu Jan 08 12:32:42 2015 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Thu Jan 08 14:27:24 2015 -0800"
      },
      "message": "Make pthread stack size match real range.\n\nBug: 18908062\nChange-Id: I7037ac8273ebe54dd19b1561c7a376819049124c\n"
    },
    {
      "commit": "ac8f2810297cd6c104aad38686627fcc13591347",
      "tree": "533068d127ce999bb2b90715c59ee6e27d262b73",
      "parents": [
        "8004f735f1bad7255268392e2c7ac648f0702e5e",
        "30e59c4c691d493fda7da35307db69ced61e7cf4"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 07 02:59:26 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 07 02:59:26 2015 +0000"
      },
      "message": "Merge \"_Unwind_Context is a struct.\""
    },
    {
      "commit": "30e59c4c691d493fda7da35307db69ced61e7cf4",
      "tree": "037fed2bb268f386bb8d3d25da3064ce8fe4235f",
      "parents": [
        "d3de1ddef1427708581af4df02943486783f980d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 06 18:48:24 2015 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 06 18:48:24 2015 -0800"
      },
      "message": "_Unwind_Context is a struct.\n\nChange-Id: Iff2c52dc630eb83b931a78fdebc4494d69462db7\n"
    },
    {
      "commit": "ba8dfc2669d658dc340eb8f9c9b40ca074f05047",
      "tree": "d8e34d3dd322641c80c2605457378afd60d0bdfb",
      "parents": [
        "597800f1d71590fc9ad51ce5227280586b2ceda5"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Jan 06 09:31:00 2015 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Jan 06 17:11:23 2015 -0800"
      },
      "message": "Remove PTHREAD_ATTR_FLAG_USER_ALLOCATED_STACK.\n\nPatch for https://android-review.googlesource.com/#/c/120844/.\n\nChange-Id: Idca5ccd7b28e8f07f1d2d1b6e3bba6781b62f0e0\n"
    },
    {
      "commit": "541b0b187dd91684efdcebf72c8830e976ca04a6",
      "tree": "b8024208fd26e7b23cae5ef6e8d15f8db61c9cb8",
      "parents": [
        "9b6164ca8d7b2c5e7fced1cbbda6c353e6e21e54",
        "6a7aaf46759db32c6ed0eb953a4a230dc96af0d9"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Fri Jan 02 22:37:55 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 02 22:37:56 2015 +0000"
      },
      "message": "Merge \"Reserve enough user request stack space in pthread_create.\""
    },
    {
      "commit": "6a7aaf46759db32c6ed0eb953a4a230dc96af0d9",
      "tree": "89b9cbd40571d38d60c19730224c90efd0fb4ebf",
      "parents": [
        "a2177c6ccb65104659543c895b753458abfadcab"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Mon Dec 22 19:17:33 2014 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Fri Jan 02 14:33:48 2015 -0800"
      },
      "message": "Reserve enough user request stack space in pthread_create.\n\nBug: 18830897\nChange-Id: I1ba4aaeaf66a7ff99c5d82ad45469011171b0a3b\n"
    },
    {
      "commit": "40360b379cee07574493f5a450cf1c6e531bdde0",
      "tree": "2b16a06dc25f1c3f51e94dc099513464f615e622",
      "parents": [
        "0a552407ada6fc718be016df0902f6c23aa88eea"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Dec 29 13:29:50 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Dec 29 13:29:50 2014 -0800"
      },
      "message": "Remove bogus transitive includes.\n\n\u003csignal.h\u003e shouldn\u0027t get you the contents of \u003cerrno.h\u003e, and \u003cfcntl.h\u003e\nshouldn\u0027t get you the contents of \u003cunistd.h\u003e.\n\nChange-Id: I347499cd8671bfee98e6b8e875a97cab3a3655d3\n"
    },
    {
      "commit": "246bcb10b64d4b02a40f5d4c744640c1fb7183e5",
      "tree": "5d79944be3147a1ff7fa7d3ce8849a3f8593703a",
      "parents": [
        "8cf1b305670123aed7638d984ca39bfd22388440"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Fri Dec 19 16:31:03 2014 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Fri Dec 19 16:31:03 2014 -0800"
      },
      "message": "Remove t-\u003etls\u003d\u003dNULL check in pthread_key_delete.\n\nChange-Id: I6c0c71d30fe9d5b888752a4204abd95d5149bb96\n"
    },
    {
      "commit": "8cf1b305670123aed7638d984ca39bfd22388440",
      "tree": "f8fc12a882822ca1ba41b68d84414e252faade9c",
      "parents": [
        "c631bb215e29981222f19c092ded49c7c1f15845"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Wed Dec 03 21:36:24 2014 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Fri Dec 19 16:05:29 2014 -0800"
      },
      "message": "Use mmap to create the pthread_internal_t\n\nAdd name to mmaped regions.\nAdd pthread benchmark code.\nAllocate pthread_internal_t on regular stack.\n\nBug: 16847284\nChange-Id: Id60835163bb0d68092241f1a118015b5a8f85069\n"
    },
    {
      "commit": "7874f1d7182d80eb72c699eaa9ab8cc4cfec95ab",
      "tree": "4348cc097c742280038ff78b454d6cd513cd619e",
      "parents": [
        "9dd5ab46194a3ef7992b0c08d18f2e30551f9331"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 18 13:36:25 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 18 15:01:10 2014 -0800"
      },
      "message": "Split the shared group data from the shared passwd data.\n\nFound by the toybox id(1) which calls both getpwuid(3) and getgrgid(3) before\nlooking at either result. The use of a shared buffer in this code meant that\neven on a single thread, the data for any of the passwd functions would be\nclobbered by the data for any of the group functions (or vice versa).\n\nThis might seem like an insufficient fix, but POSIX explicitly says (for\ngetpwnam) that the result \"might be overwritten by a subsequent call to\ngetpwent(), getpwnam(), or getpwuid()\" and likewise for other members of\nthat group, plus equivalent text for the group-related functions.\n\nChange-Id: I2272f47e91f72e043fdaf7c169fa9f6978ff4370\n"
    },
    {
      "commit": "6c238f2926e69a950f0671ae5519584c20d84196",
      "tree": "a3593ca9ef0940c7518e47632c67047ad89cad40",
      "parents": [
        "6d634f9baaf804a91c97e019c832c1e9611a903a"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Thu Dec 11 20:50:41 2014 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Fri Dec 12 17:00:08 2014 -0800"
      },
      "message": "Fix pthread key num calculation.\n\nBug: 18723085\nChange-Id: Iba2c834b350e4cdba0b2d771b221560a3e5df952\n"
    },
    {
      "commit": "a381fe8ebcd196614a00f4dca3539e0860ef9e84",
      "tree": "3554d98520ded579dcc9ad2e5e4f36e23f3f7b5f",
      "parents": [
        "3592743f7191c69ae1fd2d7e01222bd380d93d3e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Dec 09 20:30:23 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Dec 09 20:30:23 2014 -0800"
      },
      "message": "Fix ptsname(3) and ttyname(3) to use TLS.\n\nBe safe by default.\n\nChange-Id: I6c4a3f1fd4eee3a651b3162ce95b7e873de57521\n"
    },
    {
      "commit": "94926f8cfa0adf37c4e19256ade7261a97f72e51",
      "tree": "8c990320ebf445406d3d50be443db10cd58eee42",
      "parents": [
        "b033761cbf0e79ade9a8c956c2e63b42ee838183",
        "634816055f51c536d24dea30dfe930b7fe2fa603"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Dec 09 20:10:19 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 09 20:10:19 2014 +0000"
      },
      "message": "Merge \"support _POSIX_REALTIME_SIGNALS\""
    },
    {
      "commit": "725756045e03ea6f7ef00d02e883ef2914d06dde",
      "tree": "f659fe46a294ec77a2b617e82d725642e0c70bf7",
      "parents": [
        "734f0d645e461a1061c879e5bd964592d3f326ee"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Mon Dec 08 11:54:12 2014 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Dec 09 09:16:11 2014 -0800"
      },
      "message": "Change _POSIX_CPUTIME macro to make it compitable with glibc.\n\nChange-Id: I7a8dbb74bd622693c9fef60bd779687207517b7d\n"
    },
    {
      "commit": "634816055f51c536d24dea30dfe930b7fe2fa603",
      "tree": "5d3739b116df16774776010538254c10007c0a76",
      "parents": [
        "f64c43ba6c9244c50e904961dc432f04b1dfcfd9"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Mon Dec 01 17:41:04 2014 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Mon Dec 08 21:52:43 2014 -0800"
      },
      "message": "support _POSIX_REALTIME_SIGNALS\n\nBug: 18489947\nChange-Id: I2e834d68bc10ca5fc7ebde047b517a3074179475\n"
    },
    {
      "commit": "2421406711e0b2e214234add79c842bbb2c07ca1",
      "tree": "6526f4bb3eee3255e41ce12f9e3b0849a3732768",
      "parents": [
        "9e08a7bbb85179da9ef56ee4bdc87078bfe5c30d",
        "1f40be97b16ff895a50f48ae8dd1745f57688b6b"
      ],
      "author": {
        "name": "Tao Bao",
        "email": "tbao@google.com",
        "time": "Fri Dec 05 18:11:53 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 05 18:11:53 2014 +0000"
      },
      "message": "Merge \"Add cache related sysconf queries\""
    },
    {
      "commit": "1f40be97b16ff895a50f48ae8dd1745f57688b6b",
      "tree": "90bf09026ded666938ba1c2682370fcbaa14d02c",
      "parents": [
        "6bec3484ee1e90662c8c5e52c71fcdc430a7b619"
      ],
      "author": {
        "name": "Tao Bao",
        "email": "tbao@google.com",
        "time": "Thu Dec 04 15:24:28 2014 -0800"
      },
      "committer": {
        "name": "Tao Bao",
        "email": "tbao@google.com",
        "time": "Thu Dec 04 15:24:28 2014 -0800"
      },
      "message": "Add cache related sysconf queries\n\nSeveral cache related queries are added, such as\n_SC_LEVEL1_DCACHE_LINESIZE, _SC_LEVEL1_DCACHE_SIZE and etc. For the\nmoment, we always return 0 for these queries.\n\nChange-Id: I36f67af8128672d8c1eef49d6f2431cca5a94719\n"
    },
    {
      "commit": "5afae64a1bac56638c6348f0c8f5e9d61b654029",
      "tree": "596b834f553f804c84a13615f30ff6ad67201303",
      "parents": [
        "230005c4bd3910ef974694f88d04e6f6a5a540b4"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Nov 25 20:17:27 2014 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Thu Dec 04 11:01:28 2014 -0800"
      },
      "message": "implement posix_madvise\n\nBug: 18472477\nChange-Id: I8183de6c281acf69ed5f7f88351b056b9827b162\n"
    },
    {
      "commit": "65f0df78730fb0d6994f9d4d0a16dc0241081d94",
      "tree": "d05ddfa7188f1943afb3132a9e5da9c575db751c",
      "parents": [
        "91a61f77e203bf519c28f9331b9c8db731869499"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Dec 03 14:39:20 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Dec 03 15:55:34 2014 -0800"
      },
      "message": "Implement \u003cpty.h\u003e.\n\nBased on the package/apps/Terminal implementation. I\u0027ll switch them over\nshortly. This also lets us build the toybox version of netcat.\n\nChange-Id: Ia922a100141a67409264b43b937eeca07b21f344\n"
    },
    {
      "commit": "8574a0670bf698b8d2f817098f9d825c4be03a68",
      "tree": "f01c1cd0cab5ff4bad74f9be90cd1dc0cc822513",
      "parents": [
        "46d0b81a9465bf74fe44a881365c332dc6173f2f"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Mon Dec 01 22:37:56 2014 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Dec 02 10:39:25 2014 -0800"
      },
      "message": "Use mmap to create the pthread_internal_t.\n\nBug: 16847284\nChange-Id: I488fa236f57aa3acb29b4ffbbab2fab51b0653be\n"
    },
    {
      "commit": "212e0e38248860b151b28877225629a988d95b58",
      "tree": "f43f3b8bc2472d2584750052171a0d6da5277e25",
      "parents": [
        "076f69d828cfa5d30360e1dd2f24acd751d4a461"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Dec 01 16:43:51 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Dec 01 16:43:51 2014 -0800"
      },
      "message": "Build our benchmarks against glibc too.\n\nBug: 18556607\nChange-Id: I455ac8b93c0835836180e549486bc52d393ee6a6\n"
    },
    {
      "commit": "d5c652756bb1a52959cd5c62447b62462f90f983",
      "tree": "8804bb959d8d66a5a8557683416c254f2fc98530",
      "parents": [
        "f64c43ba6c9244c50e904961dc432f04b1dfcfd9"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Wed Nov 26 14:04:26 2014 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Wed Nov 26 17:14:50 2014 -0800"
      },
      "message": "support _POSIX_CPUTIME\n\nBug: 18490039\nChange-Id: I01fa83b48e1b908de1f227b6e4f98e280bcd50ee\n"
    },
    {
      "commit": "5b8ceff5f87889e781c13305767e140afd28eb76",
      "tree": "ad95ccbfbc12b6a75ef56e6646cea4aee94b675c",
      "parents": [
        "cc5f6543e3f91385b9a912438965b7e8265df54a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 26 11:53:44 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 26 11:56:54 2014 +0000"
      },
      "message": "Revert \"Use mmap to create the pthread_internal_t.\"\n\nUnfortunately, this change provokes random crashes for ART, and\nI have seen libc crashes on the device that might be related to it.\n\nReverting it fixes the ART crashes. there is unfortunately no\nstack trace for the crashes, but just a \"Segmentation fault\" message.\n\n\nThis reverts commit cc5f6543e3f91385b9a912438965b7e8265df54a.\n\nChange-Id: I68dca8e1e9b9edcce7eb84596e8db619e40e8052"
    },
    {
      "commit": "cc5f6543e3f91385b9a912438965b7e8265df54a",
      "tree": "5176225b4d6b6f62ab590563022901042de44d8e",
      "parents": [
        "eb3a5e026e65ea80b17580a71f4451f5cf5d6612"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Nov 25 14:18:12 2014 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Nov 25 15:25:06 2014 -0800"
      },
      "message": "Use mmap to create the pthread_internal_t.\n\nBug: 16847284\nChange-Id: Ic8c85f95afac1d8422ecb69674c688d1fecb6a44\n"
    },
    {
      "commit": "eb3a5e026e65ea80b17580a71f4451f5cf5d6612",
      "tree": "ad95ccbfbc12b6a75ef56e6646cea4aee94b675c",
      "parents": [
        "95a02366f2697ed65c4a2849a9cbde3d403142e3",
        "1c19194c9d2518dbe86973cd313a277ecb70d75c"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Mon Nov 24 01:59:22 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 24 01:59:23 2014 +0000"
      },
      "message": "Merge \"flesh out sysconf(3) and the _POSIX_* constants\""
    },
    {
      "commit": "95a02366f2697ed65c4a2849a9cbde3d403142e3",
      "tree": "4be53f2bac256bc5dc9dfd6eb0e9399969a06b42",
      "parents": [
        "806dd9f90c8daadfafd19d69e3f36bb00729cb8e",
        "2818279ace22fb854b00e668c224492c4dd072a4"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Nov 23 18:06:28 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sun Nov 23 18:06:29 2014 +0000"
      },
      "message": "Merge \"Sync with upstream OpenBSD fts.c.\""
    },
    {
      "commit": "2818279ace22fb854b00e668c224492c4dd072a4",
      "tree": "140347ce51972bf59c53cd9798ce97567d776dab",
      "parents": [
        "770198d3f707d5eccd6796f311015903aec31b26"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Nov 21 19:25:27 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Nov 21 19:27:28 2014 -0800"
      },
      "message": "Sync with upstream OpenBSD fts.c.\n\nChange-Id: Ia7e26b603f6461095b5a8d7e8a6cdf4f8279fa84\n"
    },
    {
      "commit": "1c19194c9d2518dbe86973cd313a277ecb70d75c",
      "tree": "46cffb5ae65c870a36e217b2b9a7b27e2c3154be",
      "parents": [
        "27aa9c5b50cc3e979fc67c1bf5296dfd725c8540"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Wed Nov 19 19:49:14 2014 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Fri Nov 21 19:10:52 2014 -0800"
      },
      "message": "flesh out sysconf(3) and the _POSIX_* constants\n\nBug: 17571891\nChange-Id: I81036615486bde65969ae5662587fcc88348474e\n"
    },
    {
      "commit": "75ef63d6cf83787233d1c45489c4ec03b0a67d16",
      "tree": "af1358c723e21ebfbd48a4dfd2abc3f262cb309d",
      "parents": [
        "f6640348876cd1d4d43cc95cf63306fedb83d8b9"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Nov 21 00:18:07 2014 -0800"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Nov 21 10:26:09 2014 -0800"
      },
      "message": "Move some pthread functions to signal.h.\n\nPOSIX specifies that pthread_kill(3) and pthread_sigmask(3) are\nsupposed to live in signal.h rather than pthread.h.\n\nSince signal.h now needs pthread_t and pthread_attr_t, I\u0027ve moved\nthose defintions into include/machine/pthread_types.h to keep the\nnamespace clean. I also sorted some includes. The combination of these\ntwo things seems to have exploded into a cascade of missing includes,\nso this patch also cleans up all those.\n\nChange-Id: Icfa92a39432fe83f542a797e5a113289d7e4ad0c\n"
    },
    {
      "commit": "5313c3ff89db33dc0af3fabfe142a7219adce0aa",
      "tree": "1bd25039b6d60e9ee77325daadf8d13c7f296c6f",
      "parents": [
        "6b48b20a1e613dcb41704deb266142a7cc45588c",
        "c48c3e4bb3d1665f3e9fa2785daafa72dfe59399"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 19 23:48:19 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 19 23:48:19 2014 +0000"
      },
      "message": "Merge \"Fix flockfile(3) and friends for stdin/stdout/stderr too.\""
    },
    {
      "commit": "c48c3e4bb3d1665f3e9fa2785daafa72dfe59399",
      "tree": "9a77515a49315acd7b7441349d5157597f2f76d8",
      "parents": [
        "27aa9c5b50cc3e979fc67c1bf5296dfd725c8540"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 19 15:16:51 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 19 15:16:51 2014 -0800"
      },
      "message": "Fix flockfile(3) and friends for stdin/stdout/stderr too.\n\nstdin/stdout/stderr are special; their mutexes are initialized by\n__sinit. There\u0027s no unit test for this, because __sinit has already\nbeen called by the time the first unit test runs, but you could\nreproduce this failure with a trivial main() that calls flockfile\nor ftrylockfile on one of the standard streams before otherwise\nusing stdio.\n\nBug: 18208568\nChange-Id: I28d232cf05a9f198a2bed61854d8047b23d2091d\n"
    },
    {
      "commit": "a04c79b9d38cf9c8d3c79f4bbbfc45c9da9c0143",
      "tree": "5b50e3bbabd78ddcac3ada8564814aeac6f96086",
      "parents": [
        "ee4c8febb7bd1f5492486cc11980f925425b02ec"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Nov 18 16:14:54 2014 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Nov 18 19:58:04 2014 -0800"
      },
      "message": "fix shared gid support in getpwnam/getgrnam\n\nBug: 18374693\nChange-Id: I5353403cbbead6f6abac87bee2cf53a60dba408c\n"
    },
    {
      "commit": "9d93986481b67a8135e57fc6400ca8c59f7375f6",
      "tree": "f73d192d6191ef495a63be7fc27130190ba9e79d",
      "parents": [
        "661423a453b2692d592df56307a876dfc35c50f2"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Fri Nov 14 15:51:58 2014 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Fri Nov 14 16:22:48 2014 -0800"
      },
      "message": "Add functions in sysinfo.h.\n\nBug: 17703902\n\nChange-Id: I699d12d76a8fc483c919be730c2ac63641b71a1d\n"
    },
    {
      "commit": "661423a453b2692d592df56307a876dfc35c50f2",
      "tree": "6526acffcca10d34b9e31c94771aa9515f78f1b5",
      "parents": [
        "4cf942d318f2856dff078798ce9a3eac5de593b7",
        "b5e581abfe28de8ed6c8c8af1c265bb4e36f97bb"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Fri Nov 14 23:45:44 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 14 23:45:45 2014 +0000"
      },
      "message": "Merge \"Increase support of pathconf options.\""
    },
    {
      "commit": "b5e581abfe28de8ed6c8c8af1c265bb4e36f97bb",
      "tree": "fef160a2d4f88f2e5e38a7bfbda48458c3c48b93",
      "parents": [
        "e5cabca516252addb5e305c8e1e0f35cafbcafbe"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Sat Nov 08 14:58:12 2014 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Fri Nov 14 23:45:24 2014 +0000"
      },
      "message": "Increase support of pathconf options.\n\nBug: 18206366\nChange-Id: Ie770e49f5af3631eb9fbd2cd5174edf004c81e00"
    },
    {
      "commit": "60d84af1726225320b26683b726e5e735d9d76e8",
      "tree": "e8eec3ae90eecfffa1ce0ada103512b9819f3ef1",
      "parents": [
        "cdcef73a23833ebd50bb5b654eb278b164e286ad"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Nov 14 15:14:44 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Nov 14 15:14:44 2014 -0800"
      },
      "message": "sysconf(3) returns long.\n\nOn LP32, this makes no difference. Not an ABI change.\n\nOn LP64, results are going to be in %rax or x0 whether they\u0027re 32- or 64-bit,\nand the only difference is going to be whether the top bits are clobbered.\n\nBug: 18390956\nChange-Id: I0bd4496231bdded34c1fa03e895021ac0df7f8e1\n"
    },
    {
      "commit": "e3c4acf1e3ef36c2ab1f48b1261dec9a1d8330a4",
      "tree": "68632a0f7a6f832a2c4778a60739d5320673ce33",
      "parents": [
        "288fa03a5aa5ee69c321e7266cdc656d11d8c022"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 13 14:27:25 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 13 15:51:36 2014 -0800"
      },
      "message": "Fix our \u003cmntent.h\u003e implementation.\n\nUsed by toybox.\n\nChange-Id: I36a5053423e5cc54ae02a68f4fe110d75134accd\n"
    },
    {
      "commit": "68d98d832b7935ed5be23836c481a14f00b19ef1",
      "tree": "8055b8a2ba805a99544318feca3d7d894fe93955",
      "parents": [
        "92a585c91a83e63949431c617de936742b080150"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 12 21:03:26 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 12 21:03:26 2014 -0800"
      },
      "message": "Assume glibc \u003e\u003d 2.15.\n\nThis catches one trivial difference between us and glibc --- the error\nreturned by pthread_setname_np for an invalid pthread_t.\n\nChange-Id: If4c21e22107c6488333d11184f8005f8669096c2\n"
    },
    {
      "commit": "e5cabca516252addb5e305c8e1e0f35cafbcafbe",
      "tree": "14bd9f3daf5fd217f97edcaee315dcb9171f0beb",
      "parents": [
        "bbdfa518830d49565966acea02796769434e0d74",
        "5ca4a9e2da46db30ad6d8556b61679d138aaf88d"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Wed Nov 12 20:36:25 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 12 20:36:26 2014 +0000"
      },
      "message": "Merge \"implement missing seekdir and telldir\""
    },
    {
      "commit": "2f954bab2d524f6afed8a443c2a7ee32876db0fa",
      "tree": "7437b6e2e570e89df2b893f30d111e6b7acb3a1d",
      "parents": [
        "d94e7f0f1d95e0da73fca8d591fdb56b69d82653"
      ],
      "author": {
        "name": "Yongqin Liu",
        "email": "yongqin.liu@linaro.org",
        "time": "Thu Oct 30 16:34:55 2014 +0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 12 12:07:33 2014 -0800"
      },
      "message": "gethostname.c: change to report ENAMETOOLONG error when buflen is less\n\nchange to behaviour the same as glibc for the check about buflen\n\nChange-Id: I98265a8fe441df6fed2527686f89b087364ca53d\nSigned-off-by: Yongqin Liu \u003cyongqin.liu@linaro.org\u003e\n"
    },
    {
      "commit": "5ca4a9e2da46db30ad6d8556b61679d138aaf88d",
      "tree": "fe013b8b41e1eb1388c5f76931f6f1c24331f905",
      "parents": [
        "9df70403d95f5cfe6824e38a9a6c35f9b9bbc76a"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Thu Nov 06 19:55:09 2014 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Fri Nov 07 10:20:32 2014 -0800"
      },
      "message": "implement missing seekdir and telldir\n\nBug: 18266863\nChange-Id: I189ee949d4f7ccee099f3341e349cd969d25480f\n"
    },
    {
      "commit": "b20c24456e43df430ec5626a68e5dc0dc6929344",
      "tree": "c9b85b4d913f8f2738bdc8772b9b9a21d6ab51dc",
      "parents": [
        "08a70184b42ef2963794a56233b0253e0b367253"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 06 15:04:08 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 06 15:52:22 2014 -0800"
      },
      "message": "Implement all the POSIX _l functions.\n\nStrictly speaking, this only implements the _l variants of the functions\nwe actually have. We\u0027re still missing nl_langinfo_l, for example, but we\ndon\u0027t have nl_langinfo either.\n\nChange-Id: Ie711c7b04e7b9100932a13f5a5d5b28847eb4c12\n"
    },
    {
      "commit": "7e0d0f8572152c47a993e7bc8407690556754bd4",
      "tree": "4098f53c0801f8076c1080604ab98a363efdbd41",
      "parents": [
        "695781b6f0419f82939176a6ec1a240300d9f036"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Nov 04 18:03:44 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Nov 04 18:03:44 2014 -0800"
      },
      "message": "Fix newlocale with a NULL locale name.\n\nBug: https://code.google.com/p/android/issues/detail?id\u003d78567\nChange-Id: I272dabc12ab186b44a525c7e8ac1846e62334e85\n"
    },
    {
      "commit": "5b1111a6949b6751ce72bd0b034b7bbe6246a6b6",
      "tree": "0a081fcbc3a39613d611be2e5537eee737967052",
      "parents": [
        "c716dd1e21438ac6585be79fb799b3135e9b381f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Oct 24 19:33:11 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Oct 24 19:33:11 2014 -0700"
      },
      "message": "POSIX says pthread_mutex_trylock returns EBUSY, not EDEADLK.\n\nFound by unit test.\n\nChange-Id: Iffbd2f04213616927fbd7b5419460031f7a078e9\n"
    },
    {
      "commit": "ca8e84c6ff55640aef94d25a86a25778a542bfc2",
      "tree": "9bb5852afef5b61cf906caee58cfea12d65e0b0b",
      "parents": [
        "6c5694b6c8343d740c36adbe904442cecd8030a6"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 23 19:10:23 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 23 19:10:54 2014 -0700"
      },
      "message": "Add mkfifoat(3).\n\nLooks like I missed one of the *at functions when I added the rest.\n\nChange-Id: If16de82dbf6f9a3ea7bfdcba406ca1c74a3f2279\n"
    },
    {
      "commit": "62d84b19359a8ddd3df5b6293d1b05ef5281f532",
      "tree": "b614f0c9c9671eb6beaec448a7d22dc1ad44e298",
      "parents": [
        "098cf45f4e853f3c85c14af0e475bfae0839f027"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Oct 20 19:09:19 2014 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Oct 22 13:20:39 2014 -0700"
      },
      "message": "Fix race condition in timer disarm/delete.\n\nWhen setting a repeat timer using the SIGEV_THREAD mechanism, it\u0027s possible\nthat the callback can be called after the timer is disarmed or deleted.\nThis happens because the kernel can generate signals that the timer thread\nwill continue to handle even after the timer is supposed to be off.\n\nAdd two new tests to verify that disarming/deleting doesn\u0027t continue to\ncall the callback.\n\nModify the repeat test to finish more quickly than before.\n\nRefactor the Counter implementation a bit.\n\nBug: 18039727\n\n(cherry pick from commit 0724132c3263145f2a667f453a199d313a5b3d9f)\n\nChange-Id: I135726ea4038a47920a6c511708813b1a9996c42\n"
    }
  ],
  "next": "18160256840e9bb097f17422ea47d54fabbc9f3f"
}
