summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew Hsieh <andrewhsieh@google.com>2014-05-09 21:37:30 +0800
committerAndrew Hsieh <andrewhsieh@google.com>2014-05-09 23:42:43 +0800
commit1b1d56acc5281d0201fdbe8539012a2dbf09bc8f (patch)
tree5c6aeb7acb5aa97762a1b97c74e754855455e083
parent5fd2a238a3a2697a4cde0e4ed2a8b05b3791fb43 (diff)
downloadprebuilts_ndk-1b1d56acc5281d0201fdbe8539012a2dbf09bc8f.zip
prebuilts_ndk-1b1d56acc5281d0201fdbe8539012a2dbf09bc8f.tar.gz
prebuilts_ndk-1b1d56acc5281d0201fdbe8539012a2dbf09bc8f.tar.bz2
Refresh 64-bit headers/libs; upgrade libc++ to r207307
to bionic: adfc007dbf936bd021d79ba2d2c360a3cfc77be9 5/19 2014 Change-Id: Id9994bab1ab8240853890c108e8aaa3ebac47fa8
-rwxr-xr-x8/sources/cxx-stl/gabi++/libs/arm64-v8a/libgabi++_shared.sobin88833 -> 52057 bytes
-rw-r--r--8/sources/cxx-stl/gabi++/libs/arm64-v8a/libgabi++_static.abin111584 -> 111624 bytes
-rwxr-xr-x8/sources/cxx-stl/gabi++/libs/mips64/libgabi++_shared.sobin88500 -> 49866 bytes
-rw-r--r--8/sources/cxx-stl/gabi++/libs/mips64/libgabi++_static.abin123000 -> 123040 bytes
-rwxr-xr-x8/sources/cxx-stl/gabi++/libs/x86_64/libgabi++_shared.sobin46344 -> 46392 bytes
-rw-r--r--8/sources/cxx-stl/gabi++/libs/x86_64/libgabi++_static.abin107608 -> 107632 bytes
-rwxr-xr-x8/sources/cxx-stl/stlport/libs/arm64-v8a/libstlport_shared.sobin786403 -> 727655 bytes
-rw-r--r--8/sources/cxx-stl/stlport/libs/arm64-v8a/libstlport_static.abin1224738 -> 1228774 bytes
-rwxr-xr-x8/sources/cxx-stl/stlport/libs/mips64/libstlport_shared.sobin820195 -> 761521 bytes
-rw-r--r--8/sources/cxx-stl/stlport/libs/mips64/libstlport_static.abin1504916 -> 1508028 bytes
-rwxr-xr-x8/sources/cxx-stl/stlport/libs/x86_64/libstlport_shared.sobin717624 -> 718128 bytes
-rw-r--r--8/sources/cxx-stl/stlport/libs/x86_64/libstlport_static.abin1187256 -> 1184440 bytes
-rw-r--r--9/platforms/android-19/arch-arm64/usr/include/android/dlext.h70
-rw-r--r--9/platforms/android-19/arch-arm64/usr/include/asm-generic/signal.h6
-rw-r--r--9/platforms/android-19/arch-arm64/usr/include/ctype.h122
-rw-r--r--9/platforms/android-19/arch-arm64/usr/include/inttypes.h10
-rw-r--r--9/platforms/android-19/arch-arm64/usr/include/limits.h2
-rw-r--r--9/platforms/android-19/arch-arm64/usr/include/linux/prctl.h3
-rw-r--r--9/platforms/android-19/arch-arm64/usr/include/locale.h28
-rw-r--r--9/platforms/android-19/arch-arm64/usr/include/machine/ieee.h179
-rw-r--r--9/platforms/android-19/arch-arm64/usr/include/machine/wchar_limits.h42
-rw-r--r--9/platforms/android-19/arch-arm64/usr/include/math.h56
-rw-r--r--9/platforms/android-19/arch-arm64/usr/include/pthread.h41
-rw-r--r--9/platforms/android-19/arch-arm64/usr/include/sched.h189
-rw-r--r--9/platforms/android-19/arch-arm64/usr/include/semaphore.h7
-rw-r--r--9/platforms/android-19/arch-arm64/usr/include/signal.h6
-rw-r--r--9/platforms/android-19/arch-arm64/usr/include/stdint.h19
-rw-r--r--9/platforms/android-19/arch-arm64/usr/include/stdlib.h20
-rw-r--r--9/platforms/android-19/arch-arm64/usr/include/sys/cdefs_elf.h25
-rw-r--r--9/platforms/android-19/arch-arm64/usr/include/sys/epoll.h6
-rw-r--r--9/platforms/android-19/arch-arm64/usr/include/sys/types.h5
-rw-r--r--9/platforms/android-19/arch-arm64/usr/include/sys/user.h12
-rw-r--r--9/platforms/android-19/arch-arm64/usr/include/time64.h37
-rw-r--r--9/platforms/android-19/arch-arm64/usr/include/unistd.h3
-rw-r--r--9/platforms/android-19/arch-arm64/usr/include/utmp.h12
-rw-r--r--9/platforms/android-19/arch-arm64/usr/include/wchar.h48
-rw-r--r--9/platforms/android-19/arch-arm64/usr/lib/crtbegin_dynamic.obin2388 -> 2485 bytes
-rw-r--r--9/platforms/android-19/arch-arm64/usr/lib/crtbegin_so.obin1568 -> 1738 bytes
-rw-r--r--9/platforms/android-19/arch-arm64/usr/lib/crtbegin_static.obin2388 -> 2485 bytes
-rw-r--r--9/platforms/android-19/arch-arm64/usr/lib/crtend_android.obin1089 -> 1089 bytes
-rw-r--r--9/platforms/android-19/arch-arm64/usr/lib/crtend_so.obin977 -> 977 bytes
-rwxr-xr-x9/platforms/android-19/arch-arm64/usr/lib/libEGL.sobin68786 -> 5987 bytes
-rwxr-xr-x9/platforms/android-19/arch-arm64/usr/lib/libGLESv1_CM.sobin78466 -> 28171 bytes
-rwxr-xr-x9/platforms/android-19/arch-arm64/usr/lib/libGLESv2.sobin75743 -> 21848 bytes
-rwxr-xr-x9/platforms/android-19/arch-arm64/usr/lib/libGLESv3.sobin78153 -> 27426 bytes
-rwxr-xr-x9/platforms/android-19/arch-arm64/usr/lib/libOpenMAXAL.sobin69300 -> 6821 bytes
-rwxr-xr-x9/platforms/android-19/arch-arm64/usr/lib/libOpenSLES.sobin69657 -> 7570 bytes
-rwxr-xr-x9/platforms/android-19/arch-arm64/usr/lib/libandroid.sobin75696 -> 21249 bytes
-rw-r--r--9/platforms/android-19/arch-arm64/usr/lib/libc.abin8525344 -> 9699426 bytes
-rwxr-xr-x9/platforms/android-19/arch-arm64/usr/lib/libc.sobin108655 -> 100360 bytes
-rwxr-xr-x9/platforms/android-19/arch-arm64/usr/lib/libdl.sobin67474 -> 3078 bytes
-rwxr-xr-x9/platforms/android-19/arch-arm64/usr/lib/libjnigraphics.sobin67317 -> 2638 bytes
-rwxr-xr-x9/platforms/android-19/arch-arm64/usr/lib/liblog.sobin67588 -> 3221 bytes
-rw-r--r--9/platforms/android-19/arch-arm64/usr/lib/libm.abin2857404 -> 2825072 bytes
-rwxr-xr-x9/platforms/android-19/arch-arm64/usr/lib/libm.sobin77488 -> 25566 bytes
-rw-r--r--9/platforms/android-19/arch-arm64/usr/lib/libstdc++.abin42816 -> 42816 bytes
-rwxr-xr-x9/platforms/android-19/arch-arm64/usr/lib/libstdc++.sobin82496 -> 4789 bytes
-rw-r--r--9/platforms/android-19/arch-arm64/usr/lib/libz.abin1162974 -> 1162974 bytes
-rw-r--r--9/platforms/android-19/arch-mips64/usr/include/android/dlext.h70
-rw-r--r--9/platforms/android-19/arch-mips64/usr/include/asm-generic/signal.h6
-rw-r--r--9/platforms/android-19/arch-mips64/usr/include/asm/siginfo.h1
-rw-r--r--9/platforms/android-19/arch-mips64/usr/include/asm/signal.h4
-rw-r--r--9/platforms/android-19/arch-mips64/usr/include/ctype.h122
-rw-r--r--9/platforms/android-19/arch-mips64/usr/include/inttypes.h10
-rw-r--r--9/platforms/android-19/arch-mips64/usr/include/limits.h2
-rw-r--r--9/platforms/android-19/arch-mips64/usr/include/linux/prctl.h3
-rw-r--r--9/platforms/android-19/arch-mips64/usr/include/locale.h28
-rw-r--r--9/platforms/android-19/arch-mips64/usr/include/machine/ieee.h181
-rw-r--r--9/platforms/android-19/arch-mips64/usr/include/machine/wchar_limits.h42
-rw-r--r--9/platforms/android-19/arch-mips64/usr/include/math.h56
-rw-r--r--9/platforms/android-19/arch-mips64/usr/include/pthread.h41
-rw-r--r--9/platforms/android-19/arch-mips64/usr/include/sched.h189
-rw-r--r--9/platforms/android-19/arch-mips64/usr/include/semaphore.h7
-rw-r--r--9/platforms/android-19/arch-mips64/usr/include/signal.h6
-rw-r--r--9/platforms/android-19/arch-mips64/usr/include/stdint.h19
-rw-r--r--9/platforms/android-19/arch-mips64/usr/include/stdlib.h20
-rw-r--r--9/platforms/android-19/arch-mips64/usr/include/sys/cdefs_elf.h25
-rw-r--r--9/platforms/android-19/arch-mips64/usr/include/sys/epoll.h6
-rw-r--r--9/platforms/android-19/arch-mips64/usr/include/sys/types.h5
-rw-r--r--9/platforms/android-19/arch-mips64/usr/include/sys/user.h12
-rw-r--r--9/platforms/android-19/arch-mips64/usr/include/time64.h37
-rw-r--r--9/platforms/android-19/arch-mips64/usr/include/unistd.h3
-rw-r--r--9/platforms/android-19/arch-mips64/usr/include/utmp.h12
-rw-r--r--9/platforms/android-19/arch-mips64/usr/include/wchar.h48
-rw-r--r--9/platforms/android-19/arch-mips64/usr/lib/crtbegin_dynamic.obin9782 -> 3237 bytes
-rw-r--r--9/platforms/android-19/arch-mips64/usr/lib/crtbegin_so.obin5896 -> 2620 bytes
-rw-r--r--9/platforms/android-19/arch-mips64/usr/lib/crtbegin_static.obin9782 -> 3237 bytes
-rw-r--r--9/platforms/android-19/arch-mips64/usr/lib/crtend_android.obin1321 -> 1817 bytes
-rw-r--r--9/platforms/android-19/arch-mips64/usr/lib/crtend_so.obin1209 -> 1217 bytes
-rwxr-xr-x9/platforms/android-19/arch-mips64/usr/lib/libEGL.sobin70185 -> 8970 bytes
-rwxr-xr-x9/platforms/android-19/arch-mips64/usr/lib/libGLESv1_CM.sobin87513 -> 45482 bytes
-rwxr-xr-x9/platforms/android-19/arch-mips64/usr/lib/libGLESv2.sobin82358 -> 34615 bytes
-rwxr-xr-x9/platforms/android-19/arch-mips64/usr/lib/libGLESv3.sobin86720 -> 43841 bytes
-rwxr-xr-x9/platforms/android-19/arch-mips64/usr/lib/libOpenMAXAL.sobin69520 -> 7569 bytes
-rwxr-xr-x9/platforms/android-19/arch-mips64/usr/lib/libOpenSLES.sobin69877 -> 8438 bytes
-rwxr-xr-x9/platforms/android-19/arch-mips64/usr/lib/libandroid.sobin81383 -> 32264 bytes
-rw-r--r--9/platforms/android-19/arch-mips64/usr/lib/libc.abin8244698 -> 9242112 bytes
-rwxr-xr-x9/platforms/android-19/arch-mips64/usr/lib/libc.sobin210736 -> 171169 bytes
-rwxr-xr-x9/platforms/android-19/arch-mips64/usr/lib/libdl.sobin67881 -> 4309 bytes
-rwxr-xr-x9/platforms/android-19/arch-mips64/usr/lib/libjnigraphics.sobin67564 -> 3453 bytes
-rwxr-xr-x9/platforms/android-19/arch-mips64/usr/lib/liblog.sobin68027 -> 4460 bytes
-rw-r--r--9/platforms/android-19/arch-mips64/usr/lib/libm.abin2724222 -> 2688218 bytes
-rwxr-xr-x9/platforms/android-19/arch-mips64/usr/lib/libm.sobin88335 -> 45851 bytes
-rw-r--r--9/platforms/android-19/arch-mips64/usr/lib/libstdc++.abin43842 -> 43834 bytes
-rwxr-xr-x9/platforms/android-19/arch-mips64/usr/lib/libstdc++.sobin85091 -> 6753 bytes
-rw-r--r--9/platforms/android-19/arch-mips64/usr/lib/libz.abin943112 -> 943088 bytes
-rw-r--r--9/platforms/android-19/arch-x86_64/usr/include/android/dlext.h70
-rw-r--r--9/platforms/android-19/arch-x86_64/usr/include/asm-generic/signal.h6
-rw-r--r--9/platforms/android-19/arch-x86_64/usr/include/asm/signal.h4
-rw-r--r--9/platforms/android-19/arch-x86_64/usr/include/ctype.h122
-rw-r--r--9/platforms/android-19/arch-x86_64/usr/include/inttypes.h10
-rw-r--r--9/platforms/android-19/arch-x86_64/usr/include/limits.h2
-rw-r--r--9/platforms/android-19/arch-x86_64/usr/include/linux/prctl.h3
-rw-r--r--9/platforms/android-19/arch-x86_64/usr/include/locale.h28
-rw-r--r--9/platforms/android-19/arch-x86_64/usr/include/machine/ieee.h154
-rw-r--r--9/platforms/android-19/arch-x86_64/usr/include/machine/wchar_limits.h42
-rw-r--r--9/platforms/android-19/arch-x86_64/usr/include/math.h56
-rw-r--r--9/platforms/android-19/arch-x86_64/usr/include/pthread.h41
-rw-r--r--9/platforms/android-19/arch-x86_64/usr/include/sched.h189
-rw-r--r--9/platforms/android-19/arch-x86_64/usr/include/semaphore.h7
-rw-r--r--9/platforms/android-19/arch-x86_64/usr/include/signal.h6
-rw-r--r--9/platforms/android-19/arch-x86_64/usr/include/stdint.h19
-rw-r--r--9/platforms/android-19/arch-x86_64/usr/include/stdlib.h20
-rw-r--r--9/platforms/android-19/arch-x86_64/usr/include/sys/cdefs_elf.h25
-rw-r--r--9/platforms/android-19/arch-x86_64/usr/include/sys/epoll.h6
-rw-r--r--9/platforms/android-19/arch-x86_64/usr/include/sys/types.h5
-rw-r--r--9/platforms/android-19/arch-x86_64/usr/include/sys/user.h12
-rw-r--r--9/platforms/android-19/arch-x86_64/usr/include/time64.h37
-rw-r--r--9/platforms/android-19/arch-x86_64/usr/include/unistd.h3
-rw-r--r--9/platforms/android-19/arch-x86_64/usr/include/utmp.h12
-rw-r--r--9/platforms/android-19/arch-x86_64/usr/include/wchar.h48
-rw-r--r--9/platforms/android-19/arch-x86_64/usr/lib64/crtbegin_dynamic.obin2272 -> 2208 bytes
-rw-r--r--9/platforms/android-19/arch-x86_64/usr/lib64/crtbegin_so.obin1976 -> 1952 bytes
-rw-r--r--9/platforms/android-19/arch-x86_64/usr/lib64/crtbegin_static.obin2272 -> 2208 bytes
-rw-r--r--9/platforms/android-19/arch-x86_64/usr/lib64/crtend_android.obin1231 -> 1024 bytes
-rw-r--r--9/platforms/android-19/arch-x86_64/usr/lib64/crtend_so.obin1119 -> 944 bytes
-rwxr-xr-x9/platforms/android-19/arch-x86_64/usr/lib64/libEGL.sobin11208 -> 11208 bytes
-rwxr-xr-x9/platforms/android-19/arch-x86_64/usr/lib64/libGLESv1_CM.sobin41368 -> 41368 bytes
-rwxr-xr-x9/platforms/android-19/arch-x86_64/usr/lib64/libGLESv2.sobin30456 -> 30456 bytes
-rwxr-xr-x9/platforms/android-19/arch-x86_64/usr/lib64/libGLESv3.sobin41056 -> 41056 bytes
-rwxr-xr-x9/platforms/android-19/arch-x86_64/usr/lib64/libOpenMAXAL.sobin7512 -> 7512 bytes
-rwxr-xr-x9/platforms/android-19/arch-x86_64/usr/lib64/libOpenSLES.sobin7872 -> 7872 bytes
-rwxr-xr-x9/platforms/android-19/arch-x86_64/usr/lib64/libandroid.sobin30408 -> 30408 bytes
-rw-r--r--9/platforms/android-19/arch-x86_64/usr/lib64/libc.abin10175146 -> 10899204 bytes
-rwxr-xr-x9/platforms/android-19/arch-x86_64/usr/lib64/libc.sobin149240 -> 150512 bytes
-rwxr-xr-x9/platforms/android-19/arch-x86_64/usr/lib64/libdl.sobin5800 -> 5848 bytes
-rwxr-xr-x9/platforms/android-19/arch-x86_64/usr/lib64/libjnigraphics.sobin5648 -> 5648 bytes
-rwxr-xr-x9/platforms/android-19/arch-x86_64/usr/lib64/liblog.sobin5920 -> 5920 bytes
-rw-r--r--9/platforms/android-19/arch-x86_64/usr/lib64/libm.abin2833196 -> 2803600 bytes
-rwxr-xr-x9/platforms/android-19/arch-x86_64/usr/lib64/libm.sobin40400 -> 40144 bytes
-rw-r--r--9/platforms/android-19/arch-x86_64/usr/lib64/libstdc++.abin38544 -> 38544 bytes
-rwxr-xr-x9/platforms/android-19/arch-x86_64/usr/lib64/libstdc++.sobin22200 -> 6536 bytes
-rw-r--r--9/platforms/android-19/arch-x86_64/usr/lib64/libz.abin1155910 -> 1155910 bytes
-rw-r--r--9/sources/android/support/include/locale.h3
-rw-r--r--9/sources/cxx-stl/EH/gabi++/include/gabixx_config.h3
-rw-r--r--9/sources/cxx-stl/EH/gabi++/include/new17
-rwxr-xr-x9/sources/cxx-stl/EH/gabi++/libs/arm64-v8a/libgabi++_shared.sobin265519 -> 209298 bytes
-rw-r--r--9/sources/cxx-stl/EH/gabi++/libs/arm64-v8a/libgabi++_static.abin207406 -> 213006 bytes
-rwxr-xr-x9/sources/cxx-stl/EH/gabi++/libs/armeabi-v7a/libgabi++_shared.sobin98004 -> 106572 bytes
-rw-r--r--9/sources/cxx-stl/EH/gabi++/libs/armeabi-v7a/libgabi++_static.abin179202 -> 186378 bytes
-rwxr-xr-x9/sources/cxx-stl/EH/gabi++/libs/armeabi-v7a/thumb/libgabi++_shared.sobin0 -> 102684 bytes
-rw-r--r--9/sources/cxx-stl/EH/gabi++/libs/armeabi-v7a/thumb/libgabi++_static.abin0 -> 182518 bytes
-rwxr-xr-x9/sources/cxx-stl/EH/gabi++/libs/armeabi/libgabi++_shared.sobin125124 -> 133420 bytes
-rw-r--r--9/sources/cxx-stl/EH/gabi++/libs/armeabi/libgabi++_static.abin180826 -> 186694 bytes
-rwxr-xr-x9/sources/cxx-stl/EH/gabi++/libs/armeabi/thumb/libgabi++_shared.sobin0 -> 129808 bytes
-rw-r--r--9/sources/cxx-stl/EH/gabi++/libs/armeabi/thumb/libgabi++_static.abin0 -> 184146 bytes
-rwxr-xr-x9/sources/cxx-stl/EH/gabi++/libs/mips/libgabi++_shared.sobin227500 -> 228123 bytes
-rw-r--r--9/sources/cxx-stl/EH/gabi++/libs/mips/libgabi++_static.abin166798 -> 169494 bytes
-rwxr-xr-x9/sources/cxx-stl/EH/gabi++/libs/mips64/libgabi++_shared.sobin254221 -> 212742 bytes
-rw-r--r--9/sources/cxx-stl/EH/gabi++/libs/mips64/libgabi++_static.abin245446 -> 249398 bytes
-rwxr-xr-x9/sources/cxx-stl/EH/gabi++/libs/x86/libgabi++_shared.sobin159968 -> 160428 bytes
-rw-r--r--9/sources/cxx-stl/EH/gabi++/libs/x86/libgabi++_static.abin155286 -> 157774 bytes
-rwxr-xr-x9/sources/cxx-stl/EH/gabi++/libs/x86_64/libgabi++_shared.sobin187336 -> 187584 bytes
-rw-r--r--9/sources/cxx-stl/EH/gabi++/libs/x86_64/libgabi++_static.abin202838 -> 206006 bytes
-rwxr-xr-x9/sources/cxx-stl/EH/stlport/libs/arm64-v8a/libstlport_shared.sobin969369 -> 926160 bytes
-rw-r--r--9/sources/cxx-stl/EH/stlport/libs/arm64-v8a/libstlport_static.abin1440926 -> 1490850 bytes
-rwxr-xr-x9/sources/cxx-stl/EH/stlport/libs/armeabi-v7a/libstlport_shared.sobin595232 -> 669080 bytes
-rw-r--r--9/sources/cxx-stl/EH/stlport/libs/armeabi-v7a/libstlport_static.abin1390306 -> 1470250 bytes
-rwxr-xr-x9/sources/cxx-stl/EH/stlport/libs/armeabi-v7a/thumb/libstlport_shared.sobin0 -> 595816 bytes
-rw-r--r--9/sources/cxx-stl/EH/stlport/libs/armeabi-v7a/thumb/libstlport_static.abin0 -> 1393622 bytes
-rwxr-xr-x9/sources/cxx-stl/EH/stlport/libs/armeabi/libstlport_shared.sobin648512 -> 710976 bytes
-rw-r--r--9/sources/cxx-stl/EH/stlport/libs/armeabi/libstlport_static.abin1418546 -> 1479886 bytes
-rwxr-xr-x9/sources/cxx-stl/EH/stlport/libs/armeabi/thumb/libstlport_shared.sobin0 -> 649096 bytes
-rw-r--r--9/sources/cxx-stl/EH/stlport/libs/armeabi/thumb/libstlport_static.abin0 -> 1421874 bytes
-rwxr-xr-x9/sources/cxx-stl/EH/stlport/libs/mips/libstlport_shared.sobin870113 -> 870716 bytes
-rw-r--r--9/sources/cxx-stl/EH/stlport/libs/mips/libstlport_static.abin1302862 -> 1305566 bytes
-rwxr-xr-x9/sources/cxx-stl/EH/stlport/libs/mips64/libstlport_shared.sobin1004704 -> 971193 bytes
-rw-r--r--9/sources/cxx-stl/EH/stlport/libs/mips64/libstlport_static.abin1822560 -> 1829584 bytes
-rwxr-xr-x9/sources/cxx-stl/EH/stlport/libs/x86/libstlport_shared.sobin764196 -> 772856 bytes
-rw-r--r--9/sources/cxx-stl/EH/stlport/libs/x86/libstlport_static.abin1174670 -> 1177156 bytes
-rwxr-xr-x9/sources/cxx-stl/EH/stlport/libs/x86_64/libstlport_shared.sobin894840 -> 895544 bytes
-rw-r--r--9/sources/cxx-stl/EH/stlport/libs/x86_64/libstlport_static.abin1437140 -> 1436940 bytes
-rw-r--r--9/sources/cxx-stl/gnu-libstdc++/4.6/libs/armeabi-v7a/include/bits/ctype_base.h14
-rw-r--r--9/sources/cxx-stl/gnu-libstdc++/4.6/libs/armeabi/include/bits/ctype_base.h14
-rw-r--r--9/sources/cxx-stl/gnu-libstdc++/4.6/libs/mips/include/bits/ctype_base.h14
-rw-r--r--9/sources/cxx-stl/gnu-libstdc++/4.6/libs/x86/include/bits/ctype_base.h14
-rw-r--r--9/sources/cxx-stl/gnu-libstdc++/4.8/include/bits/opt_random.h38
-rw-r--r--9/sources/cxx-stl/gnu-libstdc++/4.8/include/ext/atomicity.h3
-rw-r--r--9/sources/cxx-stl/gnu-libstdc++/4.8/include/ext/opt_random.h38
-rw-r--r--9/sources/cxx-stl/gnu-libstdc++/4.8/include/type_traits2
-rw-r--r--9/sources/cxx-stl/gnu-libstdc++/4.8/libs/arm64-v8a/include/bits/c++config.h44
-rwxr-xr-x9/sources/cxx-stl/gnu-libstdc++/4.8/libs/arm64-v8a/libgnustl_shared.sobin1437472 -> 1430453 bytes
-rw-r--r--9/sources/cxx-stl/gnu-libstdc++/4.8/libs/arm64-v8a/libgnustl_static.abin2920484 -> 3009732 bytes
-rw-r--r--9/sources/cxx-stl/gnu-libstdc++/4.8/libs/arm64-v8a/libsupc++.abin342138 -> 344674 bytes
-rw-r--r--9/sources/cxx-stl/gnu-libstdc++/4.8/libs/armeabi-v7a/include/bits/ctype_base.h14
-rw-r--r--9/sources/cxx-stl/gnu-libstdc++/4.8/libs/armeabi/include/bits/ctype_base.h14
-rw-r--r--9/sources/cxx-stl/gnu-libstdc++/4.8/libs/mips/include/bits/ctype_base.h14
-rw-r--r--9/sources/cxx-stl/gnu-libstdc++/4.8/libs/mips64/include/bits/c++config.h44
-rwxr-xr-x9/sources/cxx-stl/gnu-libstdc++/4.8/libs/mips64/libgnustl_shared.sobin1556833 -> 1481810 bytes
-rw-r--r--9/sources/cxx-stl/gnu-libstdc++/4.8/libs/mips64/libgnustl_static.abin3566314 -> 3560766 bytes
-rw-r--r--9/sources/cxx-stl/gnu-libstdc++/4.8/libs/mips64/libsupc++.abin441492 -> 441532 bytes
-rw-r--r--9/sources/cxx-stl/gnu-libstdc++/4.8/libs/x86/include/bits/ctype_base.h14
-rw-r--r--9/sources/cxx-stl/gnu-libstdc++/4.8/libs/x86_64/include/bits/c++config.h44
-rwxr-xr-x9/sources/cxx-stl/gnu-libstdc++/4.8/libs/x86_64/libgnustl_shared.sobin1346120 -> 1336488 bytes
-rw-r--r--9/sources/cxx-stl/gnu-libstdc++/4.8/libs/x86_64/libgnustl_static.abin2908778 -> 2900562 bytes
-rw-r--r--9/sources/cxx-stl/gnu-libstdc++/4.8/libs/x86_64/libsupc++.abin350578 -> 349906 bytes
-rw-r--r--9/sources/cxx-stl/gnu-libstdc++/4.9/include/bits/atomic_base.h4
-rw-r--r--9/sources/cxx-stl/gnu-libstdc++/4.9/include/iomanip3
-rw-r--r--9/sources/cxx-stl/gnu-libstdc++/4.9/include/type_traits2
-rw-r--r--9/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/include/bits/c++config.h46
-rwxr-xr-x9/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/libgnustl_shared.sobin1450073 -> 1448923 bytes
-rw-r--r--9/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/libgnustl_static.abin3108404 -> 3096668 bytes
-rw-r--r--9/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/libsupc++.abin386830 -> 387998 bytes
-rw-r--r--9/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi-v7a/include/bits/c++config.h2
-rw-r--r--9/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi/include/bits/c++config.h2
-rw-r--r--9/sources/cxx-stl/gnu-libstdc++/4.9/libs/mips/include/bits/c++config.h2
-rw-r--r--9/sources/cxx-stl/gnu-libstdc++/4.9/libs/mips64/include/bits/c++config.h46
-rwxr-xr-x9/sources/cxx-stl/gnu-libstdc++/4.9/libs/mips64/libgnustl_shared.sobin1561037 -> 1556089 bytes
-rw-r--r--9/sources/cxx-stl/gnu-libstdc++/4.9/libs/mips64/libgnustl_static.abin3732504 -> 3709436 bytes
-rw-r--r--9/sources/cxx-stl/gnu-libstdc++/4.9/libs/mips64/libsupc++.abin540800 -> 534688 bytes
-rw-r--r--9/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86/include/bits/c++config.h2
-rw-r--r--9/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86_64/include/bits/c++config.h46
-rwxr-xr-x9/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86_64/libgnustl_shared.sobin1390432 -> 1385536 bytes
-rw-r--r--9/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86_64/libgnustl_static.abin3400686 -> 3390294 bytes
-rw-r--r--9/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86_64/libsupc++.abin421694 -> 424502 bytes
-rw-r--r--9/sources/cxx-stl/llvm-libc++/libcxx/include/__config41
-rw-r--r--9/sources/cxx-stl/llvm-libc++/libcxx/include/__locale2
-rw-r--r--9/sources/cxx-stl/llvm-libc++/libcxx/include/__mutex_base4
-rw-r--r--9/sources/cxx-stl/llvm-libc++/libcxx/include/__tree2
-rw-r--r--9/sources/cxx-stl/llvm-libc++/libcxx/include/algorithm174
-rw-r--r--9/sources/cxx-stl/llvm-libc++/libcxx/include/cmath6
-rw-r--r--9/sources/cxx-stl/llvm-libc++/libcxx/include/cstddef5
-rw-r--r--9/sources/cxx-stl/llvm-libc++/libcxx/include/cstdio13
-rw-r--r--9/sources/cxx-stl/llvm-libc++/libcxx/include/deque2
-rw-r--r--9/sources/cxx-stl/llvm-libc++/libcxx/include/ext/__hash93
-rw-r--r--9/sources/cxx-stl/llvm-libc++/libcxx/include/ext/hash_map4
-rw-r--r--9/sources/cxx-stl/llvm-libc++/libcxx/include/functional21
-rw-r--r--9/sources/cxx-stl/llvm-libc++/libcxx/include/future4
-rw-r--r--9/sources/cxx-stl/llvm-libc++/libcxx/include/iomanip11
-rw-r--r--9/sources/cxx-stl/llvm-libc++/libcxx/include/iterator36
-rw-r--r--9/sources/cxx-stl/llvm-libc++/libcxx/include/locale2
-rw-r--r--9/sources/cxx-stl/llvm-libc++/libcxx/include/map18
-rw-r--r--9/sources/cxx-stl/llvm-libc++/libcxx/include/memory11
-rw-r--r--9/sources/cxx-stl/llvm-libc++/libcxx/include/ostream22
-rw-r--r--9/sources/cxx-stl/llvm-libc++/libcxx/include/regex95
-rw-r--r--9/sources/cxx-stl/llvm-libc++/libcxx/include/set24
-rw-r--r--9/sources/cxx-stl/llvm-libc++/libcxx/include/shared_mutex24
-rw-r--r--9/sources/cxx-stl/llvm-libc++/libcxx/include/string48
-rw-r--r--9/sources/cxx-stl/llvm-libc++/libcxx/include/tuple26
-rw-r--r--9/sources/cxx-stl/llvm-libc++/libcxx/include/type_traits64
-rw-r--r--9/sources/cxx-stl/llvm-libc++/libcxx/include/typeinfo46
-rw-r--r--9/sources/cxx-stl/llvm-libc++/libcxx/include/utility24
-rwxr-xr-x9/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_shared.sobin1482341 -> 1612238 bytes
-rw-r--r--9/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_static.abin2683968 -> 2916264 bytes
-rwxr-xr-x9/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/libc++_shared.sobin1330144 -> 1330364 bytes
-rw-r--r--9/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/libc++_static.abin2993782 -> 2993746 bytes
-rwxr-xr-x9/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/thumb/libc++_shared.sobin1161908 -> 1162096 bytes
-rw-r--r--9/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/thumb/libc++_static.abin2821786 -> 2821762 bytes
-rwxr-xr-x9/sources/cxx-stl/llvm-libc++/libs/armeabi/libc++_shared.sobin1385604 -> 1385824 bytes
-rw-r--r--9/sources/cxx-stl/llvm-libc++/libs/armeabi/libc++_static.abin3011994 -> 3011946 bytes
-rwxr-xr-x9/sources/cxx-stl/llvm-libc++/libs/armeabi/thumb/libc++_shared.sobin1248732 -> 1244840 bytes
-rw-r--r--9/sources/cxx-stl/llvm-libc++/libs/armeabi/thumb/libc++_static.abin2863102 -> 2863046 bytes
-rwxr-xr-x9/sources/cxx-stl/llvm-libc++/libs/mips/libc++_shared.sobin1646000 -> 1644431 bytes
-rw-r--r--9/sources/cxx-stl/llvm-libc++/libs/mips/libc++_static.abin2544122 -> 2515070 bytes
-rwxr-xr-x9/sources/cxx-stl/llvm-libc++/libs/mips64/libc++_shared.sobin1659288 -> 3045548 bytes
-rw-r--r--9/sources/cxx-stl/llvm-libc++/libs/mips64/libc++_static.abin3351536 -> 4691414 bytes
-rwxr-xr-x9/sources/cxx-stl/llvm-libc++/libs/x86/libc++_shared.sobin1370676 -> 1380688 bytes
-rw-r--r--9/sources/cxx-stl/llvm-libc++/libs/x86/libc++_static.abin2257468 -> 2228760 bytes
-rwxr-xr-x9/sources/cxx-stl/llvm-libc++/libs/x86_64/libc++_shared.sobin1438112 -> 1473536 bytes
-rw-r--r--9/sources/cxx-stl/llvm-libc++/libs/x86_64/libc++_static.abin2694136 -> 2777782 bytes
280 files changed, 2200 insertions, 1955 deletions
diff --git a/8/sources/cxx-stl/gabi++/libs/arm64-v8a/libgabi++_shared.so b/8/sources/cxx-stl/gabi++/libs/arm64-v8a/libgabi++_shared.so
index 9ecd85b..ffacf31 100755
--- a/8/sources/cxx-stl/gabi++/libs/arm64-v8a/libgabi++_shared.so
+++ b/8/sources/cxx-stl/gabi++/libs/arm64-v8a/libgabi++_shared.so
Binary files differ
diff --git a/8/sources/cxx-stl/gabi++/libs/arm64-v8a/libgabi++_static.a b/8/sources/cxx-stl/gabi++/libs/arm64-v8a/libgabi++_static.a
index 06d06dd..1f5fbaa 100644
--- a/8/sources/cxx-stl/gabi++/libs/arm64-v8a/libgabi++_static.a
+++ b/8/sources/cxx-stl/gabi++/libs/arm64-v8a/libgabi++_static.a
Binary files differ
diff --git a/8/sources/cxx-stl/gabi++/libs/mips64/libgabi++_shared.so b/8/sources/cxx-stl/gabi++/libs/mips64/libgabi++_shared.so
index 619aae4..7f9dd06 100755
--- a/8/sources/cxx-stl/gabi++/libs/mips64/libgabi++_shared.so
+++ b/8/sources/cxx-stl/gabi++/libs/mips64/libgabi++_shared.so
Binary files differ
diff --git a/8/sources/cxx-stl/gabi++/libs/mips64/libgabi++_static.a b/8/sources/cxx-stl/gabi++/libs/mips64/libgabi++_static.a
index e3df545..74dc7d9 100644
--- a/8/sources/cxx-stl/gabi++/libs/mips64/libgabi++_static.a
+++ b/8/sources/cxx-stl/gabi++/libs/mips64/libgabi++_static.a
Binary files differ
diff --git a/8/sources/cxx-stl/gabi++/libs/x86_64/libgabi++_shared.so b/8/sources/cxx-stl/gabi++/libs/x86_64/libgabi++_shared.so
index 7f740c8..84d658e 100755
--- a/8/sources/cxx-stl/gabi++/libs/x86_64/libgabi++_shared.so
+++ b/8/sources/cxx-stl/gabi++/libs/x86_64/libgabi++_shared.so
Binary files differ
diff --git a/8/sources/cxx-stl/gabi++/libs/x86_64/libgabi++_static.a b/8/sources/cxx-stl/gabi++/libs/x86_64/libgabi++_static.a
index ed2ff2a..c13194d 100644
--- a/8/sources/cxx-stl/gabi++/libs/x86_64/libgabi++_static.a
+++ b/8/sources/cxx-stl/gabi++/libs/x86_64/libgabi++_static.a
Binary files differ
diff --git a/8/sources/cxx-stl/stlport/libs/arm64-v8a/libstlport_shared.so b/8/sources/cxx-stl/stlport/libs/arm64-v8a/libstlport_shared.so
index 9700b0b..5979cd5 100755
--- a/8/sources/cxx-stl/stlport/libs/arm64-v8a/libstlport_shared.so
+++ b/8/sources/cxx-stl/stlport/libs/arm64-v8a/libstlport_shared.so
Binary files differ
diff --git a/8/sources/cxx-stl/stlport/libs/arm64-v8a/libstlport_static.a b/8/sources/cxx-stl/stlport/libs/arm64-v8a/libstlport_static.a
index ac67197..4d85c30 100644
--- a/8/sources/cxx-stl/stlport/libs/arm64-v8a/libstlport_static.a
+++ b/8/sources/cxx-stl/stlport/libs/arm64-v8a/libstlport_static.a
Binary files differ
diff --git a/8/sources/cxx-stl/stlport/libs/mips64/libstlport_shared.so b/8/sources/cxx-stl/stlport/libs/mips64/libstlport_shared.so
index 02b57ab..9261638 100755
--- a/8/sources/cxx-stl/stlport/libs/mips64/libstlport_shared.so
+++ b/8/sources/cxx-stl/stlport/libs/mips64/libstlport_shared.so
Binary files differ
diff --git a/8/sources/cxx-stl/stlport/libs/mips64/libstlport_static.a b/8/sources/cxx-stl/stlport/libs/mips64/libstlport_static.a
index d2eb250..b524d5c 100644
--- a/8/sources/cxx-stl/stlport/libs/mips64/libstlport_static.a
+++ b/8/sources/cxx-stl/stlport/libs/mips64/libstlport_static.a
Binary files differ
diff --git a/8/sources/cxx-stl/stlport/libs/x86_64/libstlport_shared.so b/8/sources/cxx-stl/stlport/libs/x86_64/libstlport_shared.so
index 0654d95..3441c2e 100755
--- a/8/sources/cxx-stl/stlport/libs/x86_64/libstlport_shared.so
+++ b/8/sources/cxx-stl/stlport/libs/x86_64/libstlport_shared.so
Binary files differ
diff --git a/8/sources/cxx-stl/stlport/libs/x86_64/libstlport_static.a b/8/sources/cxx-stl/stlport/libs/x86_64/libstlport_static.a
index 67cd68e..47fdc0c 100644
--- a/8/sources/cxx-stl/stlport/libs/x86_64/libstlport_static.a
+++ b/8/sources/cxx-stl/stlport/libs/x86_64/libstlport_static.a
Binary files differ
diff --git a/9/platforms/android-19/arch-arm64/usr/include/android/dlext.h b/9/platforms/android-19/arch-arm64/usr/include/android/dlext.h
new file mode 100644
index 0000000..90962fa
--- /dev/null
+++ b/9/platforms/android-19/arch-arm64/usr/include/android/dlext.h
@@ -0,0 +1,70 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __ANDROID_DLEXT_H__
+#define __ANDROID_DLEXT_H__
+
+#include <stddef.h>
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
+
+/* bitfield definitions for android_dlextinfo.flags */
+enum {
+ /* When set, the reserved_addr and reserved_size fields must point to an
+ * already-reserved region of address space which will be used to load the
+ * library if it fits. If the reserved region is not large enough, the load
+ * will fail.
+ */
+ ANDROID_DLEXT_RESERVED_ADDRESS = 0x1,
+
+ /* As DLEXT_RESERVED_ADDRESS, but if the reserved region is not large enough,
+ * the linker will choose an available address instead.
+ */
+ ANDROID_DLEXT_RESERVED_ADDRESS_HINT = 0x2,
+
+ /* When set, write the GNU RELRO section of the mapped library to relro_fd
+ * after relocation has been performed, to allow it to be reused by another
+ * process loading the same library at the same address. This implies
+ * ANDROID_DLEXT_USE_RELRO.
+ */
+ ANDROID_DLEXT_WRITE_RELRO = 0x4,
+
+ /* When set, compare the GNU RELRO section of the mapped library to relro_fd
+ * after relocation has been performed, and replace any relocated pages that
+ * are identical with a version mapped from the file.
+ */
+ ANDROID_DLEXT_USE_RELRO = 0x8,
+
+ /* Mask of valid bits */
+ ANDROID_DLEXT_VALID_FLAG_BITS = ANDROID_DLEXT_RESERVED_ADDRESS |
+ ANDROID_DLEXT_RESERVED_ADDRESS_HINT |
+ ANDROID_DLEXT_WRITE_RELRO |
+ ANDROID_DLEXT_USE_RELRO,
+};
+
+typedef struct {
+ int flags;
+ void* reserved_addr;
+ size_t reserved_size;
+ int relro_fd;
+} android_dlextinfo;
+
+extern void* android_dlopen_ext(const char* filename, int flag, const android_dlextinfo* extinfo);
+
+__END_DECLS
+
+#endif /* __ANDROID_DLEXT_H__ */
diff --git a/9/platforms/android-19/arch-arm64/usr/include/asm-generic/signal.h b/9/platforms/android-19/arch-arm64/usr/include/asm-generic/signal.h
index fe7d9a0..e103240 100644
--- a/9/platforms/android-19/arch-arm64/usr/include/asm-generic/signal.h
+++ b/9/platforms/android-19/arch-arm64/usr/include/asm-generic/signal.h
@@ -66,9 +66,9 @@
#define SIGSYS 31
#define SIGUNUSED 31
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define SIGRTMIN 32
-#ifndef SIGRTMAX
-#define SIGRTMAX _KERNEL__NSIG
+#define __SIGRTMIN 32
+#ifndef __SIGRTMAX
+#define __SIGRTMAX _KERNEL__NSIG
#endif
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define SA_NOCLDSTOP 0x00000001
diff --git a/9/platforms/android-19/arch-arm64/usr/include/ctype.h b/9/platforms/android-19/arch-arm64/usr/include/ctype.h
index 5557e31..7edd8cc 100644
--- a/9/platforms/android-19/arch-arm64/usr/include/ctype.h
+++ b/9/platforms/android-19/arch-arm64/usr/include/ctype.h
@@ -44,12 +44,16 @@
#define _CTYPE_U 0x01
#define _CTYPE_L 0x02
-#define _CTYPE_N 0x04
+#define _CTYPE_D 0x04
#define _CTYPE_S 0x08
#define _CTYPE_P 0x10
#define _CTYPE_C 0x20
#define _CTYPE_X 0x40
#define _CTYPE_B 0x80
+#define _CTYPE_R (_CTYPE_P|_CTYPE_U|_CTYPE_L|_CTYPE_D|_CTYPE_B)
+#define _CTYPE_A (_CTYPE_L|_CTYPE_U)
+
+#define _CTYPE_N _CTYPE_D
__BEGIN_DECLS
@@ -57,17 +61,6 @@ extern const char *_ctype_;
extern const short *_tolower_tab_;
extern const short *_toupper_tab_;
-/* extern __inline is a GNU C extension */
-#ifdef __GNUC__
-# if defined(__GNUC_STDC_INLINE__)
-#define __CTYPE_INLINE extern __inline __attribute__((__gnu_inline__))
-# else
-#define __CTYPE_INLINE extern __inline
-# endif
-#else
-#define __CTYPE_INLINE static __inline
-#endif
-
#if defined(__GNUC__) || defined(_ANSI_LIBRARY) || defined(lint)
int isalnum(int);
int isalpha(int);
@@ -97,111 +90,6 @@ int _toupper(int);
#endif /* __GNUC__ || _ANSI_LIBRARY || lint */
-#if defined(NDEBUG)
-
-__CTYPE_INLINE int isalnum(int c)
-{
- return (c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)c] & (_CTYPE_U|_CTYPE_L|_CTYPE_N)));
-}
-
-__CTYPE_INLINE int isalpha(int c)
-{
- return (c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)c] & (_CTYPE_U|_CTYPE_L)));
-}
-
-__CTYPE_INLINE int iscntrl(int c)
-{
- return (c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)c] & _CTYPE_C));
-}
-
-__CTYPE_INLINE int isdigit(int c)
-{
- return (c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)c] & _CTYPE_N));
-}
-
-__CTYPE_INLINE int isgraph(int c)
-{
- return (c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)c] & (_CTYPE_P|_CTYPE_U|_CTYPE_L|_CTYPE_N)));
-}
-
-__CTYPE_INLINE int islower(int c)
-{
- return (c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)c] & _CTYPE_L));
-}
-
-__CTYPE_INLINE int isprint(int c)
-{
- return (c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)c] & (_CTYPE_P|_CTYPE_U|_CTYPE_L|_CTYPE_N|_CTYPE_B)));
-}
-
-__CTYPE_INLINE int ispunct(int c)
-{
- return (c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)c] & _CTYPE_P));
-}
-
-__CTYPE_INLINE int isspace(int c)
-{
- return (c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)c] & _CTYPE_S));
-}
-
-__CTYPE_INLINE int isupper(int c)
-{
- return (c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)c] & _CTYPE_U));
-}
-
-__CTYPE_INLINE int isxdigit(int c)
-{
- return (c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)c] & (_CTYPE_N|_CTYPE_X)));
-}
-
-__CTYPE_INLINE int tolower(int c)
-{
- if ((unsigned int)c > 255)
- return (c);
- return ((_tolower_tab_ + 1)[c]);
-}
-
-__CTYPE_INLINE int toupper(int c)
-{
- if ((unsigned int)c > 255)
- return (c);
- return ((_toupper_tab_ + 1)[c]);
-}
-
-#if __BSD_VISIBLE || __ISO_C_VISIBLE >= 1999 || __POSIX_VISIBLE > 200112 \
- || __XPG_VISIBLE > 600
-__CTYPE_INLINE int isblank(int c)
-{
- return (c == ' ' || c == '\t');
-}
-#endif
-
-#if __BSD_VISIBLE || __XPG_VISIBLE
-__CTYPE_INLINE int isascii(int c)
-{
- return ((unsigned int)c <= 0177);
-}
-
-__CTYPE_INLINE int toascii(int c)
-{
- return (c & 0177);
-}
-
-__CTYPE_INLINE int _tolower(int c)
-{
- return (c - 'A' + 'a');
-}
-
-__CTYPE_INLINE int _toupper(int c)
-{
- return (c - 'a' + 'A');
-}
-#endif /* __BSD_VISIBLE || __XPG_VISIBLE */
-
-#endif /* NDEBUG */
-
__END_DECLS
-#undef __CTYPE_INLINE
-
#endif /* !_CTYPE_H_ */
diff --git a/9/platforms/android-19/arch-arm64/usr/include/inttypes.h b/9/platforms/android-19/arch-arm64/usr/include/inttypes.h
index 2fd2415..8853c08 100644
--- a/9/platforms/android-19/arch-arm64/usr/include/inttypes.h
+++ b/9/platforms/android-19/arch-arm64/usr/include/inttypes.h
@@ -254,16 +254,14 @@ typedef struct {
} imaxdiv_t;
__BEGIN_DECLS
-
intmax_t imaxabs(intmax_t) __pure2;
imaxdiv_t imaxdiv(intmax_t, intmax_t) __pure2;
-
intmax_t strtoimax(const char *, char **, int);
uintmax_t strtoumax(const char *, char **, int);
-
-intmax_t strntoimax(const char *nptr, char **endptr, int base, size_t n);
-uintmax_t strntoumax(const char *nptr, char **endptr, int base, size_t n);
-
+intmax_t wcstoimax(const wchar_t * __restrict,
+ wchar_t ** __restrict, int);
+uintmax_t wcstoumax(const wchar_t * __restrict,
+ wchar_t ** __restrict, int);
__END_DECLS
#endif /* _INTTYPES_H_ */
diff --git a/9/platforms/android-19/arch-arm64/usr/include/limits.h b/9/platforms/android-19/arch-arm64/usr/include/limits.h
index a70021a..dc45902 100644
--- a/9/platforms/android-19/arch-arm64/usr/include/limits.h
+++ b/9/platforms/android-19/arch-arm64/usr/include/limits.h
@@ -112,7 +112,7 @@
#define SSIZE_MAX LONG_MAX
-#define MB_LEN_MAX 1 /* No multibyte characters. */
+#define MB_LEN_MAX 6
/* New code should use sysconf(_SC_PAGE_SIZE) instead. */
#ifndef PAGE_SIZE
diff --git a/9/platforms/android-19/arch-arm64/usr/include/linux/prctl.h b/9/platforms/android-19/arch-arm64/usr/include/linux/prctl.h
index 87c7e2f..baa597e 100644
--- a/9/platforms/android-19/arch-arm64/usr/include/linux/prctl.h
+++ b/9/platforms/android-19/arch-arm64/usr/include/linux/prctl.h
@@ -117,7 +117,8 @@
#define PR_GET_NO_NEW_PRIVS 39
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define PR_GET_TID_ADDRESS 40
+#define PR_SET_TIMERSLACK_PID 41
#define PR_SET_VMA 0x53564d41
#define PR_SET_VMA_ANON_NAME 0
-#endif
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
diff --git a/9/platforms/android-19/arch-arm64/usr/include/locale.h b/9/platforms/android-19/arch-arm64/usr/include/locale.h
index 6989851..7fd8c2c 100644
--- a/9/platforms/android-19/arch-arm64/usr/include/locale.h
+++ b/9/platforms/android-19/arch-arm64/usr/include/locale.h
@@ -33,21 +33,19 @@
__BEGIN_DECLS
-enum {
- LC_CTYPE = 0,
- LC_NUMERIC = 1,
- LC_TIME = 2,
- LC_COLLATE = 3,
- LC_MONETARY = 4,
- LC_MESSAGES = 5,
- LC_ALL = 6,
- LC_PAPER = 7,
- LC_NAME = 8,
- LC_ADDRESS = 9,
- LC_TELEPHONE = 10,
- LC_MEASUREMENT = 11,
- LC_IDENTIFICATION = 12
-};
+#define LC_CTYPE 0
+#define LC_NUMERIC 1
+#define LC_TIME 2
+#define LC_COLLATE 3
+#define LC_MONETARY 4
+#define LC_MESSAGES 5
+#define LC_ALL 6
+#define LC_PAPER 7
+#define LC_NAME 8
+#define LC_ADDRESS 9
+#define LC_TELEPHONE 10
+#define LC_MEASUREMENT 11
+#define LC_IDENTIFICATION 12
#define LC_CTYPE_MASK (1 << LC_CTYPE)
#define LC_NUMERIC_MASK (1 << LC_NUMERIC)
diff --git a/9/platforms/android-19/arch-arm64/usr/include/machine/ieee.h b/9/platforms/android-19/arch-arm64/usr/include/machine/ieee.h
index cf2c1fc..c579969 100644
--- a/9/platforms/android-19/arch-arm64/usr/include/machine/ieee.h
+++ b/9/platforms/android-19/arch-arm64/usr/include/machine/ieee.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: ieee.h,v 1.1 2004/02/01 05:09:49 drahn Exp $ */
+/* $OpenBSD: ieee.h,v 1.4 2011/11/08 17:06:51 deraadt Exp $ */
/* $NetBSD: ieee.h,v 1.2 2001/02/21 17:43:50 bjh21 Exp $ */
/*
@@ -45,147 +45,74 @@
* @(#)ieee.h 8.1 (Berkeley) 6/11/93
*/
-/*
- * ieee.h defines the machine-dependent layout of the machine's IEEE
- * floating point.
- */
-
-/*
- * Define the number of bits in each fraction and exponent.
- *
- * k k+1
- * Note that 1.0 x 2 == 0.1 x 2 and that denorms are represented
- *
- * (-exp_bias+1)
- * as fractions that look like 0.fffff x 2 . This means that
- *
- * -126
- * the number 0.10000 x 2 , for instance, is the same as the normalized
- *
- * -127 -128
- * float 1.0 x 2 . Thus, to represent 2 , we need one leading zero
- *
- * -129
- * in the fraction; to represent 2 , we need two, and so on. This
- *
- * (-exp_bias-fracbits+1)
- * implies that the smallest denormalized number is 2
- *
- * for whichever format we are talking about: for single precision, for
- *
- * -126 -149
- * instance, we get .00000000000000000000001 x 2 , or 1.0 x 2 , and
- *
- * -149 == -127 - 23 + 1.
- */
-
-/*
- * The ARM has two sets of FP data formats. The FPA supports 32-bit, 64-bit
- * and 96-bit IEEE formats, with the words in big-endian order. VFP supports
- * 32-bin and 64-bit IEEE formats with the words in the CPU's native byte
- * order.
- *
- * The FPA also has two packed decimal formats, but we ignore them here.
- */
+#ifndef _MACHINE_IEEE_H_
+#define _MACHINE_IEEE_H_
-#define SNG_EXPBITS 8
-#define SNG_FRACBITS 23
+#include <sys/types.h>
-#define DBL_EXPBITS 11
-#define DBL_FRACBITS 52
+__BEGIN_DECLS
-#ifndef __VFP_FP__
-#define E80_EXPBITS 15
-#define E80_FRACBITS 64
+#define SNG_EXPBITS 8
+#define SNG_FRACBITS 23
-#define EXT_EXPBITS 15
-#define EXT_FRACBITS 112
-#endif
+#define SNG_EXP_INFNAN 255
+#define SNG_EXP_BIAS 127
struct ieee_single {
- u_int sng_frac:23;
- u_int sng_exponent:8;
- u_int sng_sign:1;
+ unsigned sng_frac:23;
+ unsigned sng_exp:8;
+ unsigned sng_sign:1;
};
-#ifdef __VFP_FP__
-struct ieee_double {
-#ifdef __AARCH64EB__
- u_int dbl_sign:1;
- u_int dbl_exp:11;
- u_int dbl_frach:20;
- u_int dbl_fracl;
-#else /* !__AARCH64EB__ */
- u_int dbl_fracl;
- u_int dbl_frach:20;
- u_int dbl_exp:11;
- u_int dbl_sign:1;
-#endif /* !__AARCH64EB__ */
-};
-#else /* !__VFP_FP__ */
+#define DBL_EXPBITS 11
+#define DBL_FRACHBITS 20
+#define DBL_FRACLBITS 32
+#define DBL_FRACBITS 52
+
+#define DBL_EXP_INFNAN 2047
+#define DBL_EXP_BIAS 1023
+
struct ieee_double {
- u_int dbl_frach:20;
- u_int dbl_exp:11;
- u_int dbl_sign:1;
- u_int dbl_fracl;
+ unsigned dbl_fracl;
+ unsigned dbl_frach:20;
+ unsigned dbl_exp:11;
+ unsigned dbl_sign:1;
};
-union ieee_double_u {
- double dblu_d;
- struct ieee_double dblu_dbl;
-};
+#if __LP64__
+/* 64-bit Android uses ld128 long doubles. */
-struct ieee_e80 {
- u_int e80_exp:15;
- u_int e80_zero:16;
- u_int e80_sign:1;
- u_int e80_frach:31;
- u_int e80_j:1;
- u_int e80_fracl;
-};
+#define EXT_EXPBITS 15
+#define EXT_FRACHBITS 16
+#define EXT_FRACHMBITS 32
+#define EXT_FRACLMBITS 32
+#define EXT_FRACLBITS 32
+#define EXT_FRACBITS 112
+
+#define EXT_EXP_INFNAN 32767
+#define EXT_EXP_BIAS 16383
+
+#define EXT_IMPLICIT_NBIT
+
+#define EXT_TO_ARRAY32(p, a) do { \
+ (a)[0] = (uint32_t)(p)->ext_fracl; \
+ (a)[1] = (uint32_t)(p)->ext_fraclm; \
+ (a)[2] = (uint32_t)(p)->ext_frachm; \
+ (a)[3] = (uint32_t)(p)->ext_frach; \
+} while(0)
struct ieee_ext {
- u_int ext_frach:16;
- u_int ext_exp:15;
- u_int ext_sign:1;
- u_int ext_frachm;
- u_int ext_fraclm;
- u_int ext_fracl;
+ unsigned ext_fracl;
+ unsigned ext_fraclm;
+ unsigned ext_frachm;
+ unsigned ext_frach:16;
+ unsigned ext_exp:15;
+ unsigned ext_sign:1;
};
-#endif /* !__VFP_FP__ */
-/*
- * Floats whose exponent is in [1..INFNAN) (of whatever type) are
- * `normal'. Floats whose exponent is INFNAN are either Inf or NaN.
- * Floats whose exponent is zero are either zero (iff all fraction
- * bits are zero) or subnormal values.
- *
- * A NaN is a `signalling NaN' if its QUIETNAN bit is clear in its
- * high fraction; if the bit is set, it is a `quiet NaN'.
- */
-#define SNG_EXP_INFNAN 255
-#define DBL_EXP_INFNAN 2047
-#ifndef __VFP_FP__
-#define E80_EXP_INFNAN 32767
-#define EXT_EXP_INFNAN 32767
-#endif /* !__VFP_FP__ */
-
-#if 0
-#define SNG_QUIETNAN (1 << 22)
-#define DBL_QUIETNAN (1 << 19)
-#ifndef __VFP_FP__
-#define E80_QUIETNAN (1 << 15)
-#define EXT_QUIETNAN (1 << 15)
-#endif /* !__VFP_FP__ */
#endif
-/*
- * Exponent biases.
- */
-#define SNG_EXP_BIAS 127
-#define DBL_EXP_BIAS 1023
-#ifndef __VFP_FP__
-#define E80_EXP_BIAS 16383
-#define EXT_EXP_BIAS 16383
-#endif /* !__VFP_FP__ */
+__END_DECLS
+
+#endif /* _MACHINE_IEEE_H_ */
diff --git a/9/platforms/android-19/arch-arm64/usr/include/machine/wchar_limits.h b/9/platforms/android-19/arch-arm64/usr/include/machine/wchar_limits.h
new file mode 100644
index 0000000..94cbd7e
--- /dev/null
+++ b/9/platforms/android-19/arch-arm64/usr/include/machine/wchar_limits.h
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#ifndef _MACHINE_WCHAR_LIMITS_H_
+#define _MACHINE_WCHAR_LIMITS_H_
+
+/* Both GCC and clang define __WCHAR_MAX__. */
+#define WCHAR_MAX __WCHAR_MAX__
+
+/* As of 3.4, clang still doesn't define __WCHAR_MIN__. */
+#if defined(__WCHAR_UNSIGNED__)
+# define WCHAR_MIN L'\0'
+#else
+# define WCHAR_MIN (-(WCHAR_MAX) - 1)
+#endif
+
+#endif /* _MACHINE_WCHAR_LIMITS_H_ */
diff --git a/9/platforms/android-19/arch-arm64/usr/include/math.h b/9/platforms/android-19/arch-arm64/usr/include/math.h
index bd0241b..c264583 100644
--- a/9/platforms/android-19/arch-arm64/usr/include/math.h
+++ b/9/platforms/android-19/arch-arm64/usr/include/math.h
@@ -396,16 +396,23 @@ float significandf(float);
* long double versions of ISO/POSIX math functions
*/
#if __ISO_C_VISIBLE >= 1999
+long double acoshl(long double);
long double acosl(long double);
+long double asinhl(long double);
long double asinl(long double);
long double atan2l(long double, long double);
+long double atanhl(long double);
long double atanl(long double);
long double cbrtl(long double);
long double ceill(long double);
long double copysignl(long double, long double) __pure2;
+long double coshl(long double);
long double cosl(long double);
+long double erfcl(long double);
+long double erfl(long double);
long double exp2l(long double);
long double expl(long double);
+long double expm1l(long double);
long double fabsl(long double) __pure2;
long double fdiml(long double, long double);
long double floorl(long double);
@@ -417,9 +424,14 @@ long double frexpl(long double value, int *); /* fundamentally !__pure2 */
long double hypotl(long double, long double);
int ilogbl(long double) __pure2;
long double ldexpl(long double, int);
+long double lgammal(long double);
long long llrintl(long double);
long long llroundl(long double);
+long double log10l(long double);
+long double log1pl(long double);
+long double log2l(long double);
long double logbl(long double);
+long double logl(long double);
long lrintl(long double);
long lroundl(long double);
long double modfl(long double, long double *); /* fundamentally !__pure2 */
@@ -429,53 +441,29 @@ long double nextafterl(long double, long double);
double nexttoward(double, long double);
float nexttowardf(float, long double);
long double nexttowardl(long double, long double);
+long double powl(long double, long double);
long double remainderl(long double, long double);
long double remquol(long double, long double, int *);
long double rintl(long double);
long double roundl(long double);
long double scalblnl(long double, long);
long double scalbnl(long double, int);
+long double sinhl(long double);
long double sinl(long double);
long double sqrtl(long double);
+long double tanhl(long double);
long double tanl(long double);
+long double tgammal(long double);
long double truncl(long double);
#endif /* __ISO_C_VISIBLE >= 1999 */
-__END_DECLS
-
-#endif /* !_MATH_H_ */
-
-/* separate header for cmath */
-#ifndef _MATH_EXTRA_H_
-#if __ISO_C_VISIBLE >= 1999
-#if _DECLARE_C99_LDBL_MATH
-
-#define _MATH_EXTRA_H_
-/*
- * extra long double versions of math functions for C99 and cmath
- */
-__BEGIN_DECLS
-
-long double acoshl(long double);
-long double asinhl(long double);
-long double atanhl(long double);
-long double coshl(long double);
-long double erfcl(long double);
-long double erfl(long double);
-long double expm1l(long double);
-long double lgammal(long double);
-long double log10l(long double);
-long double log1pl(long double);
-long double log2l(long double);
-long double logl(long double);
-long double powl(long double, long double);
-long double sinhl(long double);
-long double tanhl(long double);
-long double tgammal(long double);
+#if defined(_GNU_SOURCE)
+void sincos(double, double*, double*);
+void sincosf(float, float*, float*);
+void sincosl(long double, long double*, long double*);
+#endif /* _GNU_SOURCE */
__END_DECLS
-#endif /* !_DECLARE_C99_LDBL_MATH */
-#endif /* __ISO_C_VISIBLE >= 1999 */
-#endif /* !_MATH_EXTRA_H_ */
+#endif /* !_MATH_H_ */
diff --git a/9/platforms/android-19/arch-arm64/usr/include/pthread.h b/9/platforms/android-19/arch-arm64/usr/include/pthread.h
index f93f9e9..7b8de81 100644
--- a/9/platforms/android-19/arch-arm64/usr/include/pthread.h
+++ b/9/platforms/android-19/arch-arm64/usr/include/pthread.h
@@ -35,17 +35,26 @@
#include <limits.h>
#include <sys/types.h>
+#ifdef __LP64__
+ #define __RESERVED_INITIALIZER , {0}
+#else
+ #define __RESERVED_INITIALIZER
+#endif
+
typedef struct {
int volatile value;
+#ifdef __LP64__
+ char __reserved[36];
+#endif
} pthread_mutex_t;
#define __PTHREAD_MUTEX_INIT_VALUE 0
#define __PTHREAD_RECURSIVE_MUTEX_INIT_VALUE 0x4000
#define __PTHREAD_ERRORCHECK_MUTEX_INIT_VALUE 0x8000
-#define PTHREAD_MUTEX_INITIALIZER {__PTHREAD_MUTEX_INIT_VALUE}
-#define PTHREAD_RECURSIVE_MUTEX_INITIALIZER {__PTHREAD_RECURSIVE_MUTEX_INIT_VALUE}
-#define PTHREAD_ERRORCHECK_MUTEX_INITIALIZER {__PTHREAD_ERRORCHECK_MUTEX_INIT_VALUE}
+#define PTHREAD_MUTEX_INITIALIZER {__PTHREAD_MUTEX_INIT_VALUE __RESERVED_INITIALIZER}
+#define PTHREAD_RECURSIVE_MUTEX_INITIALIZER {__PTHREAD_RECURSIVE_MUTEX_INIT_VALUE __RESERVED_INITIALIZER}
+#define PTHREAD_ERRORCHECK_MUTEX_INITIALIZER {__PTHREAD_ERRORCHECK_MUTEX_INIT_VALUE __RESERVED_INITIALIZER}
enum {
PTHREAD_MUTEX_NORMAL = 0,
@@ -60,9 +69,12 @@ enum {
typedef struct {
int volatile value;
+#ifdef __LP64__
+ char __reserved[44];
+#endif
} pthread_cond_t;
-#define PTHREAD_COND_INITIALIZER {0}
+#define PTHREAD_COND_INITIALIZER {0 __RESERVED_INITIALIZER}
typedef struct {
uint32_t flags;
@@ -71,21 +83,24 @@ typedef struct {
size_t guard_size;
int32_t sched_policy;
int32_t sched_priority;
+#ifdef __LP64__
+ char __reserved[16];
+#endif
} pthread_attr_t;
typedef long pthread_mutexattr_t;
typedef long pthread_condattr_t;
-typedef int pthread_rwlockattr_t;
+typedef long pthread_rwlockattr_t;
typedef struct {
- pthread_mutex_t lock;
- pthread_cond_t cond;
- int numLocks;
- int writerThreadId;
- int pendingReaders;
- int pendingWriters;
- void* reserved[4]; /* for future extensibility */
+ pthread_mutex_t lock;
+ pthread_cond_t cond;
+ int numLocks;
+ int writerThreadId;
+ int pendingReaders;
+ int pendingWriters;
+ void* __reserved[4];
} pthread_rwlock_t;
#define PTHREAD_RWLOCK_INITIALIZER { PTHREAD_MUTEX_INITIALIZER, PTHREAD_COND_INITIALIZER, 0, 0, 0, 0, { NULL, NULL, NULL, NULL } }
@@ -95,7 +110,7 @@ typedef long pthread_t;
typedef volatile int pthread_once_t;
-#define PTHREAD_ONCE_INIT 0
+#define PTHREAD_ONCE_INIT 0
#define PTHREAD_STACK_MIN (2 * PAGE_SIZE)
diff --git a/9/platforms/android-19/arch-arm64/usr/include/sched.h b/9/platforms/android-19/arch-arm64/usr/include/sched.h
index 7649e83..68115bb 100644
--- a/9/platforms/android-19/arch-arm64/usr/include/sched.h
+++ b/9/platforms/android-19/arch-arm64/usr/include/sched.h
@@ -59,151 +59,90 @@ extern int unshare(int);
extern int sched_getcpu(void);
extern int setns(int, int);
-/* Our implementation supports up to 32 independent CPUs, which is also
- * the maximum supported by the kernel at the moment. GLibc uses 1024 by
- * default.
- *
- * If you want to use more than that, you should use CPU_ALLOC() / CPU_FREE()
- * and the CPU_XXX_S() macro variants.
- */
-#define CPU_SETSIZE 32
+#ifdef __LP32__
+#define CPU_SETSIZE 32
+#else
+#define CPU_SETSIZE 1024
+#endif
-#define __CPU_BITTYPE unsigned long int /* mandated by the kernel */
-#define __CPU_BITSHIFT 5 /* should be log2(BITTYPE) */
-#define __CPU_BITS (1 << __CPU_BITSHIFT)
-#define __CPU_ELT(x) ((x) >> __CPU_BITSHIFT)
-#define __CPU_MASK(x) ((__CPU_BITTYPE)1 << ((x) & (__CPU_BITS-1)))
+#define __CPU_BITTYPE unsigned long int /* mandated by the kernel */
+#define __CPU_BITS (8 * sizeof(__CPU_BITTYPE))
+#define __CPU_ELT(x) ((x) / __CPU_BITS)
+#define __CPU_MASK(x) ((__CPU_BITTYPE)1 << ((x) & (__CPU_BITS - 1)))
typedef struct {
- __CPU_BITTYPE __bits[ CPU_SETSIZE / __CPU_BITS ];
+ __CPU_BITTYPE __bits[ CPU_SETSIZE / __CPU_BITS ];
} cpu_set_t;
extern int sched_setaffinity(pid_t pid, size_t setsize, const cpu_set_t* set);
extern int sched_getaffinity(pid_t pid, size_t setsize, cpu_set_t* set);
-/* Provide optimized implementation for 32-bit cpu_set_t */
-#if CPU_SETSIZE == __CPU_BITS
-
-# define CPU_ZERO(set_) \
- do{ \
- (set_)->__bits[0] = 0; \
- }while(0)
-
-# define CPU_SET(cpu_,set_) \
- do {\
- size_t __cpu = (cpu_); \
- if (__cpu < CPU_SETSIZE) \
- (set_)->__bits[0] |= __CPU_MASK(__cpu); \
- }while (0)
-
-# define CPU_CLR(cpu_,set_) \
- do {\
- size_t __cpu = (cpu_); \
- if (__cpu < CPU_SETSIZE) \
- (set_)->__bits[0] &= ~__CPU_MASK(__cpu); \
- }while (0)
-
-# define CPU_ISSET(cpu_, set_) \
- (__extension__({\
- size_t __cpu = (cpu_); \
- (cpu_ < CPU_SETSIZE) \
- ? ((set_)->__bits[0] & __CPU_MASK(__cpu)) != 0 \
- : 0; \
- }))
-
-# define CPU_EQUAL(set1_, set2_) \
- ((set1_)->__bits[0] == (set2_)->__bits[0])
-
-# define __CPU_OP(dst_, set1_, set2_, op_) \
- do { \
- (dst_)->__bits[0] = (set1_)->__bits[0] op_ (set2_)->__bits[0]; \
- } while (0)
-
-# define CPU_COUNT(set_) __builtin_popcountl((set_)->__bits[0])
-
-#else /* CPU_SETSIZE != __CPU_BITS */
-
-# define CPU_ZERO(set_) CPU_ZERO_S(sizeof(cpu_set_t), set_)
-# define CPU_SET(cpu_,set_) CPU_SET_S(cpu_,sizeof(cpu_set_t),set_)
-# define CPU_CLR(cpu_,set_) CPU_CLR_S(cpu_,sizeof(cpu_set_t),set_)
-# define CPU_ISSET(cpu_,set_) CPU_ISSET_S(cpu_,sizeof(cpu_set_t),set_)
-# define CPU_COUNT(set_) CPU_COUNT_S(sizeof(cpu_set_t),set_)
-# define CPU_EQUAL(set1_,set2_) CPU_EQUAL_S(sizeof(cpu_set_t),set1_,set2_)
-
-# define __CPU_OP(dst_,set1_,set2_,op_) __CPU_OP_S(sizeof(cpu_set_t),dst_,set1_,set2_,op_)
+#define CPU_ZERO(set) CPU_ZERO_S(sizeof(cpu_set_t), set)
+#define CPU_SET(cpu, set) CPU_SET_S(cpu, sizeof(cpu_set_t), set)
+#define CPU_CLR(cpu, set) CPU_CLR_S(cpu, sizeof(cpu_set_t), set)
+#define CPU_ISSET(cpu, set) CPU_ISSET_S(cpu, sizeof(cpu_set_t), set)
+#define CPU_COUNT(set) CPU_COUNT_S(sizeof(cpu_set_t), set)
+#define CPU_EQUAL(set1, set2) CPU_EQUAL_S(sizeof(cpu_set_t), set1, set2)
-#endif /* CPU_SETSIZE != __CPU_BITS */
+#define CPU_AND(dst, set1, set2) __CPU_OP(dst, set1, set2, &)
+#define CPU_OR(dst, set1, set2) __CPU_OP(dst, set1, set2, |)
+#define CPU_XOR(dst, set1, set2) __CPU_OP(dst, set1, set2, ^)
-#define CPU_AND(set1_,set2_) __CPU_OP(set1_,set2_,&)
-#define CPU_OR(set1_,set2_) __CPU_OP(set1_,set2_,|)
-#define CPU_XOR(set1_,set2_) __CPU_OP(set1_,set2_,^)
+#define __CPU_OP(dst, set1, set2, op) __CPU_OP_S(sizeof(cpu_set_t), dst, set1, set2, op)
/* Support for dynamically-allocated cpu_set_t */
#define CPU_ALLOC_SIZE(count) \
- __CPU_ELT((count) + (__CPU_BITS-1))*sizeof(__CPU_BITTYPE)
+ __CPU_ELT((count) + (__CPU_BITS - 1)) * sizeof(__CPU_BITTYPE)
-#define CPU_ALLOC(count) __sched_cpualloc((count));
-#define CPU_FREE(set) __sched_cpufree((set))
+#define CPU_ALLOC(count) __sched_cpualloc((count))
+#define CPU_FREE(set) __sched_cpufree((set))
extern cpu_set_t* __sched_cpualloc(size_t count);
extern void __sched_cpufree(cpu_set_t* set);
-#define CPU_ZERO_S(setsize_,set_) \
- do { \
- size_t __nn = 0; \
- size_t __nn_max = (setsize_)/sizeof(__CPU_BITTYPE); \
- for (; __nn < __nn_max; __nn++) \
- (set_)->__bits[__nn] = 0; \
- } while (0)
-
-#define CPU_SET_S(cpu_,setsize_,set_) \
- do { \
- size_t __cpu = (cpu_); \
- if (__cpu < 8*(setsize_)) \
- (set_)->__bits[__CPU_ELT(__cpu)] |= __CPU_MASK(__cpu); \
- } while (0)
-
-#define CPU_CLR_S(cpu_,setsize_,set_) \
- do { \
- size_t __cpu = (cpu_); \
- if (__cpu < 8*(setsize_)) \
- (set_)->__bits[__CPU_ELT(__cpu)] &= ~__CPU_MASK(__cpu); \
- } while (0)
-
-#define CPU_ISSET_S(cpu_, setsize_, set_) \
- (__extension__ ({ \
- size_t __cpu = (cpu_); \
- (__cpu < 8*(setsize_)) \
- ? ((set_)->__bits[__CPU_ELT(__cpu)] & __CPU_MASK(__cpu)) != 0 \
- : 0; \
- }))
-
-#define CPU_EQUAL_S(setsize_, set1_, set2_) \
- (__extension__ ({ \
- __const __CPU_BITTYPE* __src1 = (set1_)->__bits; \
- __const __CPU_BITTYPE* __src2 = (set2_)->__bits; \
- size_t __nn = 0, __nn_max = (setsize_)/sizeof(__CPU_BITTYPE); \
- for (; __nn < __nn_max; __nn++) { \
- if (__src1[__nn] != __src2[__nn]) \
- break; \
- } \
- __nn == __nn_max; \
- }))
-
-#define __CPU_OP_S(setsize_, dstset_, srcset1_, srcset2_, op) \
- do { \
- cpu_set_t* __dst = (dstset); \
- const __CPU_BITTYPE* __src1 = (srcset1)->__bits; \
- const __CPU_BITTYPE* __src2 = (srcset2)->__bits; \
- size_t __nn = 0, __nn_max = (setsize_)/sizeof(__CPU_BITTYPE); \
- for (; __nn < __nn_max; __nn++) \
- (__dst)->__bits[__nn] = __src1[__nn] op __src2[__nn]; \
- } while (0)
-
-#define CPU_COUNT_S(setsize_, set_) \
- __sched_cpucount((setsize_), (set_))
+#define CPU_ZERO_S(setsize, set) __builtin_memset(set, 0, setsize)
+
+#define CPU_SET_S(cpu, setsize, set) \
+ do { \
+ size_t __cpu = (cpu); \
+ if (__cpu < 8 * (setsize)) \
+ (set)->__bits[__CPU_ELT(__cpu)] |= __CPU_MASK(__cpu); \
+ } while (0)
+
+#define CPU_CLR_S(cpu, setsize, set) \
+ do { \
+ size_t __cpu = (cpu); \
+ if (__cpu < 8 * (setsize)) \
+ (set)->__bits[__CPU_ELT(__cpu)] &= ~__CPU_MASK(__cpu); \
+ } while (0)
+
+#define CPU_ISSET_S(cpu, setsize, set) \
+ (__extension__ ({ \
+ size_t __cpu = (cpu); \
+ (__cpu < 8 * (setsize)) \
+ ? ((set)->__bits[__CPU_ELT(__cpu)] & __CPU_MASK(__cpu)) != 0 \
+ : 0; \
+ }))
+
+#define CPU_EQUAL_S(setsize, set1, set2) (__builtin_memcmp(set1, set2, setsize) == 0)
+
+#define CPU_AND_S(setsize, dst, set1, set2) __CPU_OP_S(setsize, dst, set1, set2, &)
+#define CPU_OR_S(setsize, dst, set1, set2) __CPU_OP_S(setsize, dst, set1, set2, |)
+#define CPU_XOR_S(setsize, dst, set1, set2) __CPU_OP_S(setsize, dst, set1, set2, ^)
+
+#define __CPU_OP_S(setsize, dstset, srcset1, srcset2, op) \
+ do { \
+ cpu_set_t* __dst = (dstset); \
+ const __CPU_BITTYPE* __src1 = (srcset1)->__bits; \
+ const __CPU_BITTYPE* __src2 = (srcset2)->__bits; \
+ size_t __nn = 0, __nn_max = (setsize)/sizeof(__CPU_BITTYPE); \
+ for (; __nn < __nn_max; __nn++) \
+ (__dst)->__bits[__nn] = __src1[__nn] op __src2[__nn]; \
+ } while (0)
+
+#define CPU_COUNT_S(setsize, set) __sched_cpucount((setsize), (set))
extern int __sched_cpucount(size_t setsize, cpu_set_t* set);
diff --git a/9/platforms/android-19/arch-arm64/usr/include/semaphore.h b/9/platforms/android-19/arch-arm64/usr/include/semaphore.h
index 30e3123..7ae3c3a 100644
--- a/9/platforms/android-19/arch-arm64/usr/include/semaphore.h
+++ b/9/platforms/android-19/arch-arm64/usr/include/semaphore.h
@@ -33,10 +33,13 @@
__BEGIN_DECLS
typedef struct {
- volatile unsigned int count;
+ volatile unsigned int count;
+#ifdef __LP64__
+ int __reserved[3];
+#endif
} sem_t;
-#define SEM_FAILED NULL
+#define SEM_FAILED NULL
extern int sem_init(sem_t *sem, int pshared, unsigned int value);
diff --git a/9/platforms/android-19/arch-arm64/usr/include/signal.h b/9/platforms/android-19/arch-arm64/usr/include/signal.h
index 267f3e6..45c1cda 100644
--- a/9/platforms/android-19/arch-arm64/usr/include/signal.h
+++ b/9/platforms/android-19/arch-arm64/usr/include/signal.h
@@ -60,6 +60,12 @@ typedef int sig_atomic_t;
#define _NSIG (_KERNEL__NSIG + 1)
#define NSIG _NSIG
+/* We take a few real-time signals for ourselves. May as well use the same names as glibc. */
+#define SIGRTMIN (__libc_current_sigrtmin())
+#define SIGRTMAX (__libc_current_sigrtmax())
+extern int __libc_current_sigrtmin(void);
+extern int __libc_current_sigrtmax(void);
+
extern const char* const sys_siglist[];
extern const char* const sys_signame[]; /* BSD compatibility. */
diff --git a/9/platforms/android-19/arch-arm64/usr/include/stdint.h b/9/platforms/android-19/arch-arm64/usr/include/stdint.h
index 1f3d003..f34843c 100644
--- a/9/platforms/android-19/arch-arm64/usr/include/stdint.h
+++ b/9/platforms/android-19/arch-arm64/usr/include/stdint.h
@@ -30,6 +30,7 @@
#define _STDINT_H
#include <stddef.h>
+#include <machine/wchar_limits.h>
typedef __signed char __int8_t;
typedef unsigned char __uint8_t;
@@ -86,7 +87,7 @@ typedef uint8_t uint_fast8_t;
typedef int64_t int_fast64_t;
typedef uint64_t uint_fast64_t;
-#ifdef __LP64__
+#if defined(__LP64__)
typedef int64_t int_fast16_t;
typedef uint64_t uint_fast16_t;
typedef int64_t int_fast32_t;
@@ -135,7 +136,7 @@ typedef int64_t intmax_t;
#define INTMAX_C(c) INT64_C(c)
#define UINTMAX_C(c) UINT64_C(c)
-#ifdef __LP64__
+#if defined(__LP64__)
# define INT64_C(c) c ## L
# define UINT64_C(c) c ## UL
# define INTPTR_C(c) INT64_C(c)
@@ -200,15 +201,15 @@ typedef int64_t intmax_t;
#define SIG_ATOMIC_MAX INT32_MAX
#define SIG_ATOMIC_MIN INT32_MIN
-#ifndef WCHAR_MAX /* These might also have been defined by <wchar.h>. */
-# define WCHAR_MAX INT32_MAX
-# define WCHAR_MIN INT32_MIN
+#if defined(__WINT_UNSIGNED__)
+# define WINT_MAX UINT32_MAX
+# define WINT_MIN UINT32_MIN
+#else
+# define WINT_MAX INT32_MAX
+# define WINT_MIN INT32_MIN
#endif
-#define WINT_MAX INT32_MAX
-#define WINT_MIN INT32_MIN
-
-#ifdef __LP64__
+#if defined(__LP64__)
# define INTPTR_MIN INT64_MIN
# define INTPTR_MAX INT64_MAX
# define UINTPTR_MAX UINT64_MAX
diff --git a/9/platforms/android-19/arch-arm64/usr/include/stdlib.h b/9/platforms/android-19/arch-arm64/usr/include/stdlib.h
index 2c797c5..834dcda 100644
--- a/9/platforms/android-19/arch-arm64/usr/include/stdlib.h
+++ b/9/platforms/android-19/arch-arm64/usr/include/stdlib.h
@@ -46,10 +46,15 @@ extern __noreturn void exit(int);
extern __noreturn void _Exit(int);
extern int atexit(void (*)(void));
-extern char *getenv(const char *);
-extern int putenv(const char *);
-extern int setenv(const char *, const char *, int);
-extern int unsetenv(const char *);
+#if __ISO_C_VISIBLE >= 2011 || __cplusplus >= 201103L
+int at_quick_exit(void (*)(void));
+void quick_exit(int) __noreturn;
+#endif
+
+extern char* getenv(const char*);
+extern int putenv(char*);
+extern int setenv(const char*, const char*, int);
+extern int unsetenv(const char*);
extern int clearenv(void);
extern char* mkdtemp(char*);
@@ -65,9 +70,10 @@ extern unsigned long long strtoull(const char *, char **, int);
extern int posix_memalign(void **memptr, size_t alignment, size_t size);
extern double atof(const char*);
-extern double strtod(const char*, char**);
-extern float strtof(const char*, char**);
-extern long double strtold(const char*, char**);
+
+extern double strtod(const char*, char**) __LIBC_ABI_PUBLIC__;
+extern float strtof(const char*, char**) __LIBC_ABI_PUBLIC__;
+extern long double strtold(const char*, char**) __LIBC_ABI_PUBLIC__;
extern int atoi(const char*) __purefunc;
extern long atol(const char*) __purefunc;
diff --git a/9/platforms/android-19/arch-arm64/usr/include/sys/cdefs_elf.h b/9/platforms/android-19/arch-arm64/usr/include/sys/cdefs_elf.h
index bb846b7..0479230 100644
--- a/9/platforms/android-19/arch-arm64/usr/include/sys/cdefs_elf.h
+++ b/9/platforms/android-19/arch-arm64/usr/include/sys/cdefs_elf.h
@@ -32,7 +32,7 @@
#ifdef __LEADING_UNDERSCORE
#define _C_LABEL(x) __CONCAT(_,x)
-#define _C_LABEL_STRING(x) "_"x
+#define _C_LABEL_STRING(x) "_" x
#else
#define _C_LABEL(x) x
#define _C_LABEL_STRING(x) x
@@ -61,24 +61,11 @@
#define __SECTIONSTRING(_sec, _str) \
__asm__(".section " #_sec "\n\t.asciz \"" _str "\"\n\t.previous")
-/* GCC visibility helper macro */
-/* This must be used to tag non-static functions that are private, i.e.
- * never exposed by the shared library. */
-#define __LIBC_HIDDEN__ \
- __attribute__ ((visibility ("hidden")))
-
-/* This must be used to tag non-static functions that are public, i.e.
- * exposed by the shared library, and part of the stable NDK ABI */
-#define __LIBC_ABI_PUBLIC__ \
- __attribute__ ((visibility ("default")))
-
-/* This must be used to tag non-static functions that must be exported
- * by the shared library, but whose implementation is private to the
- * platform. For now this is equivalent to __LIBC_ABI_PUBLIC__, but we
- * may want to change this later.
- */
-#define __LIBC_ABI_PRIVATE__ \
- __attribute__ ((visibility ("default")))
+/* Used to tag non-static symbols that are private and never exposed by the shared library. */
+#define __LIBC_HIDDEN__ __attribute__((visibility ("hidden")))
+
+/* Used to tag non-static symbols that are public and exposed by the shared library. */
+#define __LIBC_ABI_PUBLIC__ __attribute__((visibility ("default")))
#define __IDSTRING(_n,_s) __SECTIONSTRING(.ident,_s)
diff --git a/9/platforms/android-19/arch-arm64/usr/include/sys/epoll.h b/9/platforms/android-19/arch-arm64/usr/include/sys/epoll.h
index c06a081..4a5a37c 100644
--- a/9/platforms/android-19/arch-arm64/usr/include/sys/epoll.h
+++ b/9/platforms/android-19/arch-arm64/usr/include/sys/epoll.h
@@ -67,7 +67,11 @@ typedef union epoll_data {
struct epoll_event {
uint32_t events;
epoll_data_t data;
-};
+}
+#ifdef __x86_64__
+__packed
+#endif
+;
int epoll_create(int);
int epoll_create1(int);
diff --git a/9/platforms/android-19/arch-arm64/usr/include/sys/types.h b/9/platforms/android-19/arch-arm64/usr/include/sys/types.h
index dc847d2..9a76ad2 100644
--- a/9/platforms/android-19/arch-arm64/usr/include/sys/types.h
+++ b/9/platforms/android-19/arch-arm64/usr/include/sys/types.h
@@ -63,7 +63,7 @@ typedef __mode_t mode_t;
typedef __kernel_key_t __key_t;
typedef __key_t key_t;
-typedef uint32_t __ino_t;
+typedef __kernel_ino_t __ino_t;
typedef __ino_t ino_t;
typedef uint32_t __nlink_t;
@@ -72,9 +72,10 @@ typedef __nlink_t nlink_t;
typedef void* __timer_t;
typedef __timer_t timer_t;
-typedef int32_t __suseconds_t;
+typedef __kernel_suseconds_t __suseconds_t;
typedef __suseconds_t suseconds_t;
+/* useconds_t is 32-bit on both LP32 and LP64. */
typedef uint32_t __useconds_t;
typedef __useconds_t useconds_t;
diff --git a/9/platforms/android-19/arch-arm64/usr/include/sys/user.h b/9/platforms/android-19/arch-arm64/usr/include/sys/user.h
index 5348dd8..c578a6f 100644
--- a/9/platforms/android-19/arch-arm64/usr/include/sys/user.h
+++ b/9/platforms/android-19/arch-arm64/usr/include/sys/user.h
@@ -36,7 +36,7 @@ __BEGIN_DECLS
#if __i386__
-struct user_i387_struct {
+struct user_fpregs_struct {
long cwd;
long swd;
long twd;
@@ -83,7 +83,7 @@ struct user_regs_struct {
struct user {
struct user_regs_struct regs;
int u_fpvalid;
- struct user_i387_struct i387;
+ struct user_fpregs_struct i387;
unsigned long int u_tsize;
unsigned long int u_dsize;
unsigned long int u_ssize;
@@ -92,7 +92,7 @@ struct user {
long int signal;
int reserved;
unsigned long u_ar0;
- struct user_i387_struct* u_fpstate;
+ struct user_fpregs_struct* u_fpstate;
unsigned long magic;
char u_comm[32];
int u_debugreg[8];
@@ -100,7 +100,7 @@ struct user {
#elif defined(__x86_64__)
-struct user_i387_struct {
+struct user_fpregs_struct {
unsigned short cwd;
unsigned short swd;
unsigned short twd;
@@ -146,7 +146,7 @@ struct user {
struct user_regs_struct regs;
int u_fpvalid;
int pad0;
- struct user_i387_struct i387;
+ struct user_fpregs_struct i387;
unsigned long int u_tsize;
unsigned long int u_dsize;
unsigned long int u_ssize;
@@ -156,7 +156,7 @@ struct user {
int reserved;
int pad1;
unsigned long u_ar0;
- struct user_i387_struct* u_fpstate;
+ struct user_fpregs_struct* u_fpstate;
unsigned long magic;
char u_comm[32];
unsigned long u_debugreg[8];
diff --git a/9/platforms/android-19/arch-arm64/usr/include/time64.h b/9/platforms/android-19/arch-arm64/usr/include/time64.h
index 7ec05af..905669d 100644
--- a/9/platforms/android-19/arch-arm64/usr/include/time64.h
+++ b/9/platforms/android-19/arch-arm64/usr/include/time64.h
@@ -31,29 +31,36 @@ Modified for Bionic by the Android Open Source Project
#ifndef TIME64_H
#define TIME64_H
+#if defined(__LP64__)
+
+#error Your time_t is already 64-bit.
+
+#else
+
+/* Legacy cruft for LP32 where time_t was 32-bit. */
+
#include <sys/cdefs.h>
#include <time.h>
#include <stdint.h>
__BEGIN_DECLS
-typedef int64_t time64_t;
+typedef int64_t time64_t;
-struct tm *gmtime64_r (const time64_t *, struct tm *);
-struct tm *localtime64_r (const time64_t *, struct tm *);
-struct tm *gmtime64 (const time64_t *);
-struct tm *localtime64 (const time64_t *);
-
-char *asctime64 (const struct tm *);
-char *asctime64_r (const struct tm *, char *);
-
-char *ctime64 (const time64_t*);
-char *ctime64_r (const time64_t*, char*);
-
-time64_t timegm64 (const struct tm *);
-time64_t mktime64 (const struct tm *);
-time64_t timelocal64 (const struct tm *);
+char* asctime64(const struct tm*);
+char* asctime64_r(const struct tm*, char*);
+char* ctime64(const time64_t*);
+char* ctime64_r(const time64_t*, char*);
+struct tm* gmtime64(const time64_t*);
+struct tm* gmtime64_r(const time64_t*, struct tm*);
+struct tm* localtime64(const time64_t*);
+struct tm* localtime64_r(const time64_t*, struct tm*);
+time64_t mktime64(const struct tm*);
+time64_t timegm64(const struct tm*);
+time64_t timelocal64(const struct tm*);
__END_DECLS
+#endif
+
#endif /* TIME64_H */
diff --git a/9/platforms/android-19/arch-arm64/usr/include/unistd.h b/9/platforms/android-19/arch-arm64/usr/include/unistd.h
index d21f23d..6cb36d8 100644
--- a/9/platforms/android-19/arch-arm64/usr/include/unistd.h
+++ b/9/platforms/android-19/arch-arm64/usr/include/unistd.h
@@ -47,7 +47,8 @@ __BEGIN_DECLS
#define SEEK_CUR 1
#define SEEK_END 2
-extern char **environ;
+extern char** environ;
+
extern __noreturn void _exit(int);
extern pid_t fork(void);
diff --git a/9/platforms/android-19/arch-arm64/usr/include/utmp.h b/9/platforms/android-19/arch-arm64/usr/include/utmp.h
index ffd3c92..d764227 100644
--- a/9/platforms/android-19/arch-arm64/usr/include/utmp.h
+++ b/9/platforms/android-19/arch-arm64/usr/include/utmp.h
@@ -36,9 +36,15 @@
#define _PATH_WTMP "/var/log/wtmp"
#define _PATH_LASTLOG "/var/log/lastlog"
-#define UT_NAMESIZE 8
-#define UT_LINESIZE 8
-#define UT_HOSTSIZE 16
+#ifdef __LP64__
+#define UT_NAMESIZE 32
+#define UT_LINESIZE 32
+#define UT_HOSTSIZE 256
+#else
+#define UT_NAMESIZE 8
+#define UT_LINESIZE 8
+#define UT_HOSTSIZE 16
+#endif
#define USER_PROCESS 7
diff --git a/9/platforms/android-19/arch-arm64/usr/include/wchar.h b/9/platforms/android-19/arch-arm64/usr/include/wchar.h
index 89c6fb6..fe2fe07 100644
--- a/9/platforms/android-19/arch-arm64/usr/include/wchar.h
+++ b/9/platforms/android-19/arch-arm64/usr/include/wchar.h
@@ -34,12 +34,20 @@
#include <stdarg.h>
#include <stddef.h>
#include <time.h>
-#include <malloc.h>
+
+#include <machine/wchar_limits.h>
__BEGIN_DECLS
-typedef __WINT_TYPE__ wint_t;
-typedef struct { int dummy; } mbstate_t;
+typedef __WINT_TYPE__ wint_t;
+typedef struct {
+#ifdef __LP32__
+ int dummy;
+#else
+ // 8 bytes should be enough to support at least UTF-8
+ char __reserved[8];
+#endif
+} mbstate_t;
typedef enum {
WC_TYPE_INVALID = 0,
@@ -58,11 +66,6 @@ typedef enum {
WC_TYPE_MAX
} wctype_t;
-#ifndef WCHAR_MAX
-#define WCHAR_MAX INT_MAX
-#define WCHAR_MIN INT_MIN
-#endif
-
#define WEOF ((wint_t)(-1))
extern wint_t btowc(int);
@@ -70,6 +73,7 @@ extern int fwprintf(FILE *, const wchar_t *, ...);
extern int fwscanf(FILE *, const wchar_t *, ...);
extern int iswalnum(wint_t);
extern int iswalpha(wint_t);
+extern int iswblank(wint_t);
extern int iswcntrl(wint_t);
extern int iswdigit(wint_t);
extern int iswgraph(wint_t);
@@ -90,7 +94,8 @@ extern wint_t getwchar(void);
extern int mbsinit(const mbstate_t *);
extern size_t mbrlen(const char *, size_t, mbstate_t *);
extern size_t mbrtowc(wchar_t *, const char *, size_t, mbstate_t *);
-extern size_t mbsrtowcs(wchar_t *, const char **, size_t, mbstate_t *);
+extern size_t mbsrtowcs(wchar_t*, const char**, size_t, mbstate_t*);
+extern size_t mbsnrtowcs(wchar_t*, const char**, size_t, size_t, mbstate_t*);
extern size_t mbstowcs(wchar_t *, const char *, size_t);
extern wint_t putwc(wchar_t, FILE *);
extern wint_t putwchar(wchar_t);
@@ -99,9 +104,12 @@ extern int swscanf(const wchar_t *, const wchar_t *, ...);
extern wint_t towlower(wint_t);
extern wint_t towupper(wint_t);
extern wint_t ungetwc(wint_t, FILE *);
-extern int vfwprintf(FILE *, const wchar_t *, va_list);
-extern int vwprintf(const wchar_t *, va_list);
-extern int vswprintf(wchar_t *, size_t, const wchar_t *, va_list);
+extern int vfwprintf(FILE*, const wchar_t*, va_list);
+extern int vfwscanf(FILE*, const wchar_t*, va_list);
+extern int vswprintf(wchar_t*, size_t, const wchar_t*, va_list);
+extern int vswscanf(const wchar_t*, const wchar_t*, va_list);
+extern int vwprintf(const wchar_t*, va_list);
+extern int vwscanf(const wchar_t*, va_list);
extern size_t wcrtomb(char *, wchar_t, mbstate_t *);
extern int wcscasecmp(const wchar_t *, const wchar_t *);
extern wchar_t *wcscat(wchar_t *, const wchar_t *);
@@ -116,16 +124,20 @@ extern int wcsncasecmp(const wchar_t *, const wchar_t *, size_t);
extern wchar_t *wcsncat(wchar_t *, const wchar_t *, size_t);
extern int wcsncmp(const wchar_t *, const wchar_t *, size_t);
extern wchar_t *wcsncpy(wchar_t *, const wchar_t *, size_t);
+extern size_t wcsnrtombs(char*, const wchar_t**, size_t, size_t, mbstate_t*);
extern wchar_t *wcspbrk(const wchar_t *, const wchar_t *);
extern wchar_t *wcsrchr(const wchar_t *, wchar_t);
-extern size_t wcsrtombs(char *, const wchar_t **, size_t, mbstate_t *);
+extern size_t wcsrtombs(char*, const wchar_t**, size_t, mbstate_t*);
extern size_t wcsspn(const wchar_t *, const wchar_t *);
extern wchar_t *wcsstr(const wchar_t *, const wchar_t *);
-extern double wcstod(const wchar_t *, wchar_t **);
-extern wchar_t *wcstok(wchar_t *, const wchar_t *, wchar_t **);
-extern long int wcstol(const wchar_t *, wchar_t **, int);
-extern size_t wcstombs(char *, const wchar_t *, size_t);
-extern unsigned long int wcstoul(const wchar_t *, wchar_t **, int);
+extern double wcstod(const wchar_t*, wchar_t**);
+extern float wcstof(const wchar_t*, wchar_t**);
+extern wchar_t* wcstok(wchar_t*, const wchar_t*, wchar_t**);
+extern long wcstol(const wchar_t*, wchar_t**, int);
+extern long long wcstoll(const wchar_t*, wchar_t**, int);
+extern long double wcstold(const wchar_t*, wchar_t**);
+extern unsigned long wcstoul(const wchar_t*, wchar_t**, int);
+extern unsigned long long wcstoull(const wchar_t*, wchar_t**, int);
extern wchar_t *wcswcs(const wchar_t *, const wchar_t *);
extern int wcswidth(const wchar_t *, size_t);
extern size_t wcsxfrm(wchar_t *, const wchar_t *, size_t);
diff --git a/9/platforms/android-19/arch-arm64/usr/lib/crtbegin_dynamic.o b/9/platforms/android-19/arch-arm64/usr/lib/crtbegin_dynamic.o
index 03629d2..b8c3e04 100644
--- a/9/platforms/android-19/arch-arm64/usr/lib/crtbegin_dynamic.o
+++ b/9/platforms/android-19/arch-arm64/usr/lib/crtbegin_dynamic.o
Binary files differ
diff --git a/9/platforms/android-19/arch-arm64/usr/lib/crtbegin_so.o b/9/platforms/android-19/arch-arm64/usr/lib/crtbegin_so.o
index ae913aa..93f4f91 100644
--- a/9/platforms/android-19/arch-arm64/usr/lib/crtbegin_so.o
+++ b/9/platforms/android-19/arch-arm64/usr/lib/crtbegin_so.o
Binary files differ
diff --git a/9/platforms/android-19/arch-arm64/usr/lib/crtbegin_static.o b/9/platforms/android-19/arch-arm64/usr/lib/crtbegin_static.o
index 03629d2..b8c3e04 100644
--- a/9/platforms/android-19/arch-arm64/usr/lib/crtbegin_static.o
+++ b/9/platforms/android-19/arch-arm64/usr/lib/crtbegin_static.o
Binary files differ
diff --git a/9/platforms/android-19/arch-arm64/usr/lib/crtend_android.o b/9/platforms/android-19/arch-arm64/usr/lib/crtend_android.o
index a8bbf0d..a5bf084 100644
--- a/9/platforms/android-19/arch-arm64/usr/lib/crtend_android.o
+++ b/9/platforms/android-19/arch-arm64/usr/lib/crtend_android.o
Binary files differ
diff --git a/9/platforms/android-19/arch-arm64/usr/lib/crtend_so.o b/9/platforms/android-19/arch-arm64/usr/lib/crtend_so.o
index 84a2f46..8330c9d 100644
--- a/9/platforms/android-19/arch-arm64/usr/lib/crtend_so.o
+++ b/9/platforms/android-19/arch-arm64/usr/lib/crtend_so.o
Binary files differ
diff --git a/9/platforms/android-19/arch-arm64/usr/lib/libEGL.so b/9/platforms/android-19/arch-arm64/usr/lib/libEGL.so
index 8d12e8f..1e15167 100755
--- a/9/platforms/android-19/arch-arm64/usr/lib/libEGL.so
+++ b/9/platforms/android-19/arch-arm64/usr/lib/libEGL.so
Binary files differ
diff --git a/9/platforms/android-19/arch-arm64/usr/lib/libGLESv1_CM.so b/9/platforms/android-19/arch-arm64/usr/lib/libGLESv1_CM.so
index 69ee24d..c9fb7c9 100755
--- a/9/platforms/android-19/arch-arm64/usr/lib/libGLESv1_CM.so
+++ b/9/platforms/android-19/arch-arm64/usr/lib/libGLESv1_CM.so
Binary files differ
diff --git a/9/platforms/android-19/arch-arm64/usr/lib/libGLESv2.so b/9/platforms/android-19/arch-arm64/usr/lib/libGLESv2.so
index 5ac6347..c153102 100755
--- a/9/platforms/android-19/arch-arm64/usr/lib/libGLESv2.so
+++ b/9/platforms/android-19/arch-arm64/usr/lib/libGLESv2.so
Binary files differ
diff --git a/9/platforms/android-19/arch-arm64/usr/lib/libGLESv3.so b/9/platforms/android-19/arch-arm64/usr/lib/libGLESv3.so
index b0ab4f6..e0c4fca 100755
--- a/9/platforms/android-19/arch-arm64/usr/lib/libGLESv3.so
+++ b/9/platforms/android-19/arch-arm64/usr/lib/libGLESv3.so
Binary files differ
diff --git a/9/platforms/android-19/arch-arm64/usr/lib/libOpenMAXAL.so b/9/platforms/android-19/arch-arm64/usr/lib/libOpenMAXAL.so
index 40665c5..1339835 100755
--- a/9/platforms/android-19/arch-arm64/usr/lib/libOpenMAXAL.so
+++ b/9/platforms/android-19/arch-arm64/usr/lib/libOpenMAXAL.so
Binary files differ
diff --git a/9/platforms/android-19/arch-arm64/usr/lib/libOpenSLES.so b/9/platforms/android-19/arch-arm64/usr/lib/libOpenSLES.so
index 5b6d7e3..a7f2935 100755
--- a/9/platforms/android-19/arch-arm64/usr/lib/libOpenSLES.so
+++ b/9/platforms/android-19/arch-arm64/usr/lib/libOpenSLES.so
Binary files differ
diff --git a/9/platforms/android-19/arch-arm64/usr/lib/libandroid.so b/9/platforms/android-19/arch-arm64/usr/lib/libandroid.so
index 3a78f16..ebba01d 100755
--- a/9/platforms/android-19/arch-arm64/usr/lib/libandroid.so
+++ b/9/platforms/android-19/arch-arm64/usr/lib/libandroid.so
Binary files differ
diff --git a/9/platforms/android-19/arch-arm64/usr/lib/libc.a b/9/platforms/android-19/arch-arm64/usr/lib/libc.a
index 244f178..737b48d 100644
--- a/9/platforms/android-19/arch-arm64/usr/lib/libc.a
+++ b/9/platforms/android-19/arch-arm64/usr/lib/libc.a
Binary files differ
diff --git a/9/platforms/android-19/arch-arm64/usr/lib/libc.so b/9/platforms/android-19/arch-arm64/usr/lib/libc.so
index 7041545..3dadbfc 100755
--- a/9/platforms/android-19/arch-arm64/usr/lib/libc.so
+++ b/9/platforms/android-19/arch-arm64/usr/lib/libc.so
Binary files differ
diff --git a/9/platforms/android-19/arch-arm64/usr/lib/libdl.so b/9/platforms/android-19/arch-arm64/usr/lib/libdl.so
index 6aed7c1..364775d 100755
--- a/9/platforms/android-19/arch-arm64/usr/lib/libdl.so
+++ b/9/platforms/android-19/arch-arm64/usr/lib/libdl.so
Binary files differ
diff --git a/9/platforms/android-19/arch-arm64/usr/lib/libjnigraphics.so b/9/platforms/android-19/arch-arm64/usr/lib/libjnigraphics.so
index 4c47cb4..37268de 100755
--- a/9/platforms/android-19/arch-arm64/usr/lib/libjnigraphics.so
+++ b/9/platforms/android-19/arch-arm64/usr/lib/libjnigraphics.so
Binary files differ
diff --git a/9/platforms/android-19/arch-arm64/usr/lib/liblog.so b/9/platforms/android-19/arch-arm64/usr/lib/liblog.so
index 11aafff..214ee45 100755
--- a/9/platforms/android-19/arch-arm64/usr/lib/liblog.so
+++ b/9/platforms/android-19/arch-arm64/usr/lib/liblog.so
Binary files differ
diff --git a/9/platforms/android-19/arch-arm64/usr/lib/libm.a b/9/platforms/android-19/arch-arm64/usr/lib/libm.a
index 1ef1f14..2c5d4f8 100644
--- a/9/platforms/android-19/arch-arm64/usr/lib/libm.a
+++ b/9/platforms/android-19/arch-arm64/usr/lib/libm.a
Binary files differ
diff --git a/9/platforms/android-19/arch-arm64/usr/lib/libm.so b/9/platforms/android-19/arch-arm64/usr/lib/libm.so
index c9a409a..a63d39a 100755
--- a/9/platforms/android-19/arch-arm64/usr/lib/libm.so
+++ b/9/platforms/android-19/arch-arm64/usr/lib/libm.so
Binary files differ
diff --git a/9/platforms/android-19/arch-arm64/usr/lib/libstdc++.a b/9/platforms/android-19/arch-arm64/usr/lib/libstdc++.a
index c60c482..35b02d5 100644
--- a/9/platforms/android-19/arch-arm64/usr/lib/libstdc++.a
+++ b/9/platforms/android-19/arch-arm64/usr/lib/libstdc++.a
Binary files differ
diff --git a/9/platforms/android-19/arch-arm64/usr/lib/libstdc++.so b/9/platforms/android-19/arch-arm64/usr/lib/libstdc++.so
index 4bcbe9b..1fafc4b 100755
--- a/9/platforms/android-19/arch-arm64/usr/lib/libstdc++.so
+++ b/9/platforms/android-19/arch-arm64/usr/lib/libstdc++.so
Binary files differ
diff --git a/9/platforms/android-19/arch-arm64/usr/lib/libz.a b/9/platforms/android-19/arch-arm64/usr/lib/libz.a
index 616d6fd..c6b60b0 100644
--- a/9/platforms/android-19/arch-arm64/usr/lib/libz.a
+++ b/9/platforms/android-19/arch-arm64/usr/lib/libz.a
Binary files differ
diff --git a/9/platforms/android-19/arch-mips64/usr/include/android/dlext.h b/9/platforms/android-19/arch-mips64/usr/include/android/dlext.h
new file mode 100644
index 0000000..90962fa
--- /dev/null
+++ b/9/platforms/android-19/arch-mips64/usr/include/android/dlext.h
@@ -0,0 +1,70 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __ANDROID_DLEXT_H__
+#define __ANDROID_DLEXT_H__
+
+#include <stddef.h>
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
+
+/* bitfield definitions for android_dlextinfo.flags */
+enum {
+ /* When set, the reserved_addr and reserved_size fields must point to an
+ * already-reserved region of address space which will be used to load the
+ * library if it fits. If the reserved region is not large enough, the load
+ * will fail.
+ */
+ ANDROID_DLEXT_RESERVED_ADDRESS = 0x1,
+
+ /* As DLEXT_RESERVED_ADDRESS, but if the reserved region is not large enough,
+ * the linker will choose an available address instead.
+ */
+ ANDROID_DLEXT_RESERVED_ADDRESS_HINT = 0x2,
+
+ /* When set, write the GNU RELRO section of the mapped library to relro_fd
+ * after relocation has been performed, to allow it to be reused by another
+ * process loading the same library at the same address. This implies
+ * ANDROID_DLEXT_USE_RELRO.
+ */
+ ANDROID_DLEXT_WRITE_RELRO = 0x4,
+
+ /* When set, compare the GNU RELRO section of the mapped library to relro_fd
+ * after relocation has been performed, and replace any relocated pages that
+ * are identical with a version mapped from the file.
+ */
+ ANDROID_DLEXT_USE_RELRO = 0x8,
+
+ /* Mask of valid bits */
+ ANDROID_DLEXT_VALID_FLAG_BITS = ANDROID_DLEXT_RESERVED_ADDRESS |
+ ANDROID_DLEXT_RESERVED_ADDRESS_HINT |
+ ANDROID_DLEXT_WRITE_RELRO |
+ ANDROID_DLEXT_USE_RELRO,
+};
+
+typedef struct {
+ int flags;
+ void* reserved_addr;
+ size_t reserved_size;
+ int relro_fd;
+} android_dlextinfo;
+
+extern void* android_dlopen_ext(const char* filename, int flag, const android_dlextinfo* extinfo);
+
+__END_DECLS
+
+#endif /* __ANDROID_DLEXT_H__ */
diff --git a/9/platforms/android-19/arch-mips64/usr/include/asm-generic/signal.h b/9/platforms/android-19/arch-mips64/usr/include/asm-generic/signal.h
index fe7d9a0..e103240 100644
--- a/9/platforms/android-19/arch-mips64/usr/include/asm-generic/signal.h
+++ b/9/platforms/android-19/arch-mips64/usr/include/asm-generic/signal.h
@@ -66,9 +66,9 @@
#define SIGSYS 31
#define SIGUNUSED 31
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define SIGRTMIN 32
-#ifndef SIGRTMAX
-#define SIGRTMAX _KERNEL__NSIG
+#define __SIGRTMIN 32
+#ifndef __SIGRTMAX
+#define __SIGRTMAX _KERNEL__NSIG
#endif
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define SA_NOCLDSTOP 0x00000001
diff --git a/9/platforms/android-19/arch-mips64/usr/include/asm/siginfo.h b/9/platforms/android-19/arch-mips64/usr/include/asm/siginfo.h
index 45b418a..5397c62 100644
--- a/9/platforms/android-19/arch-mips64/usr/include/asm/siginfo.h
+++ b/9/platforms/android-19/arch-mips64/usr/include/asm/siginfo.h
@@ -27,6 +27,7 @@ struct siginfo;
#define __ARCH_SI_PREAMBLE_SIZE (3 * sizeof(int))
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#ifdef __LP64__
+#undef __ARCH_SI_PREAMBLE_SIZE
#define __ARCH_SI_PREAMBLE_SIZE (4 * sizeof(int))
#endif
#include <asm-generic/siginfo.h>
diff --git a/9/platforms/android-19/arch-mips64/usr/include/asm/signal.h b/9/platforms/android-19/arch-mips64/usr/include/asm/signal.h
index 53f5015..b774a66 100644
--- a/9/platforms/android-19/arch-mips64/usr/include/asm/signal.h
+++ b/9/platforms/android-19/arch-mips64/usr/include/asm/signal.h
@@ -71,8 +71,8 @@ typedef unsigned long old_sigset_t;
#define SIGXCPU 30
#define SIGXFSZ 31
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define SIGRTMIN 32
-#define SIGRTMAX _KERNEL__NSIG
+#define __SIGRTMIN 32
+#define __SIGRTMAX _KERNEL__NSIG
#define SA_ONSTACK 0x08000000
#define SA_RESETHAND 0x80000000
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/9/platforms/android-19/arch-mips64/usr/include/ctype.h b/9/platforms/android-19/arch-mips64/usr/include/ctype.h
index 5557e31..7edd8cc 100644
--- a/9/platforms/android-19/arch-mips64/usr/include/ctype.h
+++ b/9/platforms/android-19/arch-mips64/usr/include/ctype.h
@@ -44,12 +44,16 @@
#define _CTYPE_U 0x01
#define _CTYPE_L 0x02
-#define _CTYPE_N 0x04
+#define _CTYPE_D 0x04
#define _CTYPE_S 0x08
#define _CTYPE_P 0x10
#define _CTYPE_C 0x20
#define _CTYPE_X 0x40
#define _CTYPE_B 0x80
+#define _CTYPE_R (_CTYPE_P|_CTYPE_U|_CTYPE_L|_CTYPE_D|_CTYPE_B)
+#define _CTYPE_A (_CTYPE_L|_CTYPE_U)
+
+#define _CTYPE_N _CTYPE_D
__BEGIN_DECLS
@@ -57,17 +61,6 @@ extern const char *_ctype_;
extern const short *_tolower_tab_;
extern const short *_toupper_tab_;
-/* extern __inline is a GNU C extension */
-#ifdef __GNUC__
-# if defined(__GNUC_STDC_INLINE__)
-#define __CTYPE_INLINE extern __inline __attribute__((__gnu_inline__))
-# else
-#define __CTYPE_INLINE extern __inline
-# endif
-#else
-#define __CTYPE_INLINE static __inline
-#endif
-
#if defined(__GNUC__) || defined(_ANSI_LIBRARY) || defined(lint)
int isalnum(int);
int isalpha(int);
@@ -97,111 +90,6 @@ int _toupper(int);
#endif /* __GNUC__ || _ANSI_LIBRARY || lint */
-#if defined(NDEBUG)
-
-__CTYPE_INLINE int isalnum(int c)
-{
- return (c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)c] & (_CTYPE_U|_CTYPE_L|_CTYPE_N)));
-}
-
-__CTYPE_INLINE int isalpha(int c)
-{
- return (c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)c] & (_CTYPE_U|_CTYPE_L)));
-}
-
-__CTYPE_INLINE int iscntrl(int c)
-{
- return (c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)c] & _CTYPE_C));
-}
-
-__CTYPE_INLINE int isdigit(int c)
-{
- return (c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)c] & _CTYPE_N));
-}
-
-__CTYPE_INLINE int isgraph(int c)
-{
- return (c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)c] & (_CTYPE_P|_CTYPE_U|_CTYPE_L|_CTYPE_N)));
-}
-
-__CTYPE_INLINE int islower(int c)
-{
- return (c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)c] & _CTYPE_L));
-}
-
-__CTYPE_INLINE int isprint(int c)
-{
- return (c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)c] & (_CTYPE_P|_CTYPE_U|_CTYPE_L|_CTYPE_N|_CTYPE_B)));
-}
-
-__CTYPE_INLINE int ispunct(int c)
-{
- return (c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)c] & _CTYPE_P));
-}
-
-__CTYPE_INLINE int isspace(int c)
-{
- return (c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)c] & _CTYPE_S));
-}
-
-__CTYPE_INLINE int isupper(int c)
-{
- return (c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)c] & _CTYPE_U));
-}
-
-__CTYPE_INLINE int isxdigit(int c)
-{
- return (c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)c] & (_CTYPE_N|_CTYPE_X)));
-}
-
-__CTYPE_INLINE int tolower(int c)
-{
- if ((unsigned int)c > 255)
- return (c);
- return ((_tolower_tab_ + 1)[c]);
-}
-
-__CTYPE_INLINE int toupper(int c)
-{
- if ((unsigned int)c > 255)
- return (c);
- return ((_toupper_tab_ + 1)[c]);
-}
-
-#if __BSD_VISIBLE || __ISO_C_VISIBLE >= 1999 || __POSIX_VISIBLE > 200112 \
- || __XPG_VISIBLE > 600
-__CTYPE_INLINE int isblank(int c)
-{
- return (c == ' ' || c == '\t');
-}
-#endif
-
-#if __BSD_VISIBLE || __XPG_VISIBLE
-__CTYPE_INLINE int isascii(int c)
-{
- return ((unsigned int)c <= 0177);
-}
-
-__CTYPE_INLINE int toascii(int c)
-{
- return (c & 0177);
-}
-
-__CTYPE_INLINE int _tolower(int c)
-{
- return (c - 'A' + 'a');
-}
-
-__CTYPE_INLINE int _toupper(int c)
-{
- return (c - 'a' + 'A');
-}
-#endif /* __BSD_VISIBLE || __XPG_VISIBLE */
-
-#endif /* NDEBUG */
-
__END_DECLS
-#undef __CTYPE_INLINE
-
#endif /* !_CTYPE_H_ */
diff --git a/9/platforms/android-19/arch-mips64/usr/include/inttypes.h b/9/platforms/android-19/arch-mips64/usr/include/inttypes.h
index 2fd2415..8853c08 100644
--- a/9/platforms/android-19/arch-mips64/usr/include/inttypes.h
+++ b/9/platforms/android-19/arch-mips64/usr/include/inttypes.h
@@ -254,16 +254,14 @@ typedef struct {
} imaxdiv_t;
__BEGIN_DECLS
-
intmax_t imaxabs(intmax_t) __pure2;
imaxdiv_t imaxdiv(intmax_t, intmax_t) __pure2;
-
intmax_t strtoimax(const char *, char **, int);
uintmax_t strtoumax(const char *, char **, int);
-
-intmax_t strntoimax(const char *nptr, char **endptr, int base, size_t n);
-uintmax_t strntoumax(const char *nptr, char **endptr, int base, size_t n);
-
+intmax_t wcstoimax(const wchar_t * __restrict,
+ wchar_t ** __restrict, int);
+uintmax_t wcstoumax(const wchar_t * __restrict,
+ wchar_t ** __restrict, int);
__END_DECLS
#endif /* _INTTYPES_H_ */
diff --git a/9/platforms/android-19/arch-mips64/usr/include/limits.h b/9/platforms/android-19/arch-mips64/usr/include/limits.h
index a70021a..dc45902 100644
--- a/9/platforms/android-19/arch-mips64/usr/include/limits.h
+++ b/9/platforms/android-19/arch-mips64/usr/include/limits.h
@@ -112,7 +112,7 @@
#define SSIZE_MAX LONG_MAX
-#define MB_LEN_MAX 1 /* No multibyte characters. */
+#define MB_LEN_MAX 6
/* New code should use sysconf(_SC_PAGE_SIZE) instead. */
#ifndef PAGE_SIZE
diff --git a/9/platforms/android-19/arch-mips64/usr/include/linux/prctl.h b/9/platforms/android-19/arch-mips64/usr/include/linux/prctl.h
index 87c7e2f..baa597e 100644
--- a/9/platforms/android-19/arch-mips64/usr/include/linux/prctl.h
+++ b/9/platforms/android-19/arch-mips64/usr/include/linux/prctl.h
@@ -117,7 +117,8 @@
#define PR_GET_NO_NEW_PRIVS 39
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define PR_GET_TID_ADDRESS 40
+#define PR_SET_TIMERSLACK_PID 41
#define PR_SET_VMA 0x53564d41
#define PR_SET_VMA_ANON_NAME 0
-#endif
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
diff --git a/9/platforms/android-19/arch-mips64/usr/include/locale.h b/9/platforms/android-19/arch-mips64/usr/include/locale.h
index 6989851..7fd8c2c 100644
--- a/9/platforms/android-19/arch-mips64/usr/include/locale.h
+++ b/9/platforms/android-19/arch-mips64/usr/include/locale.h
@@ -33,21 +33,19 @@
__BEGIN_DECLS
-enum {
- LC_CTYPE = 0,
- LC_NUMERIC = 1,
- LC_TIME = 2,
- LC_COLLATE = 3,
- LC_MONETARY = 4,
- LC_MESSAGES = 5,
- LC_ALL = 6,
- LC_PAPER = 7,
- LC_NAME = 8,
- LC_ADDRESS = 9,
- LC_TELEPHONE = 10,
- LC_MEASUREMENT = 11,
- LC_IDENTIFICATION = 12
-};
+#define LC_CTYPE 0
+#define LC_NUMERIC 1
+#define LC_TIME 2
+#define LC_COLLATE 3
+#define LC_MONETARY 4
+#define LC_MESSAGES 5
+#define LC_ALL 6
+#define LC_PAPER 7
+#define LC_NAME 8
+#define LC_ADDRESS 9
+#define LC_TELEPHONE 10
+#define LC_MEASUREMENT 11
+#define LC_IDENTIFICATION 12
#define LC_CTYPE_MASK (1 << LC_CTYPE)
#define LC_NUMERIC_MASK (1 << LC_NUMERIC)
diff --git a/9/platforms/android-19/arch-mips64/usr/include/machine/ieee.h b/9/platforms/android-19/arch-mips64/usr/include/machine/ieee.h
index 520a77b..c579969 100644
--- a/9/platforms/android-19/arch-mips64/usr/include/machine/ieee.h
+++ b/9/platforms/android-19/arch-mips64/usr/include/machine/ieee.h
@@ -1,4 +1,5 @@
-/* $OpenBSD: ieee.h,v 1.4 2010/01/23 19:11:21 miod Exp $ */
+/* $OpenBSD: ieee.h,v 1.4 2011/11/08 17:06:51 deraadt Exp $ */
+/* $NetBSD: ieee.h,v 1.2 2001/02/21 17:43:50 bjh21 Exp $ */
/*
* Copyright (c) 1992, 1993
@@ -21,7 +22,11 @@
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by the University of
+ * California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
@@ -40,130 +45,74 @@
* @(#)ieee.h 8.1 (Berkeley) 6/11/93
*/
-/*
- * ieee.h defines the machine-dependent layout of the machine's IEEE
- * floating point. It does *not* define (yet?) any of the rounding
- * mode bits, exceptions, and so forth.
- */
+#ifndef _MACHINE_IEEE_H_
+#define _MACHINE_IEEE_H_
-/*
- * Define the number of bits in each fraction and exponent.
- *
- * k k+1
- * Note that 1.0 x 2 == 0.1 x 2 and that denorms are represented
- *
- * (-exp_bias+1)
- * as fractions that look like 0.fffff x 2 . This means that
- *
- * -126
- * the number 0.10000 x 2 , for instance, is the same as the normalized
- *
- * -127 -128
- * float 1.0 x 2 . Thus, to represent 2 , we need one leading zero
- *
- * -129
- * in the fraction; to represent 2 , we need two, and so on. This
- *
- * (-exp_bias-fracbits+1)
- * implies that the smallest denormalized number is 2
- *
- * for whichever format we are talking about: for single precision, for
- *
- * -126 -149
- * instance, we get .00000000000000000000001 x 2 , or 1.0 x 2 , and
- *
- * -149 == -127 - 23 + 1.
- */
-#define SNG_EXPBITS 8
-#define SNG_FRACBITS 23
-
-#define DBL_EXPBITS 11
-#define DBL_FRACHBITS 20
-#define DBL_FRACLBITS 32
-#define DBL_FRACBITS 52
-
-#define EXT_EXPBITS 15
-#define EXT_FRACHBITS 16
-#define EXT_FRACHMBITS 32
-#define EXT_FRACLMBITS 32
-#define EXT_FRACLBITS 32
-#define EXT_FRACBITS 112
-
-#define EXT_IMPLICIT_NBIT
-
-#define EXT_TO_ARRAY32(p, a) do { \
- (a)[0] = (uint32_t)(p)->ext_fracl; \
- (a)[1] = (uint32_t)(p)->ext_fraclm; \
- (a)[2] = (uint32_t)(p)->ext_frachm; \
- (a)[3] = (uint32_t)(p)->ext_frach; \
-} while(0)
+#include <sys/types.h>
+
+__BEGIN_DECLS
+
+#define SNG_EXPBITS 8
+#define SNG_FRACBITS 23
+
+#define SNG_EXP_INFNAN 255
+#define SNG_EXP_BIAS 127
struct ieee_single {
-#ifdef __MIPSEB__
- u_int sng_sign:1;
- u_int sng_exp:8;
- u_int sng_frac:23;
-#else
- u_int sng_frac:23;
- u_int sng_exp:8;
- u_int sng_sign:1;
-#endif
+ unsigned sng_frac:23;
+ unsigned sng_exp:8;
+ unsigned sng_sign:1;
};
+#define DBL_EXPBITS 11
+#define DBL_FRACHBITS 20
+#define DBL_FRACLBITS 32
+#define DBL_FRACBITS 52
+
+#define DBL_EXP_INFNAN 2047
+#define DBL_EXP_BIAS 1023
+
struct ieee_double {
-#ifdef __MIPSEB__
- u_int dbl_sign:1;
- u_int dbl_exp:11;
- u_int dbl_frach:20;
- u_int dbl_fracl;
-#else
- u_int dbl_fracl;
- u_int dbl_frach:20;
- u_int dbl_exp:11;
- u_int dbl_sign:1;
-#endif
+ unsigned dbl_fracl;
+ unsigned dbl_frach:20;
+ unsigned dbl_exp:11;
+ unsigned dbl_sign:1;
};
+#if __LP64__
+
+/* 64-bit Android uses ld128 long doubles. */
+
+#define EXT_EXPBITS 15
+#define EXT_FRACHBITS 16
+#define EXT_FRACHMBITS 32
+#define EXT_FRACLMBITS 32
+#define EXT_FRACLBITS 32
+#define EXT_FRACBITS 112
+
+#define EXT_EXP_INFNAN 32767
+#define EXT_EXP_BIAS 16383
+
+#define EXT_IMPLICIT_NBIT
+
+#define EXT_TO_ARRAY32(p, a) do { \
+ (a)[0] = (uint32_t)(p)->ext_fracl; \
+ (a)[1] = (uint32_t)(p)->ext_fraclm; \
+ (a)[2] = (uint32_t)(p)->ext_frachm; \
+ (a)[3] = (uint32_t)(p)->ext_frach; \
+} while(0)
+
struct ieee_ext {
-#ifdef __MIPSEB__
- u_int ext_sign:1;
- u_int ext_exp:15;
- u_int ext_frach:16;
- u_int ext_frachm;
- u_int ext_fraclm;
- u_int ext_fracl;
-#else
- u_int ext_fracl;
- u_int ext_fraclm;
- u_int ext_frachm;
- u_int ext_frach:16;
- u_int ext_exp:15;
- u_int ext_sign:1;
-#endif
+ unsigned ext_fracl;
+ unsigned ext_fraclm;
+ unsigned ext_frachm;
+ unsigned ext_frach:16;
+ unsigned ext_exp:15;
+ unsigned ext_sign:1;
};
-/*
- * Floats whose exponent is in [1..INFNAN) (of whatever type) are
- * `normal'. Floats whose exponent is INFNAN are either Inf or NaN.
- * Floats whose exponent is zero are either zero (iff all fraction
- * bits are zero) or subnormal values.
- *
- * A NaN is a `signalling NaN' if its QUIETNAN bit is clear in its
- * high fraction; if the bit is set, it is a `quiet NaN'.
- */
-#define SNG_EXP_INFNAN 255
-#define DBL_EXP_INFNAN 2047
-#define EXT_EXP_INFNAN 32767
-
-#if 0
-#define SNG_QUIETNAN (1 << 22)
-#define DBL_QUIETNAN (1 << 19)
-#define EXT_QUIETNAN (1 << 15)
#endif
-/*
- * Exponent biases.
- */
-#define SNG_EXP_BIAS 127
-#define DBL_EXP_BIAS 1023
-#define EXT_EXP_BIAS 16383
+__END_DECLS
+
+#endif /* _MACHINE_IEEE_H_ */
diff --git a/9/platforms/android-19/arch-mips64/usr/include/machine/wchar_limits.h b/9/platforms/android-19/arch-mips64/usr/include/machine/wchar_limits.h
new file mode 100644
index 0000000..94cbd7e
--- /dev/null
+++ b/9/platforms/android-19/arch-mips64/usr/include/machine/wchar_limits.h
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#ifndef _MACHINE_WCHAR_LIMITS_H_
+#define _MACHINE_WCHAR_LIMITS_H_
+
+/* Both GCC and clang define __WCHAR_MAX__. */
+#define WCHAR_MAX __WCHAR_MAX__
+
+/* As of 3.4, clang still doesn't define __WCHAR_MIN__. */
+#if defined(__WCHAR_UNSIGNED__)
+# define WCHAR_MIN L'\0'
+#else
+# define WCHAR_MIN (-(WCHAR_MAX) - 1)
+#endif
+
+#endif /* _MACHINE_WCHAR_LIMITS_H_ */
diff --git a/9/platforms/android-19/arch-mips64/usr/include/math.h b/9/platforms/android-19/arch-mips64/usr/include/math.h
index bd0241b..c264583 100644
--- a/9/platforms/android-19/arch-mips64/usr/include/math.h
+++ b/9/platforms/android-19/arch-mips64/usr/include/math.h
@@ -396,16 +396,23 @@ float significandf(float);
* long double versions of ISO/POSIX math functions
*/
#if __ISO_C_VISIBLE >= 1999
+long double acoshl(long double);
long double acosl(long double);
+long double asinhl(long double);
long double asinl(long double);
long double atan2l(long double, long double);
+long double atanhl(long double);
long double atanl(long double);
long double cbrtl(long double);
long double ceill(long double);
long double copysignl(long double, long double) __pure2;
+long double coshl(long double);
long double cosl(long double);
+long double erfcl(long double);
+long double erfl(long double);
long double exp2l(long double);
long double expl(long double);
+long double expm1l(long double);
long double fabsl(long double) __pure2;
long double fdiml(long double, long double);
long double floorl(long double);
@@ -417,9 +424,14 @@ long double frexpl(long double value, int *); /* fundamentally !__pure2 */
long double hypotl(long double, long double);
int ilogbl(long double) __pure2;
long double ldexpl(long double, int);
+long double lgammal(long double);
long long llrintl(long double);
long long llroundl(long double);
+long double log10l(long double);
+long double log1pl(long double);
+long double log2l(long double);
long double logbl(long double);
+long double logl(long double);
long lrintl(long double);
long lroundl(long double);
long double modfl(long double, long double *); /* fundamentally !__pure2 */
@@ -429,53 +441,29 @@ long double nextafterl(long double, long double);
double nexttoward(double, long double);
float nexttowardf(float, long double);
long double nexttowardl(long double, long double);
+long double powl(long double, long double);
long double remainderl(long double, long double);
long double remquol(long double, long double, int *);
long double rintl(long double);
long double roundl(long double);
long double scalblnl(long double, long);
long double scalbnl(long double, int);
+long double sinhl(long double);
long double sinl(long double);
long double sqrtl(long double);
+long double tanhl(long double);
long double tanl(long double);
+long double tgammal(long double);
long double truncl(long double);
#endif /* __ISO_C_VISIBLE >= 1999 */
-__END_DECLS
-
-#endif /* !_MATH_H_ */
-
-/* separate header for cmath */
-#ifndef _MATH_EXTRA_H_
-#if __ISO_C_VISIBLE >= 1999
-#if _DECLARE_C99_LDBL_MATH
-
-#define _MATH_EXTRA_H_
-/*
- * extra long double versions of math functions for C99 and cmath
- */
-__BEGIN_DECLS
-
-long double acoshl(long double);
-long double asinhl(long double);
-long double atanhl(long double);
-long double coshl(long double);
-long double erfcl(long double);
-long double erfl(long double);
-long double expm1l(long double);
-long double lgammal(long double);
-long double log10l(long double);
-long double log1pl(long double);
-long double log2l(long double);
-long double logl(long double);
-long double powl(long double, long double);
-long double sinhl(long double);
-long double tanhl(long double);
-long double tgammal(long double);
+#if defined(_GNU_SOURCE)
+void sincos(double, double*, double*);
+void sincosf(float, float*, float*);
+void sincosl(long double, long double*, long double*);
+#endif /* _GNU_SOURCE */
__END_DECLS
-#endif /* !_DECLARE_C99_LDBL_MATH */
-#endif /* __ISO_C_VISIBLE >= 1999 */
-#endif /* !_MATH_EXTRA_H_ */
+#endif /* !_MATH_H_ */
diff --git a/9/platforms/android-19/arch-mips64/usr/include/pthread.h b/9/platforms/android-19/arch-mips64/usr/include/pthread.h
index f93f9e9..7b8de81 100644
--- a/9/platforms/android-19/arch-mips64/usr/include/pthread.h
+++ b/9/platforms/android-19/arch-mips64/usr/include/pthread.h
@@ -35,17 +35,26 @@
#include <limits.h>
#include <sys/types.h>
+#ifdef __LP64__
+ #define __RESERVED_INITIALIZER , {0}
+#else
+ #define __RESERVED_INITIALIZER
+#endif
+
typedef struct {
int volatile value;
+#ifdef __LP64__
+ char __reserved[36];
+#endif
} pthread_mutex_t;
#define __PTHREAD_MUTEX_INIT_VALUE 0
#define __PTHREAD_RECURSIVE_MUTEX_INIT_VALUE 0x4000
#define __PTHREAD_ERRORCHECK_MUTEX_INIT_VALUE 0x8000
-#define PTHREAD_MUTEX_INITIALIZER {__PTHREAD_MUTEX_INIT_VALUE}
-#define PTHREAD_RECURSIVE_MUTEX_INITIALIZER {__PTHREAD_RECURSIVE_MUTEX_INIT_VALUE}
-#define PTHREAD_ERRORCHECK_MUTEX_INITIALIZER {__PTHREAD_ERRORCHECK_MUTEX_INIT_VALUE}
+#define PTHREAD_MUTEX_INITIALIZER {__PTHREAD_MUTEX_INIT_VALUE __RESERVED_INITIALIZER}
+#define PTHREAD_RECURSIVE_MUTEX_INITIALIZER {__PTHREAD_RECURSIVE_MUTEX_INIT_VALUE __RESERVED_INITIALIZER}
+#define PTHREAD_ERRORCHECK_MUTEX_INITIALIZER {__PTHREAD_ERRORCHECK_MUTEX_INIT_VALUE __RESERVED_INITIALIZER}
enum {
PTHREAD_MUTEX_NORMAL = 0,
@@ -60,9 +69,12 @@ enum {
typedef struct {
int volatile value;
+#ifdef __LP64__
+ char __reserved[44];
+#endif
} pthread_cond_t;
-#define PTHREAD_COND_INITIALIZER {0}
+#define PTHREAD_COND_INITIALIZER {0 __RESERVED_INITIALIZER}
typedef struct {
uint32_t flags;
@@ -71,21 +83,24 @@ typedef struct {
size_t guard_size;
int32_t sched_policy;
int32_t sched_priority;
+#ifdef __LP64__
+ char __reserved[16];
+#endif
} pthread_attr_t;
typedef long pthread_mutexattr_t;
typedef long pthread_condattr_t;
-typedef int pthread_rwlockattr_t;
+typedef long pthread_rwlockattr_t;
typedef struct {
- pthread_mutex_t lock;
- pthread_cond_t cond;
- int numLocks;
- int writerThreadId;
- int pendingReaders;
- int pendingWriters;
- void* reserved[4]; /* for future extensibility */
+ pthread_mutex_t lock;
+ pthread_cond_t cond;
+ int numLocks;
+ int writerThreadId;
+ int pendingReaders;
+ int pendingWriters;
+ void* __reserved[4];
} pthread_rwlock_t;
#define PTHREAD_RWLOCK_INITIALIZER { PTHREAD_MUTEX_INITIALIZER, PTHREAD_COND_INITIALIZER, 0, 0, 0, 0, { NULL, NULL, NULL, NULL } }
@@ -95,7 +110,7 @@ typedef long pthread_t;
typedef volatile int pthread_once_t;
-#define PTHREAD_ONCE_INIT 0
+#define PTHREAD_ONCE_INIT 0
#define PTHREAD_STACK_MIN (2 * PAGE_SIZE)
diff --git a/9/platforms/android-19/arch-mips64/usr/include/sched.h b/9/platforms/android-19/arch-mips64/usr/include/sched.h
index 7649e83..68115bb 100644
--- a/9/platforms/android-19/arch-mips64/usr/include/sched.h
+++ b/9/platforms/android-19/arch-mips64/usr/include/sched.h
@@ -59,151 +59,90 @@ extern int unshare(int);
extern int sched_getcpu(void);
extern int setns(int, int);
-/* Our implementation supports up to 32 independent CPUs, which is also
- * the maximum supported by the kernel at the moment. GLibc uses 1024 by
- * default.
- *
- * If you want to use more than that, you should use CPU_ALLOC() / CPU_FREE()
- * and the CPU_XXX_S() macro variants.
- */
-#define CPU_SETSIZE 32
+#ifdef __LP32__
+#define CPU_SETSIZE 32
+#else
+#define CPU_SETSIZE 1024
+#endif
-#define __CPU_BITTYPE unsigned long int /* mandated by the kernel */
-#define __CPU_BITSHIFT 5 /* should be log2(BITTYPE) */
-#define __CPU_BITS (1 << __CPU_BITSHIFT)
-#define __CPU_ELT(x) ((x) >> __CPU_BITSHIFT)
-#define __CPU_MASK(x) ((__CPU_BITTYPE)1 << ((x) & (__CPU_BITS-1)))
+#define __CPU_BITTYPE unsigned long int /* mandated by the kernel */
+#define __CPU_BITS (8 * sizeof(__CPU_BITTYPE))
+#define __CPU_ELT(x) ((x) / __CPU_BITS)
+#define __CPU_MASK(x) ((__CPU_BITTYPE)1 << ((x) & (__CPU_BITS - 1)))
typedef struct {
- __CPU_BITTYPE __bits[ CPU_SETSIZE / __CPU_BITS ];
+ __CPU_BITTYPE __bits[ CPU_SETSIZE / __CPU_BITS ];
} cpu_set_t;
extern int sched_setaffinity(pid_t pid, size_t setsize, const cpu_set_t* set);
extern int sched_getaffinity(pid_t pid, size_t setsize, cpu_set_t* set);
-/* Provide optimized implementation for 32-bit cpu_set_t */
-#if CPU_SETSIZE == __CPU_BITS
-
-# define CPU_ZERO(set_) \
- do{ \
- (set_)->__bits[0] = 0; \
- }while(0)
-
-# define CPU_SET(cpu_,set_) \
- do {\
- size_t __cpu = (cpu_); \
- if (__cpu < CPU_SETSIZE) \
- (set_)->__bits[0] |= __CPU_MASK(__cpu); \
- }while (0)
-
-# define CPU_CLR(cpu_,set_) \
- do {\
- size_t __cpu = (cpu_); \
- if (__cpu < CPU_SETSIZE) \
- (set_)->__bits[0] &= ~__CPU_MASK(__cpu); \
- }while (0)
-
-# define CPU_ISSET(cpu_, set_) \
- (__extension__({\
- size_t __cpu = (cpu_); \
- (cpu_ < CPU_SETSIZE) \
- ? ((set_)->__bits[0] & __CPU_MASK(__cpu)) != 0 \
- : 0; \
- }))
-
-# define CPU_EQUAL(set1_, set2_) \
- ((set1_)->__bits[0] == (set2_)->__bits[0])
-
-# define __CPU_OP(dst_, set1_, set2_, op_) \
- do { \
- (dst_)->__bits[0] = (set1_)->__bits[0] op_ (set2_)->__bits[0]; \
- } while (0)
-
-# define CPU_COUNT(set_) __builtin_popcountl((set_)->__bits[0])
-
-#else /* CPU_SETSIZE != __CPU_BITS */
-
-# define CPU_ZERO(set_) CPU_ZERO_S(sizeof(cpu_set_t), set_)
-# define CPU_SET(cpu_,set_) CPU_SET_S(cpu_,sizeof(cpu_set_t),set_)
-# define CPU_CLR(cpu_,set_) CPU_CLR_S(cpu_,sizeof(cpu_set_t),set_)
-# define CPU_ISSET(cpu_,set_) CPU_ISSET_S(cpu_,sizeof(cpu_set_t),set_)
-# define CPU_COUNT(set_) CPU_COUNT_S(sizeof(cpu_set_t),set_)
-# define CPU_EQUAL(set1_,set2_) CPU_EQUAL_S(sizeof(cpu_set_t),set1_,set2_)
-
-# define __CPU_OP(dst_,set1_,set2_,op_) __CPU_OP_S(sizeof(cpu_set_t),dst_,set1_,set2_,op_)
+#define CPU_ZERO(set) CPU_ZERO_S(sizeof(cpu_set_t), set)
+#define CPU_SET(cpu, set) CPU_SET_S(cpu, sizeof(cpu_set_t), set)
+#define CPU_CLR(cpu, set) CPU_CLR_S(cpu, sizeof(cpu_set_t), set)
+#define CPU_ISSET(cpu, set) CPU_ISSET_S(cpu, sizeof(cpu_set_t), set)
+#define CPU_COUNT(set) CPU_COUNT_S(sizeof(cpu_set_t), set)
+#define CPU_EQUAL(set1, set2) CPU_EQUAL_S(sizeof(cpu_set_t), set1, set2)
-#endif /* CPU_SETSIZE != __CPU_BITS */
+#define CPU_AND(dst, set1, set2) __CPU_OP(dst, set1, set2, &)
+#define CPU_OR(dst, set1, set2) __CPU_OP(dst, set1, set2, |)
+#define CPU_XOR(dst, set1, set2) __CPU_OP(dst, set1, set2, ^)
-#define CPU_AND(set1_,set2_) __CPU_OP(set1_,set2_,&)
-#define CPU_OR(set1_,set2_) __CPU_OP(set1_,set2_,|)
-#define CPU_XOR(set1_,set2_) __CPU_OP(set1_,set2_,^)
+#define __CPU_OP(dst, set1, set2, op) __CPU_OP_S(sizeof(cpu_set_t), dst, set1, set2, op)
/* Support for dynamically-allocated cpu_set_t */
#define CPU_ALLOC_SIZE(count) \
- __CPU_ELT((count) + (__CPU_BITS-1))*sizeof(__CPU_BITTYPE)
+ __CPU_ELT((count) + (__CPU_BITS - 1)) * sizeof(__CPU_BITTYPE)
-#define CPU_ALLOC(count) __sched_cpualloc((count));
-#define CPU_FREE(set) __sched_cpufree((set))
+#define CPU_ALLOC(count) __sched_cpualloc((count))
+#define CPU_FREE(set) __sched_cpufree((set))
extern cpu_set_t* __sched_cpualloc(size_t count);
extern void __sched_cpufree(cpu_set_t* set);
-#define CPU_ZERO_S(setsize_,set_) \
- do { \
- size_t __nn = 0; \
- size_t __nn_max = (setsize_)/sizeof(__CPU_BITTYPE); \
- for (; __nn < __nn_max; __nn++) \
- (set_)->__bits[__nn] = 0; \
- } while (0)
-
-#define CPU_SET_S(cpu_,setsize_,set_) \
- do { \
- size_t __cpu = (cpu_); \
- if (__cpu < 8*(setsize_)) \
- (set_)->__bits[__CPU_ELT(__cpu)] |= __CPU_MASK(__cpu); \
- } while (0)
-
-#define CPU_CLR_S(cpu_,setsize_,set_) \
- do { \
- size_t __cpu = (cpu_); \
- if (__cpu < 8*(setsize_)) \
- (set_)->__bits[__CPU_ELT(__cpu)] &= ~__CPU_MASK(__cpu); \
- } while (0)
-
-#define CPU_ISSET_S(cpu_, setsize_, set_) \
- (__extension__ ({ \
- size_t __cpu = (cpu_); \
- (__cpu < 8*(setsize_)) \
- ? ((set_)->__bits[__CPU_ELT(__cpu)] & __CPU_MASK(__cpu)) != 0 \
- : 0; \
- }))
-
-#define CPU_EQUAL_S(setsize_, set1_, set2_) \
- (__extension__ ({ \
- __const __CPU_BITTYPE* __src1 = (set1_)->__bits; \
- __const __CPU_BITTYPE* __src2 = (set2_)->__bits; \
- size_t __nn = 0, __nn_max = (setsize_)/sizeof(__CPU_BITTYPE); \
- for (; __nn < __nn_max; __nn++) { \
- if (__src1[__nn] != __src2[__nn]) \
- break; \
- } \
- __nn == __nn_max; \
- }))
-
-#define __CPU_OP_S(setsize_, dstset_, srcset1_, srcset2_, op) \
- do { \
- cpu_set_t* __dst = (dstset); \
- const __CPU_BITTYPE* __src1 = (srcset1)->__bits; \
- const __CPU_BITTYPE* __src2 = (srcset2)->__bits; \
- size_t __nn = 0, __nn_max = (setsize_)/sizeof(__CPU_BITTYPE); \
- for (; __nn < __nn_max; __nn++) \
- (__dst)->__bits[__nn] = __src1[__nn] op __src2[__nn]; \
- } while (0)
-
-#define CPU_COUNT_S(setsize_, set_) \
- __sched_cpucount((setsize_), (set_))
+#define CPU_ZERO_S(setsize, set) __builtin_memset(set, 0, setsize)
+
+#define CPU_SET_S(cpu, setsize, set) \
+ do { \
+ size_t __cpu = (cpu); \
+ if (__cpu < 8 * (setsize)) \
+ (set)->__bits[__CPU_ELT(__cpu)] |= __CPU_MASK(__cpu); \
+ } while (0)
+
+#define CPU_CLR_S(cpu, setsize, set) \
+ do { \
+ size_t __cpu = (cpu); \
+ if (__cpu < 8 * (setsize)) \
+ (set)->__bits[__CPU_ELT(__cpu)] &= ~__CPU_MASK(__cpu); \
+ } while (0)
+
+#define CPU_ISSET_S(cpu, setsize, set) \
+ (__extension__ ({ \
+ size_t __cpu = (cpu); \
+ (__cpu < 8 * (setsize)) \
+ ? ((set)->__bits[__CPU_ELT(__cpu)] & __CPU_MASK(__cpu)) != 0 \
+ : 0; \
+ }))
+
+#define CPU_EQUAL_S(setsize, set1, set2) (__builtin_memcmp(set1, set2, setsize) == 0)
+
+#define CPU_AND_S(setsize, dst, set1, set2) __CPU_OP_S(setsize, dst, set1, set2, &)
+#define CPU_OR_S(setsize, dst, set1, set2) __CPU_OP_S(setsize, dst, set1, set2, |)
+#define CPU_XOR_S(setsize, dst, set1, set2) __CPU_OP_S(setsize, dst, set1, set2, ^)
+
+#define __CPU_OP_S(setsize, dstset, srcset1, srcset2, op) \
+ do { \
+ cpu_set_t* __dst = (dstset); \
+ const __CPU_BITTYPE* __src1 = (srcset1)->__bits; \
+ const __CPU_BITTYPE* __src2 = (srcset2)->__bits; \
+ size_t __nn = 0, __nn_max = (setsize)/sizeof(__CPU_BITTYPE); \
+ for (; __nn < __nn_max; __nn++) \
+ (__dst)->__bits[__nn] = __src1[__nn] op __src2[__nn]; \
+ } while (0)
+
+#define CPU_COUNT_S(setsize, set) __sched_cpucount((setsize), (set))
extern int __sched_cpucount(size_t setsize, cpu_set_t* set);
diff --git a/9/platforms/android-19/arch-mips64/usr/include/semaphore.h b/9/platforms/android-19/arch-mips64/usr/include/semaphore.h
index 30e3123..7ae3c3a 100644
--- a/9/platforms/android-19/arch-mips64/usr/include/semaphore.h
+++ b/9/platforms/android-19/arch-mips64/usr/include/semaphore.h
@@ -33,10 +33,13 @@
__BEGIN_DECLS
typedef struct {
- volatile unsigned int count;
+ volatile unsigned int count;
+#ifdef __LP64__
+ int __reserved[3];
+#endif
} sem_t;
-#define SEM_FAILED NULL
+#define SEM_FAILED NULL
extern int sem_init(sem_t *sem, int pshared, unsigned int value);
diff --git a/9/platforms/android-19/arch-mips64/usr/include/signal.h b/9/platforms/android-19/arch-mips64/usr/include/signal.h
index 267f3e6..45c1cda 100644
--- a/9/platforms/android-19/arch-mips64/usr/include/signal.h
+++ b/9/platforms/android-19/arch-mips64/usr/include/signal.h
@@ -60,6 +60,12 @@ typedef int sig_atomic_t;
#define _NSIG (_KERNEL__NSIG + 1)
#define NSIG _NSIG
+/* We take a few real-time signals for ourselves. May as well use the same names as glibc. */
+#define SIGRTMIN (__libc_current_sigrtmin())
+#define SIGRTMAX (__libc_current_sigrtmax())
+extern int __libc_current_sigrtmin(void);
+extern int __libc_current_sigrtmax(void);
+
extern const char* const sys_siglist[];
extern const char* const sys_signame[]; /* BSD compatibility. */
diff --git a/9/platforms/android-19/arch-mips64/usr/include/stdint.h b/9/platforms/android-19/arch-mips64/usr/include/stdint.h
index 1f3d003..f34843c 100644
--- a/9/platforms/android-19/arch-mips64/usr/include/stdint.h
+++ b/9/platforms/android-19/arch-mips64/usr/include/stdint.h
@@ -30,6 +30,7 @@
#define _STDINT_H
#include <stddef.h>
+#include <machine/wchar_limits.h>
typedef __signed char __int8_t;
typedef unsigned char __uint8_t;
@@ -86,7 +87,7 @@ typedef uint8_t uint_fast8_t;
typedef int64_t int_fast64_t;
typedef uint64_t uint_fast64_t;
-#ifdef __LP64__
+#if defined(__LP64__)
typedef int64_t int_fast16_t;
typedef uint64_t uint_fast16_t;
typedef int64_t int_fast32_t;
@@ -135,7 +136,7 @@ typedef int64_t intmax_t;
#define INTMAX_C(c) INT64_C(c)
#define UINTMAX_C(c) UINT64_C(c)
-#ifdef __LP64__
+#if defined(__LP64__)
# define INT64_C(c) c ## L
# define UINT64_C(c) c ## UL
# define INTPTR_C(c) INT64_C(c)
@@ -200,15 +201,15 @@ typedef int64_t intmax_t;
#define SIG_ATOMIC_MAX INT32_MAX
#define SIG_ATOMIC_MIN INT32_MIN
-#ifndef WCHAR_MAX /* These might also have been defined by <wchar.h>. */
-# define WCHAR_MAX INT32_MAX
-# define WCHAR_MIN INT32_MIN
+#if defined(__WINT_UNSIGNED__)
+# define WINT_MAX UINT32_MAX
+# define WINT_MIN UINT32_MIN
+#else
+# define WINT_MAX INT32_MAX
+# define WINT_MIN INT32_MIN
#endif
-#define WINT_MAX INT32_MAX
-#define WINT_MIN INT32_MIN
-
-#ifdef __LP64__
+#if defined(__LP64__)
# define INTPTR_MIN INT64_MIN
# define INTPTR_MAX INT64_MAX
# define UINTPTR_MAX UINT64_MAX
diff --git a/9/platforms/android-19/arch-mips64/usr/include/stdlib.h b/9/platforms/android-19/arch-mips64/usr/include/stdlib.h
index 2c797c5..834dcda 100644
--- a/9/platforms/android-19/arch-mips64/usr/include/stdlib.h
+++ b/9/platforms/android-19/arch-mips64/usr/include/stdlib.h
@@ -46,10 +46,15 @@ extern __noreturn void exit(int);
extern __noreturn void _Exit(int);
extern int atexit(void (*)(void));
-extern char *getenv(const char *);
-extern int putenv(const char *);
-extern int setenv(const char *, const char *, int);
-extern int unsetenv(const char *);
+#if __ISO_C_VISIBLE >= 2011 || __cplusplus >= 201103L
+int at_quick_exit(void (*)(void));
+void quick_exit(int) __noreturn;
+#endif
+
+extern char* getenv(const char*);
+extern int putenv(char*);
+extern int setenv(const char*, const char*, int);
+extern int unsetenv(const char*);
extern int clearenv(void);
extern char* mkdtemp(char*);
@@ -65,9 +70,10 @@ extern unsigned long long strtoull(const char *, char **, int);
extern int posix_memalign(void **memptr, size_t alignment, size_t size);
extern double atof(const char*);
-extern double strtod(const char*, char**);
-extern float strtof(const char*, char**);
-extern long double strtold(const char*, char**);
+
+extern double strtod(const char*, char**) __LIBC_ABI_PUBLIC__;
+extern float strtof(const char*, char**) __LIBC_ABI_PUBLIC__;
+extern long double strtold(const char*, char**) __LIBC_ABI_PUBLIC__;
extern int atoi(const char*) __purefunc;
extern long atol(const char*) __purefunc;
diff --git a/9/platforms/android-19/arch-mips64/usr/include/sys/cdefs_elf.h b/9/platforms/android-19/arch-mips64/usr/include/sys/cdefs_elf.h
index bb846b7..0479230 100644
--- a/9/platforms/android-19/arch-mips64/usr/include/sys/cdefs_elf.h
+++ b/9/platforms/android-19/arch-mips64/usr/include/sys/cdefs_elf.h
@@ -32,7 +32,7 @@
#ifdef __LEADING_UNDERSCORE
#define _C_LABEL(x) __CONCAT(_,x)
-#define _C_LABEL_STRING(x) "_"x
+#define _C_LABEL_STRING(x) "_" x
#else
#define _C_LABEL(x) x
#define _C_LABEL_STRING(x) x
@@ -61,24 +61,11 @@
#define __SECTIONSTRING(_sec, _str) \
__asm__(".section " #_sec "\n\t.asciz \"" _str "\"\n\t.previous")
-/* GCC visibility helper macro */
-/* This must be used to tag non-static functions that are private, i.e.
- * never exposed by the shared library. */
-#define __LIBC_HIDDEN__ \
- __attribute__ ((visibility ("hidden")))
-
-/* This must be used to tag non-static functions that are public, i.e.
- * exposed by the shared library, and part of the stable NDK ABI */
-#define __LIBC_ABI_PUBLIC__ \
- __attribute__ ((visibility ("default")))
-
-/* This must be used to tag non-static functions that must be exported
- * by the shared library, but whose implementation is private to the
- * platform. For now this is equivalent to __LIBC_ABI_PUBLIC__, but we
- * may want to change this later.
- */
-#define __LIBC_ABI_PRIVATE__ \
- __attribute__ ((visibility ("default")))
+/* Used to tag non-static symbols that are private and never exposed by the shared library. */
+#define __LIBC_HIDDEN__ __attribute__((visibility ("hidden")))
+
+/* Used to tag non-static symbols that are public and exposed by the shared library. */
+#define __LIBC_ABI_PUBLIC__ __attribute__((visibility ("default")))
#define __IDSTRING(_n,_s) __SECTIONSTRING(.ident,_s)
diff --git a/9/platforms/android-19/arch-mips64/usr/include/sys/epoll.h b/9/platforms/android-19/arch-mips64/usr/include/sys/epoll.h
index c06a081..4a5a37c 100644
--- a/9/platforms/android-19/arch-mips64/usr/include/sys/epoll.h
+++ b/9/platforms/android-19/arch-mips64/usr/include/sys/epoll.h
@@ -67,7 +67,11 @@ typedef union epoll_data {
struct epoll_event {
uint32_t events;
epoll_data_t data;
-};
+}
+#ifdef __x86_64__
+__packed
+#endif
+;
int epoll_create(int);
int epoll_create1(int);
diff --git a/9/platforms/android-19/arch-mips64/usr/include/sys/types.h b/9/platforms/android-19/arch-mips64/usr/include/sys/types.h
index dc847d2..9a76ad2 100644
--- a/9/platforms/android-19/arch-mips64/usr/include/sys/types.h
+++ b/9/platforms/android-19/arch-mips64/usr/include/sys/types.h
@@ -63,7 +63,7 @@ typedef __mode_t mode_t;
typedef __kernel_key_t __key_t;
typedef __key_t key_t;
-typedef uint32_t __ino_t;
+typedef __kernel_ino_t __ino_t;
typedef __ino_t ino_t;
typedef uint32_t __nlink_t;
@@ -72,9 +72,10 @@ typedef __nlink_t nlink_t;
typedef void* __timer_t;
typedef __timer_t timer_t;
-typedef int32_t __suseconds_t;
+typedef __kernel_suseconds_t __suseconds_t;
typedef __suseconds_t suseconds_t;
+/* useconds_t is 32-bit on both LP32 and LP64. */
typedef uint32_t __useconds_t;
typedef __useconds_t useconds_t;
diff --git a/9/platforms/android-19/arch-mips64/usr/include/sys/user.h b/9/platforms/android-19/arch-mips64/usr/include/sys/user.h
index 5348dd8..c578a6f 100644
--- a/9/platforms/android-19/arch-mips64/usr/include/sys/user.h
+++ b/9/platforms/android-19/arch-mips64/usr/include/sys/user.h
@@ -36,7 +36,7 @@ __BEGIN_DECLS
#if __i386__
-struct user_i387_struct {
+struct user_fpregs_struct {
long cwd;
long swd;
long twd;
@@ -83,7 +83,7 @@ struct user_regs_struct {
struct user {
struct user_regs_struct regs;
int u_fpvalid;
- struct user_i387_struct i387;
+ struct user_fpregs_struct i387;
unsigned long int u_tsize;
unsigned long int u_dsize;
unsigned long int u_ssize;
@@ -92,7 +92,7 @@ struct user {
long int signal;
int reserved;
unsigned long u_ar0;
- struct user_i387_struct* u_fpstate;
+ struct user_fpregs_struct* u_fpstate;
unsigned long magic;
char u_comm[32];
int u_debugreg[8];
@@ -100,7 +100,7 @@ struct user {
#elif defined(__x86_64__)
-struct user_i387_struct {
+struct user_fpregs_struct {
unsigned short cwd;
unsigned short swd;
unsigned short twd;
@@ -146,7 +146,7 @@ struct user {
struct user_regs_struct regs;
int u_fpvalid;
int pad0;
- struct user_i387_struct i387;
+ struct user_fpregs_struct i387;
unsigned long int u_tsize;
unsigned long int u_dsize;
unsigned long int u_ssize;
@@ -156,7 +156,7 @@ struct user {
int reserved;
int pad1;
unsigned long u_ar0;
- struct user_i387_struct* u_fpstate;
+ struct user_fpregs_struct* u_fpstate;
unsigned long magic;
char u_comm[32];
unsigned long u_debugreg[8];
diff --git a/9/platforms/android-19/arch-mips64/usr/include/time64.h b/9/platforms/android-19/arch-mips64/usr/include/time64.h
index 7ec05af..905669d 100644
--- a/9/platforms/android-19/arch-mips64/usr/include/time64.h
+++ b/9/platforms/android-19/arch-mips64/usr/include/time64.h
@@ -31,29 +31,36 @@ Modified for Bionic by the Android Open Source Project
#ifndef TIME64_H
#define TIME64_H
+#if defined(__LP64__)
+
+#error Your time_t is already 64-bit.
+
+#else
+
+/* Legacy cruft for LP32 where time_t was 32-bit. */
+
#include <sys/cdefs.h>
#include <time.h>
#include <stdint.h>
__BEGIN_DECLS
-typedef int64_t time64_t;
+typedef int64_t time64_t;
-struct tm *gmtime64_r (const time64_t *, struct tm *);
-struct tm *localtime64_r (const time64_t *, struct tm *);
-struct tm *gmtime64 (const time64_t *);
-struct tm *localtime64 (const time64_t *);
-
-char *asctime64 (const struct tm *);
-char *asctime64_r (const struct tm *, char *);
-
-char *ctime64 (const time64_t*);
-char *ctime64_r (const time64_t*, char*);
-
-time64_t timegm64 (const struct tm *);
-time64_t mktime64 (const struct tm *);
-time64_t timelocal64 (const struct tm *);
+char* asctime64(const struct tm*);
+char* asctime64_r(const struct tm*, char*);
+char* ctime64(const time64_t*);
+char* ctime64_r(const time64_t*, char*);
+struct tm* gmtime64(const time64_t*);
+struct tm* gmtime64_r(const time64_t*, struct tm*);
+struct tm* localtime64(const time64_t*);
+struct tm* localtime64_r(const time64_t*, struct tm*);
+time64_t mktime64(const struct tm*);
+time64_t timegm64(const struct tm*);
+time64_t timelocal64(const struct tm*);
__END_DECLS
+#endif
+
#endif /* TIME64_H */
diff --git a/9/platforms/android-19/arch-mips64/usr/include/unistd.h b/9/platforms/android-19/arch-mips64/usr/include/unistd.h
index d21f23d..6cb36d8 100644
--- a/9/platforms/android-19/arch-mips64/usr/include/unistd.h
+++ b/9/platforms/android-19/arch-mips64/usr/include/unistd.h
@@ -47,7 +47,8 @@ __BEGIN_DECLS
#define SEEK_CUR 1
#define SEEK_END 2
-extern char **environ;
+extern char** environ;
+
extern __noreturn void _exit(int);
extern pid_t fork(void);
diff --git a/9/platforms/android-19/arch-mips64/usr/include/utmp.h b/9/platforms/android-19/arch-mips64/usr/include/utmp.h
index ffd3c92..d764227 100644
--- a/9/platforms/android-19/arch-mips64/usr/include/utmp.h
+++ b/9/platforms/android-19/arch-mips64/usr/include/utmp.h
@@ -36,9 +36,15 @@
#define _PATH_WTMP "/var/log/wtmp"
#define _PATH_LASTLOG "/var/log/lastlog"
-#define UT_NAMESIZE 8
-#define UT_LINESIZE 8
-#define UT_HOSTSIZE 16
+#ifdef __LP64__
+#define UT_NAMESIZE 32
+#define UT_LINESIZE 32
+#define UT_HOSTSIZE 256
+#else
+#define UT_NAMESIZE 8
+#define UT_LINESIZE 8
+#define UT_HOSTSIZE 16
+#endif
#define USER_PROCESS 7
diff --git a/9/platforms/android-19/arch-mips64/usr/include/wchar.h b/9/platforms/android-19/arch-mips64/usr/include/wchar.h
index 89c6fb6..fe2fe07 100644
--- a/9/platforms/android-19/arch-mips64/usr/include/wchar.h
+++ b/9/platforms/android-19/arch-mips64/usr/include/wchar.h
@@ -34,12 +34,20 @@
#include <stdarg.h>
#include <stddef.h>
#include <time.h>
-#include <malloc.h>
+
+#include <machine/wchar_limits.h>
__BEGIN_DECLS
-typedef __WINT_TYPE__ wint_t;
-typedef struct { int dummy; } mbstate_t;
+typedef __WINT_TYPE__ wint_t;
+typedef struct {
+#ifdef __LP32__
+ int dummy;
+#else
+ // 8 bytes should be enough to support at least UTF-8
+ char __reserved[8];
+#endif
+} mbstate_t;
typedef enum {
WC_TYPE_INVALID = 0,
@@ -58,11 +66,6 @@ typedef enum {
WC_TYPE_MAX
} wctype_t;
-#ifndef WCHAR_MAX
-#define WCHAR_MAX INT_MAX
-#define WCHAR_MIN INT_MIN
-#endif
-
#define WEOF ((wint_t)(-1))
extern wint_t btowc(int);
@@ -70,6 +73,7 @@ extern int fwprintf(FILE *, const wchar_t *, ...);
extern int fwscanf(FILE *, const wchar_t *, ...);
extern int iswalnum(wint_t);
extern int iswalpha(wint_t);
+extern int iswblank(wint_t);
extern int iswcntrl(wint_t);
extern int iswdigit(wint_t);
extern int iswgraph(wint_t);
@@ -90,7 +94,8 @@ extern wint_t getwchar(void);
extern int mbsinit(const mbstate_t *);
extern size_t mbrlen(const char *, size_t, mbstate_t *);
extern size_t mbrtowc(wchar_t *, const char *, size_t, mbstate_t *);
-extern size_t mbsrtowcs(wchar_t *, const char **, size_t, mbstate_t *);
+extern size_t mbsrtowcs(wchar_t*, const char**, size_t, mbstate_t*);
+extern size_t mbsnrtowcs(wchar_t*, const char**, size_t, size_t, mbstate_t*);
extern size_t mbstowcs(wchar_t *, const char *, size_t);
extern wint_t putwc(wchar_t, FILE *);
extern wint_t putwchar(wchar_t);
@@ -99,9 +104,12 @@ extern int swscanf(const wchar_t *, const wchar_t *, ...);
extern wint_t towlower(wint_t);
extern wint_t towupper(wint_t);
extern wint_t ungetwc(wint_t, FILE *);
-extern int vfwprintf(FILE *, const wchar_t *, va_list);
-extern int vwprintf(const wchar_t *, va_list);
-extern int vswprintf(wchar_t *, size_t, const wchar_t *, va_list);
+extern int vfwprintf(FILE*, const wchar_t*, va_list);
+extern int vfwscanf(FILE*, const wchar_t*, va_list);
+extern int vswprintf(wchar_t*, size_t, const wchar_t*, va_list);
+extern int vswscanf(const wchar_t*, const wchar_t*, va_list);
+extern int vwprintf(const wchar_t*, va_list);
+extern int vwscanf(const wchar_t*, va_list);
extern size_t wcrtomb(char *, wchar_t, mbstate_t *);
extern int wcscasecmp(const wchar_t *, const wchar_t *);
extern wchar_t *wcscat(wchar_t *, const wchar_t *);
@@ -116,16 +124,20 @@ extern int wcsncasecmp(const wchar_t *, const wchar_t *, size_t);
extern wchar_t *wcsncat(wchar_t *, const wchar_t *, size_t);
extern int wcsncmp(const wchar_t *, const wchar_t *, size_t);
extern wchar_t *wcsncpy(wchar_t *, const wchar_t *, size_t);
+extern size_t wcsnrtombs(char*, const wchar_t**, size_t, size_t, mbstate_t*);
extern wchar_t *wcspbrk(const wchar_t *, const wchar_t *);
extern wchar_t *wcsrchr(const wchar_t *, wchar_t);
-extern size_t wcsrtombs(char *, const wchar_t **, size_t, mbstate_t *);
+extern size_t wcsrtombs(char*, const wchar_t**, size_t, mbstate_t*);
extern size_t wcsspn(const wchar_t *, const wchar_t *);
extern wchar_t *wcsstr(const wchar_t *, const wchar_t *);
-extern double wcstod(const wchar_t *, wchar_t **);
-extern wchar_t *wcstok(wchar_t *, const wchar_t *, wchar_t **);
-extern long int wcstol(const wchar_t *, wchar_t **, int);
-extern size_t wcstombs(char *, const wchar_t *, size_t);
-extern unsigned long int wcstoul(const wchar_t *, wchar_t **, int);
+extern double wcstod(const wchar_t*, wchar_t**);
+extern float wcstof(const wchar_t*, wchar_t**);
+extern wchar_t* wcstok(wchar_t*, const wchar_t*, wchar_t**);
+extern long wcstol(const wchar_t*, wchar_t**, int);
+extern long long wcstoll(const wchar_t*, wchar_t**, int);
+extern long double wcstold(const wchar_t*, wchar_t**);
+extern unsigned long wcstoul(const wchar_t*, wchar_t**, int);
+extern unsigned long long wcstoull(const wchar_t*, wchar_t**, int);
extern wchar_t *wcswcs(const wchar_t *, const wchar_t *);
extern int wcswidth(const wchar_t *, size_t);
extern size_t wcsxfrm(wchar_t *, const wchar_t *, size_t);
diff --git a/9/platforms/android-19/arch-mips64/usr/lib/crtbegin_dynamic.o b/9/platforms/android-19/arch-mips64/usr/lib/crtbegin_dynamic.o
index 9beaa1e..50fae0e 100644
--- a/9/platforms/android-19/arch-mips64/usr/lib/crtbegin_dynamic.o
+++ b/9/platforms/android-19/arch-mips64/usr/lib/crtbegin_dynamic.o
Binary files differ
diff --git a/9/platforms/android-19/arch-mips64/usr/lib/crtbegin_so.o b/9/platforms/android-19/arch-mips64/usr/lib/crtbegin_so.o
index db3db62..2ceaeaf 100644
--- a/9/platforms/android-19/arch-mips64/usr/lib/crtbegin_so.o
+++ b/9/platforms/android-19/arch-mips64/usr/lib/crtbegin_so.o
Binary files differ
diff --git a/9/platforms/android-19/arch-mips64/usr/lib/crtbegin_static.o b/9/platforms/android-19/arch-mips64/usr/lib/crtbegin_static.o
index 9beaa1e..50fae0e 100644
--- a/9/platforms/android-19/arch-mips64/usr/lib/crtbegin_static.o
+++ b/9/platforms/android-19/arch-mips64/usr/lib/crtbegin_static.o
Binary files differ
diff --git a/9/platforms/android-19/arch-mips64/usr/lib/crtend_android.o b/9/platforms/android-19/arch-mips64/usr/lib/crtend_android.o
index e0df8d0..b0f2ebe 100644
--- a/9/platforms/android-19/arch-mips64/usr/lib/crtend_android.o
+++ b/9/platforms/android-19/arch-mips64/usr/lib/crtend_android.o
Binary files differ
diff --git a/9/platforms/android-19/arch-mips64/usr/lib/crtend_so.o b/9/platforms/android-19/arch-mips64/usr/lib/crtend_so.o
index 5ddfa34..df274e5 100644
--- a/9/platforms/android-19/arch-mips64/usr/lib/crtend_so.o
+++ b/9/platforms/android-19/arch-mips64/usr/lib/crtend_so.o
Binary files differ
diff --git a/9/platforms/android-19/arch-mips64/usr/lib/libEGL.so b/9/platforms/android-19/arch-mips64/usr/lib/libEGL.so
index c84ca24..06ec580 100755
--- a/9/platforms/android-19/arch-mips64/usr/lib/libEGL.so
+++ b/9/platforms/android-19/arch-mips64/usr/lib/libEGL.so
Binary files differ
diff --git a/9/platforms/android-19/arch-mips64/usr/lib/libGLESv1_CM.so b/9/platforms/android-19/arch-mips64/usr/lib/libGLESv1_CM.so
index 5d63aeb..a1dc42e 100755
--- a/9/platforms/android-19/arch-mips64/usr/lib/libGLESv1_CM.so
+++ b/9/platforms/android-19/arch-mips64/usr/lib/libGLESv1_CM.so
Binary files differ
diff --git a/9/platforms/android-19/arch-mips64/usr/lib/libGLESv2.so b/9/platforms/android-19/arch-mips64/usr/lib/libGLESv2.so
index e4ee672..6abacf1 100755
--- a/9/platforms/android-19/arch-mips64/usr/lib/libGLESv2.so
+++ b/9/platforms/android-19/arch-mips64/usr/lib/libGLESv2.so
Binary files differ
diff --git a/9/platforms/android-19/arch-mips64/usr/lib/libGLESv3.so b/9/platforms/android-19/arch-mips64/usr/lib/libGLESv3.so
index 38f7f60..412d028 100755
--- a/9/platforms/android-19/arch-mips64/usr/lib/libGLESv3.so
+++ b/9/platforms/android-19/arch-mips64/usr/lib/libGLESv3.so
Binary files differ
diff --git a/9/platforms/android-19/arch-mips64/usr/lib/libOpenMAXAL.so b/9/platforms/android-19/arch-mips64/usr/lib/libOpenMAXAL.so
index e4da56c..744cc99 100755
--- a/9/platforms/android-19/arch-mips64/usr/lib/libOpenMAXAL.so
+++ b/9/platforms/android-19/arch-mips64/usr/lib/libOpenMAXAL.so
Binary files differ
diff --git a/9/platforms/android-19/arch-mips64/usr/lib/libOpenSLES.so b/9/platforms/android-19/arch-mips64/usr/lib/libOpenSLES.so
index f6fb5f6..0a9e081 100755
--- a/9/platforms/android-19/arch-mips64/usr/lib/libOpenSLES.so
+++ b/9/platforms/android-19/arch-mips64/usr/lib/libOpenSLES.so
Binary files differ
diff --git a/9/platforms/android-19/arch-mips64/usr/lib/libandroid.so b/9/platforms/android-19/arch-mips64/usr/lib/libandroid.so
index e2327b3..86c2273 100755
--- a/9/platforms/android-19/arch-mips64/usr/lib/libandroid.so
+++ b/9/platforms/android-19/arch-mips64/usr/lib/libandroid.so
Binary files differ
diff --git a/9/platforms/android-19/arch-mips64/usr/lib/libc.a b/9/platforms/android-19/arch-mips64/usr/lib/libc.a
index 09b2558..277ae8d 100644
--- a/9/platforms/android-19/arch-mips64/usr/lib/libc.a
+++ b/9/platforms/android-19/arch-mips64/usr/lib/libc.a
Binary files differ
diff --git a/9/platforms/android-19/arch-mips64/usr/lib/libc.so b/9/platforms/android-19/arch-mips64/usr/lib/libc.so
index 11d6438..a84fc91 100755
--- a/9/platforms/android-19/arch-mips64/usr/lib/libc.so
+++ b/9/platforms/android-19/arch-mips64/usr/lib/libc.so
Binary files differ
diff --git a/9/platforms/android-19/arch-mips64/usr/lib/libdl.so b/9/platforms/android-19/arch-mips64/usr/lib/libdl.so
index d6240b3..b364515 100755
--- a/9/platforms/android-19/arch-mips64/usr/lib/libdl.so
+++ b/9/platforms/android-19/arch-mips64/usr/lib/libdl.so
Binary files differ
diff --git a/9/platforms/android-19/arch-mips64/usr/lib/libjnigraphics.so b/9/platforms/android-19/arch-mips64/usr/lib/libjnigraphics.so
index 382f792..0e05f4d 100755
--- a/9/platforms/android-19/arch-mips64/usr/lib/libjnigraphics.so
+++ b/9/platforms/android-19/arch-mips64/usr/lib/libjnigraphics.so
Binary files differ
diff --git a/9/platforms/android-19/arch-mips64/usr/lib/liblog.so b/9/platforms/android-19/arch-mips64/usr/lib/liblog.so
index 617f50f..30af96a 100755
--- a/9/platforms/android-19/arch-mips64/usr/lib/liblog.so
+++ b/9/platforms/android-19/arch-mips64/usr/lib/liblog.so
Binary files differ
diff --git a/9/platforms/android-19/arch-mips64/usr/lib/libm.a b/9/platforms/android-19/arch-mips64/usr/lib/libm.a
index ae9dc4e..e2bd16d 100644
--- a/9/platforms/android-19/arch-mips64/usr/lib/libm.a
+++ b/9/platforms/android-19/arch-mips64/usr/lib/libm.a
Binary files differ
diff --git a/9/platforms/android-19/arch-mips64/usr/lib/libm.so b/9/platforms/android-19/arch-mips64/usr/lib/libm.so
index c5b97ea..2e8d062 100755
--- a/9/platforms/android-19/arch-mips64/usr/lib/libm.so
+++ b/9/platforms/android-19/arch-mips64/usr/lib/libm.so
Binary files differ
diff --git a/9/platforms/android-19/arch-mips64/usr/lib/libstdc++.a b/9/platforms/android-19/arch-mips64/usr/lib/libstdc++.a
index 63df4a8..e1df123 100644
--- a/9/platforms/android-19/arch-mips64/usr/lib/libstdc++.a
+++ b/9/platforms/android-19/arch-mips64/usr/lib/libstdc++.a
Binary files differ
diff --git a/9/platforms/android-19/arch-mips64/usr/lib/libstdc++.so b/9/platforms/android-19/arch-mips64/usr/lib/libstdc++.so
index 802e808..bb3fbde 100755
--- a/9/platforms/android-19/arch-mips64/usr/lib/libstdc++.so
+++ b/9/platforms/android-19/arch-mips64/usr/lib/libstdc++.so
Binary files differ
diff --git a/9/platforms/android-19/arch-mips64/usr/lib/libz.a b/9/platforms/android-19/arch-mips64/usr/lib/libz.a
index 712b818..7363542 100644
--- a/9/platforms/android-19/arch-mips64/usr/lib/libz.a
+++ b/9/platforms/android-19/arch-mips64/usr/lib/libz.a
Binary files differ
diff --git a/9/platforms/android-19/arch-x86_64/usr/include/android/dlext.h b/9/platforms/android-19/arch-x86_64/usr/include/android/dlext.h
new file mode 100644
index 0000000..90962fa
--- /dev/null
+++ b/9/platforms/android-19/arch-x86_64/usr/include/android/dlext.h
@@ -0,0 +1,70 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __ANDROID_DLEXT_H__
+#define __ANDROID_DLEXT_H__
+
+#include <stddef.h>
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
+
+/* bitfield definitions for android_dlextinfo.flags */
+enum {
+ /* When set, the reserved_addr and reserved_size fields must point to an
+ * already-reserved region of address space which will be used to load the
+ * library if it fits. If the reserved region is not large enough, the load
+ * will fail.
+ */
+ ANDROID_DLEXT_RESERVED_ADDRESS = 0x1,
+
+ /* As DLEXT_RESERVED_ADDRESS, but if the reserved region is not large enough,
+ * the linker will choose an available address instead.
+ */
+ ANDROID_DLEXT_RESERVED_ADDRESS_HINT = 0x2,
+
+ /* When set, write the GNU RELRO section of the mapped library to relro_fd
+ * after relocation has been performed, to allow it to be reused by another
+ * process loading the same library at the same address. This implies
+ * ANDROID_DLEXT_USE_RELRO.
+ */
+ ANDROID_DLEXT_WRITE_RELRO = 0x4,
+
+ /* When set, compare the GNU RELRO section of the mapped library to relro_fd
+ * after relocation has been performed, and replace any relocated pages that
+ * are identical with a version mapped from the file.
+ */
+ ANDROID_DLEXT_USE_RELRO = 0x8,
+
+ /* Mask of valid bits */
+ ANDROID_DLEXT_VALID_FLAG_BITS = ANDROID_DLEXT_RESERVED_ADDRESS |
+ ANDROID_DLEXT_RESERVED_ADDRESS_HINT |
+ ANDROID_DLEXT_WRITE_RELRO |
+ ANDROID_DLEXT_USE_RELRO,
+};
+
+typedef struct {
+ int flags;
+ void* reserved_addr;
+ size_t reserved_size;
+ int relro_fd;
+} android_dlextinfo;
+
+extern void* android_dlopen_ext(const char* filename, int flag, const android_dlextinfo* extinfo);
+
+__END_DECLS
+
+#endif /* __ANDROID_DLEXT_H__ */
diff --git a/9/platforms/android-19/arch-x86_64/usr/include/asm-generic/signal.h b/9/platforms/android-19/arch-x86_64/usr/include/asm-generic/signal.h
index fe7d9a0..e103240 100644
--- a/9/platforms/android-19/arch-x86_64/usr/include/asm-generic/signal.h
+++ b/9/platforms/android-19/arch-x86_64/usr/include/asm-generic/signal.h
@@ -66,9 +66,9 @@
#define SIGSYS 31
#define SIGUNUSED 31
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define SIGRTMIN 32
-#ifndef SIGRTMAX
-#define SIGRTMAX _KERNEL__NSIG
+#define __SIGRTMIN 32
+#ifndef __SIGRTMAX
+#define __SIGRTMAX _KERNEL__NSIG
#endif
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define SA_NOCLDSTOP 0x00000001
diff --git a/9/platforms/android-19/arch-x86_64/usr/include/asm/signal.h b/9/platforms/android-19/arch-x86_64/usr/include/asm/signal.h
index 6f5b435..308c7a9 100644
--- a/9/platforms/android-19/arch-x86_64/usr/include/asm/signal.h
+++ b/9/platforms/android-19/arch-x86_64/usr/include/asm/signal.h
@@ -71,8 +71,8 @@ typedef unsigned long sigset_t;
#define SIGSYS 31
#define SIGUNUSED 31
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define SIGRTMIN 32
-#define SIGRTMAX _KERNEL__NSIG
+#define __SIGRTMIN 32
+#define __SIGRTMAX _KERNEL__NSIG
#define SA_NOCLDSTOP 0x00000001u
#define SA_NOCLDWAIT 0x00000002u
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/9/platforms/android-19/arch-x86_64/usr/include/ctype.h b/9/platforms/android-19/arch-x86_64/usr/include/ctype.h
index 5557e31..7edd8cc 100644
--- a/9/platforms/android-19/arch-x86_64/usr/include/ctype.h
+++ b/9/platforms/android-19/arch-x86_64/usr/include/ctype.h
@@ -44,12 +44,16 @@
#define _CTYPE_U 0x01
#define _CTYPE_L 0x02
-#define _CTYPE_N 0x04
+#define _CTYPE_D 0x04
#define _CTYPE_S 0x08
#define _CTYPE_P 0x10
#define _CTYPE_C 0x20
#define _CTYPE_X 0x40
#define _CTYPE_B 0x80
+#define _CTYPE_R (_CTYPE_P|_CTYPE_U|_CTYPE_L|_CTYPE_D|_CTYPE_B)
+#define _CTYPE_A (_CTYPE_L|_CTYPE_U)
+
+#define _CTYPE_N _CTYPE_D
__BEGIN_DECLS
@@ -57,17 +61,6 @@ extern const char *_ctype_;
extern const short *_tolower_tab_;
extern const short *_toupper_tab_;
-/* extern __inline is a GNU C extension */
-#ifdef __GNUC__
-# if defined(__GNUC_STDC_INLINE__)
-#define __CTYPE_INLINE extern __inline __attribute__((__gnu_inline__))
-# else
-#define __CTYPE_INLINE extern __inline
-# endif
-#else
-#define __CTYPE_INLINE static __inline
-#endif
-
#if defined(__GNUC__) || defined(_ANSI_LIBRARY) || defined(lint)
int isalnum(int);
int isalpha(int);
@@ -97,111 +90,6 @@ int _toupper(int);
#endif /* __GNUC__ || _ANSI_LIBRARY || lint */
-#if defined(NDEBUG)
-
-__CTYPE_INLINE int isalnum(int c)
-{
- return (c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)c] & (_CTYPE_U|_CTYPE_L|_CTYPE_N)));
-}
-
-__CTYPE_INLINE int isalpha(int c)
-{
- return (c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)c] & (_CTYPE_U|_CTYPE_L)));
-}
-
-__CTYPE_INLINE int iscntrl(int c)
-{
- return (c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)c] & _CTYPE_C));
-}
-
-__CTYPE_INLINE int isdigit(int c)
-{
- return (c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)c] & _CTYPE_N));
-}
-
-__CTYPE_INLINE int isgraph(int c)
-{
- return (c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)c] & (_CTYPE_P|_CTYPE_U|_CTYPE_L|_CTYPE_N)));
-}
-
-__CTYPE_INLINE int islower(int c)
-{
- return (c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)c] & _CTYPE_L));
-}
-
-__CTYPE_INLINE int isprint(int c)
-{
- return (c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)c] & (_CTYPE_P|_CTYPE_U|_CTYPE_L|_CTYPE_N|_CTYPE_B)));
-}
-
-__CTYPE_INLINE int ispunct(int c)
-{
- return (c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)c] & _CTYPE_P));
-}
-
-__CTYPE_INLINE int isspace(int c)
-{
- return (c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)c] & _CTYPE_S));
-}
-
-__CTYPE_INLINE int isupper(int c)
-{
- return (c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)c] & _CTYPE_U));
-}
-
-__CTYPE_INLINE int isxdigit(int c)
-{
- return (c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)c] & (_CTYPE_N|_CTYPE_X)));
-}
-
-__CTYPE_INLINE int tolower(int c)
-{
- if ((unsigned int)c > 255)
- return (c);
- return ((_tolower_tab_ + 1)[c]);
-}
-
-__CTYPE_INLINE int toupper(int c)
-{
- if ((unsigned int)c > 255)
- return (c);
- return ((_toupper_tab_ + 1)[c]);
-}
-
-#if __BSD_VISIBLE || __ISO_C_VISIBLE >= 1999 || __POSIX_VISIBLE > 200112 \
- || __XPG_VISIBLE > 600
-__CTYPE_INLINE int isblank(int c)
-{
- return (c == ' ' || c == '\t');
-}
-#endif
-
-#if __BSD_VISIBLE || __XPG_VISIBLE
-__CTYPE_INLINE int isascii(int c)
-{
- return ((unsigned int)c <= 0177);
-}
-
-__CTYPE_INLINE int toascii(int c)
-{
- return (c & 0177);
-}
-
-__CTYPE_INLINE int _tolower(int c)
-{
- return (c - 'A' + 'a');
-}
-
-__CTYPE_INLINE int _toupper(int c)
-{
- return (c - 'a' + 'A');
-}
-#endif /* __BSD_VISIBLE || __XPG_VISIBLE */
-
-#endif /* NDEBUG */
-
__END_DECLS
-#undef __CTYPE_INLINE
-
#endif /* !_CTYPE_H_ */
diff --git a/9/platforms/android-19/arch-x86_64/usr/include/inttypes.h b/9/platforms/android-19/arch-x86_64/usr/include/inttypes.h
index 2fd2415..8853c08 100644
--- a/9/platforms/android-19/arch-x86_64/usr/include/inttypes.h
+++ b/9/platforms/android-19/arch-x86_64/usr/include/inttypes.h
@@ -254,16 +254,14 @@ typedef struct {
} imaxdiv_t;
__BEGIN_DECLS
-
intmax_t imaxabs(intmax_t) __pure2;
imaxdiv_t imaxdiv(intmax_t, intmax_t) __pure2;
-
intmax_t strtoimax(const char *, char **, int);
uintmax_t strtoumax(const char *, char **, int);
-
-intmax_t strntoimax(const char *nptr, char **endptr, int base, size_t n);
-uintmax_t strntoumax(const char *nptr, char **endptr, int base, size_t n);
-
+intmax_t wcstoimax(const wchar_t * __restrict,
+ wchar_t ** __restrict, int);
+uintmax_t wcstoumax(const wchar_t * __restrict,
+ wchar_t ** __restrict, int);
__END_DECLS
#endif /* _INTTYPES_H_ */
diff --git a/9/platforms/android-19/arch-x86_64/usr/include/limits.h b/9/platforms/android-19/arch-x86_64/usr/include/limits.h
index a70021a..dc45902 100644
--- a/9/platforms/android-19/arch-x86_64/usr/include/limits.h
+++ b/9/platforms/android-19/arch-x86_64/usr/include/limits.h
@@ -112,7 +112,7 @@
#define SSIZE_MAX LONG_MAX
-#define MB_LEN_MAX 1 /* No multibyte characters. */
+#define MB_LEN_MAX 6
/* New code should use sysconf(_SC_PAGE_SIZE) instead. */
#ifndef PAGE_SIZE
diff --git a/9/platforms/android-19/arch-x86_64/usr/include/linux/prctl.h b/9/platforms/android-19/arch-x86_64/usr/include/linux/prctl.h
index 87c7e2f..baa597e 100644
--- a/9/platforms/android-19/arch-x86_64/usr/include/linux/prctl.h
+++ b/9/platforms/android-19/arch-x86_64/usr/include/linux/prctl.h
@@ -117,7 +117,8 @@
#define PR_GET_NO_NEW_PRIVS 39
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define PR_GET_TID_ADDRESS 40
+#define PR_SET_TIMERSLACK_PID 41
#define PR_SET_VMA 0x53564d41
#define PR_SET_VMA_ANON_NAME 0
-#endif
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
diff --git a/9/platforms/android-19/arch-x86_64/usr/include/locale.h b/9/platforms/android-19/arch-x86_64/usr/include/locale.h
index 6989851..7fd8c2c 100644
--- a/9/platforms/android-19/arch-x86_64/usr/include/locale.h
+++ b/9/platforms/android-19/arch-x86_64/usr/include/locale.h
@@ -33,21 +33,19 @@
__BEGIN_DECLS
-enum {
- LC_CTYPE = 0,
- LC_NUMERIC = 1,
- LC_TIME = 2,
- LC_COLLATE = 3,
- LC_MONETARY = 4,
- LC_MESSAGES = 5,
- LC_ALL = 6,
- LC_PAPER = 7,
- LC_NAME = 8,
- LC_ADDRESS = 9,
- LC_TELEPHONE = 10,
- LC_MEASUREMENT = 11,
- LC_IDENTIFICATION = 12
-};
+#define LC_CTYPE 0
+#define LC_NUMERIC 1
+#define LC_TIME 2
+#define LC_COLLATE 3
+#define LC_MONETARY 4
+#define LC_MESSAGES 5
+#define LC_ALL 6
+#define LC_PAPER 7
+#define LC_NAME 8
+#define LC_ADDRESS 9
+#define LC_TELEPHONE 10
+#define LC_MEASUREMENT 11
+#define LC_IDENTIFICATION 12
#define LC_CTYPE_MASK (1 << LC_CTYPE)
#define LC_NUMERIC_MASK (1 << LC_NUMERIC)
diff --git a/9/platforms/android-19/arch-x86_64/usr/include/machine/ieee.h b/9/platforms/android-19/arch-x86_64/usr/include/machine/ieee.h
index 74856b2..c579969 100644
--- a/9/platforms/android-19/arch-x86_64/usr/include/machine/ieee.h
+++ b/9/platforms/android-19/arch-x86_64/usr/include/machine/ieee.h
@@ -1,5 +1,5 @@
-/* $OpenBSD: ieee.h,v 1.2 2008/09/07 20:36:06 martynas Exp $ */
-/* $NetBSD: ieee.h,v 1.1 1996/09/30 16:34:25 ws Exp $ */
+/* $OpenBSD: ieee.h,v 1.4 2011/11/08 17:06:51 deraadt Exp $ */
+/* $NetBSD: ieee.h,v 1.2 2001/02/21 17:43:50 bjh21 Exp $ */
/*
* Copyright (c) 1992, 1993
@@ -22,7 +22,11 @@
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by the University of
+ * California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
@@ -41,102 +45,74 @@
* @(#)ieee.h 8.1 (Berkeley) 6/11/93
*/
-/*
- * ieee.h defines the machine-dependent layout of the machine's IEEE
- * floating point. It does *not* define (yet?) any of the rounding
- * mode bits, exceptions, and so forth.
- */
+#ifndef _MACHINE_IEEE_H_
+#define _MACHINE_IEEE_H_
-/*
- * Define the number of bits in each fraction and exponent.
- *
- * k k+1
- * Note that 1.0 x 2 == 0.1 x 2 and that denorms are represented
- *
- * (-exp_bias+1)
- * as fractions that look like 0.fffff x 2 . This means that
- *
- * -126
- * the number 0.10000 x 2 , for instance, is the same as the normalized
- *
- * -127 -128
- * float 1.0 x 2 . Thus, to represent 2 , we need one leading zero
- *
- * -129
- * in the fraction; to represent 2 , we need two, and so on. This
- *
- * (-exp_bias-fracbits+1)
- * implies that the smallest denormalized number is 2
- *
- * for whichever format we are talking about: for single precision, for
- *
- * -126 -149
- * instance, we get .00000000000000000000001 x 2 , or 1.0 x 2 , and
- *
- * -149 == -127 - 23 + 1.
- */
-#define SNG_EXPBITS 8
-#define SNG_FRACBITS 23
-
-#define DBL_EXPBITS 11
-#define DBL_FRACHBITS 20
-#define DBL_FRACLBITS 32
-#define DBL_FRACBITS 52
-
-#define EXT_EXPBITS 15
-#define EXT_FRACHBITS 32
-#define EXT_FRACLBITS 32
-#define EXT_FRACBITS 64
-
-#define EXT_TO_ARRAY32(p, a) do { \
- (a)[0] = (uint32_t)(p)->ext_fracl; \
- (a)[1] = (uint32_t)(p)->ext_frach; \
-} while(0)
+#include <sys/types.h>
+
+__BEGIN_DECLS
+
+#define SNG_EXPBITS 8
+#define SNG_FRACBITS 23
+
+#define SNG_EXP_INFNAN 255
+#define SNG_EXP_BIAS 127
struct ieee_single {
- u_int sng_frac:23;
- u_int sng_exp:8;
- u_int sng_sign:1;
+ unsigned sng_frac:23;
+ unsigned sng_exp:8;
+ unsigned sng_sign:1;
};
+#define DBL_EXPBITS 11
+#define DBL_FRACHBITS 20
+#define DBL_FRACLBITS 32
+#define DBL_FRACBITS 52
+
+#define DBL_EXP_INFNAN 2047
+#define DBL_EXP_BIAS 1023
+
struct ieee_double {
- u_int dbl_fracl;
- u_int dbl_frach:20;
- u_int dbl_exp:11;
- u_int dbl_sign:1;
+ unsigned dbl_fracl;
+ unsigned dbl_frach:20;
+ unsigned dbl_exp:11;
+ unsigned dbl_sign:1;
};
+#if __LP64__
+
+/* 64-bit Android uses ld128 long doubles. */
+
+#define EXT_EXPBITS 15
+#define EXT_FRACHBITS 16
+#define EXT_FRACHMBITS 32
+#define EXT_FRACLMBITS 32
+#define EXT_FRACLBITS 32
+#define EXT_FRACBITS 112
+
+#define EXT_EXP_INFNAN 32767
+#define EXT_EXP_BIAS 16383
+
+#define EXT_IMPLICIT_NBIT
+
+#define EXT_TO_ARRAY32(p, a) do { \
+ (a)[0] = (uint32_t)(p)->ext_fracl; \
+ (a)[1] = (uint32_t)(p)->ext_fraclm; \
+ (a)[2] = (uint32_t)(p)->ext_frachm; \
+ (a)[3] = (uint32_t)(p)->ext_frach; \
+} while(0)
+
struct ieee_ext {
- u_int ext_fracl;
- u_int ext_frach;
- u_int ext_exp:15;
- u_int ext_sign:1;
- u_int ext_padl:16;
- u_int ext_padh;
+ unsigned ext_fracl;
+ unsigned ext_fraclm;
+ unsigned ext_frachm;
+ unsigned ext_frach:16;
+ unsigned ext_exp:15;
+ unsigned ext_sign:1;
};
-/*
- * Floats whose exponent is in [1..INFNAN) (of whatever type) are
- * `normal'. Floats whose exponent is INFNAN are either Inf or NaN.
- * Floats whose exponent is zero are either zero (iff all fraction
- * bits are zero) or subnormal values.
- *
- * A NaN is a `signalling NaN' if its QUIETNAN bit is clear in its
- * high fraction; if the bit is set, it is a `quiet NaN'.
- */
-#define SNG_EXP_INFNAN 255
-#define DBL_EXP_INFNAN 2047
-#define EXT_EXP_INFNAN 32767
-
-#if 0
-#define SNG_QUIETNAN (1 << 22)
-#define DBL_QUIETNAN (1 << 19)
-#define EXT_QUIETNAN (1 << 15)
#endif
-/*
- * Exponent biases.
- */
-#define SNG_EXP_BIAS 127
-#define DBL_EXP_BIAS 1023
-#define EXT_EXP_BIAS 16383
+__END_DECLS
+
+#endif /* _MACHINE_IEEE_H_ */
diff --git a/9/platforms/android-19/arch-x86_64/usr/include/machine/wchar_limits.h b/9/platforms/android-19/arch-x86_64/usr/include/machine/wchar_limits.h
new file mode 100644
index 0000000..94cbd7e
--- /dev/null
+++ b/9/platforms/android-19/arch-x86_64/usr/include/machine/wchar_limits.h
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#ifndef _MACHINE_WCHAR_LIMITS_H_
+#define _MACHINE_WCHAR_LIMITS_H_
+
+/* Both GCC and clang define __WCHAR_MAX__. */
+#define WCHAR_MAX __WCHAR_MAX__
+
+/* As of 3.4, clang still doesn't define __WCHAR_MIN__. */
+#if defined(__WCHAR_UNSIGNED__)
+# define WCHAR_MIN L'\0'
+#else
+# define WCHAR_MIN (-(WCHAR_MAX) - 1)
+#endif
+
+#endif /* _MACHINE_WCHAR_LIMITS_H_ */
diff --git a/9/platforms/android-19/arch-x86_64/usr/include/math.h b/9/platforms/android-19/arch-x86_64/usr/include/math.h
index bd0241b..c264583 100644
--- a/9/platforms/android-19/arch-x86_64/usr/include/math.h
+++ b/9/platforms/android-19/arch-x86_64/usr/include/math.h
@@ -396,16 +396,23 @@ float significandf(float);
* long double versions of ISO/POSIX math functions
*/
#if __ISO_C_VISIBLE >= 1999
+long double acoshl(long double);
long double acosl(long double);
+long double asinhl(long double);
long double asinl(long double);
long double atan2l(long double, long double);
+long double atanhl(long double);
long double atanl(long double);
long double cbrtl(long double);
long double ceill(long double);
long double copysignl(long double, long double) __pure2;
+long double coshl(long double);
long double cosl(long double);
+long double erfcl(long double);
+long double erfl(long double);
long double exp2l(long double);
long double expl(long double);
+long double expm1l(long double);
long double fabsl(long double) __pure2;
long double fdiml(long double, long double);
long double floorl(long double);
@@ -417,9 +424,14 @@ long double frexpl(long double value, int *); /* fundamentally !__pure2 */
long double hypotl(long double, long double);
int ilogbl(long double) __pure2;
long double ldexpl(long double, int);
+long double lgammal(long double);
long long llrintl(long double);
long long llroundl(long double);
+long double log10l(long double);
+long double log1pl(long double);
+long double log2l(long double);
long double logbl(long double);
+long double logl(long double);
long lrintl(long double);
long lroundl(long double);
long double modfl(long double, long double *); /* fundamentally !__pure2 */
@@ -429,53 +441,29 @@ long double nextafterl(long double, long double);
double nexttoward(double, long double);
float nexttowardf(float, long double);
long double nexttowardl(long double, long double);
+long double powl(long double, long double);
long double remainderl(long double, long double);
long double remquol(long double, long double, int *);
long double rintl(long double);
long double roundl(long double);
long double scalblnl(long double, long);
long double scalbnl(long double, int);
+long double sinhl(long double);
long double sinl(long double);
long double sqrtl(long double);
+long double tanhl(long double);
long double tanl(long double);
+long double tgammal(long double);
long double truncl(long double);
#endif /* __ISO_C_VISIBLE >= 1999 */
-__END_DECLS
-
-#endif /* !_MATH_H_ */
-
-/* separate header for cmath */
-#ifndef _MATH_EXTRA_H_
-#if __ISO_C_VISIBLE >= 1999
-#if _DECLARE_C99_LDBL_MATH
-
-#define _MATH_EXTRA_H_
-/*
- * extra long double versions of math functions for C99 and cmath
- */
-__BEGIN_DECLS
-
-long double acoshl(long double);
-long double asinhl(long double);
-long double atanhl(long double);
-long double coshl(long double);
-long double erfcl(long double);
-long double erfl(long double);
-long double expm1l(long double);
-long double lgammal(long double);
-long double log10l(long double);
-long double log1pl(long double);
-long double log2l(long double);
-long double logl(long double);
-long double powl(long double, long double);
-long double sinhl(long double);
-long double tanhl(long double);
-long double tgammal(long double);
+#if defined(_GNU_SOURCE)
+void sincos(double, double*, double*);
+void sincosf(float, float*, float*);
+void sincosl(long double, long double*, long double*);
+#endif /* _GNU_SOURCE */
__END_DECLS
-#endif /* !_DECLARE_C99_LDBL_MATH */
-#endif /* __ISO_C_VISIBLE >= 1999 */
-#endif /* !_MATH_EXTRA_H_ */
+#endif /* !_MATH_H_ */
diff --git a/9/platforms/android-19/arch-x86_64/usr/include/pthread.h b/9/platforms/android-19/arch-x86_64/usr/include/pthread.h
index f93f9e9..7b8de81 100644
--- a/9/platforms/android-19/arch-x86_64/usr/include/pthread.h
+++ b/9/platforms/android-19/arch-x86_64/usr/include/pthread.h
@@ -35,17 +35,26 @@
#include <limits.h>
#include <sys/types.h>
+#ifdef __LP64__
+ #define __RESERVED_INITIALIZER , {0}
+#else
+ #define __RESERVED_INITIALIZER
+#endif
+
typedef struct {
int volatile value;
+#ifdef __LP64__
+ char __reserved[36];
+#endif
} pthread_mutex_t;
#define __PTHREAD_MUTEX_INIT_VALUE 0
#define __PTHREAD_RECURSIVE_MUTEX_INIT_VALUE 0x4000
#define __PTHREAD_ERRORCHECK_MUTEX_INIT_VALUE 0x8000
-#define PTHREAD_MUTEX_INITIALIZER {__PTHREAD_MUTEX_INIT_VALUE}
-#define PTHREAD_RECURSIVE_MUTEX_INITIALIZER {__PTHREAD_RECURSIVE_MUTEX_INIT_VALUE}
-#define PTHREAD_ERRORCHECK_MUTEX_INITIALIZER {__PTHREAD_ERRORCHECK_MUTEX_INIT_VALUE}
+#define PTHREAD_MUTEX_INITIALIZER {__PTHREAD_MUTEX_INIT_VALUE __RESERVED_INITIALIZER}
+#define PTHREAD_RECURSIVE_MUTEX_INITIALIZER {__PTHREAD_RECURSIVE_MUTEX_INIT_VALUE __RESERVED_INITIALIZER}
+#define PTHREAD_ERRORCHECK_MUTEX_INITIALIZER {__PTHREAD_ERRORCHECK_MUTEX_INIT_VALUE __RESERVED_INITIALIZER}
enum {
PTHREAD_MUTEX_NORMAL = 0,
@@ -60,9 +69,12 @@ enum {
typedef struct {
int volatile value;
+#ifdef __LP64__
+ char __reserved[44];
+#endif
} pthread_cond_t;
-#define PTHREAD_COND_INITIALIZER {0}
+#define PTHREAD_COND_INITIALIZER {0 __RESERVED_INITIALIZER}
typedef struct {
uint32_t flags;
@@ -71,21 +83,24 @@ typedef struct {
size_t guard_size;
int32_t sched_policy;
int32_t sched_priority;
+#ifdef __LP64__
+ char __reserved[16];
+#endif
} pthread_attr_t;
typedef long pthread_mutexattr_t;
typedef long pthread_condattr_t;
-typedef int pthread_rwlockattr_t;
+typedef long pthread_rwlockattr_t;
typedef struct {
- pthread_mutex_t lock;
- pthread_cond_t cond;
- int numLocks;
- int writerThreadId;
- int pendingReaders;
- int pendingWriters;
- void* reserved[4]; /* for future extensibility */
+ pthread_mutex_t lock;
+ pthread_cond_t cond;
+ int numLocks;
+ int writerThreadId;
+ int pendingReaders;
+ int pendingWriters;
+ void* __reserved[4];
} pthread_rwlock_t;
#define PTHREAD_RWLOCK_INITIALIZER { PTHREAD_MUTEX_INITIALIZER, PTHREAD_COND_INITIALIZER, 0, 0, 0, 0, { NULL, NULL, NULL, NULL } }
@@ -95,7 +110,7 @@ typedef long pthread_t;
typedef volatile int pthread_once_t;
-#define PTHREAD_ONCE_INIT 0
+#define PTHREAD_ONCE_INIT 0
#define PTHREAD_STACK_MIN (2 * PAGE_SIZE)
diff --git a/9/platforms/android-19/arch-x86_64/usr/include/sched.h b/9/platforms/android-19/arch-x86_64/usr/include/sched.h
index 7649e83..68115bb 100644
--- a/9/platforms/android-19/arch-x86_64/usr/include/sched.h
+++ b/9/platforms/android-19/arch-x86_64/usr/include/sched.h
@@ -59,151 +59,90 @@ extern int unshare(int);
extern int sched_getcpu(void);
extern int setns(int, int);
-/* Our implementation supports up to 32 independent CPUs, which is also
- * the maximum supported by the kernel at the moment. GLibc uses 1024 by
- * default.
- *
- * If you want to use more than that, you should use CPU_ALLOC() / CPU_FREE()
- * and the CPU_XXX_S() macro variants.
- */
-#define CPU_SETSIZE 32
+#ifdef __LP32__
+#define CPU_SETSIZE 32
+#else
+#define CPU_SETSIZE 1024
+#endif
-#define __CPU_BITTYPE unsigned long int /* mandated by the kernel */
-#define __CPU_BITSHIFT 5 /* should be log2(BITTYPE) */
-#define __CPU_BITS (1 << __CPU_BITSHIFT)
-#define __CPU_ELT(x) ((x) >> __CPU_BITSHIFT)
-#define __CPU_MASK(x) ((__CPU_BITTYPE)1 << ((x) & (__CPU_BITS-1)))
+#define __CPU_BITTYPE unsigned long int /* mandated by the kernel */
+#define __CPU_BITS (8 * sizeof(__CPU_BITTYPE))
+#define __CPU_ELT(x) ((x) / __CPU_BITS)
+#define __CPU_MASK(x) ((__CPU_BITTYPE)1 << ((x) & (__CPU_BITS - 1)))
typedef struct {
- __CPU_BITTYPE __bits[ CPU_SETSIZE / __CPU_BITS ];
+ __CPU_BITTYPE __bits[ CPU_SETSIZE / __CPU_BITS ];
} cpu_set_t;
extern int sched_setaffinity(pid_t pid, size_t setsize, const cpu_set_t* set);
extern int sched_getaffinity(pid_t pid, size_t setsize, cpu_set_t* set);
-/* Provide optimized implementation for 32-bit cpu_set_t */
-#if CPU_SETSIZE == __CPU_BITS
-
-# define CPU_ZERO(set_) \
- do{ \
- (set_)->__bits[0] = 0; \
- }while(0)
-
-# define CPU_SET(cpu_,set_) \
- do {\
- size_t __cpu = (cpu_); \
- if (__cpu < CPU_SETSIZE) \
- (set_)->__bits[0] |= __CPU_MASK(__cpu); \
- }while (0)
-
-# define CPU_CLR(cpu_,set_) \
- do {\
- size_t __cpu = (cpu_); \
- if (__cpu < CPU_SETSIZE) \
- (set_)->__bits[0] &= ~__CPU_MASK(__cpu); \
- }while (0)
-
-# define CPU_ISSET(cpu_, set_) \
- (__extension__({\
- size_t __cpu = (cpu_); \
- (cpu_ < CPU_SETSIZE) \
- ? ((set_)->__bits[0] & __CPU_MASK(__cpu)) != 0 \
- : 0; \
- }))
-
-# define CPU_EQUAL(set1_, set2_) \
- ((set1_)->__bits[0] == (set2_)->__bits[0])
-
-# define __CPU_OP(dst_, set1_, set2_, op_) \
- do { \
- (dst_)->__bits[0] = (set1_)->__bits[0] op_ (set2_)->__bits[0]; \
- } while (0)
-
-# define CPU_COUNT(set_) __builtin_popcountl((set_)->__bits[0])
-
-#else /* CPU_SETSIZE != __CPU_BITS */
-
-# define CPU_ZERO(set_) CPU_ZERO_S(sizeof(cpu_set_t), set_)
-# define CPU_SET(cpu_,set_) CPU_SET_S(cpu_,sizeof(cpu_set_t),set_)
-# define CPU_CLR(cpu_,set_) CPU_CLR_S(cpu_,sizeof(cpu_set_t),set_)
-# define CPU_ISSET(cpu_,set_) CPU_ISSET_S(cpu_,sizeof(cpu_set_t),set_)
-# define CPU_COUNT(set_) CPU_COUNT_S(sizeof(cpu_set_t),set_)
-# define CPU_EQUAL(set1_,set2_) CPU_EQUAL_S(sizeof(cpu_set_t),set1_,set2_)
-
-# define __CPU_OP(dst_,set1_,set2_,op_) __CPU_OP_S(sizeof(cpu_set_t),dst_,set1_,set2_,op_)
+#define CPU_ZERO(set) CPU_ZERO_S(sizeof(cpu_set_t), set)
+#define CPU_SET(cpu, set) CPU_SET_S(cpu, sizeof(cpu_set_t), set)
+#define CPU_CLR(cpu, set) CPU_CLR_S(cpu, sizeof(cpu_set_t), set)
+#define CPU_ISSET(cpu, set) CPU_ISSET_S(cpu, sizeof(cpu_set_t), set)
+#define CPU_COUNT(set) CPU_COUNT_S(sizeof(cpu_set_t), set)
+#define CPU_EQUAL(set1, set2) CPU_EQUAL_S(sizeof(cpu_set_t), set1, set2)
-#endif /* CPU_SETSIZE != __CPU_BITS */
+#define CPU_AND(dst, set1, set2) __CPU_OP(dst, set1, set2, &)
+#define CPU_OR(dst, set1, set2) __CPU_OP(dst, set1, set2, |)
+#define CPU_XOR(dst, set1, set2) __CPU_OP(dst, set1, set2, ^)
-#define CPU_AND(set1_,set2_) __CPU_OP(set1_,set2_,&)
-#define CPU_OR(set1_,set2_) __CPU_OP(set1_,set2_,|)
-#define CPU_XOR(set1_,set2_) __CPU_OP(set1_,set2_,^)
+#define __CPU_OP(dst, set1, set2, op) __CPU_OP_S(sizeof(cpu_set_t), dst, set1, set2, op)
/* Support for dynamically-allocated cpu_set_t */
#define CPU_ALLOC_SIZE(count) \
- __CPU_ELT((count) + (__CPU_BITS-1))*sizeof(__CPU_BITTYPE)
+ __CPU_ELT((count) + (__CPU_BITS - 1)) * sizeof(__CPU_BITTYPE)
-#define CPU_ALLOC(count) __sched_cpualloc((count));
-#define CPU_FREE(set) __sched_cpufree((set))
+#define CPU_ALLOC(count) __sched_cpualloc((count))
+#define CPU_FREE(set) __sched_cpufree((set))
extern cpu_set_t* __sched_cpualloc(size_t count);
extern void __sched_cpufree(cpu_set_t* set);
-#define CPU_ZERO_S(setsize_,set_) \
- do { \
- size_t __nn = 0; \
- size_t __nn_max = (setsize_)/sizeof(__CPU_BITTYPE); \
- for (; __nn < __nn_max; __nn++) \
- (set_)->__bits[__nn] = 0; \
- } while (0)
-
-#define CPU_SET_S(cpu_,setsize_,set_) \
- do { \
- size_t __cpu = (cpu_); \
- if (__cpu < 8*(setsize_)) \
- (set_)->__bits[__CPU_ELT(__cpu)] |= __CPU_MASK(__cpu); \
- } while (0)
-
-#define CPU_CLR_S(cpu_,setsize_,set_) \
- do { \
- size_t __cpu = (cpu_); \
- if (__cpu < 8*(setsize_)) \
- (set_)->__bits[__CPU_ELT(__cpu)] &= ~__CPU_MASK(__cpu); \
- } while (0)
-
-#define CPU_ISSET_S(cpu_, setsize_, set_) \
- (__extension__ ({ \
- size_t __cpu = (cpu_); \
- (__cpu < 8*(setsize_)) \
- ? ((set_)->__bits[__CPU_ELT(__cpu)] & __CPU_MASK(__cpu)) != 0 \
- : 0; \
- }))
-
-#define CPU_EQUAL_S(setsize_, set1_, set2_) \
- (__extension__ ({ \
- __const __CPU_BITTYPE* __src1 = (set1_)->__bits; \
- __const __CPU_BITTYPE* __src2 = (set2_)->__bits; \
- size_t __nn = 0, __nn_max = (setsize_)/sizeof(__CPU_BITTYPE); \
- for (; __nn < __nn_max; __nn++) { \
- if (__src1[__nn] != __src2[__nn]) \
- break; \
- } \
- __nn == __nn_max; \
- }))
-
-#define __CPU_OP_S(setsize_, dstset_, srcset1_, srcset2_, op) \
- do { \
- cpu_set_t* __dst = (dstset); \
- const __CPU_BITTYPE* __src1 = (srcset1)->__bits; \
- const __CPU_BITTYPE* __src2 = (srcset2)->__bits; \
- size_t __nn = 0, __nn_max = (setsize_)/sizeof(__CPU_BITTYPE); \
- for (; __nn < __nn_max; __nn++) \
- (__dst)->__bits[__nn] = __src1[__nn] op __src2[__nn]; \
- } while (0)
-
-#define CPU_COUNT_S(setsize_, set_) \
- __sched_cpucount((setsize_), (set_))
+#define CPU_ZERO_S(setsize, set) __builtin_memset(set, 0, setsize)
+
+#define CPU_SET_S(cpu, setsize, set) \
+ do { \
+ size_t __cpu = (cpu); \
+ if (__cpu < 8 * (setsize)) \
+ (set)->__bits[__CPU_ELT(__cpu)] |= __CPU_MASK(__cpu); \
+ } while (0)
+
+#define CPU_CLR_S(cpu, setsize, set) \
+ do { \
+ size_t __cpu = (cpu); \
+ if (__cpu < 8 * (setsize)) \
+ (set)->__bits[__CPU_ELT(__cpu)] &= ~__CPU_MASK(__cpu); \
+ } while (0)
+
+#define CPU_ISSET_S(cpu, setsize, set) \
+ (__extension__ ({ \
+ size_t __cpu = (cpu); \
+ (__cpu < 8 * (setsize)) \
+ ? ((set)->__bits[__CPU_ELT(__cpu)] & __CPU_MASK(__cpu)) != 0 \
+ : 0; \
+ }))
+
+#define CPU_EQUAL_S(setsize, set1, set2) (__builtin_memcmp(set1, set2, setsize) == 0)
+
+#define CPU_AND_S(setsize, dst, set1, set2) __CPU_OP_S(setsize, dst, set1, set2, &)
+#define CPU_OR_S(setsize, dst, set1, set2) __CPU_OP_S(setsize, dst, set1, set2, |)
+#define CPU_XOR_S(setsize, dst, set1, set2) __CPU_OP_S(setsize, dst, set1, set2, ^)
+
+#define __CPU_OP_S(setsize, dstset, srcset1, srcset2, op) \
+ do { \
+ cpu_set_t* __dst = (dstset); \
+ const __CPU_BITTYPE* __src1 = (srcset1)->__bits; \
+ const __CPU_BITTYPE* __src2 = (srcset2)->__bits; \
+ size_t __nn = 0, __nn_max = (setsize)/sizeof(__CPU_BITTYPE); \
+ for (; __nn < __nn_max; __nn++) \
+ (__dst)->__bits[__nn] = __src1[__nn] op __src2[__nn]; \
+ } while (0)
+
+#define CPU_COUNT_S(setsize, set) __sched_cpucount((setsize), (set))
extern int __sched_cpucount(size_t setsize, cpu_set_t* set);
diff --git a/9/platforms/android-19/arch-x86_64/usr/include/semaphore.h b/9/platforms/android-19/arch-x86_64/usr/include/semaphore.h
index 30e3123..7ae3c3a 100644
--- a/9/platforms/android-19/arch-x86_64/usr/include/semaphore.h
+++ b/9/platforms/android-19/arch-x86_64/usr/include/semaphore.h
@@ -33,10 +33,13 @@
__BEGIN_DECLS
typedef struct {
- volatile unsigned int count;
+ volatile unsigned int count;
+#ifdef __LP64__
+ int __reserved[3];
+#endif
} sem_t;
-#define SEM_FAILED NULL
+#define SEM_FAILED NULL
extern int sem_init(sem_t *sem, int pshared, unsigned int value);
diff --git a/9/platforms/android-19/arch-x86_64/usr/include/signal.h b/9/platforms/android-19/arch-x86_64/usr/include/signal.h
index 267f3e6..45c1cda 100644
--- a/9/platforms/android-19/arch-x86_64/usr/include/signal.h
+++ b/9/platforms/android-19/arch-x86_64/usr/include/signal.h
@@ -60,6 +60,12 @@ typedef int sig_atomic_t;
#define _NSIG (_KERNEL__NSIG + 1)
#define NSIG _NSIG
+/* We take a few real-time signals for ourselves. May as well use the same names as glibc. */
+#define SIGRTMIN (__libc_current_sigrtmin())
+#define SIGRTMAX (__libc_current_sigrtmax())
+extern int __libc_current_sigrtmin(void);
+extern int __libc_current_sigrtmax(void);
+
extern const char* const sys_siglist[];
extern const char* const sys_signame[]; /* BSD compatibility. */
diff --git a/9/platforms/android-19/arch-x86_64/usr/include/stdint.h b/9/platforms/android-19/arch-x86_64/usr/include/stdint.h
index 1f3d003..f34843c 100644
--- a/9/platforms/android-19/arch-x86_64/usr/include/stdint.h
+++ b/9/platforms/android-19/arch-x86_64/usr/include/stdint.h
@@ -30,6 +30,7 @@
#define _STDINT_H
#include <stddef.h>
+#include <machine/wchar_limits.h>
typedef __signed char __int8_t;
typedef unsigned char __uint8_t;
@@ -86,7 +87,7 @@ typedef uint8_t uint_fast8_t;
typedef int64_t int_fast64_t;
typedef uint64_t uint_fast64_t;
-#ifdef __LP64__
+#if defined(__LP64__)
typedef int64_t int_fast16_t;
typedef uint64_t uint_fast16_t;
typedef int64_t int_fast32_t;
@@ -135,7 +136,7 @@ typedef int64_t intmax_t;
#define INTMAX_C(c) INT64_C(c)
#define UINTMAX_C(c) UINT64_C(c)
-#ifdef __LP64__
+#if defined(__LP64__)
# define INT64_C(c) c ## L
# define UINT64_C(c) c ## UL
# define INTPTR_C(c) INT64_C(c)
@@ -200,15 +201,15 @@ typedef int64_t intmax_t;
#define SIG_ATOMIC_MAX INT32_MAX
#define SIG_ATOMIC_MIN INT32_MIN
-#ifndef WCHAR_MAX /* These might also have been defined by <wchar.h>. */
-# define WCHAR_MAX INT32_MAX
-# define WCHAR_MIN INT32_MIN
+#if defined(__WINT_UNSIGNED__)
+# define WINT_MAX UINT32_MAX
+# define WINT_MIN UINT32_MIN
+#else
+# define WINT_MAX INT32_MAX
+# define WINT_MIN INT32_MIN
#endif
-#define WINT_MAX INT32_MAX
-#define WINT_MIN INT32_MIN
-
-#ifdef __LP64__
+#if defined(__LP64__)
# define INTPTR_MIN INT64_MIN
# define INTPTR_MAX INT64_MAX
# define UINTPTR_MAX UINT64_MAX
diff --git a/9/platforms/android-19/arch-x86_64/usr/include/stdlib.h b/9/platforms/android-19/arch-x86_64/usr/include/stdlib.h
index 2c797c5..834dcda 100644
--- a/9/platforms/android-19/arch-x86_64/usr/include/stdlib.h
+++ b/9/platforms/android-19/arch-x86_64/usr/include/stdlib.h
@@ -46,10 +46,15 @@ extern __noreturn void exit(int);
extern __noreturn void _Exit(int);
extern int atexit(void (*)(void));
-extern char *getenv(const char *);
-extern int putenv(const char *);
-extern int setenv(const char *, const char *, int);
-extern int unsetenv(const char *);
+#if __ISO_C_VISIBLE >= 2011 || __cplusplus >= 201103L
+int at_quick_exit(void (*)(void));
+void quick_exit(int) __noreturn;
+#endif
+
+extern char* getenv(const char*);
+extern int putenv(char*);
+extern int setenv(const char*, const char*, int);
+extern int unsetenv(const char*);
extern int clearenv(void);
extern char* mkdtemp(char*);
@@ -65,9 +70,10 @@ extern unsigned long long strtoull(const char *, char **, int);
extern int posix_memalign(void **memptr, size_t alignment, size_t size);
extern double atof(const char*);
-extern double strtod(const char*, char**);
-extern float strtof(const char*, char**);
-extern long double strtold(const char*, char**);
+
+extern double strtod(const char*, char**) __LIBC_ABI_PUBLIC__;
+extern float strtof(const char*, char**) __LIBC_ABI_PUBLIC__;
+extern long double strtold(const char*, char**) __LIBC_ABI_PUBLIC__;
extern int atoi(const char*) __purefunc;
extern long atol(const char*) __purefunc;
diff --git a/9/platforms/android-19/arch-x86_64/usr/include/sys/cdefs_elf.h b/9/platforms/android-19/arch-x86_64/usr/include/sys/cdefs_elf.h
index bb846b7..0479230 100644
--- a/9/platforms/android-19/arch-x86_64/usr/include/sys/cdefs_elf.h
+++ b/9/platforms/android-19/arch-x86_64/usr/include/sys/cdefs_elf.h
@@ -32,7 +32,7 @@
#ifdef __LEADING_UNDERSCORE
#define _C_LABEL(x) __CONCAT(_,x)
-#define _C_LABEL_STRING(x) "_"x
+#define _C_LABEL_STRING(x) "_" x
#else
#define _C_LABEL(x) x
#define _C_LABEL_STRING(x) x
@@ -61,24 +61,11 @@
#define __SECTIONSTRING(_sec, _str) \
__asm__(".section " #_sec "\n\t.asciz \"" _str "\"\n\t.previous")
-/* GCC visibility helper macro */
-/* This must be used to tag non-static functions that are private, i.e.
- * never exposed by the shared library. */
-#define __LIBC_HIDDEN__ \
- __attribute__ ((visibility ("hidden")))
-
-/* This must be used to tag non-static functions that are public, i.e.
- * exposed by the shared library, and part of the stable NDK ABI */
-#define __LIBC_ABI_PUBLIC__ \
- __attribute__ ((visibility ("default")))
-
-/* This must be used to tag non-static functions that must be exported
- * by the shared library, but whose implementation is private to the
- * platform. For now this is equivalent to __LIBC_ABI_PUBLIC__, but we
- * may want to change this later.
- */
-#define __LIBC_ABI_PRIVATE__ \
- __attribute__ ((visibility ("default")))
+/* Used to tag non-static symbols that are private and never exposed by the shared library. */
+#define __LIBC_HIDDEN__ __attribute__((visibility ("hidden")))
+
+/* Used to tag non-static symbols that are public and exposed by the shared library. */
+#define __LIBC_ABI_PUBLIC__ __attribute__((visibility ("default")))
#define __IDSTRING(_n,_s) __SECTIONSTRING(.ident,_s)
diff --git a/9/platforms/android-19/arch-x86_64/usr/include/sys/epoll.h b/9/platforms/android-19/arch-x86_64/usr/include/sys/epoll.h
index c06a081..4a5a37c 100644
--- a/9/platforms/android-19/arch-x86_64/usr/include/sys/epoll.h
+++ b/9/platforms/android-19/arch-x86_64/usr/include/sys/epoll.h
@@ -67,7 +67,11 @@ typedef union epoll_data {
struct epoll_event {
uint32_t events;
epoll_data_t data;
-};
+}
+#ifdef __x86_64__
+__packed
+#endif
+;
int epoll_create(int);
int epoll_create1(int);
diff --git a/9/platforms/android-19/arch-x86_64/usr/include/sys/types.h b/9/platforms/android-19/arch-x86_64/usr/include/sys/types.h
index dc847d2..9a76ad2 100644
--- a/9/platforms/android-19/arch-x86_64/usr/include/sys/types.h
+++ b/9/platforms/android-19/arch-x86_64/usr/include/sys/types.h
@@ -63,7 +63,7 @@ typedef __mode_t mode_t;
typedef __kernel_key_t __key_t;
typedef __key_t key_t;
-typedef uint32_t __ino_t;
+typedef __kernel_ino_t __ino_t;
typedef __ino_t ino_t;
typedef uint32_t __nlink_t;
@@ -72,9 +72,10 @@ typedef __nlink_t nlink_t;
typedef void* __timer_t;
typedef __timer_t timer_t;
-typedef int32_t __suseconds_t;
+typedef __kernel_suseconds_t __suseconds_t;
typedef __suseconds_t suseconds_t;
+/* useconds_t is 32-bit on both LP32 and LP64. */
typedef uint32_t __useconds_t;
typedef __useconds_t useconds_t;
diff --git a/9/platforms/android-19/arch-x86_64/usr/include/sys/user.h b/9/platforms/android-19/arch-x86_64/usr/include/sys/user.h
index 5348dd8..c578a6f 100644
--- a/9/platforms/android-19/arch-x86_64/usr/include/sys/user.h
+++ b/9/platforms/android-19/arch-x86_64/usr/include/sys/user.h
@@ -36,7 +36,7 @@ __BEGIN_DECLS
#if __i386__
-struct user_i387_struct {
+struct user_fpregs_struct {
long cwd;
long swd;
long twd;
@@ -83,7 +83,7 @@ struct user_regs_struct {
struct user {
struct user_regs_struct regs;
int u_fpvalid;
- struct user_i387_struct i387;
+ struct user_fpregs_struct i387;
unsigned long int u_tsize;
unsigned long int u_dsize;
unsigned long int u_ssize;
@@ -92,7 +92,7 @@ struct user {
long int signal;
int reserved;
unsigned long u_ar0;
- struct user_i387_struct* u_fpstate;
+ struct user_fpregs_struct* u_fpstate;
unsigned long magic;
char u_comm[32];
int u_debugreg[8];
@@ -100,7 +100,7 @@ struct user {
#elif defined(__x86_64__)
-struct user_i387_struct {
+struct user_fpregs_struct {
unsigned short cwd;
unsigned short swd;
unsigned short twd;
@@ -146,7 +146,7 @@ struct user {
struct user_regs_struct regs;
int u_fpvalid;
int pad0;
- struct user_i387_struct i387;
+ struct user_fpregs_struct i387;
unsigned long int u_tsize;
unsigned long int u_dsize;
unsigned long int u_ssize;
@@ -156,7 +156,7 @@ struct user {
int reserved;
int pad1;
unsigned long u_ar0;
- struct user_i387_struct* u_fpstate;
+ struct user_fpregs_struct* u_fpstate;
unsigned long magic;
char u_comm[32];
unsigned long u_debugreg[8];
diff --git a/9/platforms/android-19/arch-x86_64/usr/include/time64.h b/9/platforms/android-19/arch-x86_64/usr/include/time64.h
index 7ec05af..905669d 100644
--- a/9/platforms/android-19/arch-x86_64/usr/include/time64.h
+++ b/9/platforms/android-19/arch-x86_64/usr/include/time64.h
@@ -31,29 +31,36 @@ Modified for Bionic by the Android Open Source Project
#ifndef TIME64_H
#define TIME64_H
+#if defined(__LP64__)
+
+#error Your time_t is already 64-bit.
+
+#else
+
+/* Legacy cruft for LP32 where time_t was 32-bit. */
+
#include <sys/cdefs.h>
#include <time.h>
#include <stdint.h>
__BEGIN_DECLS
-typedef int64_t time64_t;
+typedef int64_t time64_t;
-struct tm *gmtime64_r (const time64_t *, struct tm *);
-struct tm *localtime64_r (const time64_t *, struct tm *);
-struct tm *gmtime64 (const time64_t *);
-struct tm *localtime64 (const time64_t *);
-
-char *asctime64 (const struct tm *);
-char *asctime64_r (const struct tm *, char *);
-
-char *ctime64 (const time64_t*);
-char *ctime64_r (const time64_t*, char*);
-
-time64_t timegm64 (const struct tm *);
-time64_t mktime64 (const struct tm *);
-time64_t timelocal64 (const struct tm *);
+char* asctime64(const struct tm*);
+char* asctime64_r(const struct tm*, char*);
+char* ctime64(const time64_t*);
+char* ctime64_r(const time64_t*, char*);
+struct tm* gmtime64(const time64_t*);
+struct tm* gmtime64_r(const time64_t*, struct tm*);
+struct tm* localtime64(const time64_t*);
+struct tm* localtime64_r(const time64_t*, struct tm*);
+time64_t mktime64(const struct tm*);
+time64_t timegm64(const struct tm*);
+time64_t timelocal64(const struct tm*);
__END_DECLS
+#endif
+
#endif /* TIME64_H */
diff --git a/9/platforms/android-19/arch-x86_64/usr/include/unistd.h b/9/platforms/android-19/arch-x86_64/usr/include/unistd.h
index d21f23d..6cb36d8 100644
--- a/9/platforms/android-19/arch-x86_64/usr/include/unistd.h
+++ b/9/platforms/android-19/arch-x86_64/usr/include/unistd.h
@@ -47,7 +47,8 @@ __BEGIN_DECLS
#define SEEK_CUR 1
#define SEEK_END 2
-extern char **environ;
+extern char** environ;
+
extern __noreturn void _exit(int);
extern pid_t fork(void);
diff --git a/9/platforms/android-19/arch-x86_64/usr/include/utmp.h b/9/platforms/android-19/arch-x86_64/usr/include/utmp.h
index ffd3c92..d764227 100644
--- a/9/platforms/android-19/arch-x86_64/usr/include/utmp.h
+++ b/9/platforms/android-19/arch-x86_64/usr/include/utmp.h
@@ -36,9 +36,15 @@
#define _PATH_WTMP "/var/log/wtmp"
#define _PATH_LASTLOG "/var/log/lastlog"
-#define UT_NAMESIZE 8
-#define UT_LINESIZE 8
-#define UT_HOSTSIZE 16
+#ifdef __LP64__
+#define UT_NAMESIZE 32
+#define UT_LINESIZE 32
+#define UT_HOSTSIZE 256
+#else
+#define UT_NAMESIZE 8
+#define UT_LINESIZE 8
+#define UT_HOSTSIZE 16
+#endif
#define USER_PROCESS 7
diff --git a/9/platforms/android-19/arch-x86_64/usr/include/wchar.h b/9/platforms/android-19/arch-x86_64/usr/include/wchar.h
index 89c6fb6..fe2fe07 100644
--- a/9/platforms/android-19/arch-x86_64/usr/include/wchar.h
+++ b/9/platforms/android-19/arch-x86_64/usr/include/wchar.h
@@ -34,12 +34,20 @@
#include <stdarg.h>
#include <stddef.h>
#include <time.h>
-#include <malloc.h>
+
+#include <machine/wchar_limits.h>
__BEGIN_DECLS
-typedef __WINT_TYPE__ wint_t;
-typedef struct { int dummy; } mbstate_t;
+typedef __WINT_TYPE__ wint_t;
+typedef struct {
+#ifdef __LP32__
+ int dummy;
+#else
+ // 8 bytes should be enough to support at least UTF-8
+ char __reserved[8];
+#endif
+} mbstate_t;
typedef enum {
WC_TYPE_INVALID = 0,
@@ -58,11 +66,6 @@ typedef enum {
WC_TYPE_MAX
} wctype_t;
-#ifndef WCHAR_MAX
-#define WCHAR_MAX INT_MAX
-#define WCHAR_MIN INT_MIN
-#endif
-
#define WEOF ((wint_t)(-1))
extern wint_t btowc(int);
@@ -70,6 +73,7 @@ extern int fwprintf(FILE *, const wchar_t *, ...);
extern int fwscanf(FILE *, const wchar_t *, ...);
extern int iswalnum(wint_t);
extern int iswalpha(wint_t);
+extern int iswblank(wint_t);
extern int iswcntrl(wint_t);
extern int iswdigit(wint_t);
extern int iswgraph(wint_t);
@@ -90,7 +94,8 @@ extern wint_t getwchar(void);
extern int mbsinit(const mbstate_t *);
extern size_t mbrlen(const char *, size_t, mbstate_t *);
extern size_t mbrtowc(wchar_t *, const char *, size_t, mbstate_t *);
-extern size_t mbsrtowcs(wchar_t *, const char **, size_t, mbstate_t *);
+extern size_t mbsrtowcs(wchar_t*, const char**, size_t, mbstate_t*);
+extern size_t mbsnrtowcs(wchar_t*, const char**, size_t, size_t, mbstate_t*);
extern size_t mbstowcs(wchar_t *, const char *, size_t);
extern wint_t putwc(wchar_t, FILE *);
extern wint_t putwchar(wchar_t);
@@ -99,9 +104,12 @@ extern int swscanf(const wchar_t *, const wchar_t *, ...);
extern wint_t towlower(wint_t);
extern wint_t towupper(wint_t);
extern wint_t ungetwc(wint_t, FILE *);
-extern int vfwprintf(FILE *, const wchar_t *, va_list);
-extern int vwprintf(const wchar_t *, va_list);
-extern int vswprintf(wchar_t *, size_t, const wchar_t *, va_list);
+extern int vfwprintf(FILE*, const wchar_t*, va_list);
+extern int vfwscanf(FILE*, const wchar_t*, va_list);
+extern int vswprintf(wchar_t*, size_t, const wchar_t*, va_list);
+extern int vswscanf(const wchar_t*, const wchar_t*, va_list);
+extern int vwprintf(const wchar_t*, va_list);
+extern int vwscanf(const wchar_t*, va_list);
extern size_t wcrtomb(char *, wchar_t, mbstate_t *);
extern int wcscasecmp(const wchar_t *, const wchar_t *);
extern wchar_t *wcscat(wchar_t *, const wchar_t *);
@@ -116,16 +124,20 @@ extern int wcsncasecmp(const wchar_t *, const wchar_t *, size_t);
extern wchar_t *wcsncat(wchar_t *, const wchar_t *, size_t);
extern int wcsncmp(const wchar_t *, const wchar_t *, size_t);
extern wchar_t *wcsncpy(wchar_t *, const wchar_t *, size_t);
+extern size_t wcsnrtombs(char*, const wchar_t**, size_t, size_t, mbstate_t*);
extern wchar_t *wcspbrk(const wchar_t *, const wchar_t *);
extern wchar_t *wcsrchr(const wchar_t *, wchar_t);
-extern size_t wcsrtombs(char *, const wchar_t **, size_t, mbstate_t *);
+extern size_t wcsrtombs(char*, const wchar_t**, size_t, mbstate_t*);
extern size_t wcsspn(const wchar_t *, const wchar_t *);
extern wchar_t *wcsstr(const wchar_t *, const wchar_t *);
-extern double wcstod(const wchar_t *, wchar_t **);
-extern wchar_t *wcstok(wchar_t *, const wchar_t *, wchar_t **);
-extern long int wcstol(const wchar_t *, wchar_t **, int);
-extern size_t wcstombs(char *, const wchar_t *, size_t);
-extern unsigned long int wcstoul(const wchar_t *, wchar_t **, int);
+extern double wcstod(const wchar_t*, wchar_t**);
+extern float wcstof(const wchar_t*, wchar_t**);
+extern wchar_t* wcstok(wchar_t*, const wchar_t*, wchar_t**);
+extern long wcstol(const wchar_t*, wchar_t**, int);
+extern long long wcstoll(const wchar_t*, wchar_t**, int);
+extern long double wcstold(const wchar_t*, wchar_t**);
+extern unsigned long wcstoul(const wchar_t*, wchar_t**, int);
+extern unsigned long long wcstoull(const wchar_t*, wchar_t**, int);
extern wchar_t *wcswcs(const wchar_t *, const wchar_t *);
extern int wcswidth(const wchar_t *, size_t);
extern size_t wcsxfrm(wchar_t *, const wchar_t *, size_t);
diff --git a/9/platforms/android-19/arch-x86_64/usr/lib64/crtbegin_dynamic.o b/9/platforms/android-19/arch-x86_64/usr/lib64/crtbegin_dynamic.o
index 03cbdea..ba6df6e 100644
--- a/9/platforms/android-19/arch-x86_64/usr/lib64/crtbegin_dynamic.o
+++ b/9/platforms/android-19/arch-x86_64/usr/lib64/crtbegin_dynamic.o
Binary files differ
diff --git a/9/platforms/android-19/arch-x86_64/usr/lib64/crtbegin_so.o b/9/platforms/android-19/arch-x86_64/usr/lib64/crtbegin_so.o
index d6768bf..7523940 100644
--- a/9/platforms/android-19/arch-x86_64/usr/lib64/crtbegin_so.o
+++ b/9/platforms/android-19/arch-x86_64/usr/lib64/crtbegin_so.o
Binary files differ
diff --git a/9/platforms/android-19/arch-x86_64/usr/lib64/crtbegin_static.o b/9/platforms/android-19/arch-x86_64/usr/lib64/crtbegin_static.o
index 03cbdea..ba6df6e 100644
--- a/9/platforms/android-19/arch-x86_64/usr/lib64/crtbegin_static.o
+++ b/9/platforms/android-19/arch-x86_64/usr/lib64/crtbegin_static.o
Binary files differ
diff --git a/9/platforms/android-19/arch-x86_64/usr/lib64/crtend_android.o b/9/platforms/android-19/arch-x86_64/usr/lib64/crtend_android.o
index 2149bf1..1c39bb4 100644
--- a/9/platforms/android-19/arch-x86_64/usr/lib64/crtend_android.o
+++ b/9/platforms/android-19/arch-x86_64/usr/lib64/crtend_android.o
Binary files differ
diff --git a/9/platforms/android-19/arch-x86_64/usr/lib64/crtend_so.o b/9/platforms/android-19/arch-x86_64/usr/lib64/crtend_so.o
index e0041da..0de25a4 100644
--- a/9/platforms/android-19/arch-x86_64/usr/lib64/crtend_so.o
+++ b/9/platforms/android-19/arch-x86_64/usr/lib64/crtend_so.o
Binary files differ
diff --git a/9/platforms/android-19/arch-x86_64/usr/lib64/libEGL.so b/9/platforms/android-19/arch-x86_64/usr/lib64/libEGL.so
index da6d74e..4202ae5 100755
--- a/9/platforms/android-19/arch-x86_64/usr/lib64/libEGL.so
+++ b/9/platforms/android-19/arch-x86_64/usr/lib64/libEGL.so
Binary files differ
diff --git a/9/platforms/android-19/arch-x86_64/usr/lib64/libGLESv1_CM.so b/9/platforms/android-19/arch-x86_64/usr/lib64/libGLESv1_CM.so
index 16a7659..2b7c271 100755
--- a/9/platforms/android-19/arch-x86_64/usr/lib64/libGLESv1_CM.so
+++ b/9/platforms/android-19/arch-x86_64/usr/lib64/libGLESv1_CM.so
Binary files differ
diff --git a/9/platforms/android-19/arch-x86_64/usr/lib64/libGLESv2.so b/9/platforms/android-19/arch-x86_64/usr/lib64/libGLESv2.so
index 57104ab..869d0fb 100755
--- a/9/platforms/android-19/arch-x86_64/usr/lib64/libGLESv2.so
+++ b/9/platforms/android-19/arch-x86_64/usr/lib64/libGLESv2.so
Binary files differ
diff --git a/9/platforms/android-19/arch-x86_64/usr/lib64/libGLESv3.so b/9/platforms/android-19/arch-x86_64/usr/lib64/libGLESv3.so
index 70c97cb..96867fb 100755
--- a/9/platforms/android-19/arch-x86_64/usr/lib64/libGLESv3.so
+++ b/9/platforms/android-19/arch-x86_64/usr/lib64/libGLESv3.so
Binary files differ
diff --git a/9/platforms/android-19/arch-x86_64/usr/lib64/libOpenMAXAL.so b/9/platforms/android-19/arch-x86_64/usr/lib64/libOpenMAXAL.so
index ac27304..4330696 100755
--- a/9/platforms/android-19/arch-x86_64/usr/lib64/libOpenMAXAL.so
+++ b/9/platforms/android-19/arch-x86_64/usr/lib64/libOpenMAXAL.so
Binary files differ
diff --git a/9/platforms/android-19/arch-x86_64/usr/lib64/libOpenSLES.so b/9/platforms/android-19/arch-x86_64/usr/lib64/libOpenSLES.so
index 95ecb48..fc0bf45 100755
--- a/9/platforms/android-19/arch-x86_64/usr/lib64/libOpenSLES.so
+++ b/9/platforms/android-19/arch-x86_64/usr/lib64/libOpenSLES.so
Binary files differ
diff --git a/9/platforms/android-19/arch-x86_64/usr/lib64/libandroid.so b/9/platforms/android-19/arch-x86_64/usr/lib64/libandroid.so
index a7a40ef..c7f412a 100755
--- a/9/platforms/android-19/arch-x86_64/usr/lib64/libandroid.so
+++ b/9/platforms/android-19/arch-x86_64/usr/lib64/libandroid.so
Binary files differ
diff --git a/9/platforms/android-19/arch-x86_64/usr/lib64/libc.a b/9/platforms/android-19/arch-x86_64/usr/lib64/libc.a
index 58c1a03..f26b0ef 100644
--- a/9/platforms/android-19/arch-x86_64/usr/lib64/libc.a
+++ b/9/platforms/android-19/arch-x86_64/usr/lib64/libc.a
Binary files differ
diff --git a/9/platforms/android-19/arch-x86_64/usr/lib64/libc.so b/9/platforms/android-19/arch-x86_64/usr/lib64/libc.so
index 24fac15..ed64078 100755
--- a/9/platforms/android-19/arch-x86_64/usr/lib64/libc.so
+++ b/9/platforms/android-19/arch-x86_64/usr/lib64/libc.so
Binary files differ
diff --git a/9/platforms/android-19/arch-x86_64/usr/lib64/libdl.so b/9/platforms/android-19/arch-x86_64/usr/lib64/libdl.so
index afeda71..d1da8b0 100755
--- a/9/platforms/android-19/arch-x86_64/usr/lib64/libdl.so
+++ b/9/platforms/android-19/arch-x86_64/usr/lib64/libdl.so
Binary files differ
diff --git a/9/platforms/android-19/arch-x86_64/usr/lib64/libjnigraphics.so b/9/platforms/android-19/arch-x86_64/usr/lib64/libjnigraphics.so
index 0ba220e..f54e0c4 100755
--- a/9/platforms/android-19/arch-x86_64/usr/lib64/libjnigraphics.so
+++ b/9/platforms/android-19/arch-x86_64/usr/lib64/libjnigraphics.so
Binary files differ
diff --git a/9/platforms/android-19/arch-x86_64/usr/lib64/liblog.so b/9/platforms/android-19/arch-x86_64/usr/lib64/liblog.so
index 007044d..43d75cb 100755
--- a/9/platforms/android-19/arch-x86_64/usr/lib64/liblog.so
+++ b/9/platforms/android-19/arch-x86_64/usr/lib64/liblog.so
Binary files differ
diff --git a/9/platforms/android-19/arch-x86_64/usr/lib64/libm.a b/9/platforms/android-19/arch-x86_64/usr/lib64/libm.a
index 0fd1900..a3f8af6 100644
--- a/9/platforms/android-19/arch-x86_64/usr/lib64/libm.a
+++ b/9/platforms/android-19/arch-x86_64/usr/lib64/libm.a
Binary files differ
diff --git a/9/platforms/android-19/arch-x86_64/usr/lib64/libm.so b/9/platforms/android-19/arch-x86_64/usr/lib64/libm.so
index d07c215..f762946 100755
--- a/9/platforms/android-19/arch-x86_64/usr/lib64/libm.so
+++ b/9/platforms/android-19/arch-x86_64/usr/lib64/libm.so
Binary files differ
diff --git a/9/platforms/android-19/arch-x86_64/usr/lib64/libstdc++.a b/9/platforms/android-19/arch-x86_64/usr/lib64/libstdc++.a
index 91b8ae2..b54d0f9 100644
--- a/9/platforms/android-19/arch-x86_64/usr/lib64/libstdc++.a
+++ b/9/platforms/android-19/arch-x86_64/usr/lib64/libstdc++.a
Binary files differ
diff --git a/9/platforms/android-19/arch-x86_64/usr/lib64/libstdc++.so b/9/platforms/android-19/arch-x86_64/usr/lib64/libstdc++.so
index 9fa5287..fc35a00 100755
--- a/9/platforms/android-19/arch-x86_64/usr/lib64/libstdc++.so
+++ b/9/platforms/android-19/arch-x86_64/usr/lib64/libstdc++.so
Binary files differ
diff --git a/9/platforms/android-19/arch-x86_64/usr/lib64/libz.a b/9/platforms/android-19/arch-x86_64/usr/lib64/libz.a
index a715308..55f47cb 100644
--- a/9/platforms/android-19/arch-x86_64/usr/lib64/libz.a
+++ b/9/platforms/android-19/arch-x86_64/usr/lib64/libz.a
Binary files differ
diff --git a/9/sources/android/support/include/locale.h b/9/sources/android/support/include/locale.h
index d7bd677..7dda229 100644
--- a/9/sources/android/support/include/locale.h
+++ b/9/sources/android/support/include/locale.h
@@ -36,6 +36,8 @@
#include <xlocale.h>
/* Define all LC_XXX to itself. Sounds silly but libc++ expects it's defined, not in enum */
+#include <android/api-level.h>
+#if __ANDROID_API__ < 19
#define LC_CTYPE LC_CTYPE
#define LC_NUMERIC LC_NUMERIC
#define LC_TIME LC_TIME
@@ -49,6 +51,7 @@
#define LC_TELEPHONE LC_TELEPHONE
#define LC_MEASUREMENT LC_MEASUREMENT
#define LC_IDENTIFICATION LC_IDENTIFICATION
+#endif
#ifdef __cplusplus
extern "C" {
diff --git a/9/sources/cxx-stl/EH/gabi++/include/gabixx_config.h b/9/sources/cxx-stl/EH/gabi++/include/gabixx_config.h
index 718b919..d16a6be 100644
--- a/9/sources/cxx-stl/EH/gabi++/include/gabixx_config.h
+++ b/9/sources/cxx-stl/EH/gabi++/include/gabixx_config.h
@@ -53,6 +53,9 @@
// never be exposed to client code.
#define _GABIXX_HIDDEN __attribute__((__visibility__("hidden")))
+// Use _GABIXX_DEFAULT to prevent user command -fvisibility=hidden
+#define _GABIXX_DEFAULT __attribute__((__visibility__("default")))
+
// Use _GABIXX_WEAK to define a symbol with weak linkage.
#define _GABIXX_WEAK __attribute__((__weak__))
diff --git a/9/sources/cxx-stl/EH/gabi++/include/new b/9/sources/cxx-stl/EH/gabi++/include/new
index 1643e01..935731d 100644
--- a/9/sources/cxx-stl/EH/gabi++/include/new
+++ b/9/sources/cxx-stl/EH/gabi++/include/new
@@ -48,6 +48,23 @@ public:
virtual const char* what() const throw();
};
+class bad_array_new_length : public bad_alloc {
+public:
+ bad_array_new_length() throw();
+ virtual ~bad_array_new_length() throw();
+ virtual const char* what() const throw();
+};
+
+#if __cplusplus > 201103L
+// C++14 stuff
+class bad_array_length : public bad_alloc {
+public:
+ bad_array_length() throw();
+ virtual ~bad_array_length() throw();
+ virtual const char* what() const throw();
+};
+#endif
+
typedef void (*new_handler)();
new_handler set_new_handler(new_handler) throw();
new_handler get_new_handler() throw();
diff --git a/9/sources/cxx-stl/EH/gabi++/libs/arm64-v8a/libgabi++_shared.so b/9/sources/cxx-stl/EH/gabi++/libs/arm64-v8a/libgabi++_shared.so
index e3fce3d..8be0a04 100755
--- a/9/sources/cxx-stl/EH/gabi++/libs/arm64-v8a/libgabi++_shared.so
+++ b/9/sources/cxx-stl/EH/gabi++/libs/arm64-v8a/libgabi++_shared.so
Binary files differ
diff --git a/9/sources/cxx-stl/EH/gabi++/libs/arm64-v8a/libgabi++_static.a b/9/sources/cxx-stl/EH/gabi++/libs/arm64-v8a/libgabi++_static.a
index 5f6f285..147aa64 100644
--- a/9/sources/cxx-stl/EH/gabi++/libs/arm64-v8a/libgabi++_static.a
+++ b/9/sources/cxx-stl/EH/gabi++/libs/arm64-v8a/libgabi++_static.a
Binary files differ
diff --git a/9/sources/cxx-stl/EH/gabi++/libs/armeabi-v7a/libgabi++_shared.so b/9/sources/cxx-stl/EH/gabi++/libs/armeabi-v7a/libgabi++_shared.so
index 0a2ab96..a36160d 100755
--- a/9/sources/cxx-stl/EH/gabi++/libs/armeabi-v7a/libgabi++_shared.so
+++ b/9/sources/cxx-stl/EH/gabi++/libs/armeabi-v7a/libgabi++_shared.so
Binary files differ
diff --git a/9/sources/cxx-stl/EH/gabi++/libs/armeabi-v7a/libgabi++_static.a b/9/sources/cxx-stl/EH/gabi++/libs/armeabi-v7a/libgabi++_static.a
index c3cc91a..f39af75 100644
--- a/9/sources/cxx-stl/EH/gabi++/libs/armeabi-v7a/libgabi++_static.a
+++ b/9/sources/cxx-stl/EH/gabi++/libs/armeabi-v7a/libgabi++_static.a
Binary files differ
diff --git a/9/sources/cxx-stl/EH/gabi++/libs/armeabi-v7a/thumb/libgabi++_shared.so b/9/sources/cxx-stl/EH/gabi++/libs/armeabi-v7a/thumb/libgabi++_shared.so
new file mode 100755
index 0000000..b5a5fcc
--- /dev/null
+++ b/9/sources/cxx-stl/EH/gabi++/libs/armeabi-v7a/thumb/libgabi++_shared.so
Binary files differ
diff --git a/9/sources/cxx-stl/EH/gabi++/libs/armeabi-v7a/thumb/libgabi++_static.a b/9/sources/cxx-stl/EH/gabi++/libs/armeabi-v7a/thumb/libgabi++_static.a
new file mode 100644
index 0000000..b45fdbc
--- /dev/null
+++ b/9/sources/cxx-stl/EH/gabi++/libs/armeabi-v7a/thumb/libgabi++_static.a
Binary files differ
diff --git a/9/sources/cxx-stl/EH/gabi++/libs/armeabi/libgabi++_shared.so b/9/sources/cxx-stl/EH/gabi++/libs/armeabi/libgabi++_shared.so
index db1ec08..7ab5bad 100755
--- a/9/sources/cxx-stl/EH/gabi++/libs/armeabi/libgabi++_shared.so
+++ b/9/sources/cxx-stl/EH/gabi++/libs/armeabi/libgabi++_shared.so
Binary files differ
diff --git a/9/sources/cxx-stl/EH/gabi++/libs/armeabi/libgabi++_static.a b/9/sources/cxx-stl/EH/gabi++/libs/armeabi/libgabi++_static.a
index 5c11732..f5fcda3 100644
--- a/9/sources/cxx-stl/EH/gabi++/libs/armeabi/libgabi++_static.a
+++ b/9/sources/cxx-stl/EH/gabi++/libs/armeabi/libgabi++_static.a
Binary files differ
diff --git a/9/sources/cxx-stl/EH/gabi++/libs/armeabi/thumb/libgabi++_shared.so b/9/sources/cxx-stl/EH/gabi++/libs/armeabi/thumb/libgabi++_shared.so
new file mode 100755
index 0000000..1fb4b76
--- /dev/null
+++ b/9/sources/cxx-stl/EH/gabi++/libs/armeabi/thumb/libgabi++_shared.so
Binary files differ
diff --git a/9/sources/cxx-stl/EH/gabi++/libs/armeabi/thumb/libgabi++_static.a b/9/sources/cxx-stl/EH/gabi++/libs/armeabi/thumb/libgabi++_static.a
new file mode 100644
index 0000000..5e57fe5
--- /dev/null
+++ b/9/sources/cxx-stl/EH/gabi++/libs/armeabi/thumb/libgabi++_static.a
Binary files differ
diff --git a/9/sources/cxx-stl/EH/gabi++/libs/mips/libgabi++_shared.so b/9/sources/cxx-stl/EH/gabi++/libs/mips/libgabi++_shared.so
index 2bb1c76..eed48a3 100755
--- a/9/sources/cxx-stl/EH/gabi++/libs/mips/libgabi++_shared.so
+++ b/9/sources/cxx-stl/EH/gabi++/libs/mips/libgabi++_shared.so
Binary files differ
diff --git a/9/sources/cxx-stl/EH/gabi++/libs/mips/libgabi++_static.a b/9/sources/cxx-stl/EH/gabi++/libs/mips/libgabi++_static.a
index 4e851c7..dfbdb5f 100644
--- a/9/sources/cxx-stl/EH/gabi++/libs/mips/libgabi++_static.a
+++ b/9/sources/cxx-stl/EH/gabi++/libs/mips/libgabi++_static.a
Binary files differ
diff --git a/9/sources/cxx-stl/EH/gabi++/libs/mips64/libgabi++_shared.so b/9/sources/cxx-stl/EH/gabi++/libs/mips64/libgabi++_shared.so
index 35747d3..aa6aae7 100755
--- a/9/sources/cxx-stl/EH/gabi++/libs/mips64/libgabi++_shared.so
+++ b/9/sources/cxx-stl/EH/gabi++/libs/mips64/libgabi++_shared.so
Binary files differ
diff --git a/9/sources/cxx-stl/EH/gabi++/libs/mips64/libgabi++_static.a b/9/sources/cxx-stl/EH/gabi++/libs/mips64/libgabi++_static.a
index 63523de..ab05fa2 100644
--- a/9/sources/cxx-stl/EH/gabi++/libs/mips64/libgabi++_static.a
+++ b/9/sources/cxx-stl/EH/gabi++/libs/mips64/libgabi++_static.a
Binary files differ
diff --git a/9/sources/cxx-stl/EH/gabi++/libs/x86/libgabi++_shared.so b/9/sources/cxx-stl/EH/gabi++/libs/x86/libgabi++_shared.so
index d2029d4..021d8f5 100755
--- a/9/sources/cxx-stl/EH/gabi++/libs/x86/libgabi++_shared.so
+++ b/9/sources/cxx-stl/EH/gabi++/libs/x86/libgabi++_shared.so
Binary files differ
diff --git a/9/sources/cxx-stl/EH/gabi++/libs/x86/libgabi++_static.a b/9/sources/cxx-stl/EH/gabi++/libs/x86/libgabi++_static.a
index 11f3cd3..c070dbe 100644
--- a/9/sources/cxx-stl/EH/gabi++/libs/x86/libgabi++_static.a
+++ b/9/sources/cxx-stl/EH/gabi++/libs/x86/libgabi++_static.a
Binary files differ
diff --git a/9/sources/cxx-stl/EH/gabi++/libs/x86_64/libgabi++_shared.so b/9/sources/cxx-stl/EH/gabi++/libs/x86_64/libgabi++_shared.so
index 236ae2c..ae1e391 100755
--- a/9/sources/cxx-stl/EH/gabi++/libs/x86_64/libgabi++_shared.so
+++ b/9/sources/cxx-stl/EH/gabi++/libs/x86_64/libgabi++_shared.so
Binary files differ
diff --git a/9/sources/cxx-stl/EH/gabi++/libs/x86_64/libgabi++_static.a b/9/sources/cxx-stl/EH/gabi++/libs/x86_64/libgabi++_static.a
index fcd7cca..a01b19d 100644
--- a/9/sources/cxx-stl/EH/gabi++/libs/x86_64/libgabi++_static.a
+++ b/9/sources/cxx-stl/EH/gabi++/libs/x86_64/libgabi++_static.a
Binary files differ
diff --git a/9/sources/cxx-stl/EH/stlport/libs/arm64-v8a/libstlport_shared.so b/9/sources/cxx-stl/EH/stlport/libs/arm64-v8a/libstlport_shared.so
index 97993fb..f0562a2 100755
--- a/9/sources/cxx-stl/EH/stlport/libs/arm64-v8a/libstlport_shared.so
+++ b/9/sources/cxx-stl/EH/stlport/libs/arm64-v8a/libstlport_shared.so
Binary files differ
diff --git a/9/sources/cxx-stl/EH/stlport/libs/arm64-v8a/libstlport_static.a b/9/sources/cxx-stl/EH/stlport/libs/arm64-v8a/libstlport_static.a
index a0f36cf..dbdc63a 100644
--- a/9/sources/cxx-stl/EH/stlport/libs/arm64-v8a/libstlport_static.a
+++ b/9/sources/cxx-stl/EH/stlport/libs/arm64-v8a/libstlport_static.a
Binary files differ
diff --git a/9/sources/cxx-stl/EH/stlport/libs/armeabi-v7a/libstlport_shared.so b/9/sources/cxx-stl/EH/stlport/libs/armeabi-v7a/libstlport_shared.so
index ea96aec..e08bfb1 100755
--- a/9/sources/cxx-stl/EH/stlport/libs/armeabi-v7a/libstlport_shared.so
+++ b/9/sources/cxx-stl/EH/stlport/libs/armeabi-v7a/libstlport_shared.so
Binary files differ
diff --git a/9/sources/cxx-stl/EH/stlport/libs/armeabi-v7a/libstlport_static.a b/9/sources/cxx-stl/EH/stlport/libs/armeabi-v7a/libstlport_static.a
index fe9fb0f..5df48c3 100644
--- a/9/sources/cxx-stl/EH/stlport/libs/armeabi-v7a/libstlport_static.a
+++ b/9/sources/cxx-stl/EH/stlport/libs/armeabi-v7a/libstlport_static.a
Binary files differ
diff --git a/9/sources/cxx-stl/EH/stlport/libs/armeabi-v7a/thumb/libstlport_shared.so b/9/sources/cxx-stl/EH/stlport/libs/armeabi-v7a/thumb/libstlport_shared.so
new file mode 100755
index 0000000..c56babf
--- /dev/null
+++ b/9/sources/cxx-stl/EH/stlport/libs/armeabi-v7a/thumb/libstlport_shared.so
Binary files differ
diff --git a/9/sources/cxx-stl/EH/stlport/libs/armeabi-v7a/thumb/libstlport_static.a b/9/sources/cxx-stl/EH/stlport/libs/armeabi-v7a/thumb/libstlport_static.a
new file mode 100644
index 0000000..37d7bd8
--- /dev/null
+++ b/9/sources/cxx-stl/EH/stlport/libs/armeabi-v7a/thumb/libstlport_static.a
Binary files differ
diff --git a/9/sources/cxx-stl/EH/stlport/libs/armeabi/libstlport_shared.so b/9/sources/cxx-stl/EH/stlport/libs/armeabi/libstlport_shared.so
index 15d2dbd..89b403b 100755
--- a/9/sources/cxx-stl/EH/stlport/libs/armeabi/libstlport_shared.so
+++ b/9/sources/cxx-stl/EH/stlport/libs/armeabi/libstlport_shared.so
Binary files differ
diff --git a/9/sources/cxx-stl/EH/stlport/libs/armeabi/libstlport_static.a b/9/sources/cxx-stl/EH/stlport/libs/armeabi/libstlport_static.a
index af09bf4..aaf4391 100644
--- a/9/sources/cxx-stl/EH/stlport/libs/armeabi/libstlport_static.a
+++ b/9/sources/cxx-stl/EH/stlport/libs/armeabi/libstlport_static.a
Binary files differ
diff --git a/9/sources/cxx-stl/EH/stlport/libs/armeabi/thumb/libstlport_shared.so b/9/sources/cxx-stl/EH/stlport/libs/armeabi/thumb/libstlport_shared.so
new file mode 100755
index 0000000..cd41ca2
--- /dev/null
+++ b/9/sources/cxx-stl/EH/stlport/libs/armeabi/thumb/libstlport_shared.so
Binary files differ
diff --git a/9/sources/cxx-stl/EH/stlport/libs/armeabi/thumb/libstlport_static.a b/9/sources/cxx-stl/EH/stlport/libs/armeabi/thumb/libstlport_static.a
new file mode 100644
index 0000000..f1830e8
--- /dev/null
+++ b/9/sources/cxx-stl/EH/stlport/libs/armeabi/thumb/libstlport_static.a
Binary files differ
diff --git a/9/sources/cxx-stl/EH/stlport/libs/mips/libstlport_shared.so b/9/sources/cxx-stl/EH/stlport/libs/mips/libstlport_shared.so
index 536cb61..b56cd59 100755
--- a/9/sources/cxx-stl/EH/stlport/libs/mips/libstlport_shared.so
+++ b/9/sources/cxx-stl/EH/stlport/libs/mips/libstlport_shared.so
Binary files differ
diff --git a/9/sources/cxx-stl/EH/stlport/libs/mips/libstlport_static.a b/9/sources/cxx-stl/EH/stlport/libs/mips/libstlport_static.a
index 5144f21..718206c 100644
--- a/9/sources/cxx-stl/EH/stlport/libs/mips/libstlport_static.a
+++ b/9/sources/cxx-stl/EH/stlport/libs/mips/libstlport_static.a
Binary files differ
diff --git a/9/sources/cxx-stl/EH/stlport/libs/mips64/libstlport_shared.so b/9/sources/cxx-stl/EH/stlport/libs/mips64/libstlport_shared.so
index 35f9e4d..651fdfd 100755
--- a/9/sources/cxx-stl/EH/stlport/libs/mips64/libstlport_shared.so
+++ b/9/sources/cxx-stl/EH/stlport/libs/mips64/libstlport_shared.so
Binary files differ
diff --git a/9/sources/cxx-stl/EH/stlport/libs/mips64/libstlport_static.a b/9/sources/cxx-stl/EH/stlport/libs/mips64/libstlport_static.a
index d3b7354..a7843b0 100644
--- a/9/sources/cxx-stl/EH/stlport/libs/mips64/libstlport_static.a
+++ b/9/sources/cxx-stl/EH/stlport/libs/mips64/libstlport_static.a
Binary files differ
diff --git a/9/sources/cxx-stl/EH/stlport/libs/x86/libstlport_shared.so b/9/sources/cxx-stl/EH/stlport/libs/x86/libstlport_shared.so
index 3a24efe..18eea32 100755
--- a/9/sources/cxx-stl/EH/stlport/libs/x86/libstlport_shared.so
+++ b/9/sources/cxx-stl/EH/stlport/libs/x86/libstlport_shared.so
Binary files differ
diff --git a/9/sources/cxx-stl/EH/stlport/libs/x86/libstlport_static.a b/9/sources/cxx-stl/EH/stlport/libs/x86/libstlport_static.a
index 9e06ae0..7e93c1f 100644
--- a/9/sources/cxx-stl/EH/stlport/libs/x86/libstlport_static.a
+++ b/9/sources/cxx-stl/EH/stlport/libs/x86/libstlport_static.a
Binary files differ
diff --git a/9/sources/cxx-stl/EH/stlport/libs/x86_64/libstlport_shared.so b/9/sources/cxx-stl/EH/stlport/libs/x86_64/libstlport_shared.so
index 1732a66..47084de 100755
--- a/9/sources/cxx-stl/EH/stlport/libs/x86_64/libstlport_shared.so
+++ b/9/sources/cxx-stl/EH/stlport/libs/x86_64/libstlport_shared.so
Binary files differ
diff --git a/9/sources/cxx-stl/EH/stlport/libs/x86_64/libstlport_static.a b/9/sources/cxx-stl/EH/stlport/libs/x86_64/libstlport_static.a
index bca5998..cc2f905 100644
--- a/9/sources/cxx-stl/EH/stlport/libs/x86_64/libstlport_static.a
+++ b/9/sources/cxx-stl/EH/stlport/libs/x86_64/libstlport_static.a
Binary files differ
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.6/libs/armeabi-v7a/include/bits/ctype_base.h b/9/sources/cxx-stl/gnu-libstdc++/4.6/libs/armeabi-v7a/include/bits/ctype_base.h
index 926b233..64a3bc5 100644
--- a/9/sources/cxx-stl/gnu-libstdc++/4.6/libs/armeabi-v7a/include/bits/ctype_base.h
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.6/libs/armeabi-v7a/include/bits/ctype_base.h
@@ -30,6 +30,20 @@
// Support for Solaris 2.5.1
+#if !defined(_U)
+#if !defined(_CTYPE_U)
+#error Bionic header ctype.h does not define either _U nor _CTYPE_U
+#endif
+#define _U _CTYPE_U
+#define _L _CTYPE_L
+#define _N _CTYPE_N
+#define _S _CTYPE_S
+#define _P _CTYPE_P
+#define _C _CTYPE_C
+#define _X _CTYPE_X
+#define _B _CTYPE_B
+#endif
+
namespace std _GLIBCXX_VISIBILITY(default)
{
_GLIBCXX_BEGIN_NAMESPACE_VERSION
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.6/libs/armeabi/include/bits/ctype_base.h b/9/sources/cxx-stl/gnu-libstdc++/4.6/libs/armeabi/include/bits/ctype_base.h
index 926b233..64a3bc5 100644
--- a/9/sources/cxx-stl/gnu-libstdc++/4.6/libs/armeabi/include/bits/ctype_base.h
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.6/libs/armeabi/include/bits/ctype_base.h
@@ -30,6 +30,20 @@
// Support for Solaris 2.5.1
+#if !defined(_U)
+#if !defined(_CTYPE_U)
+#error Bionic header ctype.h does not define either _U nor _CTYPE_U
+#endif
+#define _U _CTYPE_U
+#define _L _CTYPE_L
+#define _N _CTYPE_N
+#define _S _CTYPE_S
+#define _P _CTYPE_P
+#define _C _CTYPE_C
+#define _X _CTYPE_X
+#define _B _CTYPE_B
+#endif
+
namespace std _GLIBCXX_VISIBILITY(default)
{
_GLIBCXX_BEGIN_NAMESPACE_VERSION
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.6/libs/mips/include/bits/ctype_base.h b/9/sources/cxx-stl/gnu-libstdc++/4.6/libs/mips/include/bits/ctype_base.h
index 926b233..64a3bc5 100644
--- a/9/sources/cxx-stl/gnu-libstdc++/4.6/libs/mips/include/bits/ctype_base.h
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.6/libs/mips/include/bits/ctype_base.h
@@ -30,6 +30,20 @@
// Support for Solaris 2.5.1
+#if !defined(_U)
+#if !defined(_CTYPE_U)
+#error Bionic header ctype.h does not define either _U nor _CTYPE_U
+#endif
+#define _U _CTYPE_U
+#define _L _CTYPE_L
+#define _N _CTYPE_N
+#define _S _CTYPE_S
+#define _P _CTYPE_P
+#define _C _CTYPE_C
+#define _X _CTYPE_X
+#define _B _CTYPE_B
+#endif
+
namespace std _GLIBCXX_VISIBILITY(default)
{
_GLIBCXX_BEGIN_NAMESPACE_VERSION
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.6/libs/x86/include/bits/ctype_base.h b/9/sources/cxx-stl/gnu-libstdc++/4.6/libs/x86/include/bits/ctype_base.h
index 926b233..64a3bc5 100644
--- a/9/sources/cxx-stl/gnu-libstdc++/4.6/libs/x86/include/bits/ctype_base.h
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.6/libs/x86/include/bits/ctype_base.h
@@ -30,6 +30,20 @@
// Support for Solaris 2.5.1
+#if !defined(_U)
+#if !defined(_CTYPE_U)
+#error Bionic header ctype.h does not define either _U nor _CTYPE_U
+#endif
+#define _U _CTYPE_U
+#define _L _CTYPE_L
+#define _N _CTYPE_N
+#define _S _CTYPE_S
+#define _P _CTYPE_P
+#define _C _CTYPE_C
+#define _X _CTYPE_X
+#define _B _CTYPE_B
+#endif
+
namespace std _GLIBCXX_VISIBILITY(default)
{
_GLIBCXX_BEGIN_NAMESPACE_VERSION
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.8/include/bits/opt_random.h b/9/sources/cxx-stl/gnu-libstdc++/4.8/include/bits/opt_random.h
deleted file mode 100644
index 76c9155..0000000
--- a/9/sources/cxx-stl/gnu-libstdc++/4.8/include/bits/opt_random.h
+++ /dev/null
@@ -1,38 +0,0 @@
-// Optimizations for random number handling, generic version -*- C++ -*-
-
-// Copyright (C) 2012-2013 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-/** @file bits/opt_random.h
- * This is an internal header file, included by other library headers.
- * Do not attempt to use it directly. @headername{random}
- */
-
-#ifndef _BITS_OPT_RANDOM_H
-#define _BITS_OPT_RANDOM_H 1
-
-#pragma GCC system_header
-
-
-
-
-#endif // _BITS_OPT_RANDOM_H
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.8/include/ext/atomicity.h b/9/sources/cxx-stl/gnu-libstdc++/4.8/include/ext/atomicity.h
index 88698bb..a439627 100644
--- a/9/sources/cxx-stl/gnu-libstdc++/4.8/include/ext/atomicity.h
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.8/include/ext/atomicity.h
@@ -43,8 +43,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
// To abstract locking primitives across all thread policies, use:
// __exchange_and_add_dispatch
// __atomic_add_dispatch
-#if defined(_GLIBCXX_ATOMIC_BUILTINS) && (!defined(__clang__) || defined(__i386__))
- // NOTE: clang arm/mips can't compile the following two library calls yet.
+#ifdef _GLIBCXX_ATOMIC_BUILTINS
static inline _Atomic_word
__exchange_and_add(volatile _Atomic_word* __mem, int __val)
{ return __atomic_fetch_add(__mem, __val, __ATOMIC_ACQ_REL); }
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.8/include/ext/opt_random.h b/9/sources/cxx-stl/gnu-libstdc++/4.8/include/ext/opt_random.h
deleted file mode 100644
index 61f47de..0000000
--- a/9/sources/cxx-stl/gnu-libstdc++/4.8/include/ext/opt_random.h
+++ /dev/null
@@ -1,38 +0,0 @@
-// Optimizations for random number extensions, generic version -*- C++ -*-
-
-// Copyright (C) 2012-2013 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-/** @file ext/opt_random.h
- * This is an internal header file, included by other library headers.
- * Do not attempt to use it directly. @headername{ext/random}
- */
-
-#ifndef _EXT_OPT_RANDOM_H
-#define _EXT_OPT_RANDOM_H 1
-
-#pragma GCC system_header
-
-
-
-
-#endif // _EXT_OPT_RANDOM_H
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.8/include/type_traits b/9/sources/cxx-stl/gnu-libstdc++/4.8/include/type_traits
index b5f8c79..9b7b986 100644
--- a/9/sources/cxx-stl/gnu-libstdc++/4.8/include/type_traits
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.8/include/type_traits
@@ -264,7 +264,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
struct __is_floating_point_helper<long double>
: public true_type { };
-#if !defined(__STRICT_ANSI__) && defined(_GLIBCXX_USE_FLOAT128) && !defined(__clang__)
+#if !defined(__STRICT_ANSI__) && defined(_GLIBCXX_USE_FLOAT128) && (!defined(__clang__) || __clang_major__ > 3 || (__clang_major__ == 3 && __clang_minor__ >= 4))
template<>
struct __is_floating_point_helper<__float128>
: public true_type { };
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/arm64-v8a/include/bits/c++config.h b/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/arm64-v8a/include/bits/c++config.h
index 1fa46a5..ddf4ed9 100644
--- a/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/arm64-v8a/include/bits/c++config.h
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/arm64-v8a/include/bits/c++config.h
@@ -470,13 +470,13 @@ namespace std
#define _GLIBCXX_HAVE_ACOSF 1
/* Define to 1 if you have the `acosl' function. */
-/* #undef _GLIBCXX_HAVE_ACOSL */
+#define _GLIBCXX_HAVE_ACOSL 1
/* Define to 1 if you have the `asinf' function. */
#define _GLIBCXX_HAVE_ASINF 1
/* Define to 1 if you have the `asinl' function. */
-/* #undef _GLIBCXX_HAVE_ASINL */
+#define _GLIBCXX_HAVE_ASINL 1
/* Define to 1 if the target assembler supports .symver directive. */
#define _GLIBCXX_HAVE_AS_SYMVER_DIRECTIVE 1
@@ -491,7 +491,7 @@ namespace std
#define _GLIBCXX_HAVE_ATANF 1
/* Define to 1 if you have the `atanl' function. */
-/* #undef _GLIBCXX_HAVE_ATANL */
+#define _GLIBCXX_HAVE_ATANL 1
/* Define to 1 if you have the `at_quick_exit' function. */
/* #undef _GLIBCXX_HAVE_AT_QUICK_EXIT */
@@ -515,10 +515,10 @@ namespace std
#define _GLIBCXX_HAVE_COSHF 1
/* Define to 1 if you have the `coshl' function. */
-/* #undef _GLIBCXX_HAVE_COSHL */
+#define _GLIBCXX_HAVE_COSHL 1
/* Define to 1 if you have the `cosl' function. */
-/* #undef _GLIBCXX_HAVE_COSL */
+#define _GLIBCXX_HAVE_COSL 1
/* Define to 1 if you have the <dlfcn.h> header file. */
#define _GLIBCXX_HAVE_DLFCN_H 1
@@ -689,7 +689,7 @@ namespace std
/* #undef _GLIBCXX_HAVE_ISNANL */
/* Defined if iswblank exists. */
-/* #undef _GLIBCXX_HAVE_ISWBLANK */
+#define _GLIBCXX_HAVE_ISWBLANK 1
/* Define if LC_MESSAGES is available in <locale.h>. */
#define _GLIBCXX_HAVE_LC_MESSAGES 1
@@ -728,13 +728,13 @@ namespace std
#define _GLIBCXX_HAVE_LOG10F 1
/* Define to 1 if you have the `log10l' function. */
-/* #undef _GLIBCXX_HAVE_LOG10L */
+#define _GLIBCXX_HAVE_LOG10L 1
/* Define to 1 if you have the `logf' function. */
#define _GLIBCXX_HAVE_LOGF 1
/* Define to 1 if you have the `logl' function. */
-/* #undef _GLIBCXX_HAVE_LOGL */
+#define _GLIBCXX_HAVE_LOGL 1
/* Define to 1 if you have the <machine/endian.h> header file. */
#define _GLIBCXX_HAVE_MACHINE_ENDIAN_H 1
@@ -767,7 +767,7 @@ namespace std
#define _GLIBCXX_HAVE_POWF 1
/* Define to 1 if you have the `powl' function. */
-/* #undef _GLIBCXX_HAVE_POWL */
+#define _GLIBCXX_HAVE_POWL 1
/* Define to 1 if you have the `qfpclass' function. */
/* #undef _GLIBCXX_HAVE_QFPCLASS */
@@ -779,13 +779,13 @@ namespace std
/* #undef _GLIBCXX_HAVE_SETENV */
/* Define to 1 if you have the `sincos' function. */
-/* #undef _GLIBCXX_HAVE_SINCOS */
+#define _GLIBCXX_HAVE_SINCOS 1
/* Define to 1 if you have the `sincosf' function. */
-/* #undef _GLIBCXX_HAVE_SINCOSF */
+#define _GLIBCXX_HAVE_SINCOSF 1
/* Define to 1 if you have the `sincosl' function. */
-/* #undef _GLIBCXX_HAVE_SINCOSL */
+#define _GLIBCXX_HAVE_SINCOSL 1
/* Define to 1 if you have the `sinf' function. */
#define _GLIBCXX_HAVE_SINF 1
@@ -794,10 +794,10 @@ namespace std
#define _GLIBCXX_HAVE_SINHF 1
/* Define to 1 if you have the `sinhl' function. */
-/* #undef _GLIBCXX_HAVE_SINHL */
+#define _GLIBCXX_HAVE_SINHL 1
/* Define to 1 if you have the `sinl' function. */
-/* #undef _GLIBCXX_HAVE_SINL */
+#define _GLIBCXX_HAVE_SINL 1
/* Defined if sleep exists. */
/* #undef _GLIBCXX_HAVE_SLEEP */
@@ -900,10 +900,10 @@ namespace std
#define _GLIBCXX_HAVE_TANHF 1
/* Define to 1 if you have the `tanhl' function. */
-/* #undef _GLIBCXX_HAVE_TANHL */
+#define _GLIBCXX_HAVE_TANHL 1
/* Define to 1 if you have the `tanl' function. */
-/* #undef _GLIBCXX_HAVE_TANL */
+#define _GLIBCXX_HAVE_TANL 1
/* Define to 1 if you have the <tgmath.h> header file. */
/* #undef _GLIBCXX_HAVE_TGMATH_H */
@@ -918,19 +918,19 @@ namespace std
/* #undef _GLIBCXX_HAVE_USLEEP */
/* Defined if vfwscanf exists. */
-/* #undef _GLIBCXX_HAVE_VFWSCANF */
+#define _GLIBCXX_HAVE_VFWSCANF 1
/* Defined if vswscanf exists. */
-/* #undef _GLIBCXX_HAVE_VSWSCANF */
+#define _GLIBCXX_HAVE_VSWSCANF 1
/* Defined if vwscanf exists. */
-/* #undef _GLIBCXX_HAVE_VWSCANF */
+#define _GLIBCXX_HAVE_VWSCANF 1
/* Define to 1 if you have the <wchar.h> header file. */
#define _GLIBCXX_HAVE_WCHAR_H 1
/* Defined if wcstof exists. */
-/* #undef _GLIBCXX_HAVE_WCSTOF */
+#define _GLIBCXX_HAVE_WCSTOF 1
/* Define to 1 if you have the <wctype.h> header file. */
#define _GLIBCXX_HAVE_WCTYPE_H 1
@@ -1261,7 +1261,7 @@ namespace std
/* Define if wchar_t C99 functions in <inttypes.h> should be imported in
<tr1/cinttypes> in namespace std::tr1. */
-/* #undef _GLIBCXX_USE_C99_INTTYPES_WCHAR_T_TR1 */
+#define _GLIBCXX_USE_C99_INTTYPES_WCHAR_T_TR1 1
/* Define if C99 functions or macros in <math.h> should be imported in <cmath>
in namespace std. */
@@ -1269,7 +1269,7 @@ namespace std
/* Define if C99 functions or macros in <math.h> should be imported in
<tr1/cmath> in namespace std::tr1. */
-/* #undef _GLIBCXX_USE_C99_MATH_TR1 */
+#define _GLIBCXX_USE_C99_MATH_TR1 1
/* Define if C99 types in <stdint.h> should be imported in <tr1/cstdint> in
namespace std::tr1. */
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/arm64-v8a/libgnustl_shared.so b/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/arm64-v8a/libgnustl_shared.so
index d09ad91..3acb7b7 100755
--- a/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/arm64-v8a/libgnustl_shared.so
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/arm64-v8a/libgnustl_shared.so
Binary files differ
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/arm64-v8a/libgnustl_static.a b/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/arm64-v8a/libgnustl_static.a
index 470123e..1af89cd 100644
--- a/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/arm64-v8a/libgnustl_static.a
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/arm64-v8a/libgnustl_static.a
Binary files differ
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/arm64-v8a/libsupc++.a b/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/arm64-v8a/libsupc++.a
index e110f67..cc011fc 100644
--- a/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/arm64-v8a/libsupc++.a
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/arm64-v8a/libsupc++.a
Binary files differ
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/armeabi-v7a/include/bits/ctype_base.h b/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/armeabi-v7a/include/bits/ctype_base.h
index 2cfd69e..d33e9f6 100644
--- a/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/armeabi-v7a/include/bits/ctype_base.h
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/armeabi-v7a/include/bits/ctype_base.h
@@ -30,6 +30,20 @@
// Support for Solaris 2.5.1
+#if !defined(_U)
+#if !defined(_CTYPE_U)
+#error Bionic header ctype.h does not define either _U nor _CTYPE_U
+#endif
+#define _U _CTYPE_U
+#define _L _CTYPE_L
+#define _N _CTYPE_N
+#define _S _CTYPE_S
+#define _P _CTYPE_P
+#define _C _CTYPE_C
+#define _X _CTYPE_X
+#define _B _CTYPE_B
+#endif
+
namespace std _GLIBCXX_VISIBILITY(default)
{
_GLIBCXX_BEGIN_NAMESPACE_VERSION
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/armeabi/include/bits/ctype_base.h b/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/armeabi/include/bits/ctype_base.h
index 2cfd69e..d33e9f6 100644
--- a/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/armeabi/include/bits/ctype_base.h
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/armeabi/include/bits/ctype_base.h
@@ -30,6 +30,20 @@
// Support for Solaris 2.5.1
+#if !defined(_U)
+#if !defined(_CTYPE_U)
+#error Bionic header ctype.h does not define either _U nor _CTYPE_U
+#endif
+#define _U _CTYPE_U
+#define _L _CTYPE_L
+#define _N _CTYPE_N
+#define _S _CTYPE_S
+#define _P _CTYPE_P
+#define _C _CTYPE_C
+#define _X _CTYPE_X
+#define _B _CTYPE_B
+#endif
+
namespace std _GLIBCXX_VISIBILITY(default)
{
_GLIBCXX_BEGIN_NAMESPACE_VERSION
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/mips/include/bits/ctype_base.h b/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/mips/include/bits/ctype_base.h
index 2cfd69e..d33e9f6 100644
--- a/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/mips/include/bits/ctype_base.h
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/mips/include/bits/ctype_base.h
@@ -30,6 +30,20 @@
// Support for Solaris 2.5.1
+#if !defined(_U)
+#if !defined(_CTYPE_U)
+#error Bionic header ctype.h does not define either _U nor _CTYPE_U
+#endif
+#define _U _CTYPE_U
+#define _L _CTYPE_L
+#define _N _CTYPE_N
+#define _S _CTYPE_S
+#define _P _CTYPE_P
+#define _C _CTYPE_C
+#define _X _CTYPE_X
+#define _B _CTYPE_B
+#endif
+
namespace std _GLIBCXX_VISIBILITY(default)
{
_GLIBCXX_BEGIN_NAMESPACE_VERSION
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/mips64/include/bits/c++config.h b/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/mips64/include/bits/c++config.h
index 1fa46a5..ddf4ed9 100644
--- a/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/mips64/include/bits/c++config.h
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/mips64/include/bits/c++config.h
@@ -470,13 +470,13 @@ namespace std
#define _GLIBCXX_HAVE_ACOSF 1
/* Define to 1 if you have the `acosl' function. */
-/* #undef _GLIBCXX_HAVE_ACOSL */
+#define _GLIBCXX_HAVE_ACOSL 1
/* Define to 1 if you have the `asinf' function. */
#define _GLIBCXX_HAVE_ASINF 1
/* Define to 1 if you have the `asinl' function. */
-/* #undef _GLIBCXX_HAVE_ASINL */
+#define _GLIBCXX_HAVE_ASINL 1
/* Define to 1 if the target assembler supports .symver directive. */
#define _GLIBCXX_HAVE_AS_SYMVER_DIRECTIVE 1
@@ -491,7 +491,7 @@ namespace std
#define _GLIBCXX_HAVE_ATANF 1
/* Define to 1 if you have the `atanl' function. */
-/* #undef _GLIBCXX_HAVE_ATANL */
+#define _GLIBCXX_HAVE_ATANL 1
/* Define to 1 if you have the `at_quick_exit' function. */
/* #undef _GLIBCXX_HAVE_AT_QUICK_EXIT */
@@ -515,10 +515,10 @@ namespace std
#define _GLIBCXX_HAVE_COSHF 1
/* Define to 1 if you have the `coshl' function. */
-/* #undef _GLIBCXX_HAVE_COSHL */
+#define _GLIBCXX_HAVE_COSHL 1
/* Define to 1 if you have the `cosl' function. */
-/* #undef _GLIBCXX_HAVE_COSL */
+#define _GLIBCXX_HAVE_COSL 1
/* Define to 1 if you have the <dlfcn.h> header file. */
#define _GLIBCXX_HAVE_DLFCN_H 1
@@ -689,7 +689,7 @@ namespace std
/* #undef _GLIBCXX_HAVE_ISNANL */
/* Defined if iswblank exists. */
-/* #undef _GLIBCXX_HAVE_ISWBLANK */
+#define _GLIBCXX_HAVE_ISWBLANK 1
/* Define if LC_MESSAGES is available in <locale.h>. */
#define _GLIBCXX_HAVE_LC_MESSAGES 1
@@ -728,13 +728,13 @@ namespace std
#define _GLIBCXX_HAVE_LOG10F 1
/* Define to 1 if you have the `log10l' function. */
-/* #undef _GLIBCXX_HAVE_LOG10L */
+#define _GLIBCXX_HAVE_LOG10L 1
/* Define to 1 if you have the `logf' function. */
#define _GLIBCXX_HAVE_LOGF 1
/* Define to 1 if you have the `logl' function. */
-/* #undef _GLIBCXX_HAVE_LOGL */
+#define _GLIBCXX_HAVE_LOGL 1
/* Define to 1 if you have the <machine/endian.h> header file. */
#define _GLIBCXX_HAVE_MACHINE_ENDIAN_H 1
@@ -767,7 +767,7 @@ namespace std
#define _GLIBCXX_HAVE_POWF 1
/* Define to 1 if you have the `powl' function. */
-/* #undef _GLIBCXX_HAVE_POWL */
+#define _GLIBCXX_HAVE_POWL 1
/* Define to 1 if you have the `qfpclass' function. */
/* #undef _GLIBCXX_HAVE_QFPCLASS */
@@ -779,13 +779,13 @@ namespace std
/* #undef _GLIBCXX_HAVE_SETENV */
/* Define to 1 if you have the `sincos' function. */
-/* #undef _GLIBCXX_HAVE_SINCOS */
+#define _GLIBCXX_HAVE_SINCOS 1
/* Define to 1 if you have the `sincosf' function. */
-/* #undef _GLIBCXX_HAVE_SINCOSF */
+#define _GLIBCXX_HAVE_SINCOSF 1
/* Define to 1 if you have the `sincosl' function. */
-/* #undef _GLIBCXX_HAVE_SINCOSL */
+#define _GLIBCXX_HAVE_SINCOSL 1
/* Define to 1 if you have the `sinf' function. */
#define _GLIBCXX_HAVE_SINF 1
@@ -794,10 +794,10 @@ namespace std
#define _GLIBCXX_HAVE_SINHF 1
/* Define to 1 if you have the `sinhl' function. */
-/* #undef _GLIBCXX_HAVE_SINHL */
+#define _GLIBCXX_HAVE_SINHL 1
/* Define to 1 if you have the `sinl' function. */
-/* #undef _GLIBCXX_HAVE_SINL */
+#define _GLIBCXX_HAVE_SINL 1
/* Defined if sleep exists. */
/* #undef _GLIBCXX_HAVE_SLEEP */
@@ -900,10 +900,10 @@ namespace std
#define _GLIBCXX_HAVE_TANHF 1
/* Define to 1 if you have the `tanhl' function. */
-/* #undef _GLIBCXX_HAVE_TANHL */
+#define _GLIBCXX_HAVE_TANHL 1
/* Define to 1 if you have the `tanl' function. */
-/* #undef _GLIBCXX_HAVE_TANL */
+#define _GLIBCXX_HAVE_TANL 1
/* Define to 1 if you have the <tgmath.h> header file. */
/* #undef _GLIBCXX_HAVE_TGMATH_H */
@@ -918,19 +918,19 @@ namespace std
/* #undef _GLIBCXX_HAVE_USLEEP */
/* Defined if vfwscanf exists. */
-/* #undef _GLIBCXX_HAVE_VFWSCANF */
+#define _GLIBCXX_HAVE_VFWSCANF 1
/* Defined if vswscanf exists. */
-/* #undef _GLIBCXX_HAVE_VSWSCANF */
+#define _GLIBCXX_HAVE_VSWSCANF 1
/* Defined if vwscanf exists. */
-/* #undef _GLIBCXX_HAVE_VWSCANF */
+#define _GLIBCXX_HAVE_VWSCANF 1
/* Define to 1 if you have the <wchar.h> header file. */
#define _GLIBCXX_HAVE_WCHAR_H 1
/* Defined if wcstof exists. */
-/* #undef _GLIBCXX_HAVE_WCSTOF */
+#define _GLIBCXX_HAVE_WCSTOF 1
/* Define to 1 if you have the <wctype.h> header file. */
#define _GLIBCXX_HAVE_WCTYPE_H 1
@@ -1261,7 +1261,7 @@ namespace std
/* Define if wchar_t C99 functions in <inttypes.h> should be imported in
<tr1/cinttypes> in namespace std::tr1. */
-/* #undef _GLIBCXX_USE_C99_INTTYPES_WCHAR_T_TR1 */
+#define _GLIBCXX_USE_C99_INTTYPES_WCHAR_T_TR1 1
/* Define if C99 functions or macros in <math.h> should be imported in <cmath>
in namespace std. */
@@ -1269,7 +1269,7 @@ namespace std
/* Define if C99 functions or macros in <math.h> should be imported in
<tr1/cmath> in namespace std::tr1. */
-/* #undef _GLIBCXX_USE_C99_MATH_TR1 */
+#define _GLIBCXX_USE_C99_MATH_TR1 1
/* Define if C99 types in <stdint.h> should be imported in <tr1/cstdint> in
namespace std::tr1. */
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/mips64/libgnustl_shared.so b/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/mips64/libgnustl_shared.so
index b3c3e2c..ab31a5d 100755
--- a/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/mips64/libgnustl_shared.so
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/mips64/libgnustl_shared.so
Binary files differ
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/mips64/libgnustl_static.a b/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/mips64/libgnustl_static.a
index a3b5b19..68a9cfb 100644
--- a/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/mips64/libgnustl_static.a
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/mips64/libgnustl_static.a
Binary files differ
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/mips64/libsupc++.a b/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/mips64/libsupc++.a
index 97cb30e..a28f8b3 100644
--- a/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/mips64/libsupc++.a
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/mips64/libsupc++.a
Binary files differ
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/x86/include/bits/ctype_base.h b/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/x86/include/bits/ctype_base.h
index 2cfd69e..d33e9f6 100644
--- a/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/x86/include/bits/ctype_base.h
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/x86/include/bits/ctype_base.h
@@ -30,6 +30,20 @@
// Support for Solaris 2.5.1
+#if !defined(_U)
+#if !defined(_CTYPE_U)
+#error Bionic header ctype.h does not define either _U nor _CTYPE_U
+#endif
+#define _U _CTYPE_U
+#define _L _CTYPE_L
+#define _N _CTYPE_N
+#define _S _CTYPE_S
+#define _P _CTYPE_P
+#define _C _CTYPE_C
+#define _X _CTYPE_X
+#define _B _CTYPE_B
+#endif
+
namespace std _GLIBCXX_VISIBILITY(default)
{
_GLIBCXX_BEGIN_NAMESPACE_VERSION
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/x86_64/include/bits/c++config.h b/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/x86_64/include/bits/c++config.h
index 15f2467..389758c 100644
--- a/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/x86_64/include/bits/c++config.h
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/x86_64/include/bits/c++config.h
@@ -470,13 +470,13 @@ namespace std
#define _GLIBCXX_HAVE_ACOSF 1
/* Define to 1 if you have the `acosl' function. */
-/* #undef _GLIBCXX_HAVE_ACOSL */
+#define _GLIBCXX_HAVE_ACOSL 1
/* Define to 1 if you have the `asinf' function. */
#define _GLIBCXX_HAVE_ASINF 1
/* Define to 1 if you have the `asinl' function. */
-/* #undef _GLIBCXX_HAVE_ASINL */
+#define _GLIBCXX_HAVE_ASINL 1
/* Define to 1 if the target assembler supports .symver directive. */
#define _GLIBCXX_HAVE_AS_SYMVER_DIRECTIVE 1
@@ -491,7 +491,7 @@ namespace std
#define _GLIBCXX_HAVE_ATANF 1
/* Define to 1 if you have the `atanl' function. */
-/* #undef _GLIBCXX_HAVE_ATANL */
+#define _GLIBCXX_HAVE_ATANL 1
/* Define to 1 if you have the `at_quick_exit' function. */
/* #undef _GLIBCXX_HAVE_AT_QUICK_EXIT */
@@ -515,10 +515,10 @@ namespace std
#define _GLIBCXX_HAVE_COSHF 1
/* Define to 1 if you have the `coshl' function. */
-/* #undef _GLIBCXX_HAVE_COSHL */
+#define _GLIBCXX_HAVE_COSHL 1
/* Define to 1 if you have the `cosl' function. */
-/* #undef _GLIBCXX_HAVE_COSL */
+#define _GLIBCXX_HAVE_COSL 1
/* Define to 1 if you have the <dlfcn.h> header file. */
#define _GLIBCXX_HAVE_DLFCN_H 1
@@ -689,7 +689,7 @@ namespace std
/* #undef _GLIBCXX_HAVE_ISNANL */
/* Defined if iswblank exists. */
-/* #undef _GLIBCXX_HAVE_ISWBLANK */
+#define _GLIBCXX_HAVE_ISWBLANK 1
/* Define if LC_MESSAGES is available in <locale.h>. */
#define _GLIBCXX_HAVE_LC_MESSAGES 1
@@ -728,13 +728,13 @@ namespace std
#define _GLIBCXX_HAVE_LOG10F 1
/* Define to 1 if you have the `log10l' function. */
-/* #undef _GLIBCXX_HAVE_LOG10L */
+#define _GLIBCXX_HAVE_LOG10L 1
/* Define to 1 if you have the `logf' function. */
#define _GLIBCXX_HAVE_LOGF 1
/* Define to 1 if you have the `logl' function. */
-/* #undef _GLIBCXX_HAVE_LOGL */
+#define _GLIBCXX_HAVE_LOGL 1
/* Define to 1 if you have the <machine/endian.h> header file. */
#define _GLIBCXX_HAVE_MACHINE_ENDIAN_H 1
@@ -767,7 +767,7 @@ namespace std
#define _GLIBCXX_HAVE_POWF 1
/* Define to 1 if you have the `powl' function. */
-/* #undef _GLIBCXX_HAVE_POWL */
+#define _GLIBCXX_HAVE_POWL 1
/* Define to 1 if you have the `qfpclass' function. */
/* #undef _GLIBCXX_HAVE_QFPCLASS */
@@ -779,13 +779,13 @@ namespace std
/* #undef _GLIBCXX_HAVE_SETENV */
/* Define to 1 if you have the `sincos' function. */
-/* #undef _GLIBCXX_HAVE_SINCOS */
+#define _GLIBCXX_HAVE_SINCOS 1
/* Define to 1 if you have the `sincosf' function. */
-/* #undef _GLIBCXX_HAVE_SINCOSF */
+#define _GLIBCXX_HAVE_SINCOSF 1
/* Define to 1 if you have the `sincosl' function. */
-/* #undef _GLIBCXX_HAVE_SINCOSL */
+#define _GLIBCXX_HAVE_SINCOSL 1
/* Define to 1 if you have the `sinf' function. */
#define _GLIBCXX_HAVE_SINF 1
@@ -794,10 +794,10 @@ namespace std
#define _GLIBCXX_HAVE_SINHF 1
/* Define to 1 if you have the `sinhl' function. */
-/* #undef _GLIBCXX_HAVE_SINHL */
+#define _GLIBCXX_HAVE_SINHL 1
/* Define to 1 if you have the `sinl' function. */
-/* #undef _GLIBCXX_HAVE_SINL */
+#define _GLIBCXX_HAVE_SINL 1
/* Defined if sleep exists. */
/* #undef _GLIBCXX_HAVE_SLEEP */
@@ -900,10 +900,10 @@ namespace std
#define _GLIBCXX_HAVE_TANHF 1
/* Define to 1 if you have the `tanhl' function. */
-/* #undef _GLIBCXX_HAVE_TANHL */
+#define _GLIBCXX_HAVE_TANHL 1
/* Define to 1 if you have the `tanl' function. */
-/* #undef _GLIBCXX_HAVE_TANL */
+#define _GLIBCXX_HAVE_TANL 1
/* Define to 1 if you have the <tgmath.h> header file. */
/* #undef _GLIBCXX_HAVE_TGMATH_H */
@@ -918,19 +918,19 @@ namespace std
/* #undef _GLIBCXX_HAVE_USLEEP */
/* Defined if vfwscanf exists. */
-/* #undef _GLIBCXX_HAVE_VFWSCANF */
+#define _GLIBCXX_HAVE_VFWSCANF 1
/* Defined if vswscanf exists. */
-/* #undef _GLIBCXX_HAVE_VSWSCANF */
+#define _GLIBCXX_HAVE_VSWSCANF 1
/* Defined if vwscanf exists. */
-/* #undef _GLIBCXX_HAVE_VWSCANF */
+#define _GLIBCXX_HAVE_VWSCANF 1
/* Define to 1 if you have the <wchar.h> header file. */
#define _GLIBCXX_HAVE_WCHAR_H 1
/* Defined if wcstof exists. */
-/* #undef _GLIBCXX_HAVE_WCSTOF */
+#define _GLIBCXX_HAVE_WCSTOF 1
/* Define to 1 if you have the <wctype.h> header file. */
#define _GLIBCXX_HAVE_WCTYPE_H 1
@@ -1261,7 +1261,7 @@ namespace std
/* Define if wchar_t C99 functions in <inttypes.h> should be imported in
<tr1/cinttypes> in namespace std::tr1. */
-/* #undef _GLIBCXX_USE_C99_INTTYPES_WCHAR_T_TR1 */
+#define _GLIBCXX_USE_C99_INTTYPES_WCHAR_T_TR1 1
/* Define if C99 functions or macros in <math.h> should be imported in <cmath>
in namespace std. */
@@ -1269,7 +1269,7 @@ namespace std
/* Define if C99 functions or macros in <math.h> should be imported in
<tr1/cmath> in namespace std::tr1. */
-/* #undef _GLIBCXX_USE_C99_MATH_TR1 */
+#define _GLIBCXX_USE_C99_MATH_TR1 1
/* Define if C99 types in <stdint.h> should be imported in <tr1/cstdint> in
namespace std::tr1. */
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/x86_64/libgnustl_shared.so b/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/x86_64/libgnustl_shared.so
index d86bdb3..787b008 100755
--- a/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/x86_64/libgnustl_shared.so
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/x86_64/libgnustl_shared.so
Binary files differ
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/x86_64/libgnustl_static.a b/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/x86_64/libgnustl_static.a
index e51e015..98a78b5 100644
--- a/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/x86_64/libgnustl_static.a
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/x86_64/libgnustl_static.a
Binary files differ
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/x86_64/libsupc++.a b/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/x86_64/libsupc++.a
index 44a6c3a..1cb7360 100644
--- a/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/x86_64/libsupc++.a
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/x86_64/libsupc++.a
Binary files differ
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.9/include/bits/atomic_base.h b/9/sources/cxx-stl/gnu-libstdc++/4.9/include/bits/atomic_base.h
index 7d2ba75..242459a 100644
--- a/9/sources/cxx-stl/gnu-libstdc++/4.9/include/bits/atomic_base.h
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.9/include/bits/atomic_base.h
@@ -768,11 +768,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
bool
is_lock_free() const noexcept
- { return __atomic_is_lock_free(_M_type_size(1), nullptr); }
+ { return __atomic_is_lock_free(sizeof(__pointer_type), nullptr); }
bool
is_lock_free() const volatile noexcept
- { return __atomic_is_lock_free(_M_type_size(1), nullptr); }
+ { return __atomic_is_lock_free(sizeof(__pointer_type), nullptr); }
_GLIBCXX_ALWAYS_INLINE void
store(__pointer_type __p,
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.9/include/iomanip b/9/sources/cxx-stl/gnu-libstdc++/4.9/include/iomanip
index b2c7b95..73822db 100644
--- a/9/sources/cxx-stl/gnu-libstdc++/4.9/include/iomanip
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.9/include/iomanip
@@ -415,8 +415,6 @@ _GLIBCXX_END_NAMESPACE_VERSION
const _Quoted_string<basic_string<_CharT, _Traits, _Alloc>&,
_CharT>& __str)
{
- __str._M_string.clear();
-
_CharT __c;
__is >> __c;
if (!__is.good())
@@ -427,6 +425,7 @@ _GLIBCXX_END_NAMESPACE_VERSION
__is >> __str._M_string;
return __is;
}
+ __str._M_string.clear();
std::ios_base::fmtflags __flags
= __is.flags(__is.flags() & ~std::ios_base::skipws);
do
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.9/include/type_traits b/9/sources/cxx-stl/gnu-libstdc++/4.9/include/type_traits
index 0261c7d..86fde9e 100644
--- a/9/sources/cxx-stl/gnu-libstdc++/4.9/include/type_traits
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.9/include/type_traits
@@ -259,7 +259,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
struct __is_floating_point_helper<long double>
: public true_type { };
-#if !defined(__STRICT_ANSI__) && defined(_GLIBCXX_USE_FLOAT128)
+#if !defined(__STRICT_ANSI__) && defined(_GLIBCXX_USE_FLOAT128) && (!defined(__clang__) || __clang_major__ > 3 || (__clang_major__ == 3 && __clang_minor__ >= 4))
template<>
struct __is_floating_point_helper<__float128>
: public true_type { };
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/include/bits/c++config.h b/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/include/bits/c++config.h
index 99057ea..103fa47 100644
--- a/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/include/bits/c++config.h
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/include/bits/c++config.h
@@ -31,7 +31,7 @@
#define _GLIBCXX_CXX_CONFIG_H 1
// The current version of the C++ library in compressed ISO date format.
-#define __GLIBCXX__ 20140324
+#define __GLIBCXX__ 20140422
// Macros for various attributes.
// _GLIBCXX_PURE
@@ -474,13 +474,13 @@ namespace std
#define _GLIBCXX_HAVE_ACOSF 1
/* Define to 1 if you have the `acosl' function. */
-/* #undef _GLIBCXX_HAVE_ACOSL */
+#define _GLIBCXX_HAVE_ACOSL 1
/* Define to 1 if you have the `asinf' function. */
#define _GLIBCXX_HAVE_ASINF 1
/* Define to 1 if you have the `asinl' function. */
-/* #undef _GLIBCXX_HAVE_ASINL */
+#define _GLIBCXX_HAVE_ASINL 1
/* Define to 1 if the target assembler supports .symver directive. */
#define _GLIBCXX_HAVE_AS_SYMVER_DIRECTIVE 1
@@ -495,7 +495,7 @@ namespace std
#define _GLIBCXX_HAVE_ATANF 1
/* Define to 1 if you have the `atanl' function. */
-/* #undef _GLIBCXX_HAVE_ATANL */
+#define _GLIBCXX_HAVE_ATANL 1
/* Define to 1 if you have the `at_quick_exit' function. */
/* #undef _GLIBCXX_HAVE_AT_QUICK_EXIT */
@@ -519,10 +519,10 @@ namespace std
#define _GLIBCXX_HAVE_COSHF 1
/* Define to 1 if you have the `coshl' function. */
-/* #undef _GLIBCXX_HAVE_COSHL */
+#define _GLIBCXX_HAVE_COSHL 1
/* Define to 1 if you have the `cosl' function. */
-/* #undef _GLIBCXX_HAVE_COSL */
+#define _GLIBCXX_HAVE_COSL 1
/* Define to 1 if you have the <dlfcn.h> header file. */
#define _GLIBCXX_HAVE_DLFCN_H 1
@@ -693,7 +693,7 @@ namespace std
/* #undef _GLIBCXX_HAVE_ISNANL */
/* Defined if iswblank exists. */
-/* #undef _GLIBCXX_HAVE_ISWBLANK */
+#define _GLIBCXX_HAVE_ISWBLANK 1
/* Define if LC_MESSAGES is available in <locale.h>. */
#define _GLIBCXX_HAVE_LC_MESSAGES 1
@@ -732,13 +732,13 @@ namespace std
#define _GLIBCXX_HAVE_LOG10F 1
/* Define to 1 if you have the `log10l' function. */
-/* #undef _GLIBCXX_HAVE_LOG10L */
+#define _GLIBCXX_HAVE_LOG10L 1
/* Define to 1 if you have the `logf' function. */
#define _GLIBCXX_HAVE_LOGF 1
/* Define to 1 if you have the `logl' function. */
-/* #undef _GLIBCXX_HAVE_LOGL */
+#define _GLIBCXX_HAVE_LOGL 1
/* Define to 1 if you have the <machine/endian.h> header file. */
#define _GLIBCXX_HAVE_MACHINE_ENDIAN_H 1
@@ -771,7 +771,7 @@ namespace std
#define _GLIBCXX_HAVE_POWF 1
/* Define to 1 if you have the `powl' function. */
-/* #undef _GLIBCXX_HAVE_POWL */
+#define _GLIBCXX_HAVE_POWL 1
/* Define to 1 if you have the `qfpclass' function. */
/* #undef _GLIBCXX_HAVE_QFPCLASS */
@@ -783,13 +783,13 @@ namespace std
/* #undef _GLIBCXX_HAVE_SETENV */
/* Define to 1 if you have the `sincos' function. */
-/* #undef _GLIBCXX_HAVE_SINCOS */
+#define _GLIBCXX_HAVE_SINCOS 1
/* Define to 1 if you have the `sincosf' function. */
-/* #undef _GLIBCXX_HAVE_SINCOSF */
+#define _GLIBCXX_HAVE_SINCOSF 1
/* Define to 1 if you have the `sincosl' function. */
-/* #undef _GLIBCXX_HAVE_SINCOSL */
+#define _GLIBCXX_HAVE_SINCOSL 1
/* Define to 1 if you have the `sinf' function. */
#define _GLIBCXX_HAVE_SINF 1
@@ -798,10 +798,10 @@ namespace std
#define _GLIBCXX_HAVE_SINHF 1
/* Define to 1 if you have the `sinhl' function. */
-/* #undef _GLIBCXX_HAVE_SINHL */
+#define _GLIBCXX_HAVE_SINHL 1
/* Define to 1 if you have the `sinl' function. */
-/* #undef _GLIBCXX_HAVE_SINL */
+#define _GLIBCXX_HAVE_SINL 1
/* Defined if sleep exists. */
/* #undef _GLIBCXX_HAVE_SLEEP */
@@ -904,10 +904,10 @@ namespace std
#define _GLIBCXX_HAVE_TANHF 1
/* Define to 1 if you have the `tanhl' function. */
-/* #undef _GLIBCXX_HAVE_TANHL */
+#define _GLIBCXX_HAVE_TANHL 1
/* Define to 1 if you have the `tanl' function. */
-/* #undef _GLIBCXX_HAVE_TANL */
+#define _GLIBCXX_HAVE_TANL 1
/* Define to 1 if you have the <tgmath.h> header file. */
/* #undef _GLIBCXX_HAVE_TGMATH_H */
@@ -922,19 +922,19 @@ namespace std
/* #undef _GLIBCXX_HAVE_USLEEP */
/* Defined if vfwscanf exists. */
-/* #undef _GLIBCXX_HAVE_VFWSCANF */
+#define _GLIBCXX_HAVE_VFWSCANF 1
/* Defined if vswscanf exists. */
-/* #undef _GLIBCXX_HAVE_VSWSCANF */
+#define _GLIBCXX_HAVE_VSWSCANF 1
/* Defined if vwscanf exists. */
-/* #undef _GLIBCXX_HAVE_VWSCANF */
+#define _GLIBCXX_HAVE_VWSCANF 1
/* Define to 1 if you have the <wchar.h> header file. */
#define _GLIBCXX_HAVE_WCHAR_H 1
/* Defined if wcstof exists. */
-/* #undef _GLIBCXX_HAVE_WCSTOF */
+#define _GLIBCXX_HAVE_WCSTOF 1
/* Define to 1 if you have the <wctype.h> header file. */
#define _GLIBCXX_HAVE_WCTYPE_H 1
@@ -1265,7 +1265,7 @@ namespace std
/* Define if wchar_t C99 functions in <inttypes.h> should be imported in
<tr1/cinttypes> in namespace std::tr1. */
-/* #undef _GLIBCXX_USE_C99_INTTYPES_WCHAR_T_TR1 */
+#define _GLIBCXX_USE_C99_INTTYPES_WCHAR_T_TR1 1
/* Define if C99 functions or macros in <math.h> should be imported in <cmath>
in namespace std. */
@@ -1273,7 +1273,7 @@ namespace std
/* Define if C99 functions or macros in <math.h> should be imported in
<tr1/cmath> in namespace std::tr1. */
-/* #undef _GLIBCXX_USE_C99_MATH_TR1 */
+#define _GLIBCXX_USE_C99_MATH_TR1 1
/* Define if C99 types in <stdint.h> should be imported in <tr1/cstdint> in
namespace std::tr1. */
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/libgnustl_shared.so b/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/libgnustl_shared.so
index b998a74..9c28e0a 100755
--- a/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/libgnustl_shared.so
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/libgnustl_shared.so
Binary files differ
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/libgnustl_static.a b/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/libgnustl_static.a
index 30ac46e..24d5885 100644
--- a/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/libgnustl_static.a
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/libgnustl_static.a
Binary files differ
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/libsupc++.a b/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/libsupc++.a
index 7ce29d1..75ee34b 100644
--- a/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/libsupc++.a
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/libsupc++.a
Binary files differ
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi-v7a/include/bits/c++config.h b/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi-v7a/include/bits/c++config.h
index 3500133..a31d1dd 100644
--- a/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi-v7a/include/bits/c++config.h
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi-v7a/include/bits/c++config.h
@@ -31,7 +31,7 @@
#define _GLIBCXX_CXX_CONFIG_H 1
// The current version of the C++ library in compressed ISO date format.
-#define __GLIBCXX__ 20140324
+#define __GLIBCXX__ 20140422
// Macros for various attributes.
// _GLIBCXX_PURE
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi/include/bits/c++config.h b/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi/include/bits/c++config.h
index 3500133..a31d1dd 100644
--- a/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi/include/bits/c++config.h
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi/include/bits/c++config.h
@@ -31,7 +31,7 @@
#define _GLIBCXX_CXX_CONFIG_H 1
// The current version of the C++ library in compressed ISO date format.
-#define __GLIBCXX__ 20140324
+#define __GLIBCXX__ 20140422
// Macros for various attributes.
// _GLIBCXX_PURE
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/mips/include/bits/c++config.h b/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/mips/include/bits/c++config.h
index 3500133..a31d1dd 100644
--- a/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/mips/include/bits/c++config.h
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/mips/include/bits/c++config.h
@@ -31,7 +31,7 @@
#define _GLIBCXX_CXX_CONFIG_H 1
// The current version of the C++ library in compressed ISO date format.
-#define __GLIBCXX__ 20140324
+#define __GLIBCXX__ 20140422
// Macros for various attributes.
// _GLIBCXX_PURE
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/mips64/include/bits/c++config.h b/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/mips64/include/bits/c++config.h
index 99057ea..103fa47 100644
--- a/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/mips64/include/bits/c++config.h
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/mips64/include/bits/c++config.h
@@ -31,7 +31,7 @@
#define _GLIBCXX_CXX_CONFIG_H 1
// The current version of the C++ library in compressed ISO date format.
-#define __GLIBCXX__ 20140324
+#define __GLIBCXX__ 20140422
// Macros for various attributes.
// _GLIBCXX_PURE
@@ -474,13 +474,13 @@ namespace std
#define _GLIBCXX_HAVE_ACOSF 1
/* Define to 1 if you have the `acosl' function. */
-/* #undef _GLIBCXX_HAVE_ACOSL */
+#define _GLIBCXX_HAVE_ACOSL 1
/* Define to 1 if you have the `asinf' function. */
#define _GLIBCXX_HAVE_ASINF 1
/* Define to 1 if you have the `asinl' function. */
-/* #undef _GLIBCXX_HAVE_ASINL */
+#define _GLIBCXX_HAVE_ASINL 1
/* Define to 1 if the target assembler supports .symver directive. */
#define _GLIBCXX_HAVE_AS_SYMVER_DIRECTIVE 1
@@ -495,7 +495,7 @@ namespace std
#define _GLIBCXX_HAVE_ATANF 1
/* Define to 1 if you have the `atanl' function. */
-/* #undef _GLIBCXX_HAVE_ATANL */
+#define _GLIBCXX_HAVE_ATANL 1
/* Define to 1 if you have the `at_quick_exit' function. */
/* #undef _GLIBCXX_HAVE_AT_QUICK_EXIT */
@@ -519,10 +519,10 @@ namespace std
#define _GLIBCXX_HAVE_COSHF 1
/* Define to 1 if you have the `coshl' function. */
-/* #undef _GLIBCXX_HAVE_COSHL */
+#define _GLIBCXX_HAVE_COSHL 1
/* Define to 1 if you have the `cosl' function. */
-/* #undef _GLIBCXX_HAVE_COSL */
+#define _GLIBCXX_HAVE_COSL 1
/* Define to 1 if you have the <dlfcn.h> header file. */
#define _GLIBCXX_HAVE_DLFCN_H 1
@@ -693,7 +693,7 @@ namespace std
/* #undef _GLIBCXX_HAVE_ISNANL */
/* Defined if iswblank exists. */
-/* #undef _GLIBCXX_HAVE_ISWBLANK */
+#define _GLIBCXX_HAVE_ISWBLANK 1
/* Define if LC_MESSAGES is available in <locale.h>. */
#define _GLIBCXX_HAVE_LC_MESSAGES 1
@@ -732,13 +732,13 @@ namespace std
#define _GLIBCXX_HAVE_LOG10F 1
/* Define to 1 if you have the `log10l' function. */
-/* #undef _GLIBCXX_HAVE_LOG10L */
+#define _GLIBCXX_HAVE_LOG10L 1
/* Define to 1 if you have the `logf' function. */
#define _GLIBCXX_HAVE_LOGF 1
/* Define to 1 if you have the `logl' function. */
-/* #undef _GLIBCXX_HAVE_LOGL */
+#define _GLIBCXX_HAVE_LOGL 1
/* Define to 1 if you have the <machine/endian.h> header file. */
#define _GLIBCXX_HAVE_MACHINE_ENDIAN_H 1
@@ -771,7 +771,7 @@ namespace std
#define _GLIBCXX_HAVE_POWF 1
/* Define to 1 if you have the `powl' function. */
-/* #undef _GLIBCXX_HAVE_POWL */
+#define _GLIBCXX_HAVE_POWL 1
/* Define to 1 if you have the `qfpclass' function. */
/* #undef _GLIBCXX_HAVE_QFPCLASS */
@@ -783,13 +783,13 @@ namespace std
/* #undef _GLIBCXX_HAVE_SETENV */
/* Define to 1 if you have the `sincos' function. */
-/* #undef _GLIBCXX_HAVE_SINCOS */
+#define _GLIBCXX_HAVE_SINCOS 1
/* Define to 1 if you have the `sincosf' function. */
-/* #undef _GLIBCXX_HAVE_SINCOSF */
+#define _GLIBCXX_HAVE_SINCOSF 1
/* Define to 1 if you have the `sincosl' function. */
-/* #undef _GLIBCXX_HAVE_SINCOSL */
+#define _GLIBCXX_HAVE_SINCOSL 1
/* Define to 1 if you have the `sinf' function. */
#define _GLIBCXX_HAVE_SINF 1
@@ -798,10 +798,10 @@ namespace std
#define _GLIBCXX_HAVE_SINHF 1
/* Define to 1 if you have the `sinhl' function. */
-/* #undef _GLIBCXX_HAVE_SINHL */
+#define _GLIBCXX_HAVE_SINHL 1
/* Define to 1 if you have the `sinl' function. */
-/* #undef _GLIBCXX_HAVE_SINL */
+#define _GLIBCXX_HAVE_SINL 1
/* Defined if sleep exists. */
/* #undef _GLIBCXX_HAVE_SLEEP */
@@ -904,10 +904,10 @@ namespace std
#define _GLIBCXX_HAVE_TANHF 1
/* Define to 1 if you have the `tanhl' function. */
-/* #undef _GLIBCXX_HAVE_TANHL */
+#define _GLIBCXX_HAVE_TANHL 1
/* Define to 1 if you have the `tanl' function. */
-/* #undef _GLIBCXX_HAVE_TANL */
+#define _GLIBCXX_HAVE_TANL 1
/* Define to 1 if you have the <tgmath.h> header file. */
/* #undef _GLIBCXX_HAVE_TGMATH_H */
@@ -922,19 +922,19 @@ namespace std
/* #undef _GLIBCXX_HAVE_USLEEP */
/* Defined if vfwscanf exists. */
-/* #undef _GLIBCXX_HAVE_VFWSCANF */
+#define _GLIBCXX_HAVE_VFWSCANF 1
/* Defined if vswscanf exists. */
-/* #undef _GLIBCXX_HAVE_VSWSCANF */
+#define _GLIBCXX_HAVE_VSWSCANF 1
/* Defined if vwscanf exists. */
-/* #undef _GLIBCXX_HAVE_VWSCANF */
+#define _GLIBCXX_HAVE_VWSCANF 1
/* Define to 1 if you have the <wchar.h> header file. */
#define _GLIBCXX_HAVE_WCHAR_H 1
/* Defined if wcstof exists. */
-/* #undef _GLIBCXX_HAVE_WCSTOF */
+#define _GLIBCXX_HAVE_WCSTOF 1
/* Define to 1 if you have the <wctype.h> header file. */
#define _GLIBCXX_HAVE_WCTYPE_H 1
@@ -1265,7 +1265,7 @@ namespace std
/* Define if wchar_t C99 functions in <inttypes.h> should be imported in
<tr1/cinttypes> in namespace std::tr1. */
-/* #undef _GLIBCXX_USE_C99_INTTYPES_WCHAR_T_TR1 */
+#define _GLIBCXX_USE_C99_INTTYPES_WCHAR_T_TR1 1
/* Define if C99 functions or macros in <math.h> should be imported in <cmath>
in namespace std. */
@@ -1273,7 +1273,7 @@ namespace std
/* Define if C99 functions or macros in <math.h> should be imported in
<tr1/cmath> in namespace std::tr1. */
-/* #undef _GLIBCXX_USE_C99_MATH_TR1 */
+#define _GLIBCXX_USE_C99_MATH_TR1 1
/* Define if C99 types in <stdint.h> should be imported in <tr1/cstdint> in
namespace std::tr1. */
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/mips64/libgnustl_shared.so b/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/mips64/libgnustl_shared.so
index f7bbec4..1027125 100755
--- a/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/mips64/libgnustl_shared.so
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/mips64/libgnustl_shared.so
Binary files differ
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/mips64/libgnustl_static.a b/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/mips64/libgnustl_static.a
index 9d11e57..03b05b4 100644
--- a/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/mips64/libgnustl_static.a
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/mips64/libgnustl_static.a
Binary files differ
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/mips64/libsupc++.a b/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/mips64/libsupc++.a
index b2cb3d1..94187b2 100644
--- a/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/mips64/libsupc++.a
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/mips64/libsupc++.a
Binary files differ
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86/include/bits/c++config.h b/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86/include/bits/c++config.h
index 8f12d8c..6200953 100644
--- a/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86/include/bits/c++config.h
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86/include/bits/c++config.h
@@ -31,7 +31,7 @@
#define _GLIBCXX_CXX_CONFIG_H 1
// The current version of the C++ library in compressed ISO date format.
-#define __GLIBCXX__ 20140324
+#define __GLIBCXX__ 20140422
// Macros for various attributes.
// _GLIBCXX_PURE
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86_64/include/bits/c++config.h b/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86_64/include/bits/c++config.h
index 356809d..a8dc524 100644
--- a/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86_64/include/bits/c++config.h
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86_64/include/bits/c++config.h
@@ -31,7 +31,7 @@
#define _GLIBCXX_CXX_CONFIG_H 1
// The current version of the C++ library in compressed ISO date format.
-#define __GLIBCXX__ 20140324
+#define __GLIBCXX__ 20140422
// Macros for various attributes.
// _GLIBCXX_PURE
@@ -474,13 +474,13 @@ namespace std
#define _GLIBCXX_HAVE_ACOSF 1
/* Define to 1 if you have the `acosl' function. */
-/* #undef _GLIBCXX_HAVE_ACOSL */
+#define _GLIBCXX_HAVE_ACOSL 1
/* Define to 1 if you have the `asinf' function. */
#define _GLIBCXX_HAVE_ASINF 1
/* Define to 1 if you have the `asinl' function. */
-/* #undef _GLIBCXX_HAVE_ASINL */
+#define _GLIBCXX_HAVE_ASINL 1
/* Define to 1 if the target assembler supports .symver directive. */
#define _GLIBCXX_HAVE_AS_SYMVER_DIRECTIVE 1
@@ -495,7 +495,7 @@ namespace std
#define _GLIBCXX_HAVE_ATANF 1
/* Define to 1 if you have the `atanl' function. */
-/* #undef _GLIBCXX_HAVE_ATANL */
+#define _GLIBCXX_HAVE_ATANL 1
/* Define to 1 if you have the `at_quick_exit' function. */
/* #undef _GLIBCXX_HAVE_AT_QUICK_EXIT */
@@ -519,10 +519,10 @@ namespace std
#define _GLIBCXX_HAVE_COSHF 1
/* Define to 1 if you have the `coshl' function. */
-/* #undef _GLIBCXX_HAVE_COSHL */
+#define _GLIBCXX_HAVE_COSHL 1
/* Define to 1 if you have the `cosl' function. */
-/* #undef _GLIBCXX_HAVE_COSL */
+#define _GLIBCXX_HAVE_COSL 1
/* Define to 1 if you have the <dlfcn.h> header file. */
#define _GLIBCXX_HAVE_DLFCN_H 1
@@ -693,7 +693,7 @@ namespace std
/* #undef _GLIBCXX_HAVE_ISNANL */
/* Defined if iswblank exists. */
-/* #undef _GLIBCXX_HAVE_ISWBLANK */
+#define _GLIBCXX_HAVE_ISWBLANK 1
/* Define if LC_MESSAGES is available in <locale.h>. */
#define _GLIBCXX_HAVE_LC_MESSAGES 1
@@ -732,13 +732,13 @@ namespace std
#define _GLIBCXX_HAVE_LOG10F 1
/* Define to 1 if you have the `log10l' function. */
-/* #undef _GLIBCXX_HAVE_LOG10L */
+#define _GLIBCXX_HAVE_LOG10L 1
/* Define to 1 if you have the `logf' function. */
#define _GLIBCXX_HAVE_LOGF 1
/* Define to 1 if you have the `logl' function. */
-/* #undef _GLIBCXX_HAVE_LOGL */
+#define _GLIBCXX_HAVE_LOGL 1
/* Define to 1 if you have the <machine/endian.h> header file. */
#define _GLIBCXX_HAVE_MACHINE_ENDIAN_H 1
@@ -771,7 +771,7 @@ namespace std
#define _GLIBCXX_HAVE_POWF 1
/* Define to 1 if you have the `powl' function. */
-/* #undef _GLIBCXX_HAVE_POWL */
+#define _GLIBCXX_HAVE_POWL 1
/* Define to 1 if you have the `qfpclass' function. */
/* #undef _GLIBCXX_HAVE_QFPCLASS */
@@ -783,13 +783,13 @@ namespace std
/* #undef _GLIBCXX_HAVE_SETENV */
/* Define to 1 if you have the `sincos' function. */
-/* #undef _GLIBCXX_HAVE_SINCOS */
+#define _GLIBCXX_HAVE_SINCOS 1
/* Define to 1 if you have the `sincosf' function. */
-/* #undef _GLIBCXX_HAVE_SINCOSF */
+#define _GLIBCXX_HAVE_SINCOSF 1
/* Define to 1 if you have the `sincosl' function. */
-/* #undef _GLIBCXX_HAVE_SINCOSL */
+#define _GLIBCXX_HAVE_SINCOSL 1
/* Define to 1 if you have the `sinf' function. */
#define _GLIBCXX_HAVE_SINF 1
@@ -798,10 +798,10 @@ namespace std
#define _GLIBCXX_HAVE_SINHF 1
/* Define to 1 if you have the `sinhl' function. */
-/* #undef _GLIBCXX_HAVE_SINHL */
+#define _GLIBCXX_HAVE_SINHL 1
/* Define to 1 if you have the `sinl' function. */
-/* #undef _GLIBCXX_HAVE_SINL */
+#define _GLIBCXX_HAVE_SINL 1
/* Defined if sleep exists. */
/* #undef _GLIBCXX_HAVE_SLEEP */
@@ -904,10 +904,10 @@ namespace std
#define _GLIBCXX_HAVE_TANHF 1
/* Define to 1 if you have the `tanhl' function. */
-/* #undef _GLIBCXX_HAVE_TANHL */
+#define _GLIBCXX_HAVE_TANHL 1
/* Define to 1 if you have the `tanl' function. */
-/* #undef _GLIBCXX_HAVE_TANL */
+#define _GLIBCXX_HAVE_TANL 1
/* Define to 1 if you have the <tgmath.h> header file. */
/* #undef _GLIBCXX_HAVE_TGMATH_H */
@@ -922,19 +922,19 @@ namespace std
/* #undef _GLIBCXX_HAVE_USLEEP */
/* Defined if vfwscanf exists. */
-/* #undef _GLIBCXX_HAVE_VFWSCANF */
+#define _GLIBCXX_HAVE_VFWSCANF 1
/* Defined if vswscanf exists. */
-/* #undef _GLIBCXX_HAVE_VSWSCANF */
+#define _GLIBCXX_HAVE_VSWSCANF 1
/* Defined if vwscanf exists. */
-/* #undef _GLIBCXX_HAVE_VWSCANF */
+#define _GLIBCXX_HAVE_VWSCANF 1
/* Define to 1 if you have the <wchar.h> header file. */
#define _GLIBCXX_HAVE_WCHAR_H 1
/* Defined if wcstof exists. */
-/* #undef _GLIBCXX_HAVE_WCSTOF */
+#define _GLIBCXX_HAVE_WCSTOF 1
/* Define to 1 if you have the <wctype.h> header file. */
#define _GLIBCXX_HAVE_WCTYPE_H 1
@@ -1265,7 +1265,7 @@ namespace std
/* Define if wchar_t C99 functions in <inttypes.h> should be imported in
<tr1/cinttypes> in namespace std::tr1. */
-/* #undef _GLIBCXX_USE_C99_INTTYPES_WCHAR_T_TR1 */
+#define _GLIBCXX_USE_C99_INTTYPES_WCHAR_T_TR1 1
/* Define if C99 functions or macros in <math.h> should be imported in <cmath>
in namespace std. */
@@ -1273,7 +1273,7 @@ namespace std
/* Define if C99 functions or macros in <math.h> should be imported in
<tr1/cmath> in namespace std::tr1. */
-/* #undef _GLIBCXX_USE_C99_MATH_TR1 */
+#define _GLIBCXX_USE_C99_MATH_TR1 1
/* Define if C99 types in <stdint.h> should be imported in <tr1/cstdint> in
namespace std::tr1. */
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86_64/libgnustl_shared.so b/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86_64/libgnustl_shared.so
index a63d987..0a33be7 100755
--- a/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86_64/libgnustl_shared.so
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86_64/libgnustl_shared.so
Binary files differ
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86_64/libgnustl_static.a b/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86_64/libgnustl_static.a
index 37af57a..5d96f9e 100644
--- a/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86_64/libgnustl_static.a
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86_64/libgnustl_static.a
Binary files differ
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86_64/libsupc++.a b/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86_64/libsupc++.a
index ad3df6d..31b9c68 100644
--- a/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86_64/libsupc++.a
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86_64/libsupc++.a
Binary files differ
diff --git a/9/sources/cxx-stl/llvm-libc++/libcxx/include/__config b/9/sources/cxx-stl/llvm-libc++/libcxx/include/__config
index 31cbcd4..1eb734c 100644
--- a/9/sources/cxx-stl/llvm-libc++/libcxx/include/__config
+++ b/9/sources/cxx-stl/llvm-libc++/libcxx/include/__config
@@ -199,10 +199,16 @@
#ifndef _LIBCPP_ALWAYS_INLINE
#define _LIBCPP_ALWAYS_INLINE __attribute__ ((__visibility__("hidden"), __always_inline__))
+#define _LIBCPP_ALWAYS_INLINE_EXCEPT_GCC49 _LIBCPP_ALWAYS_INLINE
#endif
#if defined(__clang__)
+#if defined(__APPLE__) && !defined(__i386__) && !defined(__x86_64__) && \
+ !defined(__arm__)
+#define _LIBCPP_ALTERNATE_STRING_LAYOUT
+#endif
+
#if __has_feature(cxx_alignas)
# define _ALIGNAS_TYPE(x) alignas(x)
# define _ALIGNAS(x) alignas(x)
@@ -215,7 +221,7 @@
#define _LIBCPP_HAS_NO_TEMPLATE_ALIASES
#endif
-#ifndef __GXX_EXPERIMENTAL_CXX0X__
+#if __cplusplus < 201103L
#ifdef __linux__
#define _LIBCPP_HAS_NO_UNICODE_CHARS
#else
@@ -347,8 +353,18 @@ namespace std {
}
}
+#if !defined(_LIBCPP_HAS_NO_ASAN) && !__has_feature(address_sanitizer)
+#define _LIBCPP_HAS_NO_ASAN
+#endif
+
#elif defined(__GNUC__)
+// FixME: GCC4.9 fails some always_inline cases
+# if (_GNUC_VER == 409)
+#undef _LIBCPP_ALWAYS_INLINE_EXCEPT_GCC49
+#define _LIBCPP_ALWAYS_INLINE_EXCEPT_GCC49 inline
+#endif
+
#define _ALIGNAS(x) __attribute__((__aligned__(x)))
#define _ALIGNAS_TYPE(x) __attribute__((__aligned__(__alignof(x))))
@@ -421,13 +437,18 @@ namespace _LIBCPP_NAMESPACE {
using namespace _LIBCPP_NAMESPACE __attribute__((__strong__));
}
+#if !defined(_LIBCPP_HAS_NO_ASAN) && !defined(__SANITIZE_ADDRESS__)
+#define _LIBCPP_HAS_NO_ASAN
+#endif
+
// Emulation of clang's __has_feature() for GCC on known cases
#ifndef __has_feature
#define __gxx__cxx_access_control_sfinae !defined(_LIBCPP_HAS_NO_TRAILING_RETURN) || !defined(_LIBCPP_HAS_NO_ADVANCED_SFINAE) // Also see usage in 7 tests
#define __gxx__cxx_alias_templates !defined(_LIBCPP_HAS_NO_TEMPLATE_ALIASES)
+#define __gxx__cxx_address_sanitizer !defined(_LIBCPP_HAS_NO_ASAN)
#define __gxx__cxx_alignas 0 // Not sure, doesn't matter.
-#define __gxx__cxx_atomic 0 // In c11-atomic branch targeted for GCC 4.9. Also see usages in 20+ places
+#define __gxx__cxx_atomic 0 // (_GNUC_VER >= 409) seems to support _Atomic in -std=c11 not -std=c++11 !
#define __gxx__cxx_attributes 0 // Not sure. Also see usage in libcxx/test/utilities/meta/meta.unary/meta.unary.prop/is_polymorphic.pass.cpp
#define __gxx__cxx_auto_type !defined(_LIBCPP_HAS_NO_AUTO_TYPE)
#define __gxx__cxx_constexpr !defined(_LIBCPP_HAS_NO_CONSTEXPR)
@@ -440,7 +461,7 @@ using namespace _LIBCPP_NAMESPACE __attribute__((__strong__));
#define __gxx__cxx_lambdas !defined(_LIBCPP_HAS_NO_LAMBDAS)
#define __gxx__cxx_noexcept 0 // Not sure, doesn't matter.
#define __gxx__cxx_nullptr !defined(_LIBCPP_HAS_NO_NULLPTR)
-#define __gxx__cxx_reference_qualified_functions (_GNUC_VER > 408) || ((_GNUC_VER == 408) && (__GNUC_PATCHLEVEL__ >= 1)) // See usage in libcxx/include/type_traits
+#define __gxx__cxx_reference_qualified_functions (_GNUC_VER >= 408) // Since 4.8.1
#ifdef _LIBCPP_NO_RTTI
#define __gxx__cxx_rtti 0
#else
@@ -493,7 +514,7 @@ using namespace _LIBCPP_NAMESPACE __attribute__((__strong__));
#define _ALIGNAS(x) __declspec(align(x))
#define _LIBCPP_HAS_NO_VARIADICS
-#define _NOEXCEPT throw()
+#define _NOEXCEPT throw ()
#define _NOEXCEPT_(x)
#define _NOEXCEPT_OR_FALSE(x) false
@@ -505,6 +526,8 @@ using namespace _LIBCPP_NAMESPACE __attribute__((__strong__));
namespace std {
}
+#define _LIBCPP_HAS_NO_ASAN
+
#elif defined(__IBMCPP__)
#define _ALIGNAS(x) __attribute__((__aligned__(x)))
@@ -537,6 +560,8 @@ namespace std {
}
}
+#define _LIBCPP_HAS_NO_ASAN
+
#endif // __clang__ || __GNUC__ || _MSC_VER || __IBMCPP__
#ifdef _LIBCPP_HAS_NO_UNICODE_CHARS
@@ -544,6 +569,10 @@ typedef unsigned short char16_t;
typedef unsigned int char32_t;
#endif // _LIBCPP_HAS_NO_UNICODE_CHARS
+#ifndef __SIZEOF_INT128__
+#define _LIBCPP_HAS_NO_INT128
+#endif
+
#ifdef _LIBCPP_HAS_NO_STATIC_ASSERT
template <bool> struct __static_assert_test;
@@ -619,6 +648,10 @@ template <unsigned> struct __static_assert_check {};
#define _LIBCPP_EXTERN_TEMPLATE2(...) extern template __VA_ARGS__;
#endif
+#if defined(__APPLE__) && defined(__LP64__) && !defined(__x86_64__)
+#define _LIBCPP_NONUNIQUE_RTTI_BIT (1ULL << 63)
+#endif
+
#if defined(__APPLE__) || defined(__FreeBSD__) || defined(_WIN32) || defined(__sun__) || defined(__NetBSD__)
#define _LIBCPP_LOCALE__L_EXTENSIONS 1
#endif
diff --git a/9/sources/cxx-stl/llvm-libc++/libcxx/include/__locale b/9/sources/cxx-stl/llvm-libc++/libcxx/include/__locale
index 5c33038..d078810 100644
--- a/9/sources/cxx-stl/llvm-libc++/libcxx/include/__locale
+++ b/9/sources/cxx-stl/llvm-libc++/libcxx/include/__locale
@@ -21,7 +21,7 @@
#include <locale.h>
#if defined(_LIBCPP_MSVCRT) || defined(__MINGW32__)
# include <support/win32/locale_win32.h>
-#elif _AIX
+#elif defined(_AIX)
# include <support/ibm/xlocale.h>
#elif (defined(__GLIBC__) || defined(__APPLE__) || defined(__FreeBSD__) || defined(__sun__)) || defined(__EMSCRIPTEN__) || defined(__IBMCPP__)
# include <xlocale.h>
diff --git a/9/sources/cxx-stl/llvm-libc++/libcxx/include/__mutex_base b/9/sources/cxx-stl/llvm-libc++/libcxx/include/__mutex_base
index abb1c12..293fead 100644
--- a/9/sources/cxx-stl/llvm-libc++/libcxx/include/__mutex_base
+++ b/9/sources/cxx-stl/llvm-libc++/libcxx/include/__mutex_base
@@ -282,7 +282,7 @@ public:
void notify_one() _NOEXCEPT;
void notify_all() _NOEXCEPT;
- void wait(unique_lock<mutex>& __lk);
+ void wait(unique_lock<mutex>& __lk) _NOEXCEPT;
template <class _Predicate>
void wait(unique_lock<mutex>& __lk, _Predicate __pred);
@@ -313,7 +313,7 @@ public:
private:
void __do_timed_wait(unique_lock<mutex>& __lk,
- chrono::time_point<chrono::system_clock, chrono::nanoseconds>);
+ chrono::time_point<chrono::system_clock, chrono::nanoseconds>) _NOEXCEPT;
};
template <class _To, class _Rep, class _Period>
diff --git a/9/sources/cxx-stl/llvm-libc++/libcxx/include/__tree b/9/sources/cxx-stl/llvm-libc++/libcxx/include/__tree
index acf8759..8e5447a 100644
--- a/9/sources/cxx-stl/llvm-libc++/libcxx/include/__tree
+++ b/9/sources/cxx-stl/llvm-libc++/libcxx/include/__tree
@@ -1980,9 +1980,9 @@ __tree<_Tp, _Compare, _Allocator>::erase(const_iterator __p)
__begin_node() = __r.__ptr_;
--size();
__node_allocator& __na = __node_alloc();
- __node_traits::destroy(__na, const_cast<value_type*>(_VSTD::addressof(*__p)));
__tree_remove(__end_node()->__left_,
static_cast<__node_base_pointer>(__np));
+ __node_traits::destroy(__na, const_cast<value_type*>(_VSTD::addressof(*__p)));
__node_traits::deallocate(__na, __np, 1);
return __r;
}
diff --git a/9/sources/cxx-stl/llvm-libc++/libcxx/include/algorithm b/9/sources/cxx-stl/llvm-libc++/libcxx/include/algorithm
index 367489f..303ec7d 100644
--- a/9/sources/cxx-stl/llvm-libc++/libcxx/include/algorithm
+++ b/9/sources/cxx-stl/llvm-libc++/libcxx/include/algorithm
@@ -281,11 +281,12 @@ template <class ForwardIterator, class OutputIterator>
template <class RandomAccessIterator>
void
- random_shuffle(RandomAccessIterator first, RandomAccessIterator last);
+ random_shuffle(RandomAccessIterator first, RandomAccessIterator last); // deprecated in C++14
template <class RandomAccessIterator, class RandomNumberGenerator>
void
- random_shuffle(RandomAccessIterator first, RandomAccessIterator last, RandomNumberGenerator& rand);
+ random_shuffle(RandomAccessIterator first, RandomAccessIterator last,
+ RandomNumberGenerator& rand); // deprecated in C++14
template<class RandomAccessIterator, class UniformRandomNumberGenerator>
void shuffle(RandomAccessIterator first, RandomAccessIterator last,
@@ -528,19 +529,19 @@ template <class ForwardIterator, class Compare>
template <class T>
const T&
- min(const T& a, const T& b);
+ min(const T& a, const T& b); // constexpr in C++14
template <class T, class Compare>
const T&
- min(const T& a, const T& b, Compare comp);
+ min(const T& a, const T& b, Compare comp); // constexpr in C++14
template<class T>
T
- min(initializer_list<T> t);
+ min(initializer_list<T> t); // constexpr in C++14
template<class T, class Compare>
T
- min(initializer_list<T> t, Compare comp);
+ min(initializer_list<T> t, Compare comp); // constexpr in C++14
template <class ForwardIterator>
ForwardIterator
@@ -552,19 +553,19 @@ template <class ForwardIterator, class Compare>
template <class T>
const T&
- max(const T& a, const T& b);
+ max(const T& a, const T& b); // constexpr in C++14
template <class T, class Compare>
const T&
- max(const T& a, const T& b, Compare comp);
+ max(const T& a, const T& b, Compare comp); // constexpr in C++14
template<class T>
T
- max(initializer_list<T> t);
+ max(initializer_list<T> t); // constexpr in C++14
template<class T, class Compare>
T
- max(initializer_list<T> t, Compare comp);
+ max(initializer_list<T> t, Compare comp); // constexpr in C++14
template<class ForwardIterator>
pair<ForwardIterator, ForwardIterator>
@@ -576,19 +577,19 @@ template<class ForwardIterator, class Compare>
template<class T>
pair<const T&, const T&>
- minmax(const T& a, const T& b);
+ minmax(const T& a, const T& b); // constexpr in C++14
template<class T, class Compare>
pair<const T&, const T&>
- minmax(const T& a, const T& b, Compare comp);
+ minmax(const T& a, const T& b, Compare comp); // constexpr in C++14
template<class T>
pair<T, T>
- minmax(initializer_list<T> t);
+ minmax(initializer_list<T> t); // constexpr in C++14
template<class T, class Compare>
pair<T, T>
- minmax(initializer_list<T> t, Compare comp);
+ minmax(initializer_list<T> t, Compare comp); // constexpr in C++14
template <class InputIterator1, class InputIterator2>
bool
@@ -643,6 +644,9 @@ template <class BidirectionalIterator, class Compare>
_LIBCPP_BEGIN_NAMESPACE_STD
+// I'd like to replace these with _VSTD::equal_to<void>, but can't because:
+// * That only works with C++14 and later, and
+// * We haven't included <functional> here.
template <class _T1, class _T2 = _T1>
struct __equal_to
{
@@ -655,46 +659,59 @@ struct __equal_to
template <class _T1>
struct __equal_to<_T1, _T1>
{
- _LIBCPP_INLINE_VISIBILITY bool operator()(const _T1& __x, const _T1& __y) const {return __x == __y;}
+ _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
+ bool operator()(const _T1& __x, const _T1& __y) const {return __x == __y;}
};
template <class _T1>
struct __equal_to<const _T1, _T1>
{
- _LIBCPP_INLINE_VISIBILITY bool operator()(const _T1& __x, const _T1& __y) const {return __x == __y;}
+ _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
+ bool operator()(const _T1& __x, const _T1& __y) const {return __x == __y;}
};
template <class _T1>
struct __equal_to<_T1, const _T1>
{
- _LIBCPP_INLINE_VISIBILITY bool operator()(const _T1& __x, const _T1& __y) const {return __x == __y;}
+ _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
+ bool operator()(const _T1& __x, const _T1& __y) const {return __x == __y;}
};
template <class _T1, class _T2 = _T1>
struct __less
{
- _LIBCPP_INLINE_VISIBILITY bool operator()(const _T1& __x, const _T1& __y) const {return __x < __y;}
- _LIBCPP_INLINE_VISIBILITY bool operator()(const _T1& __x, const _T2& __y) const {return __x < __y;}
- _LIBCPP_INLINE_VISIBILITY bool operator()(const _T2& __x, const _T1& __y) const {return __x < __y;}
- _LIBCPP_INLINE_VISIBILITY bool operator()(const _T2& __x, const _T2& __y) const {return __x < __y;}
+ _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
+ bool operator()(const _T1& __x, const _T1& __y) const {return __x < __y;}
+
+ _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
+ bool operator()(const _T1& __x, const _T2& __y) const {return __x < __y;}
+
+ _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
+ bool operator()(const _T2& __x, const _T1& __y) const {return __x < __y;}
+
+ _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
+ bool operator()(const _T2& __x, const _T2& __y) const {return __x < __y;}
};
template <class _T1>
struct __less<_T1, _T1>
{
- _LIBCPP_INLINE_VISIBILITY bool operator()(const _T1& __x, const _T1& __y) const {return __x < __y;}
+ _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
+ bool operator()(const _T1& __x, const _T1& __y) const {return __x < __y;}
};
template <class _T1>
struct __less<const _T1, _T1>
{
- _LIBCPP_INLINE_VISIBILITY bool operator()(const _T1& __x, const _T1& __y) const {return __x < __y;}
+ _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
+ bool operator()(const _T1& __x, const _T1& __y) const {return __x < __y;}
};
template <class _T1>
struct __less<_T1, const _T1>
{
- _LIBCPP_INLINE_VISIBILITY bool operator()(const _T1& __x, const _T1& __y) const {return __x < __y;}
+ _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
+ bool operator()(const _T1& __x, const _T1& __y) const {return __x < __y;}
};
template <class _Predicate>
@@ -2505,9 +2522,9 @@ rotate_copy(_ForwardIterator __first, _ForwardIterator __middle, _ForwardIterato
// min_element
template <class _ForwardIterator, class _Compare>
-inline _LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
_ForwardIterator
-min_element(_ForwardIterator __first, _ForwardIterator __last, _Compare __comp)
+__min_element(_ForwardIterator __first, _ForwardIterator __last, _Compare __comp)
{
if (__first != __last)
{
@@ -2519,19 +2536,27 @@ min_element(_ForwardIterator __first, _ForwardIterator __last, _Compare __comp)
return __first;
}
+template <class _ForwardIterator, class _Compare>
+inline _LIBCPP_INLINE_VISIBILITY
+_ForwardIterator
+min_element(_ForwardIterator __first, _ForwardIterator __last, _Compare __comp)
+{
+ return __min_element(__first, __last, __comp);
+}
+
template <class _ForwardIterator>
inline _LIBCPP_INLINE_VISIBILITY
_ForwardIterator
min_element(_ForwardIterator __first, _ForwardIterator __last)
{
- return _VSTD::min_element(__first, __last,
+ return __min_element(__first, __last,
__less<typename iterator_traits<_ForwardIterator>::value_type>());
}
// min
template <class _Tp, class _Compare>
-inline _LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
const _Tp&
min(const _Tp& __a, const _Tp& __b, _Compare __comp)
{
@@ -2539,7 +2564,7 @@ min(const _Tp& __a, const _Tp& __b, _Compare __comp)
}
template <class _Tp>
-inline _LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
const _Tp&
min(const _Tp& __a, const _Tp& __b)
{
@@ -2549,19 +2574,19 @@ min(const _Tp& __a, const _Tp& __b)
#ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
template<class _Tp, class _Compare>
-inline _LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
_Tp
min(initializer_list<_Tp> __t, _Compare __comp)
{
- return *_VSTD::min_element(__t.begin(), __t.end(), __comp);
+ return *__min_element(__t.begin(), __t.end(), __comp);
}
template<class _Tp>
-inline _LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
_Tp
min(initializer_list<_Tp> __t)
{
- return *_VSTD::min_element(__t.begin(), __t.end());
+ return *__min_element(__t.begin(), __t.end(), __less<_Tp>());
}
#endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
@@ -2569,9 +2594,9 @@ min(initializer_list<_Tp> __t)
// max_element
template <class _ForwardIterator, class _Compare>
-inline _LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
_ForwardIterator
-max_element(_ForwardIterator __first, _ForwardIterator __last, _Compare __comp)
+__max_element(_ForwardIterator __first, _ForwardIterator __last, _Compare __comp)
{
if (__first != __last)
{
@@ -2583,19 +2608,28 @@ max_element(_ForwardIterator __first, _ForwardIterator __last, _Compare __comp)
return __first;
}
+
+template <class _ForwardIterator, class _Compare>
+inline _LIBCPP_INLINE_VISIBILITY
+_ForwardIterator
+max_element(_ForwardIterator __first, _ForwardIterator __last, _Compare __comp)
+{
+ return __max_element(__first, __last, __comp);
+}
+
template <class _ForwardIterator>
inline _LIBCPP_INLINE_VISIBILITY
_ForwardIterator
max_element(_ForwardIterator __first, _ForwardIterator __last)
{
- return _VSTD::max_element(__first, __last,
+ return __max_element(__first, __last,
__less<typename iterator_traits<_ForwardIterator>::value_type>());
}
// max
template <class _Tp, class _Compare>
-inline _LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
const _Tp&
max(const _Tp& __a, const _Tp& __b, _Compare __comp)
{
@@ -2603,7 +2637,7 @@ max(const _Tp& __a, const _Tp& __b, _Compare __comp)
}
template <class _Tp>
-inline _LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
const _Tp&
max(const _Tp& __a, const _Tp& __b)
{
@@ -2613,19 +2647,19 @@ max(const _Tp& __a, const _Tp& __b)
#ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
template<class _Tp, class _Compare>
-inline _LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
_Tp
max(initializer_list<_Tp> __t, _Compare __comp)
{
- return *_VSTD::max_element(__t.begin(), __t.end(), __comp);
+ return *__max_element(__t.begin(), __t.end(), __comp);
}
template<class _Tp>
-inline _LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
_Tp
max(initializer_list<_Tp> __t)
{
- return *_VSTD::max_element(__t.begin(), __t.end());
+ return *__max_element(__t.begin(), __t.end(), __less<_Tp>());
}
#endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
@@ -2684,13 +2718,14 @@ inline _LIBCPP_INLINE_VISIBILITY
std::pair<_ForwardIterator, _ForwardIterator>
minmax_element(_ForwardIterator __first, _ForwardIterator __last)
{
- return _VSTD::minmax_element(__first, __last, __less<typename iterator_traits<_ForwardIterator>::value_type>());
+ return _VSTD::minmax_element(__first, __last,
+ __less<typename iterator_traits<_ForwardIterator>::value_type>());
}
// minmax
template<class _Tp, class _Compare>
-inline _LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
pair<const _Tp&, const _Tp&>
minmax(const _Tp& __a, const _Tp& __b, _Compare __comp)
{
@@ -2699,7 +2734,7 @@ minmax(const _Tp& __a, const _Tp& __b, _Compare __comp)
}
template<class _Tp>
-inline _LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
pair<const _Tp&, const _Tp&>
minmax(const _Tp& __a, const _Tp& __b)
{
@@ -2708,24 +2743,49 @@ minmax(const _Tp& __a, const _Tp& __b)
#ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
-template<class _Tp>
-inline _LIBCPP_INLINE_VISIBILITY
+template<class _Tp, class _Compare>
+inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
pair<_Tp, _Tp>
-minmax(initializer_list<_Tp> __t)
+minmax(initializer_list<_Tp> __t, _Compare __comp)
{
- pair<const _Tp*, const _Tp*> __p =
- _VSTD::minmax_element(__t.begin(), __t.end());
- return pair<_Tp, _Tp>(*__p.first, *__p.second);
+ typedef typename initializer_list<_Tp>::const_iterator _Iter;
+ _Iter __first = __t.begin();
+ _Iter __last = __t.end();
+ std::pair<_Tp, _Tp> __result ( *__first, *__first );
+
+ ++__first;
+ if (__t.size() % 2 == 0)
+ {
+ if (__comp(*__first, __result.first))
+ __result.first = *__first;
+ else
+ __result.second = *__first;
+ ++__first;
+ }
+
+ while (__first != __last)
+ {
+ _Tp __prev = *__first++;
+ if (__comp(__prev, *__first)) {
+ if (__comp(__prev, __result.first)) __result.first = __prev;
+ if (__comp(__result.second, *__first)) __result.second = *__first;
+ }
+ else {
+ if (__comp(*__first, __result.first)) __result.first = *__first;
+ if (__comp(__result.second, __prev)) __result.second = __prev;
+ }
+
+ __first++;
+ }
+ return __result;
}
-template<class _Tp, class _Compare>
-inline _LIBCPP_INLINE_VISIBILITY
+template<class _Tp>
+inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
pair<_Tp, _Tp>
-minmax(initializer_list<_Tp> __t, _Compare __comp)
+minmax(initializer_list<_Tp> __t)
{
- pair<const _Tp*, const _Tp*> __p =
- _VSTD::minmax_element(__t.begin(), __t.end(), __comp);
- return pair<_Tp, _Tp>(*__p.first, *__p.second);
+ return _VSTD::minmax(__t, __less<_Tp>());
}
#endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
diff --git a/9/sources/cxx-stl/llvm-libc++/libcxx/include/cmath b/9/sources/cxx-stl/llvm-libc++/libcxx/include/cmath
index def49c0..964c672 100644
--- a/9/sources/cxx-stl/llvm-libc++/libcxx/include/cmath
+++ b/9/sources/cxx-stl/llvm-libc++/libcxx/include/cmath
@@ -1208,11 +1208,7 @@ fdim(_A1 __x, _A2 __y) _NOEXCEPT
// fma
-inline _LIBCPP_INLINE_VISIBILITY float fmaf(float __x, float __y, float __z) _NOEXCEPT {return (float)((double)__x*__y + __z);}
-#ifndef FP_FAST_FMAF
-#define FP_FAST_FMAF
-#endif
-
+using ::fmaf;
using ::fma;
inline _LIBCPP_INLINE_VISIBILITY float fma(float __x, float __y, float __z) _NOEXCEPT {return fmaf(__x, __y, __z);}
diff --git a/9/sources/cxx-stl/llvm-libc++/libcxx/include/cstddef b/9/sources/cxx-stl/llvm-libc++/libcxx/include/cstddef
index 7ef16ff..0030ec2 100644
--- a/9/sources/cxx-stl/llvm-libc++/libcxx/include/cstddef
+++ b/9/sources/cxx-stl/llvm-libc++/libcxx/include/cstddef
@@ -52,7 +52,12 @@ _LIBCPP_BEGIN_NAMESPACE_STD
using ::ptrdiff_t;
using ::size_t;
+#if defined(__CLANG_MAX_ALIGN_T_DEFINED) || defined(_GCC_MAX_ALIGN_T)
+// Re-use the compiler's <stddef.h> max_align_t where possible.
+using ::max_align_t;
+#else
typedef long double max_align_t;
+#endif
#ifdef _LIBCPP_HAS_NO_NULLPTR
diff --git a/9/sources/cxx-stl/llvm-libc++/libcxx/include/cstdio b/9/sources/cxx-stl/llvm-libc++/libcxx/include/cstdio
index 7787fad..8f2a7b0 100644
--- a/9/sources/cxx-stl/llvm-libc++/libcxx/include/cstdio
+++ b/9/sources/cxx-stl/llvm-libc++/libcxx/include/cstdio
@@ -126,6 +126,19 @@ inline _LIBCPP_INLINE_VISIBILITY int __libcpp_putc(int __c, FILE* __stream) {ret
inline _LIBCPP_INLINE_VISIBILITY int putc(int __c, FILE* __stream) {return __libcpp_putc(__c, __stream);}
#endif // putc
+#ifdef __ANDROID__
+// In bionic's stdio.h, putchar appears as both a function prototype and a macro (later
+// in the same header). Because it's defined as a macro, the following code snippet replaces
+// it with a function but with *different* visibility. GCC 4.x complains [-Wattributes]
+//
+// include/stdio.h:236:5: warning: conflicts with previous declaration here [-Wattributes]
+// int putchar(int);
+//
+// Undefine putchar to avoid redefinition, and putchar does exist in libc.so
+//
+#undef putchar
+#endif
+
#ifdef putchar
inline _LIBCPP_INLINE_VISIBILITY int __libcpp_putchar(int __c) {return putchar(__c);}
#undef putchar
diff --git a/9/sources/cxx-stl/llvm-libc++/libcxx/include/deque b/9/sources/cxx-stl/llvm-libc++/libcxx/include/deque
index f099000..9b256b7 100644
--- a/9/sources/cxx-stl/llvm-libc++/libcxx/include/deque
+++ b/9/sources/cxx-stl/llvm-libc++/libcxx/include/deque
@@ -1208,7 +1208,7 @@ public:
deque()
_NOEXCEPT_(is_nothrow_default_constructible<allocator_type>::value)
{}
- _LIBCPP_INLINE_VISIBILITY deque(const allocator_type& __a) : __base(__a) {}
+ _LIBCPP_INLINE_VISIBILITY explicit deque(const allocator_type& __a) : __base(__a) {}
explicit deque(size_type __n);
#if _LIBCPP_STD_VER > 11
explicit deque(size_type __n, const _Allocator& __a);
diff --git a/9/sources/cxx-stl/llvm-libc++/libcxx/include/ext/__hash b/9/sources/cxx-stl/llvm-libc++/libcxx/include/ext/__hash
index c0523cc..5675d54 100644
--- a/9/sources/cxx-stl/llvm-libc++/libcxx/include/ext/__hash
+++ b/9/sources/cxx-stl/llvm-libc++/libcxx/include/ext/__hash
@@ -19,8 +19,7 @@
namespace __gnu_cxx {
using namespace std;
-template <typename _Tp> struct _LIBCPP_TYPE_VIS_ONLY hash : public std::hash<_Tp>
- { };
+template <typename _Tp> struct _LIBCPP_TYPE_VIS_ONLY hash { };
template <> struct _LIBCPP_TYPE_VIS_ONLY hash<const char*>
: public unary_function<const char*, size_t>
@@ -41,6 +40,96 @@ template <> struct _LIBCPP_TYPE_VIS_ONLY hash<char *>
return __do_string_hash<const char *>(__c, __c + strlen(__c));
}
};
+
+template <> struct _LIBCPP_TYPE_VIS_ONLY hash<char>
+ : public unary_function<char, size_t>
+{
+ _LIBCPP_INLINE_VISIBILITY
+ size_t operator()(char __c) const _NOEXCEPT
+ {
+ return __c;
+ }
+};
+
+template <> struct _LIBCPP_TYPE_VIS_ONLY hash<signed char>
+ : public unary_function<signed char, size_t>
+{
+ _LIBCPP_INLINE_VISIBILITY
+ size_t operator()(signed char __c) const _NOEXCEPT
+ {
+ return __c;
+ }
+};
+
+template <> struct _LIBCPP_TYPE_VIS_ONLY hash<unsigned char>
+ : public unary_function<unsigned char, size_t>
+{
+ _LIBCPP_INLINE_VISIBILITY
+ size_t operator()(unsigned char __c) const _NOEXCEPT
+ {
+ return __c;
+ }
+};
+
+template <> struct _LIBCPP_TYPE_VIS_ONLY hash<short>
+ : public unary_function<short, size_t>
+{
+ _LIBCPP_INLINE_VISIBILITY
+ size_t operator()(short __c) const _NOEXCEPT
+ {
+ return __c;
+ }
+};
+
+template <> struct _LIBCPP_TYPE_VIS_ONLY hash<unsigned short>
+ : public unary_function<unsigned short, size_t>
+{
+ _LIBCPP_INLINE_VISIBILITY
+ size_t operator()(unsigned short __c) const _NOEXCEPT
+ {
+ return __c;
+ }
+};
+
+template <> struct _LIBCPP_TYPE_VIS_ONLY hash<int>
+ : public unary_function<int, size_t>
+{
+ _LIBCPP_INLINE_VISIBILITY
+ size_t operator()(int __c) const _NOEXCEPT
+ {
+ return __c;
+ }
+};
+
+template <> struct _LIBCPP_TYPE_VIS_ONLY hash<unsigned int>
+ : public unary_function<unsigned int, size_t>
+{
+ _LIBCPP_INLINE_VISIBILITY
+ size_t operator()(unsigned int __c) const _NOEXCEPT
+ {
+ return __c;
+ }
+};
+
+template <> struct _LIBCPP_TYPE_VIS_ONLY hash<long>
+ : public unary_function<long, size_t>
+{
+ _LIBCPP_INLINE_VISIBILITY
+ size_t operator()(long __c) const _NOEXCEPT
+ {
+ return __c;
+ }
+};
+
+template <> struct _LIBCPP_TYPE_VIS_ONLY hash<unsigned long>
+ : public unary_function<unsigned long, size_t>
+{
+ _LIBCPP_INLINE_VISIBILITY
+ size_t operator()(unsigned long __c) const _NOEXCEPT
+ {
+ return __c;
+ }
+};
}
#endif // _LIBCPP_EXT_HASH
diff --git a/9/sources/cxx-stl/llvm-libc++/libcxx/include/ext/hash_map b/9/sources/cxx-stl/llvm-libc++/libcxx/include/ext/hash_map
index 225b72b..36cd595 100644
--- a/9/sources/cxx-stl/llvm-libc++/libcxx/include/ext/hash_map
+++ b/9/sources/cxx-stl/llvm-libc++/libcxx/include/ext/hash_map
@@ -430,9 +430,9 @@ public:
typedef const value_type& reference;
typedef typename __pointer_traits::template
#ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES
- rebind<value_type>
+ rebind<const value_type>
#else
- rebind<value_type>::other
+ rebind<const value_type>::other
#endif
pointer;
diff --git a/9/sources/cxx-stl/llvm-libc++/libcxx/include/functional b/9/sources/cxx-stl/llvm-libc++/libcxx/include/functional
index 891ed46..167790b 100644
--- a/9/sources/cxx-stl/llvm-libc++/libcxx/include/functional
+++ b/9/sources/cxx-stl/llvm-libc++/libcxx/include/functional
@@ -1617,21 +1617,22 @@ function<_Rp(_ArgTypes...)>::function(allocator_arg_t, const _Alloc& __a0, _Fp _
if (__not_null(__f))
{
typedef __function::__func<_Fp, _Alloc, _Rp(_ArgTypes...)> _FF;
- if (sizeof(_FF) <= sizeof(__buf_) && is_nothrow_copy_constructible<_Fp>::value)
+ typedef typename __alloc_traits::template
+#ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES
+ rebind_alloc<_FF>
+#else
+ rebind_alloc<_FF>::other
+#endif
+ _Ap;
+ _Ap __a(__a0);
+ if (sizeof(_FF) <= sizeof(__buf_) &&
+ is_nothrow_copy_constructible<_Fp>::value && is_nothrow_copy_constructible<_Ap>::value)
{
__f_ = (__base*)&__buf_;
- ::new (__f_) _FF(_VSTD::move(__f));
+ ::new (__f_) _FF(_VSTD::move(__f), _Alloc(__a));
}
else
{
- typedef typename __alloc_traits::template
-#ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES
- rebind_alloc<_FF>
-#else
- rebind_alloc<_FF>::other
-#endif
- _Ap;
- _Ap __a(__a0);
typedef __allocator_destructor<_Ap> _Dp;
unique_ptr<__base, _Dp> __hold(__a.allocate(1), _Dp(__a, 1));
::new (__hold.get()) _FF(_VSTD::move(__f), _Alloc(__a));
diff --git a/9/sources/cxx-stl/llvm-libc++/libcxx/include/future b/9/sources/cxx-stl/llvm-libc++/libcxx/include/future
index 73d5456..de00f25 100644
--- a/9/sources/cxx-stl/llvm-libc++/libcxx/include/future
+++ b/9/sources/cxx-stl/llvm-libc++/libcxx/include/future
@@ -1872,7 +1872,7 @@ template <class _Fp>
__packaged_task_function<_Rp(_ArgTypes...)>::__packaged_task_function(_Fp&& __f)
: __f_(nullptr)
{
- typedef typename remove_reference<_Fp>::type _FR;
+ typedef typename remove_reference<typename decay<_Fp>::type>::type _FR;
typedef __packaged_task_func<_FR, allocator<_FR>, _Rp(_ArgTypes...)> _FF;
if (sizeof(_FF) <= sizeof(__buf_))
{
@@ -1897,7 +1897,7 @@ __packaged_task_function<_Rp(_ArgTypes...)>::__packaged_task_function(
: __f_(nullptr)
{
typedef allocator_traits<_Alloc> __alloc_traits;
- typedef typename remove_reference<_Fp>::type _FR;
+ typedef typename remove_reference<typename decay<_Fp>::type>::type _FR;
typedef __packaged_task_func<_FR, _Alloc, _Rp(_ArgTypes...)> _FF;
if (sizeof(_FF) <= sizeof(__buf_))
{
diff --git a/9/sources/cxx-stl/llvm-libc++/libcxx/include/iomanip b/9/sources/cxx-stl/llvm-libc++/libcxx/include/iomanip
index e334c7d..a5042c7 100644
--- a/9/sources/cxx-stl/llvm-libc++/libcxx/include/iomanip
+++ b/9/sources/cxx-stl/llvm-libc++/libcxx/include/iomanip
@@ -519,15 +519,16 @@ std::basic_ostream<_CharT, _Traits> &
__quoted_output ( basic_ostream<_CharT, _Traits> &__os,
_ForwardIterator __first, _ForwardIterator __last, _CharT __delim, _CharT __escape )
{
- __os << __delim;
+ _VSTD::basic_string<_CharT, _Traits> __str;
+ __str.push_back(__delim);
for ( ; __first != __last; ++ __first )
{
if (_Traits::eq (*__first, __escape) || _Traits::eq (*__first, __delim))
- __os << __escape;
- __os << *__first;
+ __str.push_back(__escape);
+ __str.push_back(*__first);
}
- __os << __delim;
- return __os;
+ __str.push_back(__delim);
+ return __put_character_sequence(__os, __str.data(), __str.size());
}
template <class _CharT, class _Traits, class _String>
diff --git a/9/sources/cxx-stl/llvm-libc++/libcxx/include/iterator b/9/sources/cxx-stl/llvm-libc++/libcxx/include/iterator
index c6dd033..f338e01 100644
--- a/9/sources/cxx-stl/llvm-libc++/libcxx/include/iterator
+++ b/9/sources/cxx-stl/llvm-libc++/libcxx/include/iterator
@@ -138,6 +138,8 @@ template <class Iterator>
reverse_iterator<Iterator>
operator+(typename reverse_iterator<Iterator>::difference_type n, const reverse_iterator<Iterator>& x);
+template <class Iterator> reverse_iterator<Iterator> make_reverse_iterator(Iterator i); // C++14
+
template <class Container>
class back_insert_iterator
{
@@ -327,6 +329,7 @@ template <class C> auto crend(const C& c) -> decltype(std::rend(c)); //
*/
#include <__config>
+#include <__functional_base>
#include <type_traits>
#include <cstddef>
#include <iosfwd>
@@ -534,7 +537,7 @@ class _LIBCPP_TYPE_VIS_ONLY reverse_iterator
typename iterator_traits<_Iter>::reference>
{
private:
- mutable _Iter __t;
+ mutable _Iter __t; // no longer used as of LWG #2360, not removed due to ABI break
protected:
_Iter current;
public:
@@ -548,8 +551,8 @@ public:
template <class _Up> _LIBCPP_INLINE_VISIBILITY reverse_iterator(const reverse_iterator<_Up>& __u)
: __t(__u.base()), current(__u.base()) {}
_LIBCPP_INLINE_VISIBILITY _Iter base() const {return current;}
- _LIBCPP_INLINE_VISIBILITY reference operator*() const {__t = current; return *--__t;}
- _LIBCPP_INLINE_VISIBILITY pointer operator->() const {return &(operator*());}
+ _LIBCPP_INLINE_VISIBILITY reference operator*() const {_Iter __tmp = current; return *--__tmp;}
+ _LIBCPP_INLINE_VISIBILITY pointer operator->() const {return _VSTD::addressof(operator*());}
_LIBCPP_INLINE_VISIBILITY reverse_iterator& operator++() {--current; return *this;}
_LIBCPP_INLINE_VISIBILITY reverse_iterator operator++(int)
{reverse_iterator __tmp(*this); --current; return __tmp;}
@@ -632,6 +635,15 @@ operator+(typename reverse_iterator<_Iter>::difference_type __n, const reverse_i
return reverse_iterator<_Iter>(__x.base() - __n);
}
+#if _LIBCPP_STD_VER > 11
+template <class _Iter>
+inline _LIBCPP_INLINE_VISIBILITY
+reverse_iterator<_Iter> make_reverse_iterator(_Iter __i)
+{
+ return reverse_iterator<_Iter>(__i);
+}
+#endif
+
template <class _Container>
class _LIBCPP_TYPE_VIS_ONLY back_insert_iterator
: public iterator<output_iterator_tag,
@@ -645,7 +657,7 @@ protected:
public:
typedef _Container container_type;
- _LIBCPP_INLINE_VISIBILITY explicit back_insert_iterator(_Container& __x) : container(&__x) {}
+ _LIBCPP_INLINE_VISIBILITY explicit back_insert_iterator(_Container& __x) : container(_VSTD::addressof(__x)) {}
_LIBCPP_INLINE_VISIBILITY back_insert_iterator& operator=(const typename _Container::value_type& __value_)
{container->push_back(__value_); return *this;}
#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
@@ -678,7 +690,7 @@ protected:
public:
typedef _Container container_type;
- _LIBCPP_INLINE_VISIBILITY explicit front_insert_iterator(_Container& __x) : container(&__x) {}
+ _LIBCPP_INLINE_VISIBILITY explicit front_insert_iterator(_Container& __x) : container(_VSTD::addressof(__x)) {}
_LIBCPP_INLINE_VISIBILITY front_insert_iterator& operator=(const typename _Container::value_type& __value_)
{container->push_front(__value_); return *this;}
#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
@@ -713,7 +725,7 @@ public:
typedef _Container container_type;
_LIBCPP_INLINE_VISIBILITY insert_iterator(_Container& __x, typename _Container::iterator __i)
- : container(&__x), iter(__i) {}
+ : container(_VSTD::addressof(__x)), iter(__i) {}
_LIBCPP_INLINE_VISIBILITY insert_iterator& operator=(const typename _Container::value_type& __value_)
{iter = container->insert(iter, __value_); ++iter; return *this;}
#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
@@ -1386,7 +1398,7 @@ operator+(typename __wrap_iter<_Iter>::difference_type __n,
}
template <class _Tp, size_t _Np>
-inline _LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
_Tp*
begin(_Tp (&__array)[_Np])
{
@@ -1394,7 +1406,7 @@ begin(_Tp (&__array)[_Np])
}
template <class _Tp, size_t _Np>
-inline _LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
_Tp*
end(_Tp (&__array)[_Np])
{
@@ -1466,17 +1478,17 @@ reverse_iterator<const _Ep*> rend(initializer_list<_Ep> __il)
}
template <class _Cp>
-inline _LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
auto cbegin(const _Cp& __c) -> decltype(begin(__c))
{
- return _VSTD::begin(__c);
+ return begin(__c);
}
template <class _Cp>
-inline _LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
auto cend(const _Cp& __c) -> decltype(end(__c))
{
- return _VSTD::end(__c);
+ return end(__c);
}
template <class _Cp>
diff --git a/9/sources/cxx-stl/llvm-libc++/libcxx/include/locale b/9/sources/cxx-stl/llvm-libc++/libcxx/include/locale
index cdfe120..7a94613 100644
--- a/9/sources/cxx-stl/llvm-libc++/libcxx/include/locale
+++ b/9/sources/cxx-stl/llvm-libc++/libcxx/include/locale
@@ -2799,7 +2799,7 @@ public:
explicit moneypunct_byname(const char* __nm, size_t __refs = 0)
: moneypunct<_CharT, _International>(__refs) {init(__nm);}
- _LIBCPP_ALWAYS_INLINE
+ _LIBCPP_ALWAYS_INLINE_EXCEPT_GCC49
explicit moneypunct_byname(const string& __nm, size_t __refs = 0)
: moneypunct<_CharT, _International>(__refs) {init(__nm.c_str());}
diff --git a/9/sources/cxx-stl/llvm-libc++/libcxx/include/map b/9/sources/cxx-stl/llvm-libc++/libcxx/include/map
index 9779b70..5534e40 100644
--- a/9/sources/cxx-stl/llvm-libc++/libcxx/include/map
+++ b/9/sources/cxx-stl/llvm-libc++/libcxx/include/map
@@ -835,11 +835,18 @@ public:
typedef _VSTD::reverse_iterator<const_iterator> const_reverse_iterator;
_LIBCPP_INLINE_VISIBILITY
- explicit map(const key_compare& __comp = key_compare())
+ map()
_NOEXCEPT_(
is_nothrow_default_constructible<allocator_type>::value &&
is_nothrow_default_constructible<key_compare>::value &&
is_nothrow_copy_constructible<key_compare>::value)
+ : __tree_(__vc(key_compare())) {}
+
+ _LIBCPP_INLINE_VISIBILITY
+ explicit map(const key_compare& __comp)
+ _NOEXCEPT_(
+ is_nothrow_default_constructible<allocator_type>::value &&
+ is_nothrow_copy_constructible<key_compare>::value)
: __tree_(__vc(__comp)) {}
_LIBCPP_INLINE_VISIBILITY
@@ -1568,11 +1575,18 @@ public:
typedef _VSTD::reverse_iterator<const_iterator> const_reverse_iterator;
_LIBCPP_INLINE_VISIBILITY
- explicit multimap(const key_compare& __comp = key_compare())
+ multimap()
_NOEXCEPT_(
is_nothrow_default_constructible<allocator_type>::value &&
is_nothrow_default_constructible<key_compare>::value &&
is_nothrow_copy_constructible<key_compare>::value)
+ : __tree_(__vc(key_compare())) {}
+
+ _LIBCPP_INLINE_VISIBILITY
+ explicit multimap(const key_compare& __comp)
+ _NOEXCEPT_(
+ is_nothrow_default_constructible<allocator_type>::value &&
+ is_nothrow_copy_constructible<key_compare>::value)
: __tree_(__vc(__comp)) {}
_LIBCPP_INLINE_VISIBILITY
diff --git a/9/sources/cxx-stl/llvm-libc++/libcxx/include/memory b/9/sources/cxx-stl/llvm-libc++/libcxx/include/memory
index b9f61c2..d19bb7f 100644
--- a/9/sources/cxx-stl/llvm-libc++/libcxx/include/memory
+++ b/9/sources/cxx-stl/llvm-libc++/libcxx/include/memory
@@ -479,6 +479,8 @@ public:
template<class Y> weak_ptr(shared_ptr<Y> const& r) noexcept;
weak_ptr(weak_ptr const& r) noexcept;
template<class Y> weak_ptr(weak_ptr<Y> const& r) noexcept;
+ weak_ptr(weak_ptr&& r) noexcept; // C++14
+ template<class Y> weak_ptr(weak_ptr<Y>&& r) noexcept; // C++14
// destructor
~weak_ptr();
@@ -487,6 +489,8 @@ public:
weak_ptr& operator=(weak_ptr const& r) noexcept;
template<class Y> weak_ptr& operator=(weak_ptr<Y> const& r) noexcept;
template<class Y> weak_ptr& operator=(shared_ptr<Y> const& r) noexcept;
+ weak_ptr& operator=(weak_ptr&& r) noexcept; // C++14
+ template<class Y> weak_ptr& operator=(weak_ptr<Y>&& r) noexcept; // C++14
// modifiers
void swap(weak_ptr& r) noexcept;
@@ -2397,13 +2401,14 @@ template <class _Ptr1, class _Ptr2>
struct __same_or_less_cv_qualified_imp<_Ptr1, _Ptr2, false>
: false_type {};
-template <class _Ptr1, class _Ptr2, bool = is_scalar<_Ptr1>::value &&
- !is_pointer<_Ptr1>::value>
+template <class _Ptr1, class _Ptr2, bool = is_pointer<_Ptr1>::value ||
+ is_same<_Ptr1, _Ptr2>::value ||
+ __has_element_type<_Ptr1>::value>
struct __same_or_less_cv_qualified
: __same_or_less_cv_qualified_imp<_Ptr1, _Ptr2> {};
template <class _Ptr1, class _Ptr2>
-struct __same_or_less_cv_qualified<_Ptr1, _Ptr2, true>
+struct __same_or_less_cv_qualified<_Ptr1, _Ptr2, false>
: false_type {};
// default_delete
diff --git a/9/sources/cxx-stl/llvm-libc++/libcxx/include/ostream b/9/sources/cxx-stl/llvm-libc++/libcxx/include/ostream
index 20587a1..9d96fd8 100644
--- a/9/sources/cxx-stl/llvm-libc++/libcxx/include/ostream
+++ b/9/sources/cxx-stl/llvm-libc++/libcxx/include/ostream
@@ -765,7 +765,7 @@ template<class _CharT, class _Traits>
basic_ostream<_CharT, _Traits>&
operator<<(basic_ostream<_CharT, _Traits>& __os, _CharT __c)
{
- return _VSTD::__put_character_sequence(__os, &__c, 1);
+ return _VSTD::__put_character_sequence(__os, &__c, 1);
}
template<class _CharT, class _Traits>
@@ -805,28 +805,28 @@ template<class _Traits>
basic_ostream<char, _Traits>&
operator<<(basic_ostream<char, _Traits>& __os, char __c)
{
- return _VSTD::__put_character_sequence(__os, &__c, 1);
+ return _VSTD::__put_character_sequence(__os, &__c, 1);
}
template<class _Traits>
basic_ostream<char, _Traits>&
operator<<(basic_ostream<char, _Traits>& __os, signed char __c)
{
- return _VSTD::__put_character_sequence(__os, (char *) &__c, 1);
+ return _VSTD::__put_character_sequence(__os, (char *) &__c, 1);
}
template<class _Traits>
basic_ostream<char, _Traits>&
operator<<(basic_ostream<char, _Traits>& __os, unsigned char __c)
{
- return _VSTD::__put_character_sequence(__os, (char *) &__c, 1);
+ return _VSTD::__put_character_sequence(__os, (char *) &__c, 1);
}
template<class _CharT, class _Traits>
basic_ostream<_CharT, _Traits>&
operator<<(basic_ostream<_CharT, _Traits>& __os, const _CharT* __str)
{
- return _VSTD::__put_character_sequence(__os, __str, _Traits::length(__str));
+ return _VSTD::__put_character_sequence(__os, __str, _Traits::length(__str));
}
template<class _CharT, class _Traits>
@@ -879,23 +879,23 @@ template<class _Traits>
basic_ostream<char, _Traits>&
operator<<(basic_ostream<char, _Traits>& __os, const char* __str)
{
- return _VSTD::__put_character_sequence(__os, __str, _Traits::length(__str));
+ return _VSTD::__put_character_sequence(__os, __str, _Traits::length(__str));
}
template<class _Traits>
basic_ostream<char, _Traits>&
operator<<(basic_ostream<char, _Traits>& __os, const signed char* __str)
{
- const char *__s = (const char *) __str;
- return _VSTD::__put_character_sequence(__os, __s, _Traits::length(__s));
+ const char *__s = (const char *) __str;
+ return _VSTD::__put_character_sequence(__os, __s, _Traits::length(__s));
}
template<class _Traits>
basic_ostream<char, _Traits>&
operator<<(basic_ostream<char, _Traits>& __os, const unsigned char* __str)
{
- const char *__s = (const char *) __str;
- return _VSTD::__put_character_sequence(__os, __s, _Traits::length(__s));
+ const char *__s = (const char *) __str;
+ return _VSTD::__put_character_sequence(__os, __s, _Traits::length(__s));
}
template <class _CharT, class _Traits>
@@ -1065,7 +1065,7 @@ basic_ostream<_CharT, _Traits>&
operator<<(basic_ostream<_CharT, _Traits>& __os,
const basic_string<_CharT, _Traits, _Allocator>& __str)
{
- return _VSTD::__put_character_sequence(__os, __str.data(), __str.size());
+ return _VSTD::__put_character_sequence(__os, __str.data(), __str.size());
}
template <class _CharT, class _Traits>
diff --git a/9/sources/cxx-stl/llvm-libc++/libcxx/include/regex b/9/sources/cxx-stl/llvm-libc++/libcxx/include/regex
index 8c95145..26ade48 100644
--- a/9/sources/cxx-stl/llvm-libc++/libcxx/include/regex
+++ b/9/sources/cxx-stl/llvm-libc++/libcxx/include/regex
@@ -437,7 +437,7 @@ class match_results
public:
typedef sub_match<BidirectionalIterator> value_type;
typedef const value_type& const_reference;
- typedef const_reference reference;
+ typedef value_type& reference;
typedef /implementation-defined/ const_iterator;
typedef const_iterator iterator;
typedef typename iterator_traits<BidirectionalIterator>::difference_type difference_type;
@@ -546,6 +546,13 @@ template <class ST, class SA, class Allocator, class charT, class traits>
const basic_regex<charT, traits>& e,
regex_constants::match_flag_type flags = regex_constants::match_default);
+template <class ST, class SA, class Allocator, class charT, class traits>
+ bool
+ regex_match(const basic_string<charT, ST, SA>&& s,
+ match_results<typename basic_string<charT, ST, SA>::const_iterator, Allocator>& m,
+ const basic_regex<charT, traits>& e,
+ regex_constants::match_flag_type flags = regex_constants::match_default) = delete; // C++14
+
template <class charT, class traits>
bool
regex_match(const charT* str, const basic_regex<charT, traits>& e,
@@ -594,6 +601,13 @@ template <class ST, class SA, class Allocator, class charT, class traits>
const basic_regex<charT, traits>& e,
regex_constants::match_flag_type flags = regex_constants::match_default);
+template <class ST, class SA, class Allocator, class charT, class traits>
+ bool
+ regex_search(const basic_string<charT, ST, SA>&& s,
+ match_results<typename basic_string<charT, ST, SA>::const_iterator, Allocator>& m,
+ const basic_regex<charT, traits>& e,
+ regex_constants::match_flag_type flags = regex_constants::match_default) = delete; // C++14
+
template <class OutputIterator, class BidirectionalIterator,
class traits, class charT, class ST, class SA>
OutputIterator
@@ -655,6 +669,10 @@ public:
regex_iterator(BidirectionalIterator a, BidirectionalIterator b,
const regex_type& re,
regex_constants::match_flag_type m = regex_constants::match_default);
+ regex_iterator(_BidirectionalIterator __a, _BidirectionalIterator __b,
+ const regex_type&& __re,
+ regex_constants::match_flag_type __m
+ = regex_constants::match_default) = delete; // C++14
regex_iterator(const regex_iterator&);
regex_iterator& operator=(const regex_iterator&);
@@ -691,15 +709,28 @@ public:
const regex_type& re, int submatch = 0,
regex_constants::match_flag_type m = regex_constants::match_default);
regex_token_iterator(BidirectionalIterator a, BidirectionalIterator b,
+ const regex_type&& re, int submatch = 0,
+ regex_constants::match_flag_type m = regex_constants::match_default) = delete; // C++14
+ regex_token_iterator(BidirectionalIterator a, BidirectionalIterator b,
const regex_type& re, const vector<int>& submatches,
regex_constants::match_flag_type m = regex_constants::match_default);
regex_token_iterator(BidirectionalIterator a, BidirectionalIterator b,
+ const regex_type&& re, const vector<int>& submatches,
+ regex_constants::match_flag_type m = regex_constants::match_default) = delete; // C++14
+ regex_token_iterator(BidirectionalIterator a, BidirectionalIterator b,
const regex_type& re, initializer_list<int> submatches,
regex_constants::match_flag_type m = regex_constants::match_default);
+ regex_token_iterator(BidirectionalIterator a, BidirectionalIterator b,
+ const regex_type&& re, initializer_list<int> submatches,
+ regex_constants::match_flag_type m = regex_constants::match_default) = delete; // C++14
template <size_t N>
regex_token_iterator(BidirectionalIterator a, BidirectionalIterator b,
const regex_type& re, const int (&submatches)[N],
regex_constants::match_flag_type m = regex_constants::match_default);
+ template <size_t N>
+ regex_token_iterator(BidirectionalIterator a, BidirectionalIterator b,
+ const regex_type& re, const int (&submatches)[N],
+ regex_constants::match_flag_type m = regex_constants::match_default) = delete // C++14;
regex_token_iterator(const regex_token_iterator&);
regex_token_iterator& operator=(const regex_token_iterator&);
@@ -5232,7 +5263,7 @@ private:
public:
_BidirectionalIterator __position_start_;
typedef const value_type& const_reference;
- typedef const_reference reference;
+ typedef value_type& reference;
typedef typename __container_type::const_iterator const_iterator;
typedef const_iterator iterator;
typedef typename iterator_traits<_BidirectionalIterator>::difference_type difference_type;
@@ -5943,6 +5974,15 @@ regex_search(const basic_string<_CharT, _ST, _SA>& __s,
return __r;
}
+#if _LIBCPP_STD_VER > 11
+template <class _ST, class _SA, class _Ap, class _Cp, class _Tp>
+bool
+regex_search(const basic_string<_Cp, _ST, _SA>&& __s,
+ match_results<typename basic_string<_Cp, _ST, _SA>::const_iterator, _Ap>&,
+ const basic_regex<_Cp, _Tp>& __e,
+ regex_constants::match_flag_type __flags = regex_constants::match_default) = delete;
+#endif
+
// regex_match
template <class _BidirectionalIterator, class _Allocator, class _CharT, class _Traits>
@@ -5995,6 +6035,16 @@ regex_match(const basic_string<_CharT, _ST, _SA>& __s,
return _VSTD::regex_match(__s.begin(), __s.end(), __m, __e, __flags);
}
+#if _LIBCPP_STD_VER > 11
+template <class _ST, class _SA, class _Allocator, class _CharT, class _Traits>
+inline _LIBCPP_INLINE_VISIBILITY
+bool
+regex_match(const basic_string<_CharT, _ST, _SA>&& __s,
+ match_results<typename basic_string<_CharT, _ST, _SA>::const_iterator, _Allocator>& __m,
+ const basic_regex<_CharT, _Traits>& __e,
+ regex_constants::match_flag_type __flags = regex_constants::match_default) = delete;
+#endif
+
template <class _CharT, class _Traits>
inline _LIBCPP_INLINE_VISIBILITY
bool
@@ -6040,7 +6090,14 @@ public:
regex_iterator();
regex_iterator(_BidirectionalIterator __a, _BidirectionalIterator __b,
const regex_type& __re,
- regex_constants::match_flag_type __m = regex_constants::match_default);
+ regex_constants::match_flag_type __m
+ = regex_constants::match_default);
+#if _LIBCPP_STD_VER > 11
+ regex_iterator(_BidirectionalIterator __a, _BidirectionalIterator __b,
+ const regex_type&& __re,
+ regex_constants::match_flag_type __m
+ = regex_constants::match_default) = delete;
+#endif
bool operator==(const regex_iterator& __x) const;
_LIBCPP_INLINE_VISIBILITY
@@ -6156,16 +6213,38 @@ public:
const regex_type& __re, int __submatch = 0,
regex_constants::match_flag_type __m =
regex_constants::match_default);
+#if _LIBCPP_STD_VER > 11
+ regex_token_iterator(_BidirectionalIterator __a, _BidirectionalIterator __b,
+ const regex_type&& __re, int __submatch = 0,
+ regex_constants::match_flag_type __m =
+ regex_constants::match_default) = delete;
+#endif
+
regex_token_iterator(_BidirectionalIterator __a, _BidirectionalIterator __b,
const regex_type& __re, const vector<int>& __submatches,
regex_constants::match_flag_type __m =
regex_constants::match_default);
+#if _LIBCPP_STD_VER > 11
+ regex_token_iterator(_BidirectionalIterator __a, _BidirectionalIterator __b,
+ const regex_type&& __re, const vector<int>& __submatches,
+ regex_constants::match_flag_type __m =
+ regex_constants::match_default) = delete;
+#endif
+
#ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
regex_token_iterator(_BidirectionalIterator __a, _BidirectionalIterator __b,
const regex_type& __re,
initializer_list<int> __submatches,
regex_constants::match_flag_type __m =
regex_constants::match_default);
+
+#if _LIBCPP_STD_VER > 11
+ regex_token_iterator(_BidirectionalIterator __a, _BidirectionalIterator __b,
+ const regex_type&& __re,
+ initializer_list<int> __submatches,
+ regex_constants::match_flag_type __m =
+ regex_constants::match_default) = delete;
+#endif
#endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
template <size_t _Np>
regex_token_iterator(_BidirectionalIterator __a,
@@ -6174,6 +6253,16 @@ public:
const int (&__submatches)[_Np],
regex_constants::match_flag_type __m =
regex_constants::match_default);
+#if _LIBCPP_STD_VER > 11
+ template <std::size_t _Np>
+ regex_token_iterator(_BidirectionalIterator __a,
+ _BidirectionalIterator __b,
+ const regex_type&& __re,
+ const int (&__submatches)[_Np],
+ regex_constants::match_flag_type __m =
+ regex_constants::match_default) = delete;
+#endif
+
regex_token_iterator(const regex_token_iterator&);
regex_token_iterator& operator=(const regex_token_iterator&);
diff --git a/9/sources/cxx-stl/llvm-libc++/libcxx/include/set b/9/sources/cxx-stl/llvm-libc++/libcxx/include/set
index a537c5f..b9e776d 100644
--- a/9/sources/cxx-stl/llvm-libc++/libcxx/include/set
+++ b/9/sources/cxx-stl/llvm-libc++/libcxx/include/set
@@ -425,14 +425,22 @@ public:
typedef _VSTD::reverse_iterator<const_iterator> const_reverse_iterator;
_LIBCPP_INLINE_VISIBILITY
- explicit set(const value_compare& __comp = value_compare())
+ set()
_NOEXCEPT_(
is_nothrow_default_constructible<allocator_type>::value &&
is_nothrow_default_constructible<key_compare>::value &&
is_nothrow_copy_constructible<key_compare>::value)
+ : __tree_(value_compare()) {}
+
+ _LIBCPP_INLINE_VISIBILITY
+ explicit set(const value_compare& __comp)
+ _NOEXCEPT_(
+ is_nothrow_default_constructible<allocator_type>::value &&
+ is_nothrow_copy_constructible<key_compare>::value)
: __tree_(__comp) {}
+
_LIBCPP_INLINE_VISIBILITY
- set(const value_compare& __comp, const allocator_type& __a)
+ explicit set(const value_compare& __comp, const allocator_type& __a)
: __tree_(__comp, __a) {}
template <class _InputIterator>
_LIBCPP_INLINE_VISIBILITY
@@ -822,14 +830,22 @@ public:
// construct/copy/destroy:
_LIBCPP_INLINE_VISIBILITY
- explicit multiset(const value_compare& __comp = value_compare())
+ multiset()
_NOEXCEPT_(
is_nothrow_default_constructible<allocator_type>::value &&
is_nothrow_default_constructible<key_compare>::value &&
is_nothrow_copy_constructible<key_compare>::value)
+ : __tree_(value_compare()) {}
+
+ _LIBCPP_INLINE_VISIBILITY
+ explicit multiset(const value_compare& __comp)
+ _NOEXCEPT_(
+ is_nothrow_default_constructible<allocator_type>::value &&
+ is_nothrow_copy_constructible<key_compare>::value)
: __tree_(__comp) {}
+
_LIBCPP_INLINE_VISIBILITY
- multiset(const value_compare& __comp, const allocator_type& __a)
+ explicit multiset(const value_compare& __comp, const allocator_type& __a)
: __tree_(__comp, __a) {}
template <class _InputIterator>
_LIBCPP_INLINE_VISIBILITY
diff --git a/9/sources/cxx-stl/llvm-libc++/libcxx/include/shared_mutex b/9/sources/cxx-stl/llvm-libc++/libcxx/include/shared_mutex
index 5b1f53a..7661054 100644
--- a/9/sources/cxx-stl/llvm-libc++/libcxx/include/shared_mutex
+++ b/9/sources/cxx-stl/llvm-libc++/libcxx/include/shared_mutex
@@ -19,14 +19,14 @@
namespace std
{
-class shared_mutex
+class shared_timed_mutex
{
public:
- shared_mutex();
- ~shared_mutex();
+ shared_timed_mutex();
+ ~shared_timed_mutex();
- shared_mutex(const shared_mutex&) = delete;
- shared_mutex& operator=(const shared_mutex&) = delete;
+ shared_timed_mutex(const shared_timed_mutex&) = delete;
+ shared_timed_mutex& operator=(const shared_timed_mutex&) = delete;
// Exclusive ownership
void lock(); // blocking
@@ -114,7 +114,7 @@ template <class Mutex>
_LIBCPP_BEGIN_NAMESPACE_STD
-class _LIBCPP_TYPE_VIS shared_mutex
+class _LIBCPP_TYPE_VIS shared_timed_mutex
{
mutex __mut_;
condition_variable __gate1_;
@@ -124,11 +124,11 @@ class _LIBCPP_TYPE_VIS shared_mutex
static const unsigned __write_entered_ = 1U << (sizeof(unsigned)*__CHAR_BIT__ - 1);
static const unsigned __n_readers_ = ~__write_entered_;
public:
- shared_mutex();
- _LIBCPP_INLINE_VISIBILITY ~shared_mutex() = default;
+ shared_timed_mutex();
+ _LIBCPP_INLINE_VISIBILITY ~shared_timed_mutex() = default;
- shared_mutex(const shared_mutex&) = delete;
- shared_mutex& operator=(const shared_mutex&) = delete;
+ shared_timed_mutex(const shared_timed_mutex&) = delete;
+ shared_timed_mutex& operator=(const shared_timed_mutex&) = delete;
// Exclusive ownership
void lock();
@@ -163,7 +163,7 @@ public:
template <class _Clock, class _Duration>
bool
-shared_mutex::try_lock_until(
+shared_timed_mutex::try_lock_until(
const chrono::time_point<_Clock, _Duration>& __abs_time)
{
unique_lock<mutex> __lk(__mut_);
@@ -198,7 +198,7 @@ shared_mutex::try_lock_until(
template <class _Clock, class _Duration>
bool
-shared_mutex::try_lock_shared_until(
+shared_timed_mutex::try_lock_shared_until(
const chrono::time_point<_Clock, _Duration>& __abs_time)
{
unique_lock<mutex> __lk(__mut_);
diff --git a/9/sources/cxx-stl/llvm-libc++/libcxx/include/string b/9/sources/cxx-stl/llvm-libc++/libcxx/include/string
index f93fac1..7e61909 100644
--- a/9/sources/cxx-stl/llvm-libc++/libcxx/include/string
+++ b/9/sources/cxx-stl/llvm-libc++/libcxx/include/string
@@ -161,7 +161,7 @@ public:
basic_string& operator+=(initializer_list<value_type>);
basic_string& append(const basic_string& str);
- basic_string& append(const basic_string& str, size_type pos, size_type n);
+ basic_string& append(const basic_string& str, size_type pos, size_type n=npos); //C++14
basic_string& append(const value_type* s, size_type n);
basic_string& append(const value_type* s);
basic_string& append(size_type n, value_type c);
@@ -178,7 +178,7 @@ public:
basic_string& assign(const basic_string& str);
basic_string& assign(basic_string&& str);
- basic_string& assign(const basic_string& str, size_type pos, size_type n);
+ basic_string& assign(const basic_string& str, size_type pos, size_type n=npos); // C++14
basic_string& assign(const value_type* s, size_type n);
basic_string& assign(const value_type* s);
basic_string& assign(size_type n, value_type c);
@@ -189,7 +189,7 @@ public:
basic_string& insert(size_type pos1, const basic_string& str);
basic_string& insert(size_type pos1, const basic_string& str,
size_type pos2, size_type n);
- basic_string& insert(size_type pos, const value_type* s, size_type n);
+ basic_string& insert(size_type pos, const value_type* s, size_type n=npos); //C++14
basic_string& insert(size_type pos, const value_type* s);
basic_string& insert(size_type pos, size_type n, value_type c);
iterator insert(const_iterator p, value_type c);
@@ -204,7 +204,7 @@ public:
basic_string& replace(size_type pos1, size_type n1, const basic_string& str);
basic_string& replace(size_type pos1, size_type n1, const basic_string& str,
- size_type pos2, size_type n2);
+ size_type pos2, size_type n2=npos); // C++14
basic_string& replace(size_type pos, size_type n1, const value_type* s, size_type n2);
basic_string& replace(size_type pos, size_type n1, const value_type* s);
basic_string& replace(size_type pos, size_type n1, size_type n2, value_type c);
@@ -261,7 +261,7 @@ public:
int compare(const basic_string& str) const noexcept;
int compare(size_type pos1, size_type n1, const basic_string& str) const;
int compare(size_type pos1, size_type n1, const basic_string& str,
- size_type pos2, size_type n2) const;
+ size_type pos2, size_type n2=npos) const; // C++14
int compare(const value_type* s) const noexcept;
int compare(size_type pos1, size_type n1, const value_type* s) const;
int compare(size_type pos1, size_type n1, const value_type* s, size_type n2) const;
@@ -1426,7 +1426,7 @@ public:
_LIBCPP_INLINE_VISIBILITY
basic_string& append(const basic_string& __str);
- basic_string& append(const basic_string& __str, size_type __pos, size_type __n);
+ basic_string& append(const basic_string& __str, size_type __pos, size_type __n=npos);
basic_string& append(const value_type* __s, size_type __n);
basic_string& append(const value_type* __s);
basic_string& append(size_type __n, value_type __c);
@@ -1465,7 +1465,7 @@ public:
basic_string& assign(basic_string&& str)
{*this = _VSTD::move(str); return *this;}
#endif
- basic_string& assign(const basic_string& __str, size_type __pos, size_type __n);
+ basic_string& assign(const basic_string& __str, size_type __pos, size_type __n=npos);
basic_string& assign(const value_type* __s, size_type __n);
basic_string& assign(const value_type* __s);
basic_string& assign(size_type __n, value_type __c);
@@ -1491,7 +1491,7 @@ public:
_LIBCPP_INLINE_VISIBILITY
basic_string& insert(size_type __pos1, const basic_string& __str);
- basic_string& insert(size_type __pos1, const basic_string& __str, size_type __pos2, size_type __n);
+ basic_string& insert(size_type __pos1, const basic_string& __str, size_type __pos2, size_type __n=npos);
basic_string& insert(size_type __pos, const value_type* __s, size_type __n);
basic_string& insert(size_type __pos, const value_type* __s);
basic_string& insert(size_type __pos, size_type __n, value_type __c);
@@ -1527,7 +1527,7 @@ public:
_LIBCPP_INLINE_VISIBILITY
basic_string& replace(size_type __pos1, size_type __n1, const basic_string& __str);
- basic_string& replace(size_type __pos1, size_type __n1, const basic_string& __str, size_type __pos2, size_type __n2);
+ basic_string& replace(size_type __pos1, size_type __n1, const basic_string& __str, size_type __pos2, size_type __n2=npos);
basic_string& replace(size_type __pos, size_type __n1, const value_type* __s, size_type __n2);
basic_string& replace(size_type __pos, size_type __n1, const value_type* __s);
basic_string& replace(size_type __pos, size_type __n1, size_type __n2, value_type __c);
@@ -1619,7 +1619,7 @@ public:
int compare(const basic_string& __str) const _NOEXCEPT;
_LIBCPP_INLINE_VISIBILITY
int compare(size_type __pos1, size_type __n1, const basic_string& __str) const;
- int compare(size_type __pos1, size_type __n1, const basic_string& __str, size_type __pos2, size_type __n2) const;
+ int compare(size_type __pos1, size_type __n1, const basic_string& __str, size_type __pos2, size_type __n2=npos) const;
int compare(const value_type* __s) const _NOEXCEPT;
int compare(size_type __pos1, size_type __n1, const value_type* __s) const;
int compare(size_type __pos1, size_type __n1, const value_type* __s, size_type __n2) const;
@@ -3467,7 +3467,7 @@ basic_string<_CharT, _Traits, _Allocator>::find_first_of(const value_type* __s,
{
_LIBCPP_ASSERT(__n == 0 || __s != nullptr, "string::find_first_of(): recieved nullptr");
return _VSTD::__find_first_of<value_type, size_type, traits_type, npos>
- (data(), size(), __s, __pos, __n);
+ (data(), size(), __s, __pos, __n);
}
template<class _CharT, class _Traits, class _Allocator>
@@ -3477,7 +3477,7 @@ basic_string<_CharT, _Traits, _Allocator>::find_first_of(const basic_string& __s
size_type __pos) const _NOEXCEPT
{
return _VSTD::__find_first_of<value_type, size_type, traits_type, npos>
- (data(), size(), __str.data(), __pos, __str.size());
+ (data(), size(), __str.data(), __pos, __str.size());
}
template<class _CharT, class _Traits, class _Allocator>
@@ -3488,7 +3488,7 @@ basic_string<_CharT, _Traits, _Allocator>::find_first_of(const value_type* __s,
{
_LIBCPP_ASSERT(__s != nullptr, "string::find_first_of(): recieved nullptr");
return _VSTD::__find_first_of<value_type, size_type, traits_type, npos>
- (data(), size(), __s, __pos, traits_type::length(__s));
+ (data(), size(), __s, __pos, traits_type::length(__s));
}
template<class _CharT, class _Traits, class _Allocator>
@@ -3510,7 +3510,7 @@ basic_string<_CharT, _Traits, _Allocator>::find_last_of(const value_type* __s,
{
_LIBCPP_ASSERT(__n == 0 || __s != nullptr, "string::find_last_of(): recieved nullptr");
return _VSTD::__find_last_of<value_type, size_type, traits_type, npos>
- (data(), size(), __s, __pos, __n);
+ (data(), size(), __s, __pos, __n);
}
template<class _CharT, class _Traits, class _Allocator>
@@ -3520,7 +3520,7 @@ basic_string<_CharT, _Traits, _Allocator>::find_last_of(const basic_string& __st
size_type __pos) const _NOEXCEPT
{
return _VSTD::__find_last_of<value_type, size_type, traits_type, npos>
- (data(), size(), __str.data(), __pos, __str.size());
+ (data(), size(), __str.data(), __pos, __str.size());
}
template<class _CharT, class _Traits, class _Allocator>
@@ -3531,7 +3531,7 @@ basic_string<_CharT, _Traits, _Allocator>::find_last_of(const value_type* __s,
{
_LIBCPP_ASSERT(__s != nullptr, "string::find_last_of(): recieved nullptr");
return _VSTD::__find_last_of<value_type, size_type, traits_type, npos>
- (data(), size(), __s, __pos, traits_type::length(__s));
+ (data(), size(), __s, __pos, traits_type::length(__s));
}
template<class _CharT, class _Traits, class _Allocator>
@@ -3553,7 +3553,7 @@ basic_string<_CharT, _Traits, _Allocator>::find_first_not_of(const value_type* _
{
_LIBCPP_ASSERT(__n == 0 || __s != nullptr, "string::find_first_not_of(): recieved nullptr");
return _VSTD::__find_first_not_of<value_type, size_type, traits_type, npos>
- (data(), size(), __s, __pos, __n);
+ (data(), size(), __s, __pos, __n);
}
template<class _CharT, class _Traits, class _Allocator>
@@ -3563,7 +3563,7 @@ basic_string<_CharT, _Traits, _Allocator>::find_first_not_of(const basic_string&
size_type __pos) const _NOEXCEPT
{
return _VSTD::__find_first_not_of<value_type, size_type, traits_type, npos>
- (data(), size(), __str.data(), __pos, __str.size());
+ (data(), size(), __str.data(), __pos, __str.size());
}
template<class _CharT, class _Traits, class _Allocator>
@@ -3574,7 +3574,7 @@ basic_string<_CharT, _Traits, _Allocator>::find_first_not_of(const value_type* _
{
_LIBCPP_ASSERT(__s != nullptr, "string::find_first_not_of(): recieved nullptr");
return _VSTD::__find_first_not_of<value_type, size_type, traits_type, npos>
- (data(), size(), __s, __pos, traits_type::length(__s));
+ (data(), size(), __s, __pos, traits_type::length(__s));
}
template<class _CharT, class _Traits, class _Allocator>
@@ -3584,7 +3584,7 @@ basic_string<_CharT, _Traits, _Allocator>::find_first_not_of(value_type __c,
size_type __pos) const _NOEXCEPT
{
return _VSTD::__find_first_not_of<value_type, size_type, traits_type, npos>
- (data(), size(), __c, __pos);
+ (data(), size(), __c, __pos);
}
// find_last_not_of
@@ -3597,7 +3597,7 @@ basic_string<_CharT, _Traits, _Allocator>::find_last_not_of(const value_type* __
{
_LIBCPP_ASSERT(__n == 0 || __s != nullptr, "string::find_last_not_of(): recieved nullptr");
return _VSTD::__find_last_not_of<value_type, size_type, traits_type, npos>
- (data(), size(), __s, __pos, __n);
+ (data(), size(), __s, __pos, __n);
}
template<class _CharT, class _Traits, class _Allocator>
@@ -3607,7 +3607,7 @@ basic_string<_CharT, _Traits, _Allocator>::find_last_not_of(const basic_string&
size_type __pos) const _NOEXCEPT
{
return _VSTD::__find_last_not_of<value_type, size_type, traits_type, npos>
- (data(), size(), __str.data(), __pos, __str.size());
+ (data(), size(), __str.data(), __pos, __str.size());
}
template<class _CharT, class _Traits, class _Allocator>
@@ -3618,7 +3618,7 @@ basic_string<_CharT, _Traits, _Allocator>::find_last_not_of(const value_type* __
{
_LIBCPP_ASSERT(__s != nullptr, "string::find_last_not_of(): recieved nullptr");
return _VSTD::__find_last_not_of<value_type, size_type, traits_type, npos>
- (data(), size(), __s, __pos, traits_type::length(__s));
+ (data(), size(), __s, __pos, traits_type::length(__s));
}
template<class _CharT, class _Traits, class _Allocator>
@@ -3628,7 +3628,7 @@ basic_string<_CharT, _Traits, _Allocator>::find_last_not_of(value_type __c,
size_type __pos) const _NOEXCEPT
{
return _VSTD::__find_last_not_of<value_type, size_type, traits_type, npos>
- (data(), size(), __c, __pos);
+ (data(), size(), __c, __pos);
}
// compare
diff --git a/9/sources/cxx-stl/llvm-libc++/libcxx/include/tuple b/9/sources/cxx-stl/llvm-libc++/libcxx/include/tuple
index 24e086d..27a5a46 100644
--- a/9/sources/cxx-stl/llvm-libc++/libcxx/include/tuple
+++ b/9/sources/cxx-stl/llvm-libc++/libcxx/include/tuple
@@ -74,7 +74,7 @@ const unspecified ignore;
template <class... T> tuple<V...> make_tuple(T&&...); // constexpr in C++14
template <class... T> tuple<ATypes...> forward_as_tuple(T&&...) noexcept; // constexpr in C++14
-template <class... T> tuple<T&...> tie(T&...) noexcept;
+template <class... T> tuple<T&...> tie(T&...) noexcept; // constexpr in C++14
template <class... Tuples> tuple<CTypes...> tuple_cat(Tuples&&... tpls); // constexpr in C++14
// 20.4.1.4, tuple helper classes:
@@ -82,13 +82,15 @@ template <class T> class tuple_size; // undefined
template <class... T> class tuple_size<tuple<T...>>;
template <intsize_t I, class T> class tuple_element; // undefined
template <intsize_t I, class... T> class tuple_element<I, tuple<T...>>;
+template <size_t _Ip, class ..._Tp>
+ using tuple_element_t = typename tuple_element <_Ip, _Tp...>::type; // C++14
// 20.4.1.5, element access:
template <intsize_t I, class... T>
typename tuple_element<I, tuple<T...>>::type&
get(tuple<T...>&) noexcept; // constexpr in C++14
template <intsize_t I, class... T>
- typename tuple_element<I, tuple<T...>>::type const&
+ typename const tuple_element<I, tuple<T...>>::type &
get(const tuple<T...>&) noexcept; // constexpr in C++14
template <intsize_t I, class... T>
typename tuple_element<I, tuple<T...>>::type&&
@@ -152,6 +154,11 @@ public:
typedef typename tuple_element<_Ip, __tuple_types<_Tp...> >::type type;
};
+#if _LIBCPP_STD_VER > 11
+template <size_t _Ip, class ..._Tp>
+using tuple_element_t = typename tuple_element <_Ip, _Tp...>::type;
+#endif
+
// __tuple_leaf
template <size_t _Ip, class _Hp, bool=is_empty<_Hp>::value
@@ -261,17 +268,8 @@ public:
>::value)),
"Attempted to construct a reference element in a tuple with an rvalue");}
- _LIBCPP_INLINE_VISIBILITY
- _LIBCPP_CONSTEXPR_AFTER_CXX11
- __tuple_leaf(const __tuple_leaf& __t) _NOEXCEPT_(is_nothrow_copy_constructible<_Hp>::value)
- : value(__t.get())
- {static_assert(!is_rvalue_reference<_Hp>::value, "Can not copy a tuple with rvalue reference member");}
-
- _LIBCPP_INLINE_VISIBILITY
- _LIBCPP_CONSTEXPR_AFTER_CXX11
- __tuple_leaf(__tuple_leaf&& __t) _NOEXCEPT_(is_nothrow_move_constructible<_Hp>::value)
- : value(_VSTD::forward<_Hp>(__t.get()))
- {}
+ __tuple_leaf(const __tuple_leaf& __t) = default;
+ __tuple_leaf(__tuple_leaf&& __t) = default;
template <class _Tp>
_LIBCPP_INLINE_VISIBILITY
@@ -796,7 +794,7 @@ constexpr _T1&& get(tuple<_Args...>&& __tup) noexcept
// tie
template <class ..._Tp>
-inline _LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
tuple<_Tp&...>
tie(_Tp&... __t) _NOEXCEPT
{
diff --git a/9/sources/cxx-stl/llvm-libc++/libcxx/include/type_traits b/9/sources/cxx-stl/llvm-libc++/libcxx/include/type_traits
index 3e3d8b7..b5f4b3e 100644
--- a/9/sources/cxx-stl/llvm-libc++/libcxx/include/type_traits
+++ b/9/sources/cxx-stl/llvm-libc++/libcxx/include/type_traits
@@ -91,6 +91,7 @@ namespace std
template <class T> struct is_empty;
template <class T> struct is_polymorphic;
template <class T> struct is_abstract;
+ template <class T> struct is_final; // C++14
template <class T, class... Args> struct is_constructible;
template <class T> struct is_default_constructible;
@@ -236,10 +237,10 @@ struct _LIBCPP_TYPE_VIS_ONLY integral_constant
typedef _Tp value_type;
typedef integral_constant type;
_LIBCPP_INLINE_VISIBILITY
- _LIBCPP_CONSTEXPR operator value_type() const {return value;}
+ _LIBCPP_CONSTEXPR operator value_type() const _NOEXCEPT {return value;}
#if _LIBCPP_STD_VER > 11
_LIBCPP_INLINE_VISIBILITY
- constexpr value_type operator ()() const {return value;}
+ constexpr value_type operator ()() const _NOEXCEPT {return value;}
#endif
};
@@ -324,6 +325,10 @@ template <> struct __libcpp_is_integral<long> : public tr
template <> struct __libcpp_is_integral<unsigned long> : public true_type {};
template <> struct __libcpp_is_integral<long long> : public true_type {};
template <> struct __libcpp_is_integral<unsigned long long> : public true_type {};
+#ifndef _LIBCPP_HAS_NO_INT128
+template <> struct __libcpp_is_integral<__int128_t> : public true_type {};
+template <> struct __libcpp_is_integral<__uint128_t> : public true_type {};
+#endif
template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_integral
: public __libcpp_is_integral<typename remove_cv<_Tp>::type> {};
@@ -759,6 +764,13 @@ template <class _Tp> struct __libcpp_abstract<_Tp, false> : public false_type {}
template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_abstract : public __libcpp_abstract<_Tp> {};
+// is_final
+
+#if _LIBCPP_STD_VER > 11 && __has_feature(is_final)
+template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY
+is_final : public integral_constant<bool, __is_final(_Tp)> {};
+#endif
+
// is_base_of
#ifdef _LIBCPP_HAS_IS_BASE_OF
@@ -946,7 +958,7 @@ template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_empty : public __libcpp_emp
// is_polymorphic
-#if __has_feature(is_polymorphic)
+#if __has_feature(is_polymorphic) || defined(_LIBCPP_MSVC)
template <class _Tp>
struct _LIBCPP_TYPE_VIS_ONLY is_polymorphic
@@ -1239,7 +1251,13 @@ typedef
__type_list<signed int,
__type_list<signed long,
__type_list<signed long long,
+#ifndef _LIBCPP_HAS_NO_INT128
+ __type_list<__int128_t,
+#endif
__nat
+#ifndef _LIBCPP_HAS_NO_INT128
+ >
+#endif
> > > > > __signed_types;
typedef
@@ -1248,7 +1266,13 @@ typedef
__type_list<unsigned int,
__type_list<unsigned long,
__type_list<unsigned long long,
+#ifndef _LIBCPP_HAS_NO_INT128
+ __type_list<__uint128_t,
+#endif
__nat
+#ifndef _LIBCPP_HAS_NO_INT128
+ >
+#endif
> > > > > __unsigned_types;
template <class _TypeList, size_t _Size, bool = _Size <= sizeof(typename _TypeList::_Head)> struct __find_first;
@@ -1332,6 +1356,10 @@ template <> struct __make_signed< signed long, true> {typedef long ty
template <> struct __make_signed<unsigned long, true> {typedef long type;};
template <> struct __make_signed< signed long long, true> {typedef long long type;};
template <> struct __make_signed<unsigned long long, true> {typedef long long type;};
+#ifndef _LIBCPP_HAS_NO_INT128
+template <> struct __make_signed<__int128_t, true> {typedef __int128_t type;};
+template <> struct __make_signed<__uint128_t, true> {typedef __int128_t type;};
+#endif
template <class _Tp>
struct _LIBCPP_TYPE_VIS_ONLY make_signed
@@ -1361,6 +1389,10 @@ template <> struct __make_unsigned< signed long, true> {typedef unsigned l
template <> struct __make_unsigned<unsigned long, true> {typedef unsigned long type;};
template <> struct __make_unsigned< signed long long, true> {typedef unsigned long long type;};
template <> struct __make_unsigned<unsigned long long, true> {typedef unsigned long long type;};
+#ifndef _LIBCPP_HAS_NO_INT128
+template <> struct __make_unsigned<__int128_t, true> {typedef __uint128_t type;};
+template <> struct __make_unsigned<__uint128_t, true> {typedef __uint128_t type;};
+#endif
template <class _Tp>
struct _LIBCPP_TYPE_VIS_ONLY make_unsigned
@@ -2002,10 +2034,24 @@ class _LIBCPP_TYPE_VIS_ONLY result_of<_Fn(_A0, _A1, _A2)>
#endif // _LIBCPP_HAS_NO_VARIADICS
-#ifndef _LIBCPP_HAS_NO_VARIADICS
-
// template <class T, class... Args> struct is_constructible;
+namespace __is_construct
+{
+struct __nat {};
+}
+
+#if __has_feature(is_constructible)
+
+template <class _Tp, class ..._Args>
+struct _LIBCPP_TYPE_VIS_ONLY is_constructible
+ : public integral_constant<bool, __is_constructible(_Tp, _Args...)>
+ {};
+
+#else
+
+#ifndef _LIBCPP_HAS_NO_VARIADICS
+
// main is_constructible test
template <class _Tp, class ..._Args>
@@ -2233,13 +2279,6 @@ struct __is_constructible2_void_check<true, _Tp, _A0, _A1>
// is_constructible entry point
-namespace __is_construct
-{
-
-struct __nat {};
-
-}
-
template <class _Tp, class _A0 = __is_construct::__nat,
class _A1 = __is_construct::__nat>
struct _LIBCPP_TYPE_VIS_ONLY is_constructible
@@ -2304,6 +2343,7 @@ struct __is_constructible2_imp<false, _Ap[], _A0, _A1>
{};
#endif // _LIBCPP_HAS_NO_VARIADICS
+#endif // __has_feature(is_constructible)
// is_default_constructible
diff --git a/9/sources/cxx-stl/llvm-libc++/libcxx/include/typeinfo b/9/sources/cxx-stl/llvm-libc++/libcxx/include/typeinfo
index 6ffee0f..14ef77b 100644
--- a/9/sources/cxx-stl/llvm-libc++/libcxx/include/typeinfo
+++ b/9/sources/cxx-stl/llvm-libc++/libcxx/include/typeinfo
@@ -60,6 +60,7 @@ public:
#include <__config>
#include <exception>
#include <cstddef>
+#include <cstdint>
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
#pragma GCC system_header
@@ -73,32 +74,75 @@ class _LIBCPP_EXCEPTION_ABI type_info
type_info& operator=(const type_info&);
type_info(const type_info&);
protected:
+#ifndef _LIBCPP_NONUNIQUE_RTTI_BIT
const char* __type_name;
+#else
+ // A const char* with the non-unique RTTI bit possibly set.
+ uintptr_t __type_name;
+#endif
_LIBCPP_INLINE_VISIBILITY
explicit type_info(const char* __n)
+#ifndef _LIBCPP_NONUNIQUE_RTTI_BIT
: __type_name(__n) {}
+#else
+ : __type_name(reinterpret_cast<uintptr_t>(__n)) {}
+#endif
public:
virtual ~type_info();
_LIBCPP_INLINE_VISIBILITY
- const char* name() const _NOEXCEPT {return __type_name;}
+ const char* name() const _NOEXCEPT
+#ifndef _LIBCPP_NONUNIQUE_RTTI_BIT
+ {return __type_name;}
+#else
+ {return reinterpret_cast<const char*>(__type_name & ~_LIBCPP_NONUNIQUE_RTTI_BIT);}
+#endif
_LIBCPP_INLINE_VISIBILITY
bool before(const type_info& __arg) const _NOEXCEPT
+#ifndef _LIBCPP_NONUNIQUE_RTTI_BIT
{return __type_name < __arg.__type_name;}
+#else
+ {if (!((__type_name & __arg.__type_name) & _LIBCPP_NONUNIQUE_RTTI_BIT))
+ return __type_name < __arg.__type_name;
+ return __compare_nonunique_names(__arg) < 0;}
+#endif
+
_LIBCPP_INLINE_VISIBILITY
size_t hash_code() const _NOEXCEPT
+#ifndef _LIBCPP_NONUNIQUE_RTTI_BIT
{return *reinterpret_cast<const size_t*>(&__type_name);}
+#else
+ {if (!(__type_name & _LIBCPP_NONUNIQUE_RTTI_BIT)) return __type_name;
+ const char *__ptr = name();
+ size_t __hash = 5381;
+ while (unsigned char __c = static_cast<unsigned char>(*__ptr++))
+ __hash = (__hash * 33) ^ __c;
+ return __hash;}
+#endif
_LIBCPP_INLINE_VISIBILITY
bool operator==(const type_info& __arg) const _NOEXCEPT
+#ifndef _LIBCPP_NONUNIQUE_RTTI_BIT
{return __type_name == __arg.__type_name;}
+#else
+ {if (__type_name == __arg.__type_name) return true;
+ if (!((__type_name & __arg.__type_name) & _LIBCPP_NONUNIQUE_RTTI_BIT))
+ return false;
+ return __compare_nonunique_names(__arg) == 0;}
+#endif
_LIBCPP_INLINE_VISIBILITY
bool operator!=(const type_info& __arg) const _NOEXCEPT
{return !operator==(__arg);}
+#ifdef _LIBCPP_NONUNIQUE_RTTI_BIT
+ private:
+ _LIBCPP_INLINE_VISIBILITY
+ int __compare_nonunique_names(const type_info &__arg) const _NOEXCEPT
+ {return __builtin_strcmp(name(), __arg.name());}
+#endif
};
class _LIBCPP_EXCEPTION_ABI bad_cast
diff --git a/9/sources/cxx-stl/llvm-libc++/libcxx/include/utility b/9/sources/cxx-stl/llvm-libc++/libcxx/include/utility
index 0a1a7f1..8a7e1dc 100644
--- a/9/sources/cxx-stl/llvm-libc++/libcxx/include/utility
+++ b/9/sources/cxx-stl/llvm-libc++/libcxx/include/utility
@@ -101,30 +101,30 @@ constexpr piecewise_construct_t piecewise_construct = piecewise_construct_t();
template <class T> class tuple_size;
template <size_t I, class T> class tuple_element;
-template <class T1, class T2> struct tuple_size<std::pair<T1, T2> >;
-template <class T1, class T2> struct tuple_element<0, std::pair<T1, T2> >;
-template <class T1, class T2> struct tuple_element<1, std::pair<T1, T2> >;
+template <class T1, class T2> struct tuple_size<pair<T1, T2> >;
+template <class T1, class T2> struct tuple_element<0, pair<T1, T2> >;
+template <class T1, class T2> struct tuple_element<1, pair<T1, T2> >;
template<size_t I, class T1, class T2>
- typename tuple_element<I, std::pair<T1, T2> >::type&
- get(std::pair<T1, T2>&) noexcept; // constexpr in C++14
+ typename tuple_element<I, pair<T1, T2> >::type&
+ get(pair<T1, T2>&) noexcept; // constexpr in C++14
template<size_t I, class T1, class T2>
- const typename const tuple_element<I, std::pair<T1, T2> >::type&
- get(const std::pair<T1, T2>&) noexcept; // constexpr in C++14
+ const typename const tuple_element<I, pair<T1, T2> >::type&
+ get(const pair<T1, T2>&) noexcept; // constexpr in C++14
template<size_t I, class T1, class T2>
- typename tuple_element<I, std::pair<T1, T2> >::type&&
- get(std::pair<T1, T2>&&) noexcept; // constexpr in C++14
+ typename tuple_element<I, pair<T1, T2> >::type&&
+ get(pair<T1, T2>&&) noexcept; // constexpr in C++14
template<class T1, class T2>
- constexpr T1& get(std::pair<T1, T2>&) noexcept; // C++14
+ constexpr T1& get(pair<T1, T2>&) noexcept; // C++14
template<size_t I, class T1, class T2>
- constexpr T1 const& get(std::pair<T1, T2> const &) noexcept; // C++14
+ constexpr T1 const& get(pair<T1, T2> const &) noexcept; // C++14
template<size_t I, class T1, class T2>
- constexpr T1&& get(std::pair<T1, T2>&&) noexcept; // C++14
+ constexpr T1&& get(pair<T1, T2>&&) noexcept; // C++14
// C++14
diff --git a/9/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_shared.so b/9/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_shared.so
index 86bbfb6..54e0b3f 100755
--- a/9/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_shared.so
+++ b/9/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_shared.so
Binary files differ
diff --git a/9/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_static.a b/9/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_static.a
index 8b13246..8a86d58 100644
--- a/9/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_static.a
+++ b/9/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_static.a
Binary files differ
diff --git a/9/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/libc++_shared.so b/9/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/libc++_shared.so
index 11e2864..7c4e3cf 100755
--- a/9/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/libc++_shared.so
+++ b/9/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/libc++_shared.so
Binary files differ
diff --git a/9/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/libc++_static.a b/9/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/libc++_static.a
index 38191cb..5ccc58a 100644
--- a/9/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/libc++_static.a
+++ b/9/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/libc++_static.a
Binary files differ
diff --git a/9/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/thumb/libc++_shared.so b/9/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/thumb/libc++_shared.so
index 3af2ada..6533e92 100755
--- a/9/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/thumb/libc++_shared.so
+++ b/9/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/thumb/libc++_shared.so
Binary files differ
diff --git a/9/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/thumb/libc++_static.a b/9/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/thumb/libc++_static.a
index 9229848..2b70f71 100644
--- a/9/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/thumb/libc++_static.a
+++ b/9/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/thumb/libc++_static.a
Binary files differ
diff --git a/9/sources/cxx-stl/llvm-libc++/libs/armeabi/libc++_shared.so b/9/sources/cxx-stl/llvm-libc++/libs/armeabi/libc++_shared.so
index 5300f35..2a0d239 100755
--- a/9/sources/cxx-stl/llvm-libc++/libs/armeabi/libc++_shared.so
+++ b/9/sources/cxx-stl/llvm-libc++/libs/armeabi/libc++_shared.so
Binary files differ
diff --git a/9/sources/cxx-stl/llvm-libc++/libs/armeabi/libc++_static.a b/9/sources/cxx-stl/llvm-libc++/libs/armeabi/libc++_static.a
index 6f546be..3bfc9cb 100644
--- a/9/sources/cxx-stl/llvm-libc++/libs/armeabi/libc++_static.a
+++ b/9/sources/cxx-stl/llvm-libc++/libs/armeabi/libc++_static.a
Binary files differ
diff --git a/9/sources/cxx-stl/llvm-libc++/libs/armeabi/thumb/libc++_shared.so b/9/sources/cxx-stl/llvm-libc++/libs/armeabi/thumb/libc++_shared.so
index 3f785ff..37d95fd 100755
--- a/9/sources/cxx-stl/llvm-libc++/libs/armeabi/thumb/libc++_shared.so
+++ b/9/sources/cxx-stl/llvm-libc++/libs/armeabi/thumb/libc++_shared.so
Binary files differ
diff --git a/9/sources/cxx-stl/llvm-libc++/libs/armeabi/thumb/libc++_static.a b/9/sources/cxx-stl/llvm-libc++/libs/armeabi/thumb/libc++_static.a
index 02af75c..e93005c 100644
--- a/9/sources/cxx-stl/llvm-libc++/libs/armeabi/thumb/libc++_static.a
+++ b/9/sources/cxx-stl/llvm-libc++/libs/armeabi/thumb/libc++_static.a
Binary files differ
diff --git a/9/sources/cxx-stl/llvm-libc++/libs/mips/libc++_shared.so b/9/sources/cxx-stl/llvm-libc++/libs/mips/libc++_shared.so
index 14706d6..1e5b532 100755
--- a/9/sources/cxx-stl/llvm-libc++/libs/mips/libc++_shared.so
+++ b/9/sources/cxx-stl/llvm-libc++/libs/mips/libc++_shared.so
Binary files differ
diff --git a/9/sources/cxx-stl/llvm-libc++/libs/mips/libc++_static.a b/9/sources/cxx-stl/llvm-libc++/libs/mips/libc++_static.a
index 434d660..9a2d7ae 100644
--- a/9/sources/cxx-stl/llvm-libc++/libs/mips/libc++_static.a
+++ b/9/sources/cxx-stl/llvm-libc++/libs/mips/libc++_static.a
Binary files differ
diff --git a/9/sources/cxx-stl/llvm-libc++/libs/mips64/libc++_shared.so b/9/sources/cxx-stl/llvm-libc++/libs/mips64/libc++_shared.so
index bae8240..945f5d9 100755
--- a/9/sources/cxx-stl/llvm-libc++/libs/mips64/libc++_shared.so
+++ b/9/sources/cxx-stl/llvm-libc++/libs/mips64/libc++_shared.so
Binary files differ
diff --git a/9/sources/cxx-stl/llvm-libc++/libs/mips64/libc++_static.a b/9/sources/cxx-stl/llvm-libc++/libs/mips64/libc++_static.a
index 6601913..3336917 100644
--- a/9/sources/cxx-stl/llvm-libc++/libs/mips64/libc++_static.a
+++ b/9/sources/cxx-stl/llvm-libc++/libs/mips64/libc++_static.a
Binary files differ
diff --git a/9/sources/cxx-stl/llvm-libc++/libs/x86/libc++_shared.so b/9/sources/cxx-stl/llvm-libc++/libs/x86/libc++_shared.so
index c5deddc..b8c1c8c 100755
--- a/9/sources/cxx-stl/llvm-libc++/libs/x86/libc++_shared.so
+++ b/9/sources/cxx-stl/llvm-libc++/libs/x86/libc++_shared.so
Binary files differ
diff --git a/9/sources/cxx-stl/llvm-libc++/libs/x86/libc++_static.a b/9/sources/cxx-stl/llvm-libc++/libs/x86/libc++_static.a
index bdc24a5..f9eee7d 100644
--- a/9/sources/cxx-stl/llvm-libc++/libs/x86/libc++_static.a
+++ b/9/sources/cxx-stl/llvm-libc++/libs/x86/libc++_static.a
Binary files differ
diff --git a/9/sources/cxx-stl/llvm-libc++/libs/x86_64/libc++_shared.so b/9/sources/cxx-stl/llvm-libc++/libs/x86_64/libc++_shared.so
index e8e9f86..b0a31c4 100755
--- a/9/sources/cxx-stl/llvm-libc++/libs/x86_64/libc++_shared.so
+++ b/9/sources/cxx-stl/llvm-libc++/libs/x86_64/libc++_shared.so
Binary files differ
diff --git a/9/sources/cxx-stl/llvm-libc++/libs/x86_64/libc++_static.a b/9/sources/cxx-stl/llvm-libc++/libs/x86_64/libc++_static.a
index 62495e6..38a4769 100644
--- a/9/sources/cxx-stl/llvm-libc++/libs/x86_64/libc++_static.a
+++ b/9/sources/cxx-stl/llvm-libc++/libs/x86_64/libc++_static.a
Binary files differ