Loading docs/html/ndk/downloads/index.jd +232 −133 Original line number Diff line number Diff line Loading @@ -307,7 +307,7 @@ Notwithstanding this, you agree that Google shall still be allowed to apply for </div> <p>Select, from the table below, the NDK package for your development platform. For information <p>Select, from the table above, the NDK package for your development platform. For information about the changes in the newest version of the NDK, see <a href="#rel">Release Notes</a>. For information about earlier revisions, see <a href="{@docRoot}ndk/downloads/revision_history.html"> NDK Revision History.</a></p> Loading Loading @@ -356,157 +356,256 @@ ndk$ ./android-ndk-r10c-darwin-x86_64.bin <h2 id="rel">Release Notes</h2> <p>Android NDK, Revision 10e</a> <em>(May 2015)</em></p> <p>Android NDK, Revision 11</a> <em>(March 2016)</em></p> <dl> <dt>Important changes:</dt> <dt>Clang</dt> <dd> <ul> <li>Integrated the workaround for Cortex-A53 Erratum 843419 into the {@code aarch64-linux-android-4.9} linker. For more information on this workaround, see <a href="https://sourceware.org/ml/binutils/2015-03/msg00446.html">Workaround for cortex-a53 erratum 843419.</a></li> <li>Added Clang 3.6; {@code NDK_TOOLCHAIN_VERSION=clang} now picks that version of Clang by default.</li> <li>Removed Clang 3.4.</li> <li>Removed GCC 4.6.</li> <li>Implemented multithreading support in {@code ld.gold} for all architectures. It can now link with or without support for multithreading; the default is to do it without. <li>Important announcements <ul> <li>To compile with multithreading, use the {@code --threads} option.</li> <li>To compile without multithreading, use the {@code --no-threads} option.</li> <li>We strongly recommend switching to Clang. <ul> <li>If you experience problems with Clang, file bugs <a href="https://github.com/android-ndk/ndk/issues">here</a> for issues specific to Clang in the NDK. For more general Clang issues, file bugs by following the instructions on <a href="http://llvm.org/docs/HowToSubmitABug.html">this page</a>.</li> </ul> </li> <li>Clang has been updated to 3.8svn (r243773, build 2481030). <ul> <li>This version is a nearly pure upstream Clang.</li> <li>The Windows 64-bit downloadable NDK package contains a 32-bit version of Clang.</li> </ul> </li> </ul> </li> <li>Upgraded GDB/gdbserver to 7.7 for all architectures.</li> <li>Removed the NDK package for 32-bit Darwin.</li> <li>Additions <ul> <li>Clang now provides support for emulated TLS. <ul> <li>The compiler now supports {@code __thread} by emulating ELF TLS with pthread thread-specific data.</li> <li>C++11 {@code thread_local} works in some cases, but not for data with non-trivial destructors, because those cases require support from libc. This limitation does not apply when running on Android 6.0 (API level 23) or newer.</li> <li>Emulated TLS does not yet work with Aarch64 when TLS variables are accessed from a shared library.</li> </ul> </li> </ul> </dd> <dl> <dt>Important bug fixes:</dt> <dl> <dt>GCC</dt> <dd> <ul> <li>Fixed a crash that occurred when there were OpenMP loops outside of the main thread.</li> <li>Fixed a GCC 4.9 internal compiler error (<i>ICE</i>) that occured when the user declared {@code #pragma GCC optimize ("O0")}, but had a different level of optimization specified on the command line. The {@code pragma} takes precedence.</li> <li>Fixed an error that used to produce a crash with the following error message: <pre> in add_stores, at var-tracking.c:6000 </pre> <li>Important announcements</li> <ul> <li>GCC in the NDK is now deprecated in favor of Clang. <ul> <li>The NDK will neither be upgrading to 5.x, nor accept non-critical backports.</li> <li>Maintenance for miscompiles and internal compiler errors in 4.9 will be handled on a case by case basis.</li> </ul> </li> </ul> <li>Removals <ul> <li>Removed GCC 4.8. All targets now use GCC 4.9.</li> </ul> </li> <li>Other changes <ul> <li>Synchronized google/gcc-4_9 to r224707. Previously, it had been synchronized with r214835.</li> </ul> </li> <li>Implemented a workaround for a Clang 3.5 issue in which LLVM auto-vectorization generates {@code llvm.cttz.v2i64()}, an instruction with no counterpart in the ARM instruction set.</li> </ul> </dd> <dt>Other bug fixes:</dt> <dl> <dl> <dt>NDK</dt> <dd> <ul> <li>Made the following header and library fixes:</li> <li>Important announcements <ul> <li>Fixed {@code PROPERTY_*} in {@code media/NdkMediaDrm.h}.</li> <li>Fixed {@code sys/ucontext.h} for {@code mips64}.</li> <li>Dropped the Clang version check for {@code __builtin_isnan} and {@code __builtin_isinf}.</li> <li>Added {@code android-21/arch-mips/usr/include/asm/reg.h} and {@code android-21/arch-mips64/usr/include/asm/reg.h}.</li> <li>The samples are no longer included in the NDK package. They are instead available on <a href="https://github.com/googlesamples/android-ndk">GitHub.</a> </li> <li>The documentation is no longer included in the NDK package. Instead, it is on the <a href="{@docRoot}ndk/index.html">Android developer website.</a></li> </ul> </li> <li>Fixed a spurious array-bounds warning that GCC 4.9 produced for x86, and reenabled the array bounds warning that GCC 4.9 had produced for ARM. The warning for ARM had previously been unconditionally disabled.</li> <li>Fixed Clang 3.5 for {@code mips} and {@code mips64} to create a writable {@code .gcc_except_table} section, thus matching GCC behavior. This change allows you to avoid the following linker warning: <pre> .../ld: warning: creating a DT_TEXTREL in a shared object </pre> <li>Additions <ul> <li>Added a native tracing API to {@code android-23}.</li> <li>Added a native multinetwork API to {@code android-23}.</li> <li>Enabled libc, m, and dl to provide versioned symbols, starting from API level 21.</li> <li>Added Vulkan headers and library to API level N.</li> </ul> </li> <li>Backported a fix for {@code compiler-rt} issues that were causing crashes when Clang compiled for {@code mips64}. For more information, see LLVM Issue <a href="http://llvm.org/bugs/show_bug.cgi?id=20098">20098</a>.</li> <li>Fixed Clang 3.5 crashes that occurred on non-ASCII comments. (Issue <a href="https://code.google.com/p/android/issues/detail?id=81440">81440</a>)</li> <li>Fixed {@code stlport collate::compare} to return {@code -1} and {@code 1}. Previously, it had returned arbitrary signed numbers.</li> <li>Fixed {@code ndk-gdb} for 64-bit ABIs. (Issue <a href="https://code.google.com/p/android/issues/detail?id=118300">118300</a>)</li> <li>Fixed the crash that the HelloComputeNDK sample for RenderScript was producing on Android 4.4 (Android API level 19). For more information, see <a href="http://stackoverflow.com/questions/28057049/targeting-pre-lollipop-devices-using-renderscript-from-ndk-c">this page</a>.</li> <li>Fixed {@code libc++ __wrap_iter} for GCC. For more information, see LLVM Issue <a href="http://llvm.org/bugs/show_bug.cgi?id=22355">22355</a>.</li> <li>Fixed {@code .asm} support for ABI {@code x86_64}.</li> <li>Implemented a workaround for the GCC 4.8 {@code stlport} issue. (Issue <a href="https://android-review.googlesource.com/#/c/127773">127773</a>)</li> <li>Removed the trailing directory separator {@code \\} from the project path in Windows. (Issue <a href="https://code.google.com/p/android/issues/detail?id=160584">160584</a>) <li>Removals <ul> <li>Removed support for {@code _WCHAR_IS_8BIT}.</li> <li>Removed sed.</li> <li>Removed mclinker.</li> <li>Removed Perl.</li> <li>Removed from all versions of NDK libc, m, and dl all symbols which the platform versions of those libs do not support.</li> <li>Partially removed support for mips64r2. The rest will be removed in the future.</li> </ul> </li> <li>Fixed a {@code no rule to make target} error that occurred when compiling a single {@code .c} file by executing the {@code ndk-build.cmd} command from {@code gradle}. (Issue <a href="https://code.google.com/p/android/issues/detail?id=66937">66937</a>)</li> <li>Other changes <ul> <li>Changed ARM standalone toolchains to default to arm7. <ul> <li>You can restore the old behavior by passing specifying the {@code -target} option as {@code armv5te-linux-androideabi}. </li> </ul> </li> <li>Changed the build system to use {@code -isystem} for platform includes. <ul> <li>Warnings that bionic causes no longer break app builds.</li> </ul> </li> <li>Fixed a segfault that occurred when a binary threw exceptions via gabi++. (Issue <a href="http://b.android.com/179410">179410</a>) </li> <li>Changed libc++’s inline namespace to {@code std::__ndk1} to prevent ODR issues with platform libc++.</li> <li>Added the {@code libatomic.a} and {@code libgomp.a} libraries that had been missing from the following host toolchains: <li>All libc++ libraries are now built with libc++abi. <li>Bumped default {@code APP_PLATFORM} to Gingerbread. <ul> <li>{@code aarch64-linux-android-4.9}</li> <li>{@code mips64el-linux-android-4.9}</li> <li>{@code mipsel-linux-android-4.9}</li> <li>{@code x86_64-4.9}</li> <li>Expect support for Froyo and older to be dropped in a future release.</ul> </ul> <li>Updated gabi++ {@code _Unwind_Exception} struct for 64 bits. <li>Added the following capabilities to cpufeatures: <ul> <li>Detect SSE4.1 and SSE4.2.</li> <li>Detect cpu features on x86_64.</li> </ul> </li> <li>Updated libc++abi to upstream <a href="http://lists.llvm.org/pipermail/cfe-commits/Week-of-Mon-20150302/124603.html"> r231075</a>. <li>Updated {@code byteswap.h}, {@code endian.h}, {@code sys/procfs.h}, {@code sys/ucontext.h}, {@code sys/user.h}, and {@code uchar.h} from ToT Bionic. <li>Synchronized {@code sys/cdefs.h} across all API levels. <li>Fixed {@code fegetenv and fesetenv} for arm. <li>Fix end pointer size/alignment of {@code crtend_*} for mips64 and x86_64. </ul> </li> </ul> </ul> </dd> <dt>Other changes:</dt> <dl> <dl> <dt>Binutils</dt> <dd> <ul> <li>Added {@code ld.gold} for {@code aarch64}. The default linker remains {@code ld.bfd}. To explicitly enable {@code ld.gold}, add {@code -fuse-ld=gold} to the {@code LOCAL_LDFLAGS} or {@code APP_LDFLAGS} variable.</li> <li>Built the MIPS and MIPS64 toolchains with {@code binutils-2.25}, which provides improved R6 support.</li> <li>Additions <ul> <li>Added a new option: {@code --pic-veneer}.</li> </ul> </li> <li>Made {@code -fstandalone-debug} (full debug info) a default option for Clang.</li> <li>Removals <ul> <li>The 32-bit Windows package no longer contains ld.gold. You can instead get ld.gold from the 64-bit Windows package.</li> </ul> </li> <li>Replaced {@code -fstack-protector} with {@code -fstack-protector-strong} for the ARM, AArch64, X86, and X86_64 toolchains for GCC 4.9, Clang 3.5, and Clang 3.6.</li> <li>Changes <ul> <li>Unified binutils source between Android and ChromiumOS. For more information on this change, see the comments <a href="https://android-review.googlesource.com/#/c/182865/"> here.</a></li> <li>Improved reliability of Gold for aarch64. Use {@code -fuse-ld=gold} at link time to use gold instead of bfd. The default will likely switch in the next release.</li> <li>Improved linking time for huge binaries for Gold ARM back end (up to 50% linking time reduction for debuggable Chrome Browser). </li> </ul> </li> </ul> </dd> <dl> <dl> <dt>GDB</dt> <dd> <ul> <li>Added the {@code --package} command-line switch to {@code ndk-gdb} to allow the build system to override the package name. (Issue <a href="https://code.google.com/p/android/issues/detail?id=56189">56189</a>)</li> <li>Removals <ul> <li>Removed ndk-gdb in favor of ndk-gdb.py.</li> </ul> </li> <li> Deprecated {@code -mno-ldc1-stc1} for MIPS. This option may not work with the new {@code -fpxx} and {@code -mno-odd-spreg} options, or with the FPXX ABI.</li> <li>Changes <ul> <li>Updated gdb to version 7.10.</li> <li>Improved performance.</li> <li>Improved error messages.</li> <li>Fixed relative project paths.</li> <li>Stopped Ctrl-C from killing the backgrounded gdbserver.</li> <li>Improved Windows support.</li> </ul> </li> </ul> </dd> <li>Added MIPS MSA and R6 detection to {@code cpu-features}.</li> <dl> <dl> <dt>YASM</dt> <dd> <ul> <li>Changes <ul> <li>Updated YASM to version 1.3.0.</li> </ul> </li> </ul> </dd> </dl> <dl> <dl> <dt>Known issues</dt> <dd> <ul> <li>x86 ASAN does not currently work. For more information, see the discussion <a href="https://android-review.googlesource.com/#/c/186276/"> here.</a></li> <li>The combination of Clang, x86, stlport_static, and optimization levels higher than {@code -O0} causes test failures with {@code dynamic_cast}. For more information, see the comments <a href="https://android-review.googlesource.com/#/c/185920">here</a>. </li> <li>Exception handling often fails with c++_shared on ARM32. The root cause is incompatibility between the LLVM unwinder that libc++abi uses for ARM32 and libgcc. This behavior is not a regression from r10e.</li> </ul> </dd> docs/html/ndk/downloads/revision_history.jd +164 −0 Original line number Diff line number Diff line Loading @@ -4,6 +4,170 @@ page.title=NDK Revision History <p>This page provides information on previous releases of the NDK, enumerating the changes that took place in each new version.</p> <div class="toggle-content closed"> <a name="10e"></a> <p> <a href="#" onclick="return toggleContent(this)"> <img src="/assets/images/triangle-closed.png" class="toggle-content-img" alt="" >Android NDK, Revision 10e</a> <em>(May 2015)</em> </p> <div class="toggle-content-toggleme"> <dl> <dt>Important changes:</dt> <dd> <ul> <li>Integrated the workaround for Cortex-A53 Erratum 843419 into the {@code aarch64-linux-android-4.9} linker. For more information on this workaround, see <a href="https://sourceware.org/ml/binutils/2015-03/msg00446.html">Workaround for cortex-a53 erratum 843419.</a></li> <li>Added Clang 3.6; {@code NDK_TOOLCHAIN_VERSION=clang} now picks that version of Clang by default.</li> <li>Removed Clang 3.4.</li> <li>Removed GCC 4.6.</li> <li>Implemented multithreading support in {@code ld.gold} for all architectures. It can now link with or without support for multithreading; the default is to do it without. <ul> <li>To compile with multithreading, use the {@code --threads} option.</li> <li>To compile without multithreading, use the {@code --no-threads} option.</li> </ul> </li> <li>Upgraded GDB/gdbserver to 7.7 for all architectures.</li> <li>Removed the NDK package for 32-bit Darwin.</li> </ul> </dd> <dl> <dt>Important bug fixes:</dt> <dd> <ul> <li>Fixed a crash that occurred when there were OpenMP loops outside of the main thread.</li> <li>Fixed a GCC 4.9 internal compiler error (<i>ICE</i>) that occured when the user declared {@code #pragma GCC optimize ("O0")}, but had a different level of optimization specified on the command line. The {@code pragma} takes precedence.</li> <li>Fixed an error that used to produce a crash with the following error message: <pre> in add_stores, at var-tracking.c:6000 </pre> </li> <li>Implemented a workaround for a Clang 3.5 issue in which LLVM auto-vectorization generates {@code llvm.cttz.v2i64()}, an instruction with no counterpart in the ARM instruction set.</li> </ul> </dd> <dt>Other bug fixes:</dt> <dd> <ul> <li>Made the following header and library fixes:</li> <ul> <li>Fixed {@code PROPERTY_*} in {@code media/NdkMediaDrm.h}.</li> <li>Fixed {@code sys/ucontext.h} for {@code mips64}.</li> <li>Dropped the Clang version check for {@code __builtin_isnan} and {@code __builtin_isinf}.</li> <li>Added {@code android-21/arch-mips/usr/include/asm/reg.h} and {@code android-21/arch-mips64/usr/include/asm/reg.h}.</li> </ul> </li> <li>Fixed a spurious array-bounds warning that GCC 4.9 produced for x86, and reenabled the array bounds warning that GCC 4.9 had produced for ARM. The warning for ARM had previously been unconditionally disabled.</li> <li>Fixed Clang 3.5 for {@code mips} and {@code mips64} to create a writable {@code .gcc_except_table} section, thus matching GCC behavior. This change allows you to avoid the following linker warning: <pre> .../ld: warning: creating a DT_TEXTREL in a shared object </pre> </li> <li>Backported a fix for {@code compiler-rt} issues that were causing crashes when Clang compiled for {@code mips64}. For more information, see LLVM Issue <a href="http://llvm.org/bugs/show_bug.cgi?id=20098">20098</a>.</li> <li>Fixed Clang 3.5 crashes that occurred on non-ASCII comments. (Issue <a href="https://code.google.com/p/android/issues/detail?id=81440">81440</a>)</li> <li>Fixed {@code stlport collate::compare} to return {@code -1} and {@code 1}. Previously, it had returned arbitrary signed numbers.</li> <li>Fixed {@code ndk-gdb} for 64-bit ABIs. (Issue <a href="https://code.google.com/p/android/issues/detail?id=118300">118300</a>)</li> <li>Fixed the crash that the HelloComputeNDK sample for RenderScript was producing on Android 4.4 (Android API level 19). For more information, see <a href="http://stackoverflow.com/questions/28057049/targeting-pre-lollipop-devices-using-renderscript-from-ndk-c">this page</a>.</li> <li>Fixed {@code libc++ __wrap_iter} for GCC. For more information, see LLVM Issue <a href="http://llvm.org/bugs/show_bug.cgi?id=22355">22355</a>.</li> <li>Fixed {@code .asm} support for ABI {@code x86_64}.</li> <li>Implemented a workaround for the GCC 4.8 {@code stlport} issue. (Issue <a href="https://android-review.googlesource.com/#/c/127773">127773</a>)</li> <li>Removed the trailing directory separator {@code \\} from the project path in Windows. (Issue <a href="https://code.google.com/p/android/issues/detail?id=160584">160584</a>) </li> <li>Fixed a {@code no rule to make target} error that occurred when compiling a single {@code .c} file by executing the {@code ndk-build.cmd} command from {@code gradle}. (Issue <a href="https://code.google.com/p/android/issues/detail?id=66937">66937</a>)</li> <li>Added the {@code libatomic.a} and {@code libgomp.a} libraries that had been missing from the following host toolchains: <ul> <li>{@code aarch64-linux-android-4.9}</li> <li>{@code mips64el-linux-android-4.9}</li> <li>{@code mipsel-linux-android-4.9}</li> <li>{@code x86_64-4.9}</li> </ul> </ul> </dd> <dt>Other changes:</dt> <dd> <ul> <li>Added {@code ld.gold} for {@code aarch64}. The default linker remains {@code ld.bfd}. To explicitly enable {@code ld.gold}, add {@code -fuse-ld=gold} to the {@code LOCAL_LDFLAGS} or {@code APP_LDFLAGS} variable.</li> <li>Built the MIPS and MIPS64 toolchains with {@code binutils-2.25}, which provides improved R6 support.</li> <li>Made {@code -fstandalone-debug} (full debug info) a default option for Clang.</li> <li>Replaced {@code -fstack-protector} with {@code -fstack-protector-strong} for the ARM, AArch64, X86, and X86_64 toolchains for GCC 4.9, Clang 3.5, and Clang 3.6.</li> <li>Added the {@code --package} command-line switch to {@code ndk-gdb} to allow the build system to override the package name. (Issue <a href="https://code.google.com/p/android/issues/detail?id=56189">56189</a>)</li> <li> Deprecated {@code -mno-ldc1-stc1} for MIPS. This option may not work with the new {@code -fpxx} and {@code -mno-odd-spreg} options, or with the FPXX ABI.</li> <li>Added MIPS MSA and R6 detection to {@code cpu-features}.</li> </ul> </dd> </dl> </div> </div> <div class="toggle-content closed"> <a name="10d"></a> <p> Loading docs/html/sdk/sdk_vars.cs +15 −18 Original line number Diff line number Diff line Loading @@ -39,21 +39,18 @@ set:sdk.win_installer_bytes='151659917' ?><?cs set:sdk.win_installer_checksum='f9b59d72413649d31e633207e31f456443e7ea0b' ?><?cs set:ndk.mac64_download='android-ndk-r10e-darwin-x86_64.bin' ?><?cs set:ndk.mac64_bytes='388937326' ?><?cs set:ndk.mac64_checksum='2cb8893a5701603519d38a7e04c50e81' ?><?cs set:ndk.linux64_download='android-ndk-r10e-linux-x86_64.bin' ?><?cs set:ndk.linux64_bytes='401522849' ?><?cs set:ndk.linux64_checksum='19af543b068bdb7f27787c2bc69aba7f' ?><?cs set:ndk.linux32_download='android-ndk-r10e-linux-x86.bin' ?><?cs set:ndk.linux32_bytes='394281908' ?><?cs set:ndk.linux32_checksum='c3edd3273029da1cbd2f62c48249e978' ?><?cs set:ndk.win64_download='android-ndk-r10e-windows-x86_64.exe' ?><?cs set:ndk.win64_bytes='419616132' ?><?cs set:ndk.win64_checksum='8412bb4991a95e08fda50b5a44d95df7' ?><?cs set:ndk.win32_download='android-ndk-r10e-windows-x86.exe' ?><?cs set:ndk.win32_bytes='396563176' ?><?cs set:ndk.win32_checksum='1a82445baaf62aec3a46386ab1e5772c' set:ndk.mac64_download='android-ndk-r11-darwin-x86_64.zip' ?><?cs set:ndk.mac64_bytes='700461056' ?><?cs set:ndk.mac64_checksum='28fc96aa04e022a1629cc6e676460c96' ?><?cs set:ndk.linux64_download='android-ndk-r11-linux-x86_64.zip' ?><?cs set:ndk.linux64_bytes='721313792' ?><?cs set:ndk.linux64_checksum='bd1175cbc59ed236835df8137d6efb57' ?><?cs set:ndk.win64_download='android-ndk-r11-windows-x86_64.zip' ?><?cs set:ndk.win64_bytes='771297280' ?><?cs set:ndk.win64_checksum='c1fc239cceca31737d1dde778c970beb' ?><?cs set:ndk.win32_download='android-ndk-r11-windows-x86.zip' ?><?cs set:ndk.win32_bytes='728780800' ?><?cs set:ndk.win32_checksum='b4456487fd354fc56800f96e38208ff4' ?> Loading
docs/html/ndk/downloads/index.jd +232 −133 Original line number Diff line number Diff line Loading @@ -307,7 +307,7 @@ Notwithstanding this, you agree that Google shall still be allowed to apply for </div> <p>Select, from the table below, the NDK package for your development platform. For information <p>Select, from the table above, the NDK package for your development platform. For information about the changes in the newest version of the NDK, see <a href="#rel">Release Notes</a>. For information about earlier revisions, see <a href="{@docRoot}ndk/downloads/revision_history.html"> NDK Revision History.</a></p> Loading Loading @@ -356,157 +356,256 @@ ndk$ ./android-ndk-r10c-darwin-x86_64.bin <h2 id="rel">Release Notes</h2> <p>Android NDK, Revision 10e</a> <em>(May 2015)</em></p> <p>Android NDK, Revision 11</a> <em>(March 2016)</em></p> <dl> <dt>Important changes:</dt> <dt>Clang</dt> <dd> <ul> <li>Integrated the workaround for Cortex-A53 Erratum 843419 into the {@code aarch64-linux-android-4.9} linker. For more information on this workaround, see <a href="https://sourceware.org/ml/binutils/2015-03/msg00446.html">Workaround for cortex-a53 erratum 843419.</a></li> <li>Added Clang 3.6; {@code NDK_TOOLCHAIN_VERSION=clang} now picks that version of Clang by default.</li> <li>Removed Clang 3.4.</li> <li>Removed GCC 4.6.</li> <li>Implemented multithreading support in {@code ld.gold} for all architectures. It can now link with or without support for multithreading; the default is to do it without. <li>Important announcements <ul> <li>To compile with multithreading, use the {@code --threads} option.</li> <li>To compile without multithreading, use the {@code --no-threads} option.</li> <li>We strongly recommend switching to Clang. <ul> <li>If you experience problems with Clang, file bugs <a href="https://github.com/android-ndk/ndk/issues">here</a> for issues specific to Clang in the NDK. For more general Clang issues, file bugs by following the instructions on <a href="http://llvm.org/docs/HowToSubmitABug.html">this page</a>.</li> </ul> </li> <li>Clang has been updated to 3.8svn (r243773, build 2481030). <ul> <li>This version is a nearly pure upstream Clang.</li> <li>The Windows 64-bit downloadable NDK package contains a 32-bit version of Clang.</li> </ul> </li> </ul> </li> <li>Upgraded GDB/gdbserver to 7.7 for all architectures.</li> <li>Removed the NDK package for 32-bit Darwin.</li> <li>Additions <ul> <li>Clang now provides support for emulated TLS. <ul> <li>The compiler now supports {@code __thread} by emulating ELF TLS with pthread thread-specific data.</li> <li>C++11 {@code thread_local} works in some cases, but not for data with non-trivial destructors, because those cases require support from libc. This limitation does not apply when running on Android 6.0 (API level 23) or newer.</li> <li>Emulated TLS does not yet work with Aarch64 when TLS variables are accessed from a shared library.</li> </ul> </li> </ul> </dd> <dl> <dt>Important bug fixes:</dt> <dl> <dt>GCC</dt> <dd> <ul> <li>Fixed a crash that occurred when there were OpenMP loops outside of the main thread.</li> <li>Fixed a GCC 4.9 internal compiler error (<i>ICE</i>) that occured when the user declared {@code #pragma GCC optimize ("O0")}, but had a different level of optimization specified on the command line. The {@code pragma} takes precedence.</li> <li>Fixed an error that used to produce a crash with the following error message: <pre> in add_stores, at var-tracking.c:6000 </pre> <li>Important announcements</li> <ul> <li>GCC in the NDK is now deprecated in favor of Clang. <ul> <li>The NDK will neither be upgrading to 5.x, nor accept non-critical backports.</li> <li>Maintenance for miscompiles and internal compiler errors in 4.9 will be handled on a case by case basis.</li> </ul> </li> </ul> <li>Removals <ul> <li>Removed GCC 4.8. All targets now use GCC 4.9.</li> </ul> </li> <li>Other changes <ul> <li>Synchronized google/gcc-4_9 to r224707. Previously, it had been synchronized with r214835.</li> </ul> </li> <li>Implemented a workaround for a Clang 3.5 issue in which LLVM auto-vectorization generates {@code llvm.cttz.v2i64()}, an instruction with no counterpart in the ARM instruction set.</li> </ul> </dd> <dt>Other bug fixes:</dt> <dl> <dl> <dt>NDK</dt> <dd> <ul> <li>Made the following header and library fixes:</li> <li>Important announcements <ul> <li>Fixed {@code PROPERTY_*} in {@code media/NdkMediaDrm.h}.</li> <li>Fixed {@code sys/ucontext.h} for {@code mips64}.</li> <li>Dropped the Clang version check for {@code __builtin_isnan} and {@code __builtin_isinf}.</li> <li>Added {@code android-21/arch-mips/usr/include/asm/reg.h} and {@code android-21/arch-mips64/usr/include/asm/reg.h}.</li> <li>The samples are no longer included in the NDK package. They are instead available on <a href="https://github.com/googlesamples/android-ndk">GitHub.</a> </li> <li>The documentation is no longer included in the NDK package. Instead, it is on the <a href="{@docRoot}ndk/index.html">Android developer website.</a></li> </ul> </li> <li>Fixed a spurious array-bounds warning that GCC 4.9 produced for x86, and reenabled the array bounds warning that GCC 4.9 had produced for ARM. The warning for ARM had previously been unconditionally disabled.</li> <li>Fixed Clang 3.5 for {@code mips} and {@code mips64} to create a writable {@code .gcc_except_table} section, thus matching GCC behavior. This change allows you to avoid the following linker warning: <pre> .../ld: warning: creating a DT_TEXTREL in a shared object </pre> <li>Additions <ul> <li>Added a native tracing API to {@code android-23}.</li> <li>Added a native multinetwork API to {@code android-23}.</li> <li>Enabled libc, m, and dl to provide versioned symbols, starting from API level 21.</li> <li>Added Vulkan headers and library to API level N.</li> </ul> </li> <li>Backported a fix for {@code compiler-rt} issues that were causing crashes when Clang compiled for {@code mips64}. For more information, see LLVM Issue <a href="http://llvm.org/bugs/show_bug.cgi?id=20098">20098</a>.</li> <li>Fixed Clang 3.5 crashes that occurred on non-ASCII comments. (Issue <a href="https://code.google.com/p/android/issues/detail?id=81440">81440</a>)</li> <li>Fixed {@code stlport collate::compare} to return {@code -1} and {@code 1}. Previously, it had returned arbitrary signed numbers.</li> <li>Fixed {@code ndk-gdb} for 64-bit ABIs. (Issue <a href="https://code.google.com/p/android/issues/detail?id=118300">118300</a>)</li> <li>Fixed the crash that the HelloComputeNDK sample for RenderScript was producing on Android 4.4 (Android API level 19). For more information, see <a href="http://stackoverflow.com/questions/28057049/targeting-pre-lollipop-devices-using-renderscript-from-ndk-c">this page</a>.</li> <li>Fixed {@code libc++ __wrap_iter} for GCC. For more information, see LLVM Issue <a href="http://llvm.org/bugs/show_bug.cgi?id=22355">22355</a>.</li> <li>Fixed {@code .asm} support for ABI {@code x86_64}.</li> <li>Implemented a workaround for the GCC 4.8 {@code stlport} issue. (Issue <a href="https://android-review.googlesource.com/#/c/127773">127773</a>)</li> <li>Removed the trailing directory separator {@code \\} from the project path in Windows. (Issue <a href="https://code.google.com/p/android/issues/detail?id=160584">160584</a>) <li>Removals <ul> <li>Removed support for {@code _WCHAR_IS_8BIT}.</li> <li>Removed sed.</li> <li>Removed mclinker.</li> <li>Removed Perl.</li> <li>Removed from all versions of NDK libc, m, and dl all symbols which the platform versions of those libs do not support.</li> <li>Partially removed support for mips64r2. The rest will be removed in the future.</li> </ul> </li> <li>Fixed a {@code no rule to make target} error that occurred when compiling a single {@code .c} file by executing the {@code ndk-build.cmd} command from {@code gradle}. (Issue <a href="https://code.google.com/p/android/issues/detail?id=66937">66937</a>)</li> <li>Other changes <ul> <li>Changed ARM standalone toolchains to default to arm7. <ul> <li>You can restore the old behavior by passing specifying the {@code -target} option as {@code armv5te-linux-androideabi}. </li> </ul> </li> <li>Changed the build system to use {@code -isystem} for platform includes. <ul> <li>Warnings that bionic causes no longer break app builds.</li> </ul> </li> <li>Fixed a segfault that occurred when a binary threw exceptions via gabi++. (Issue <a href="http://b.android.com/179410">179410</a>) </li> <li>Changed libc++’s inline namespace to {@code std::__ndk1} to prevent ODR issues with platform libc++.</li> <li>Added the {@code libatomic.a} and {@code libgomp.a} libraries that had been missing from the following host toolchains: <li>All libc++ libraries are now built with libc++abi. <li>Bumped default {@code APP_PLATFORM} to Gingerbread. <ul> <li>{@code aarch64-linux-android-4.9}</li> <li>{@code mips64el-linux-android-4.9}</li> <li>{@code mipsel-linux-android-4.9}</li> <li>{@code x86_64-4.9}</li> <li>Expect support for Froyo and older to be dropped in a future release.</ul> </ul> <li>Updated gabi++ {@code _Unwind_Exception} struct for 64 bits. <li>Added the following capabilities to cpufeatures: <ul> <li>Detect SSE4.1 and SSE4.2.</li> <li>Detect cpu features on x86_64.</li> </ul> </li> <li>Updated libc++abi to upstream <a href="http://lists.llvm.org/pipermail/cfe-commits/Week-of-Mon-20150302/124603.html"> r231075</a>. <li>Updated {@code byteswap.h}, {@code endian.h}, {@code sys/procfs.h}, {@code sys/ucontext.h}, {@code sys/user.h}, and {@code uchar.h} from ToT Bionic. <li>Synchronized {@code sys/cdefs.h} across all API levels. <li>Fixed {@code fegetenv and fesetenv} for arm. <li>Fix end pointer size/alignment of {@code crtend_*} for mips64 and x86_64. </ul> </li> </ul> </ul> </dd> <dt>Other changes:</dt> <dl> <dl> <dt>Binutils</dt> <dd> <ul> <li>Added {@code ld.gold} for {@code aarch64}. The default linker remains {@code ld.bfd}. To explicitly enable {@code ld.gold}, add {@code -fuse-ld=gold} to the {@code LOCAL_LDFLAGS} or {@code APP_LDFLAGS} variable.</li> <li>Built the MIPS and MIPS64 toolchains with {@code binutils-2.25}, which provides improved R6 support.</li> <li>Additions <ul> <li>Added a new option: {@code --pic-veneer}.</li> </ul> </li> <li>Made {@code -fstandalone-debug} (full debug info) a default option for Clang.</li> <li>Removals <ul> <li>The 32-bit Windows package no longer contains ld.gold. You can instead get ld.gold from the 64-bit Windows package.</li> </ul> </li> <li>Replaced {@code -fstack-protector} with {@code -fstack-protector-strong} for the ARM, AArch64, X86, and X86_64 toolchains for GCC 4.9, Clang 3.5, and Clang 3.6.</li> <li>Changes <ul> <li>Unified binutils source between Android and ChromiumOS. For more information on this change, see the comments <a href="https://android-review.googlesource.com/#/c/182865/"> here.</a></li> <li>Improved reliability of Gold for aarch64. Use {@code -fuse-ld=gold} at link time to use gold instead of bfd. The default will likely switch in the next release.</li> <li>Improved linking time for huge binaries for Gold ARM back end (up to 50% linking time reduction for debuggable Chrome Browser). </li> </ul> </li> </ul> </dd> <dl> <dl> <dt>GDB</dt> <dd> <ul> <li>Added the {@code --package} command-line switch to {@code ndk-gdb} to allow the build system to override the package name. (Issue <a href="https://code.google.com/p/android/issues/detail?id=56189">56189</a>)</li> <li>Removals <ul> <li>Removed ndk-gdb in favor of ndk-gdb.py.</li> </ul> </li> <li> Deprecated {@code -mno-ldc1-stc1} for MIPS. This option may not work with the new {@code -fpxx} and {@code -mno-odd-spreg} options, or with the FPXX ABI.</li> <li>Changes <ul> <li>Updated gdb to version 7.10.</li> <li>Improved performance.</li> <li>Improved error messages.</li> <li>Fixed relative project paths.</li> <li>Stopped Ctrl-C from killing the backgrounded gdbserver.</li> <li>Improved Windows support.</li> </ul> </li> </ul> </dd> <li>Added MIPS MSA and R6 detection to {@code cpu-features}.</li> <dl> <dl> <dt>YASM</dt> <dd> <ul> <li>Changes <ul> <li>Updated YASM to version 1.3.0.</li> </ul> </li> </ul> </dd> </dl> <dl> <dl> <dt>Known issues</dt> <dd> <ul> <li>x86 ASAN does not currently work. For more information, see the discussion <a href="https://android-review.googlesource.com/#/c/186276/"> here.</a></li> <li>The combination of Clang, x86, stlport_static, and optimization levels higher than {@code -O0} causes test failures with {@code dynamic_cast}. For more information, see the comments <a href="https://android-review.googlesource.com/#/c/185920">here</a>. </li> <li>Exception handling often fails with c++_shared on ARM32. The root cause is incompatibility between the LLVM unwinder that libc++abi uses for ARM32 and libgcc. This behavior is not a regression from r10e.</li> </ul> </dd>
docs/html/ndk/downloads/revision_history.jd +164 −0 Original line number Diff line number Diff line Loading @@ -4,6 +4,170 @@ page.title=NDK Revision History <p>This page provides information on previous releases of the NDK, enumerating the changes that took place in each new version.</p> <div class="toggle-content closed"> <a name="10e"></a> <p> <a href="#" onclick="return toggleContent(this)"> <img src="/assets/images/triangle-closed.png" class="toggle-content-img" alt="" >Android NDK, Revision 10e</a> <em>(May 2015)</em> </p> <div class="toggle-content-toggleme"> <dl> <dt>Important changes:</dt> <dd> <ul> <li>Integrated the workaround for Cortex-A53 Erratum 843419 into the {@code aarch64-linux-android-4.9} linker. For more information on this workaround, see <a href="https://sourceware.org/ml/binutils/2015-03/msg00446.html">Workaround for cortex-a53 erratum 843419.</a></li> <li>Added Clang 3.6; {@code NDK_TOOLCHAIN_VERSION=clang} now picks that version of Clang by default.</li> <li>Removed Clang 3.4.</li> <li>Removed GCC 4.6.</li> <li>Implemented multithreading support in {@code ld.gold} for all architectures. It can now link with or without support for multithreading; the default is to do it without. <ul> <li>To compile with multithreading, use the {@code --threads} option.</li> <li>To compile without multithreading, use the {@code --no-threads} option.</li> </ul> </li> <li>Upgraded GDB/gdbserver to 7.7 for all architectures.</li> <li>Removed the NDK package for 32-bit Darwin.</li> </ul> </dd> <dl> <dt>Important bug fixes:</dt> <dd> <ul> <li>Fixed a crash that occurred when there were OpenMP loops outside of the main thread.</li> <li>Fixed a GCC 4.9 internal compiler error (<i>ICE</i>) that occured when the user declared {@code #pragma GCC optimize ("O0")}, but had a different level of optimization specified on the command line. The {@code pragma} takes precedence.</li> <li>Fixed an error that used to produce a crash with the following error message: <pre> in add_stores, at var-tracking.c:6000 </pre> </li> <li>Implemented a workaround for a Clang 3.5 issue in which LLVM auto-vectorization generates {@code llvm.cttz.v2i64()}, an instruction with no counterpart in the ARM instruction set.</li> </ul> </dd> <dt>Other bug fixes:</dt> <dd> <ul> <li>Made the following header and library fixes:</li> <ul> <li>Fixed {@code PROPERTY_*} in {@code media/NdkMediaDrm.h}.</li> <li>Fixed {@code sys/ucontext.h} for {@code mips64}.</li> <li>Dropped the Clang version check for {@code __builtin_isnan} and {@code __builtin_isinf}.</li> <li>Added {@code android-21/arch-mips/usr/include/asm/reg.h} and {@code android-21/arch-mips64/usr/include/asm/reg.h}.</li> </ul> </li> <li>Fixed a spurious array-bounds warning that GCC 4.9 produced for x86, and reenabled the array bounds warning that GCC 4.9 had produced for ARM. The warning for ARM had previously been unconditionally disabled.</li> <li>Fixed Clang 3.5 for {@code mips} and {@code mips64} to create a writable {@code .gcc_except_table} section, thus matching GCC behavior. This change allows you to avoid the following linker warning: <pre> .../ld: warning: creating a DT_TEXTREL in a shared object </pre> </li> <li>Backported a fix for {@code compiler-rt} issues that were causing crashes when Clang compiled for {@code mips64}. For more information, see LLVM Issue <a href="http://llvm.org/bugs/show_bug.cgi?id=20098">20098</a>.</li> <li>Fixed Clang 3.5 crashes that occurred on non-ASCII comments. (Issue <a href="https://code.google.com/p/android/issues/detail?id=81440">81440</a>)</li> <li>Fixed {@code stlport collate::compare} to return {@code -1} and {@code 1}. Previously, it had returned arbitrary signed numbers.</li> <li>Fixed {@code ndk-gdb} for 64-bit ABIs. (Issue <a href="https://code.google.com/p/android/issues/detail?id=118300">118300</a>)</li> <li>Fixed the crash that the HelloComputeNDK sample for RenderScript was producing on Android 4.4 (Android API level 19). For more information, see <a href="http://stackoverflow.com/questions/28057049/targeting-pre-lollipop-devices-using-renderscript-from-ndk-c">this page</a>.</li> <li>Fixed {@code libc++ __wrap_iter} for GCC. For more information, see LLVM Issue <a href="http://llvm.org/bugs/show_bug.cgi?id=22355">22355</a>.</li> <li>Fixed {@code .asm} support for ABI {@code x86_64}.</li> <li>Implemented a workaround for the GCC 4.8 {@code stlport} issue. (Issue <a href="https://android-review.googlesource.com/#/c/127773">127773</a>)</li> <li>Removed the trailing directory separator {@code \\} from the project path in Windows. (Issue <a href="https://code.google.com/p/android/issues/detail?id=160584">160584</a>) </li> <li>Fixed a {@code no rule to make target} error that occurred when compiling a single {@code .c} file by executing the {@code ndk-build.cmd} command from {@code gradle}. (Issue <a href="https://code.google.com/p/android/issues/detail?id=66937">66937</a>)</li> <li>Added the {@code libatomic.a} and {@code libgomp.a} libraries that had been missing from the following host toolchains: <ul> <li>{@code aarch64-linux-android-4.9}</li> <li>{@code mips64el-linux-android-4.9}</li> <li>{@code mipsel-linux-android-4.9}</li> <li>{@code x86_64-4.9}</li> </ul> </ul> </dd> <dt>Other changes:</dt> <dd> <ul> <li>Added {@code ld.gold} for {@code aarch64}. The default linker remains {@code ld.bfd}. To explicitly enable {@code ld.gold}, add {@code -fuse-ld=gold} to the {@code LOCAL_LDFLAGS} or {@code APP_LDFLAGS} variable.</li> <li>Built the MIPS and MIPS64 toolchains with {@code binutils-2.25}, which provides improved R6 support.</li> <li>Made {@code -fstandalone-debug} (full debug info) a default option for Clang.</li> <li>Replaced {@code -fstack-protector} with {@code -fstack-protector-strong} for the ARM, AArch64, X86, and X86_64 toolchains for GCC 4.9, Clang 3.5, and Clang 3.6.</li> <li>Added the {@code --package} command-line switch to {@code ndk-gdb} to allow the build system to override the package name. (Issue <a href="https://code.google.com/p/android/issues/detail?id=56189">56189</a>)</li> <li> Deprecated {@code -mno-ldc1-stc1} for MIPS. This option may not work with the new {@code -fpxx} and {@code -mno-odd-spreg} options, or with the FPXX ABI.</li> <li>Added MIPS MSA and R6 detection to {@code cpu-features}.</li> </ul> </dd> </dl> </div> </div> <div class="toggle-content closed"> <a name="10d"></a> <p> Loading
docs/html/sdk/sdk_vars.cs +15 −18 Original line number Diff line number Diff line Loading @@ -39,21 +39,18 @@ set:sdk.win_installer_bytes='151659917' ?><?cs set:sdk.win_installer_checksum='f9b59d72413649d31e633207e31f456443e7ea0b' ?><?cs set:ndk.mac64_download='android-ndk-r10e-darwin-x86_64.bin' ?><?cs set:ndk.mac64_bytes='388937326' ?><?cs set:ndk.mac64_checksum='2cb8893a5701603519d38a7e04c50e81' ?><?cs set:ndk.linux64_download='android-ndk-r10e-linux-x86_64.bin' ?><?cs set:ndk.linux64_bytes='401522849' ?><?cs set:ndk.linux64_checksum='19af543b068bdb7f27787c2bc69aba7f' ?><?cs set:ndk.linux32_download='android-ndk-r10e-linux-x86.bin' ?><?cs set:ndk.linux32_bytes='394281908' ?><?cs set:ndk.linux32_checksum='c3edd3273029da1cbd2f62c48249e978' ?><?cs set:ndk.win64_download='android-ndk-r10e-windows-x86_64.exe' ?><?cs set:ndk.win64_bytes='419616132' ?><?cs set:ndk.win64_checksum='8412bb4991a95e08fda50b5a44d95df7' ?><?cs set:ndk.win32_download='android-ndk-r10e-windows-x86.exe' ?><?cs set:ndk.win32_bytes='396563176' ?><?cs set:ndk.win32_checksum='1a82445baaf62aec3a46386ab1e5772c' set:ndk.mac64_download='android-ndk-r11-darwin-x86_64.zip' ?><?cs set:ndk.mac64_bytes='700461056' ?><?cs set:ndk.mac64_checksum='28fc96aa04e022a1629cc6e676460c96' ?><?cs set:ndk.linux64_download='android-ndk-r11-linux-x86_64.zip' ?><?cs set:ndk.linux64_bytes='721313792' ?><?cs set:ndk.linux64_checksum='bd1175cbc59ed236835df8137d6efb57' ?><?cs set:ndk.win64_download='android-ndk-r11-windows-x86_64.zip' ?><?cs set:ndk.win64_bytes='771297280' ?><?cs set:ndk.win64_checksum='c1fc239cceca31737d1dde778c970beb' ?><?cs set:ndk.win32_download='android-ndk-r11-windows-x86.zip' ?><?cs set:ndk.win32_bytes='728780800' ?><?cs set:ndk.win32_checksum='b4456487fd354fc56800f96e38208ff4' ?>